Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iNPUTmice/Conversations.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2018-12-17 21:35:08 +0300
committerDaniel Gultsch <daniel@gultsch.de>2018-12-17 21:35:08 +0300
commit5c920a93620d190155f175a518c8c720311cf233 (patch)
treee08a09585484b434cce3d5148d6905847d8108e8
parent30d5c08c3544369c2a8f9f53e0c64f97bc1515f4 (diff)
fixed some rare crashes caused by race conditions
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationFragment.java2
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java10
2 files changed, 6 insertions, 6 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index 664d17ec4..37dcbd4dd 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -1773,7 +1773,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
if (scrollState != null) {
outState.putParcelable(STATE_SCROLL_POSITION, scrollState);
}
- final ArrayList<Attachment> attachments = mediaPreviewAdapter.getAttachments();
+ final ArrayList<Attachment> attachments = mediaPreviewAdapter == null ? new ArrayList<>() : mediaPreviewAdapter.getAttachments();
if (attachments.size() > 0) {
outState.putParcelableArrayList(STATE_MEDIA_PREVIEWS, attachments);
}
diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
index 97665aebe..68c5b9d65 100644
--- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
@@ -214,9 +214,10 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
viewHolder.edit_indicator.setVisibility(View.GONE);
}
}
+ final Transferable transferable = message.getTransferable();
boolean multiReceived = message.getConversation().getMode() == Conversation.MODE_MULTI
&& message.getMergedStatus() <= Message.STATUS_RECEIVED;
- if (message.getType() == Message.TYPE_IMAGE || message.getType() == Message.TYPE_FILE || message.getTransferable() != null) {
+ if (message.getType() == Message.TYPE_IMAGE || message.getType() == Message.TYPE_FILE || transferable != null) {
FileParams params = message.getFileParams();
if (params.size > (1.5 * 1024 * 1024)) {
filesize = Math.round(params.size * 1f / (1024 * 1024)) + " MiB";
@@ -225,7 +226,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
} else if (params.size > 0) {
filesize = params.size + " B";
}
- if (message.getTransferable() != null && message.getTransferable().getStatus() == Transferable.STATUS_FAILED) {
+ if (transferable != null && transferable.getStatus() == Transferable.STATUS_FAILED) {
error = true;
}
}
@@ -234,9 +235,8 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
info = getContext().getString(R.string.waiting);
break;
case Message.STATUS_UNSEND:
- Transferable d = message.getTransferable();
- if (d != null) {
- info = getContext().getString(R.string.sending_file, d.getProgress());
+ if (transferable != null) {
+ info = getContext().getString(R.string.sending_file, transferable.getProgress());
} else {
info = getContext().getString(R.string.sending);
}