diff --git a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java index 60f498fdd..4eb79a02f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java @@ -76,8 +76,12 @@ class AttachmentCreatorImpl implements AttachmentCreator { @UiThread public LiveData storeAttachments( LiveData groupId, Collection newUris) { - if (task != null || result != null || !uris.isEmpty()) + if (task != null || result != null || !uris.isEmpty()) { + if (task != null) LOG.warning("Task already exists!"); + if (result != null) LOG.warning("Result already exists!"); + if (!uris.isEmpty()) LOG.warning("Uris available: " + uris); throw new IllegalStateException(); + } MutableLiveData result = new MutableLiveData<>(); this.result = result; uris.addAll(newUris); @@ -96,8 +100,12 @@ class AttachmentCreatorImpl implements AttachmentCreator { @UiThread public LiveData getLiveAttachments() { MutableLiveData result = this.result; - if (task == null || result == null || uris.isEmpty()) + if (task == null || result == null || uris.isEmpty()) { + if (task == null) LOG.warning("No Task!"); + if (result == null) LOG.warning("No Result!"); + if (uris.isEmpty()) LOG.warning("Uris empty!"); throw new IllegalStateException(); + } // A task is already running. It will update the result LiveData. // So nothing more to do here. return result; @@ -174,8 +182,7 @@ class AttachmentCreatorImpl implements AttachmentCreator { @Override @UiThread public void cancel() { - if (task == null) throw new AssertionError(); - task.cancel(); + if (task != null) task.cancel(); deleteUnsentAttachments(); resetState(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java index 5becffce2..8e65db26c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationViewModel.java @@ -133,7 +133,7 @@ public class ConversationViewModel extends AndroidViewModel @Override protected void onCleared() { super.onCleared(); - attachmentCreator.deleteUnsentAttachments(); + attachmentCreator.cancel(); // also deletes unsent attachments eventBus.removeListener(this); } @@ -274,6 +274,7 @@ public class ConversationViewModel extends AndroidViewModel settingsManager.mergeSettings(settings, SETTINGS_NAMESPACE); } + @UiThread private void createMessage(GroupId groupId, @Nullable String text, List headers, long timestamp, boolean hasImageSupport) { @@ -292,6 +293,7 @@ public class ConversationViewModel extends AndroidViewModel } } + @UiThread private void storeMessage(PrivateMessage m) { attachmentCreator.onAttachmentsSent(m.getMessage().getId()); dbExecutor.execute(() -> { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/ImagePreview.java b/briar-android/src/main/java/org/briarproject/briar/android/view/ImagePreview.java index cb379b3d3..661ddaefa 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/view/ImagePreview.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/view/ImagePreview.java @@ -79,7 +79,7 @@ public class ImagePreview extends ConstraintLayout { ((ImagePreviewAdapter) imageList.getAdapter()); int pos = requireNonNull(adapter).loadItemPreview(result); if (pos != NO_POSITION) { - imageList.smoothScrollToPosition(pos); + imageList.scrollToPosition(pos); } }