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 9cc7bdd0c2..49def745df 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 @@ -23,7 +23,7 @@ import org.thoughtcrime.securesms.jobs.ConversationShortcutUpdateJob import org.thoughtcrime.securesms.util.ConfigurationUtil import org.thoughtcrime.securesms.util.Debouncer import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme -import org.thoughtcrime.securesms.util.RemoteConfig +import org.thoughtcrime.securesms.window.WindowSizeClass import java.util.concurrent.TimeUnit /** @@ -53,7 +53,7 @@ open class ConversationActivity : PassphraseRequiredActivity(), VoiceNoteMediaCo } override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) { - if (RemoteConfig.largeScreenUi) { + if (WindowSizeClass.isLargeScreenSupportEnabled()) { startActivity( MainActivity.clearTop(this).apply { action = ConversationIntents.ACTION diff --git a/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt index 57e06638f3..dfda5eba79 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/main/MainNavigationViewModel.kt @@ -28,7 +28,7 @@ import org.thoughtcrime.securesms.megaphone.Megaphone import org.thoughtcrime.securesms.megaphone.Megaphones import org.thoughtcrime.securesms.notifications.profiles.NotificationProfile import org.thoughtcrime.securesms.stories.Stories -import org.thoughtcrime.securesms.util.RemoteConfig +import org.thoughtcrime.securesms.window.WindowSizeClass @OptIn(ExperimentalMaterial3AdaptiveApi::class) class MainNavigationViewModel( @@ -120,7 +120,7 @@ class MainNavigationViewModel( * "default" location to that specified, and we will route the user there when the navigator is set. */ override fun goTo(location: MainNavigationDetailLocation) { - if (!RemoteConfig.largeScreenUi) { + if (!WindowSizeClass.isLargeScreenSupportEnabled()) { goToLegacyDetailLocation?.invoke(location) return } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt index 3106564bfc..cd6df9ea4a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt @@ -1180,12 +1180,11 @@ object RemoteConfig { ) /** Whether to allow different WindowSizeClasses to be used to determine screen layout */ - val largeScreenUi: Boolean by remoteValue( + val largeScreenUi: Boolean by remoteBoolean( key = "android.largeScreenUI", - hotSwappable = false - ) { value -> - value.asBoolean(false) && SignalStore.internal.largeScreenUi - } + hotSwappable = false, + defaultValue = false + ) @JvmStatic @get:JvmName("useMessageSendRestFallback") diff --git a/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt b/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt index 9e1ace8338..4f3693a4b0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/window/AppScaffold.kt @@ -95,7 +95,7 @@ enum class WindowSizeClass( fun isPortrait(): Boolean = !isLandscape() fun isSplitPane(): Boolean { - return if (RemoteConfig.largeScreenUi && SignalStore.internal.forceSplitPaneOnCompactLandscape) { + return if (isLargeScreenSupportEnabled() && SignalStore.internal.forceSplitPaneOnCompactLandscape) { this != COMPACT_PORTRAIT } else { this.navigation != Navigation.BAR @@ -120,8 +120,12 @@ enum class WindowSizeClass( return getSizeClassForOrientationAndSystemSizeClass(orientation, windowSizeClass) } + fun isLargeScreenSupportEnabled(): Boolean { + return RemoteConfig.largeScreenUi && SignalStore.internal.largeScreenUi + } + fun isForcedCompact(): Boolean { - return !RemoteConfig.largeScreenUi + return !isLargeScreenSupportEnabled() } @Composable