From 792b0ca77e52c80a535c28b9262bb0d8c48987c4 Mon Sep 17 00:00:00 2001 From: Thomas Date: Mon, 12 Dec 2022 16:15:58 +0100 Subject: [PATCH] Fix issue #599 - Edit messages in thread are duplicated --- .../main/java/app/fedilab/android/jobs/ComposeWorker.java | 4 +++- .../ui/fragment/timeline/FragmentMastodonContext.java | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/fedilab/android/jobs/ComposeWorker.java b/app/src/main/java/app/fedilab/android/jobs/ComposeWorker.java index f8c7643e..46c90ca7 100644 --- a/app/src/main/java/app/fedilab/android/jobs/ComposeWorker.java +++ b/app/src/main/java/app/fedilab/android/jobs/ComposeWorker.java @@ -231,7 +231,9 @@ public class ComposeWorker extends Worker { if (statusResponse.isSuccessful()) { Status statusReply = statusResponse.body(); if (statusReply != null) { - StatusAdapter.sendAction(context, Helper.ARG_STATUS_POSTED, statusReply, null); + if (dataPost.statusEditId == null) { + StatusAdapter.sendAction(context, Helper.ARG_STATUS_POSTED, statusReply, null); + } } if (firstSendMessage == null && statusReply != null) { firstSendMessage = statusReply; diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java index 33dc10c8..ffa1d129 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonContext.java @@ -66,6 +66,7 @@ public class FragmentMastodonContext extends Fragment { String delete_statuses_for_user = b.getString(Helper.ARG_STATUS_ACCOUNT_ID_DELETED); Status status_to_delete = (Status) b.getSerializable(Helper.ARG_STATUS_DELETED); Status statusPosted = (Status) b.getSerializable(Helper.ARG_STATUS_POSTED); + Status status_to_update = (Status) b.getSerializable(Helper.ARG_STATUS_UPDATED); if (receivedStatus != null && statusAdapter != null) { int position = getPosition(receivedStatus); if (position >= 0) { @@ -97,6 +98,12 @@ public class FragmentMastodonContext extends Fragment { statuses.remove(position); statusAdapter.notifyItemRemoved(position); } + } else if (status_to_update != null && statusAdapter != null) { + int position = getPosition(status_to_update); + if (position >= 0) { + statuses.set(position, status_to_update); + statusAdapter.notifyItemChanged(position); + } } else if (statusPosted != null && statusAdapter != null) { if (requireActivity() instanceof ContextActivity) { int i = 0;