From d27faa31139be96022bfce4998b36f44625a9148 Mon Sep 17 00:00:00 2001 From: Thomas Date: Thu, 6 Oct 2022 17:01:24 +0200 Subject: [PATCH] some fixes --- .../app/fedilab/android/BaseMainActivity.java | 1 + .../android/activities/ComposeActivity.java | 7 ++++- .../app/fedilab/android/helper/Helper.java | 5 ++++ .../fedilab/android/jobs/ComposeWorker.java | 2 +- .../android/ui/drawer/ComposeAdapter.java | 28 ++++++++++++++++++- 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 5a657124..e37aa7c7 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -182,6 +182,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt .setAction(getString(R.string.open_draft), view -> { Intent intentCompose = new Intent(context, ComposeActivity.class); intentCompose.putExtra(Helper.ARG_STATUS_DRAFT, statusDraft); + intentCompose.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intentCompose); }) .setTextColor(ThemeHelper.getAttColor(BaseMainActivity.this, R.attr.mTextColor)) diff --git a/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java b/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java index 115a7ad5..2c1f0363 100644 --- a/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java @@ -110,6 +110,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana private StatusDraft statusDraft; private ComposeAdapter composeAdapter; + private final BroadcastReceiver imageReceiver = new BroadcastReceiver() { @Override public void onReceive(android.content.Context context, Intent intent) { @@ -513,6 +514,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana statusDraft = new StatusDraft(); List statuses = new ArrayList<>(); Status status = new Status(); + status.id = Helper.generateIdString(); status.text = scheduledStatus.params.text; status.in_reply_to_id = scheduledStatus.params.in_reply_to_id; status.poll = scheduledStatus.params.poll; @@ -567,6 +569,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana //Empty compose List statusDraftList = new ArrayList<>(); Status status = new Status(); + status.id = Helper.generateIdString(); statusDraftList.add(status); if (statusReplyId != null && statusDraft != null) {//Delete and redraft @@ -713,6 +716,8 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana @Override public void onItemDraftAdded(int position) { Status status = new Status(); + + status.id = Helper.generateIdString(); status.mentions = statusList.get(position).mentions; status.visibility = statusList.get(position).visibility; status.spoiler_text = statusList.get(position).spoiler_text; @@ -750,7 +755,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana List statusDrafts = new ArrayList<>(); List statusReplies = new ArrayList<>(); for (Status status : statusList) { - if (status.id == null) { + if (status.id == null || status.id.startsWith("@fedilab_compose_")) { statusDrafts.add(status); } else { statusReplies.add(status); diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 50b917d5..40eb4051 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -1628,6 +1628,11 @@ public class Helper { return "@fedilab_fetch_more_" + uuid; } + public static String generateIdString() { + String uuid = UUID.randomUUID().toString(); + return "@fedilab_compose_" + uuid; + } + public static Gson getDateBuilder() { SimpleDateFormat[] formats = new SimpleDateFormat[]{ new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault()), 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 8733fa0b..34b9c637 100644 --- a/app/src/main/java/app/fedilab/android/jobs/ComposeWorker.java +++ b/app/src/main/java/app/fedilab/android/jobs/ComposeWorker.java @@ -124,7 +124,7 @@ public class ComposeWorker extends Worker { //Check if previous messages in thread have already been published (ie: when resending after a fail) int startingPosition = 0; for (PostState.Post post : dataPost.statusDraft.state.posts) { - if (post.id == null) { + if (post.id == null || post.id.startsWith("@fedilab_compose_")) { break; } startingPosition++; diff --git a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java index 31048008..9adfd75b 100644 --- a/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java +++ b/app/src/main/java/app/fedilab/android/ui/drawer/ComposeAdapter.java @@ -278,6 +278,12 @@ public class ComposeAdapter extends RecyclerView.Adapter position && statusList.get(position).media_attachments != null) { holder.binding.attachmentsList.removeAllViews(); @@ -1345,6 +1358,12 @@ public class ComposeAdapter extends RecyclerView.Adapter