From a2a3dd28eedc08cfc48ecb59ade795db4ddba08d Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 5 May 2025 09:40:49 -0300 Subject: [PATCH] Remove activity override in favour of alias down the road. --- .../securesms/ApplicationContext.java | 2 -- .../conversation/ConversationIntents.java | 19 +++---------------- .../conversation/v2/ConversationActivity.kt | 18 ++++++++++++++++++ 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 6a6e506c42..24c25b96ec 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -103,7 +103,6 @@ import org.thoughtcrime.securesms.service.webrtc.AndroidTelecomUtil; import org.thoughtcrime.securesms.storage.StorageSyncHelper; import org.thoughtcrime.securesms.util.AppForegroundObserver; import org.thoughtcrime.securesms.util.AppStartup; -import org.thoughtcrime.securesms.util.ConversationUtil; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.RemoteConfig; import org.thoughtcrime.securesms.util.SignalLocalMetrics; @@ -190,7 +189,6 @@ public class ApplicationContext extends Application implements AppForegroundObse .addBlocking("tracer", this::initializeTracer) .addNonBlocking(() -> RegistrationUtil.maybeMarkRegistrationComplete()) .addNonBlocking(() -> Glide.get(this)) - .addNonBlocking(ConversationUtil::refreshRecipientShortcuts) .addNonBlocking(this::cleanAvatarStorage) .addNonBlocking(this::initializeRevealableMessageManager) .addNonBlocking(this::initializePendingRetryReceiptManager) 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 cea383119e..348bf8434a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationIntents.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationIntents.java @@ -10,14 +10,11 @@ import androidx.annotation.MainThread; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.MainActivity; import org.thoughtcrime.securesms.badges.models.Badge; import org.thoughtcrime.securesms.conversation.colors.ChatColors; import org.thoughtcrime.securesms.conversation.v2.ConversationActivity; import org.thoughtcrime.securesms.database.SignalDatabase; import org.thoughtcrime.securesms.database.ThreadTable; -import org.thoughtcrime.securesms.keyvalue.SignalStore; -import org.thoughtcrime.securesms.main.MainNavigationListLocation; import org.thoughtcrime.securesms.mediasend.Media; import org.thoughtcrime.securesms.mms.SlideFactory; import org.thoughtcrime.securesms.recipients.Recipient; @@ -36,7 +33,7 @@ import io.reactivex.rxjava3.core.Single; import io.reactivex.rxjava3.schedulers.Schedulers; public class ConversationIntents { - private static final String ACTION = "ConversationIntents.ViewConversation"; + public static final String ACTION = "ConversationIntents.ViewConversation"; private static final String BUBBLE_AUTHORITY = "bubble"; private static final String NOTIFICATION_CUSTOM_SCHEME = "custom"; @@ -99,11 +96,7 @@ 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, getConversationActivityClass(), recipientId, threadId, ConversationScreenType.NORMAL); - } - - private static @NonNull Class getConversationActivityClass() { - return SignalStore.internal().getLargeScreenUi() ? MainActivity.class : ConversationActivity.class; + return new Builder(context, ConversationActivity.class, recipientId, threadId, ConversationScreenType.NORMAL); } static @Nullable Uri getIntentData(@NonNull Bundle bundle) { @@ -403,13 +396,7 @@ public class ConversationIntents { throw new IllegalStateException("Cannot have both sticker and media array"); } - final Intent intent; - if (MainActivity.class.equals(conversationActivityClass)) { - intent = MainActivity.clearTop(context); - } else { - intent = new Intent(context, conversationActivityClass); - } - + Intent intent = new Intent(context, conversationActivityClass); intent.setAction(ConversationIntents.ACTION); if (conversationScreenType.isInBubble()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivity.kt index c89c52cc11..5fa64a57f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivity.kt @@ -11,6 +11,7 @@ import io.reactivex.rxjava3.subjects.PublishSubject import io.reactivex.rxjava3.subjects.Subject import org.signal.core.util.logging.Log import org.signal.core.util.logging.Log.tag +import org.thoughtcrime.securesms.MainActivity import org.thoughtcrime.securesms.PassphraseRequiredActivity import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.app.subscription.GooglePayComponent @@ -18,6 +19,8 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.GooglePay import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaController import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaControllerOwner import org.thoughtcrime.securesms.conversation.ConversationIntents +import org.thoughtcrime.securesms.jobs.ConversationShortcutUpdateJob +import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.util.ConfigurationUtil import org.thoughtcrime.securesms.util.Debouncer import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme @@ -50,6 +53,21 @@ open class ConversationActivity : PassphraseRequiredActivity(), VoiceNoteMediaCo } override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) { + if (SignalStore.internal.largeScreenUi) { + startActivity( + MainActivity.clearTop(this).apply { + action = ConversationIntents.ACTION + putExtras(intent) + } + ) + + if (!ConversationIntents.isConversationIntent(intent)) { + ConversationShortcutUpdateJob.enqueue() + } + + finish() + } + enableSavedStateHandles() supportPostponeEnterTransition() transitionDebouncer.publish { supportStartPostponedEnterTransition() }