From d97bde3959874a24d6e8ff0f1e34cc727d7dc700 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 24 Mar 2026 16:43:47 -0300 Subject: [PATCH] Update to utilize main activity instead of passthrough. --- .../conversation/ConversationIntents.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationIntents.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationIntents.java index 60e9cfdc95..37462d0a5e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationIntents.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationIntents.java @@ -11,7 +11,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import org.thoughtcrime.securesms.badges.models.Badge; -import org.thoughtcrime.securesms.conversation.v2.ConversationActivity; +import org.thoughtcrime.securesms.MainActivity; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; import org.signal.core.models.media.Media; @@ -94,13 +94,15 @@ public class ConversationIntents { */ public static @NonNull Builder createBuilderSync(@NonNull Context context, @NonNull RecipientId recipientId, long threadId) { Preconditions.checkArgument(threadId > 0, "threadId is invalid"); - return new Builder(context, ConversationActivity.class, recipientId, threadId, ConversationScreenType.NORMAL); + return new Builder(context, MainActivity.class, recipientId, threadId, ConversationScreenType.NORMAL) + .withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); } public static @NonNull Builder createBuilderSync(@NonNull Context context, @NonNull ConversationArgs conversationArgs) { Preconditions.checkArgument(conversationArgs.threadId > 0, "threadId is invalid"); - return new Builder(context, ConversationActivity.class, conversationArgs.getRecipientId(), conversationArgs.threadId, ConversationScreenType.NORMAL) - .withArgs(conversationArgs); + return new Builder(context, MainActivity.class, conversationArgs.getRecipientId(), conversationArgs.threadId, ConversationScreenType.NORMAL) + .withArgs(conversationArgs) + .withFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); } static @Nullable Uri getIntentData(@NonNull Bundle bundle) { @@ -195,6 +197,7 @@ public class ConversationIntents { private Badge giftBadge; private long shareDataTimestamp = -1L; private boolean incognito; + private int flags; private Builder(@NonNull Context context, @NonNull Class conversationActivityClass, @@ -292,6 +295,11 @@ public class ConversationIntents { return this; } + public @NonNull Builder withFlags(int flags) { + this.flags = flags; + return this; + } + public @NonNull ConversationArgs toConversationArgs() { return new ConversationArgs( recipientId, @@ -321,6 +329,10 @@ public class ConversationIntents { Intent intent = new Intent(context, conversationActivityClass); intent.setAction(ConversationIntents.ACTION); + if (flags != 0) { + intent.addFlags(flags); + } + if (conversationScreenType.isInBubble()) { intent.setData(new Uri.Builder().authority(BUBBLE_AUTHORITY) .appendQueryParameter(EXTRA_RECIPIENT, recipientId.serialize())