Add internal setting to disable telecom

This commit is contained in:
Jim Gustafson
2022-04-26 16:48:41 -07:00
parent 11db59d8a1
commit fa8f8beb56
6 changed files with 30 additions and 2 deletions

View File

@@ -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()

View File

@@ -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,

View File

@@ -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(),

View File

@@ -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;
}
}
}

View File

@@ -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()
}
}