fixed description in notifications and conversation overview

This commit is contained in:
iNPUTmice 2014-11-15 14:40:43 +01:00
parent e0f012dba1
commit 47d44448f3
8 changed files with 93 additions and 50 deletions

View File

@ -0,0 +1,39 @@
package eu.siacs.conversations.entities;
public class DownloadablePlaceholder implements Downloadable {
private int status;
public DownloadablePlaceholder(int status) {
this.status = status;
}
@Override
public boolean start() {
return false;
}
@Override
public int getStatus() {
return status;
}
@Override
public long getFileSize() {
return 0;
}
@Override
public int getProgress() {
return 0;
}
@Override
public String getMimeType() {
return "";
}
@Override
public void cancel() {
}
}

View File

@ -28,6 +28,7 @@ import eu.siacs.conversations.R;
import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.Downloadable;
import eu.siacs.conversations.entities.DownloadableFile;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.ui.ConversationActivity;
@ -266,14 +267,21 @@ public class NotificationService {
if (message.getDownloadable() != null
&& (message.getDownloadable().getStatus() == Downloadable.STATUS_OFFER || message
.getDownloadable().getStatus() == Downloadable.STATUS_OFFER_CHECK_FILESIZE)) {
if (message.getType() == Message.TYPE_FILE) {
return mXmppConnectionService.getString(R.string.file_offered_for_download);
} else {
return mXmppConnectionService.getText(
R.string.image_offered_for_download).toString();
}
} else if (message.getEncryption() == Message.ENCRYPTION_PGP) {
return mXmppConnectionService.getText(
R.string.encrypted_message_received).toString();
} else if (message.getEncryption() == Message.ENCRYPTION_DECRYPTION_FAILED) {
return mXmppConnectionService.getText(R.string.decryption_failed)
.toString();
} else if (message.getType() == Message.TYPE_FILE) {
DownloadableFile file = mXmppConnectionService.getFileBackend().getFile(message);
return mXmppConnectionService.getString(R.string.file,file.getMimeType());
} else if (message.getType() == Message.TYPE_IMAGE) {
return mXmppConnectionService.getText(R.string.image_file)
.toString();

View File

@ -57,6 +57,7 @@ import eu.siacs.conversations.entities.Contact;
import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.Downloadable;
import eu.siacs.conversations.entities.DownloadableFile;
import eu.siacs.conversations.entities.DownloadablePlaceholder;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.entities.MucOptions;
import eu.siacs.conversations.entities.MucOptions.OnRenameListener;
@ -711,12 +712,17 @@ public class XmppConnectionService extends Service {
} else {
if (message.getConversation().getOtrSession()
.getSessionStatus() == SessionStatus.ENCRYPTED) {
try {
message.setCounterpart(Jid.fromSessionID(message.getConversation().getOtrSession().getSessionID()));
if (message.getType() == Message.TYPE_TEXT) {
packet = mMessageGenerator.generateOtrChat(message,
true);
} else if (message.getType() == Message.TYPE_IMAGE || message.getType() == Message.TYPE_FILE) {
mJingleConnectionManager.createNewConnection(message);
}
} catch (InvalidJidException e) {
}
}
}
} else if (message.getType() == Message.TYPE_TEXT) {
@ -885,10 +891,10 @@ public class XmppConnectionService extends Service {
private void checkDeletedFiles(Conversation conversation) {
for (Message message : conversation.getMessages()) {
if (message.getType() == Message.TYPE_IMAGE
if ((message.getType() == Message.TYPE_IMAGE || message.getType() == Message.TYPE_FILE)
&& message.getEncryption() != Message.ENCRYPTION_PGP) {
if (!getFileBackend().isFileAvailable(message)) {
message.setDownloadable(new DeletedDownloadable());
message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_DELETED));
}
}
}
@ -901,7 +907,7 @@ public class XmppConnectionService extends Service {
&& message.getEncryption() != Message.ENCRYPTION_PGP
&& message.getUuid().equals(uuid)) {
if (!getFileBackend().isFileAvailable(message)) {
message.setDownloadable(new DeletedDownloadable());
message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_DELETED));
updateConversationUi();
}
return;
@ -2012,38 +2018,4 @@ public class XmppConnectionService extends Service {
return XmppConnectionService.this;
}
}
private class DeletedDownloadable implements Downloadable {
@Override
public boolean start() {
return false;
}
@Override
public int getStatus() {
return Downloadable.STATUS_DELETED;
}
@Override
public long getFileSize() {
return 0;
}
@Override
public int getProgress() {
return 0;
}
@Override
public String getMimeType() {
return "";
}
@Override
public void cancel() {
}
}
}

View File

@ -44,6 +44,7 @@ import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Contact;
import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.Downloadable;
import eu.siacs.conversations.entities.DownloadablePlaceholder;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.entities.MucOptions;
import eu.siacs.conversations.entities.Presences;
@ -367,7 +368,7 @@ public class ConversationFragment extends Fragment {
downloadImage.setVisible(false);
}
if (this.selectedMessage.getDownloadable() == null
|| this.selectedMessage.getDownloadable().getStatus() == Downloadable.STATUS_DELETED) {
|| this.selectedMessage.getDownloadable() instanceof DownloadablePlaceholder) {
cancelTransmission.setVisible(false);
}
}

View File

@ -104,7 +104,17 @@ public class ConversationAdapter extends ArrayAdapter<Conversation> {
} else if (d.getStatus() == Downloadable.STATUS_OFFER_CHECK_FILESIZE) {
mLastMessage.setText(R.string.image_offered_for_download);
} else if (d.getStatus() == Downloadable.STATUS_DELETED) {
if (message.getType() == Message.TYPE_FILE) {
mLastMessage.setText(R.string.file_deleted);
} else {
mLastMessage.setText(R.string.image_file_deleted);
}
} else if (d.getStatus() == Downloadable.STATUS_FAILED) {
if (message.getType() == Message.TYPE_FILE) {
mLastMessage.setText(R.string.file_transmission_failed);
} else {
mLastMessage.setText(R.string.image_transmission_failed);
}
} else if (message.getImageParams().width > 0) {
mLastMessage.setVisibility(View.GONE);
imagePreview.setVisibility(View.VISIBLE);

View File

@ -505,8 +505,12 @@ public class MessageAdapter extends ArrayAdapter<Message> {
} else if (d.getStatus() == Downloadable.STATUS_OFFER_CHECK_FILESIZE) {
displayDownloadableMessage(viewHolder, item,activity.getString(R.string.check_image_filesize));
} else if (d.getStatus() == Downloadable.STATUS_FAILED) {
if (item.getType() == Message.TYPE_FILE) {
displayInfoMessage(viewHolder, activity.getString(R.string.file_transmission_failed));
} else {
displayInfoMessage(viewHolder, activity.getString(R.string.image_transmission_failed));
}
}
} else if (item.getType() == Message.TYPE_IMAGE && item.getEncryption() != Message.ENCRYPTION_PGP && item.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {
displayImageMessage(viewHolder, item);
} else if (item.getType() == Message.TYPE_FILE && item.getEncryption() != Message.ENCRYPTION_PGP && item.getEncryption() != Message.ENCRYPTION_DECRYPTION_FAILED) {

View File

@ -18,6 +18,7 @@ import eu.siacs.conversations.entities.Account;
import eu.siacs.conversations.entities.Conversation;
import eu.siacs.conversations.entities.Downloadable;
import eu.siacs.conversations.entities.DownloadableFile;
import eu.siacs.conversations.entities.DownloadablePlaceholder;
import eu.siacs.conversations.entities.Message;
import eu.siacs.conversations.services.XmppConnectionService;
import eu.siacs.conversations.xml.Element;
@ -96,7 +97,6 @@ public class JingleConnection implements Downloadable {
mXmppConnectionService.markMessage(message,
Message.STATUS_RECEIVED);
} else {
message.setDownloadable(null);
if (message.getEncryption() == Message.ENCRYPTION_PGP || message.getEncryption() == Message.ENCRYPTION_DECRYPTED) {
file.delete();
}
@ -710,6 +710,10 @@ public class JingleConnection implements Downloadable {
this.mXmppConnectionService.markMessage(this.message,
Message.STATUS_SEND);
this.disconnectSocks5Connections();
if (this.transport != null && this.transport instanceof JingleInbandTransport) {
this.transport.disconnect();
}
this.message.setDownloadable(null);
this.mJingleConnectionManager.finishConnection(this);
}
@ -721,7 +725,7 @@ public class JingleConnection implements Downloadable {
this.sendCancel();
this.mJingleConnectionManager.finishConnection(this);
if (this.responder.equals(account.getJid())) {
this.mStatus = Downloadable.STATUS_FAILED;
this.message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_FAILED));
this.mXmppConnectionService.updateConversationUi();
} else {
this.mXmppConnectionService.markMessage(this.message,
@ -733,9 +737,12 @@ public class JingleConnection implements Downloadable {
private void fail() {
this.mJingleStatus = JINGLE_STATUS_FAILED;
this.disconnectSocks5Connections();
if (this.transport != null && this.transport instanceof JingleInbandTransport) {
this.transport.disconnect();
}
if (this.message != null) {
if (this.responder.equals(account.getJid())) {
this.mStatus = Downloadable.STATUS_FAILED;
this.message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_FAILED));
this.mXmppConnectionService.updateConversationUi();
} else {
this.mXmppConnectionService.markMessage(this.message,

View File

@ -320,4 +320,6 @@
<string name="file_offered_for_download">File offered for download</string>
<string name="file">%s file</string>
<string name="cancel_transmission">Cancel transmission</string>
<string name="file_transmission_failed">file transmission failed</string>
<string name="file_deleted">The file has been deleted</string>
</resources>