diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.kt b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.kt index 574a58f530..416daf0a0a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.kt @@ -59,7 +59,18 @@ class InternalValues internal constructor(store: KeyValueStore) : SignalStoreVal */ var forceSinglePane by booleanValue(FORCE_SINGLE_PANE_ON_ALL_DEVICES, false).falseForExternalUsers() - var useNewMediaActivity by booleanValue(USE_NEW_MEDIA_ACTIVITY, false).falseForExternalUsers() + /** + * Whether to use the new media-send flow. Internal users can override the remote value. + */ + var useNewMediaActivity: Boolean + get() = if (RemoteConfig.internalUser) { + getBoolean(USE_NEW_MEDIA_ACTIVITY, RemoteConfig.useNewMediaSendFlow) + } else { + RemoteConfig.useNewMediaSendFlow + } + set(value) { + putBoolean(USE_NEW_MEDIA_ACTIVITY, value) + } /** * Members will not be added directly to a GV2 even if they could be. 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 42e5ca3ea5..3fda97f4d6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/RemoteConfig.kt @@ -1481,5 +1481,14 @@ object RemoteConfig { hotSwappable = true ) + /** Whether to utilize the new media-send feature module */ + @JvmStatic + @get:JvmName("useNewMediaSendFlow") + val useNewMediaSendFlow: Boolean by remoteBoolean( + key = "android.useNewMediaSendFlow", + defaultValue = false, + hotSwappable = true + ) + // endregion }