From fa8f8beb5646a063b58a61c9e96e9a69f5c3dc2b Mon Sep 17 00:00:00 2001 From: Jim Gustafson Date: Tue, 26 Apr 2022 16:48:41 -0700 Subject: [PATCH] Add internal setting to disable telecom --- .../app/internal/InternalSettingsFragment.kt | 8 ++++++++ .../settings/app/internal/InternalSettingsState.kt | 1 + .../app/internal/InternalSettingsViewModel.kt | 6 ++++++ .../securesms/keyvalue/InternalValues.java | 12 ++++++++++++ .../securesms/service/webrtc/AndroidTelecomUtil.kt | 4 ++-- app/src/main/res/values/strings.xml | 1 + 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt index f7e7a51240..027c1bb7b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsFragment.kt @@ -382,6 +382,14 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter } ) + switchPref( + title = DSLSettingsText.from(R.string.preferences__internal_calling_disable_telecom), + isChecked = state.callingDisableTelecom, + onClick = { + viewModel.setInternalCallingDisableTelecom(!state.callingDisableTelecom) + } + ) + if (FeatureFlags.donorBadges() && SignalStore.donationsValues().getSubscriber() != null) { dividerPref() diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt index 06862eb2df..b864d08b67 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsState.kt @@ -16,6 +16,7 @@ data class InternalSettingsState( val callingServer: String, val callingAudioProcessingMethod: CallManager.AudioProcessingMethod, val callingBandwidthMode: CallManager.BandwidthMode, + val callingDisableTelecom: Boolean, val useBuiltInEmojiSet: Boolean, val emojiVersion: EmojiFiles.Version?, val removeSenderKeyMinimium: Boolean, diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt index c59744d01c..d637827738 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/internal/InternalSettingsViewModel.kt @@ -101,6 +101,11 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito refresh() } + fun setInternalCallingDisableTelecom(enabled: Boolean) { + preferenceDataStore.putBoolean(InternalValues.CALLING_DISABLE_TELECOM, enabled) + refresh() + } + fun toggleStories() { val newState = !SignalStore.storyValues().isFeatureDisabled SignalStore.storyValues().isFeatureDisabled = newState @@ -128,6 +133,7 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito callingServer = SignalStore.internalValues().groupCallingServer(), callingAudioProcessingMethod = SignalStore.internalValues().callingAudioProcessingMethod(), callingBandwidthMode = SignalStore.internalValues().callingBandwidthMode(), + callingDisableTelecom = SignalStore.internalValues().callingDisableTelecom(), useBuiltInEmojiSet = SignalStore.internalValues().forceBuiltInEmoji(), emojiVersion = null, removeSenderKeyMinimium = SignalStore.internalValues().removeSenderKeyMinimum(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.java b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.java index 178b8cf9af..42f85943a6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.java @@ -26,6 +26,7 @@ public final class InternalValues extends SignalStoreValues { public static final String CALLING_SERVER = "internal.calling_server"; public static final String CALLING_AUDIO_PROCESSING_METHOD = "internal.calling_audio_processing_method"; public static final String CALLING_BANDWIDTH_MODE = "internal.calling_bandwidth_mode"; + public static final String CALLING_DISABLE_TELECOM = "internal.calling_disable_telecom"; public static final String SHAKE_TO_REPORT = "internal.shake_to_report"; public static final String DISABLE_STORAGE_SERVICE = "internal.disable_storage_service"; @@ -178,4 +179,15 @@ public final class InternalValues extends SignalStoreValues { return CallManager.BandwidthMode.NORMAL; } } + + /** + * Whether or not Telecom integration is manually disabled. + */ + public synchronized boolean callingDisableTelecom() { + if (FeatureFlags.internalUser()) { + return getBoolean(CALLING_DISABLE_TELECOM, false); + } else { + return true; + } + } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt index 236558cf02..bc2a9a12f4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/AndroidTelecomUtil.kt @@ -19,8 +19,8 @@ import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.dependencies.ApplicationDependencies +import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.RecipientId -import org.thoughtcrime.securesms.util.FeatureFlags import org.thoughtcrime.securesms.webrtc.audio.SignalAudioManager /** @@ -189,7 +189,7 @@ object AndroidTelecomUtil { } private fun isRestrictedDevice(): Boolean { - return !FeatureFlags.internalUser() + return SignalStore.internalValues().callingDisableTelecom() } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b3927e3494..67a657d7cd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2702,6 +2702,7 @@ Calling options Audio processing method Bandwidth mode + Disable Telecom integration Badges Enqueue redemption. Release channel