From 62bc6885db07423a434f945de9def863cb12b8c1 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Fri, 16 Feb 2018 21:04:29 +0100 Subject: introduces cancel status for file transfers, fixes NPE in file sharing after picture resize --- .../ui/adapter/MessageAdapter.java | 28 +++++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java') diff --git a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java b/src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java index 0b544581..96b5954e 100644 --- a/src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/thedevstack/conversationsplus/ui/adapter/MessageAdapter.java @@ -49,6 +49,7 @@ import de.thedevstack.conversationsplus.persistance.FileBackend; import de.thedevstack.conversationsplus.providers.ConversationsPlusFileProvider; import de.thedevstack.conversationsplus.services.avatar.AvatarCache; import de.thedevstack.conversationsplus.services.avatar.AvatarService; +import de.thedevstack.conversationsplus.services.filetransfer.FileTransferStatusEnum; import de.thedevstack.conversationsplus.services.filetransfer.http.download.AutomaticFileDownload; import de.thedevstack.conversationsplus.ui.ConversationActivity; import de.thedevstack.conversationsplus.utils.CryptoHelper; @@ -182,6 +183,10 @@ public class MessageAdapter extends ArrayAdapter { info = getContext().getString(R.string.send_failed); error = true; break; + case Message.STATUS_SEND_CANCELED: + info = getContext().getString(R.string.send_canceled); + error = true; + break; default: if (multiReceived) { info = UIHelper.getMessageDisplayName(message); @@ -251,7 +256,7 @@ public class MessageAdapter extends ArrayAdapter { if (message.hasFileAttached() && null != message.getFileParams() && null != viewHolder.remoteFileStatus) { FileStatus fileStatus = message.getFileParams().getFileStatus(); if (fileStatus == FileStatus.DELETE_FAILED || fileStatus == FileStatus.DELETED || fileStatus == FileStatus.DELETING || fileStatus == FileStatus.NOT_FOUND) { - viewHolder.remoteFileStatus.setVisibility(View.VISIBLE); + TextViewUtil.visible(viewHolder.remoteFileStatus); switch (fileStatus) { case DELETE_FAILED: TextViewUtil.setColor(viewHolder.remoteFileStatus, R.color.error); @@ -268,6 +273,8 @@ public class MessageAdapter extends ArrayAdapter { viewHolder.remoteFileStatus.setText(R.string.remote_filestatus_not_found); break; } + } else { + TextViewUtil.gone(viewHolder.remoteFileStatus); } } } @@ -527,19 +534,22 @@ public class MessageAdapter extends ArrayAdapter { if (FileStatus.CHECKING_FILE_SIZE == message.getFileParams().getFileStatus()) { displayInfoMessage(viewHolder, activity.getString(R.string.checking_remote_filesize)); } else if (MessageUtil.isAttachedFileAnImage(message) - && (FileStatus.DOWNLOADED == message.getFileParams().getFileStatus()) - || FileStatus.DELETED == message.getFileParams().getFileStatus() - || FileStatus.DELETING == message.getFileParams().getFileStatus() - || FileStatus.DELETE_FAILED == message.getFileParams().getFileStatus() - || FileStatus.UPLOADED == message.getFileParams().getFileStatus()) { + && (FileStatus.DOWNLOADED == message.getFileParams().getFileStatus() + || FileStatus.DELETED == message.getFileParams().getFileStatus() + || FileStatus.DELETING == message.getFileParams().getFileStatus() + || FileStatus.DELETE_FAILED == message.getFileParams().getFileStatus() + || FileStatus.NEEDS_UPLOAD == message.getFileParams().getFileStatus() + || FileStatus.UPLOADED == message.getFileParams().getFileStatus() + || FileStatus.UPLOAD_FAILED == message.getFileParams().getFileStatus() + || (null != transferable + && (transferable.isCanceled() + || Transferable.STATUS_UPLOADING == transferable.getStatus())))) { displayImageMessage(viewHolder, message); } else if ((MessageUtil.isTypeFileAndDecrypted(message) || FileStatus.DOWNLOADED == message.getFileParams().getFileStatus()) && !MessageUtil.needsDownload(message)) { displayOpenableMessage(viewHolder, message); } else if (Message.Decision.NEVER == message.treatAsDownloadable() || !MessageUtil.mayFileRemoteAvailable(message)) { displayTextMessage(viewHolder, message); - } else if (FileStatus.UPLOAD_FAILED == message.getFileParams().getFileStatus()) { - displayImageMessage(viewHolder, message); // TODO Show failed status } else if (null != transferable) { switch (transferable.getStatus()) { case Transferable.STATUS_OFFER: @@ -648,7 +658,7 @@ public class MessageAdapter extends ArrayAdapter { viewHolder.contact_picture = ViewUtil.visible(view, R.id.message_photo); viewHolder.status_message = TextViewUtil.visible(view, R.id.status_message); } - if (SENT == type) { + if (SENT == type) { // This field is only useful for sent messages -> because of deletion of own files -> maybe a use case for recvd possible viewHolder.remoteFileStatus = TextViewUtil.gone(view, R.id.remote_file_status); } view.setTag(viewHolder); -- cgit v1.2.3