From 24c994d5b29ce40935a72534859e8e7fefc10165 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 5 Jan 2026 14:40:50 -0400 Subject: [PATCH] Prevent multiple instances of main-activity from being added to our task stack. --- .../main/java/org/thoughtcrime/securesms/MainActivity.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt index 086a6a9f79..50faed6265 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/MainActivity.kt @@ -258,6 +258,12 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner @OptIn(ExperimentalMaterial3AdaptiveApi::class) override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) { + if (!isTaskRoot && intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN == intent.action) { + Log.w(TAG, "Duplicate launcher intent received, finishing duplicate instance.") + finish() + return + } + AppStartup.getInstance().onCriticalRenderEventStart() enableEdgeToEdge( @@ -996,6 +1002,8 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner if (ConversationIntents.isConversationIntent(intent)) { mainNavigationViewModel.goTo(MainNavigationListLocation.CHATS) mainNavigationViewModel.goTo(MainNavigationDetailLocation.Chats.Conversation(ConversationIntents.readArgsFromBundle(intent.extras!!))) + intent.action = null + setIntent(intent) } }