diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 171a1a2a73..88675d9fa1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -441,9 +441,6 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr if (RemoteConfig.callingFieldTrialAnyAddressPortsKillSwitch()) { fieldTrials.put("RingRTC-AnyAddressPortsKillSwitch", "Enabled"); } - if (!SignalStore.internal().callingDisableLBRed()) { - fieldTrials.put("RingRTC-Audio-LBRed-For-Opus", "Enabled,bitrate_pri:22000"); - } CallManager.initialize(this, new RingRtcLogger(), fieldTrials); } catch (UnsatisfiedLinkError e) { throw new AssertionError("Unable to load ringrtc library", e); 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 6332b8181b..6dad5eb363 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 @@ -520,10 +520,10 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter ) switchPref( - title = DSLSettingsText.from("Disable LBRed"), - isChecked = state.callingDisableLBRed, + title = DSLSettingsText.from("Enable Oboe ADM"), + isChecked = state.callingEnableOboeAdm, onClick = { - viewModel.setInternalCallingDisableLBRed(!state.callingDisableLBRed) + viewModel.setInternalCallingEnableOboeAdm(!state.callingEnableOboeAdm) } ) 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 3adedb3d21..98e83cf47c 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 @@ -14,7 +14,7 @@ data class InternalSettingsState( val callingAudioProcessingMethod: CallManager.AudioProcessingMethod, val callingDataMode: CallManager.DataMode, val callingDisableTelecom: Boolean, - val callingDisableLBRed: Boolean, + val callingEnableOboeAdm: 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 872158c926..46c9bb73c0 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 @@ -109,8 +109,8 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito refresh() } - fun setInternalCallingDisableLBRed(enabled: Boolean) { - preferenceDataStore.putBoolean(InternalValues.CALLING_DISABLE_LBRED, enabled) + fun setInternalCallingEnableOboeAdm(enabled: Boolean) { + preferenceDataStore.putBoolean(InternalValues.CALLING_ENABLE_OBOE_ADM, enabled) refresh() } @@ -150,7 +150,7 @@ class InternalSettingsViewModel(private val repository: InternalSettingsReposito callingAudioProcessingMethod = SignalStore.internal.callingAudioProcessingMethod(), callingDataMode = SignalStore.internal.callingDataMode(), callingDisableTelecom = SignalStore.internal.callingDisableTelecom(), - callingDisableLBRed = SignalStore.internal.callingDisableLBRed(), + callingEnableOboeAdm = SignalStore.internal.callingEnableOboeAdm(), useBuiltInEmojiSet = SignalStore.internal.forceBuiltInEmoji(), emojiVersion = null, removeSenderKeyMinimium = SignalStore.internal.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 f9f3f92a45..d4eba07b32 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.java +++ b/app/src/main/java/org/thoughtcrime/securesms/keyvalue/InternalValues.java @@ -24,7 +24,7 @@ public final class InternalValues extends SignalStoreValues { public static final String CALLING_AUDIO_PROCESSING_METHOD = "internal.calling_audio_processing_method"; public static final String CALLING_DATA_MODE = "internal.calling_bandwidth_mode"; public static final String CALLING_DISABLE_TELECOM = "internal.calling_disable_telecom"; - public static final String CALLING_DISABLE_LBRED = "internal.calling_disable_lbred"; + public static final String CALLING_ENABLE_OBOE_ADM = "internal.calling_enable_oboe_adm"; public static final String SHAKE_TO_REPORT = "internal.shake_to_report"; public static final String DISABLE_STORAGE_SERVICE = "internal.disable_storage_service"; public static final String FORCE_WEBSOCKET_MODE = "internal.force_websocket_mode"; @@ -162,13 +162,13 @@ public final class InternalValues extends SignalStoreValues { } /** - * Whether or not LBRed for Opus is manually disabled. + * Whether or not the Oboe ADM is used. */ - public synchronized boolean callingDisableLBRed() { + public synchronized boolean callingEnableOboeAdm() { if (RemoteConfig.internalUser()) { - return getBoolean(CALLING_DISABLE_LBRED, false); + return getBoolean(CALLING_ENABLE_OBOE_ADM, true); } else { - return true; + return false; } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt index 531fde4322..8c499a1637 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/CallLinkPreJoinActionProcessor.kt @@ -63,6 +63,7 @@ class CallLinkPreJoinActionProcessor( ByteArray(0), AUDIO_LEVELS_INTERVAL, getAudioProcessingMethod(), + SignalStore.internal.callingEnableOboeAdm(), webRtcInteractor.groupCallObserver ) } catch (e: InvalidInputException) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupNetworkUnavailableActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupNetworkUnavailableActionProcessor.java index 6582e552f7..493ba1b066 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupNetworkUnavailableActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupNetworkUnavailableActionProcessor.java @@ -53,6 +53,7 @@ public class GroupNetworkUnavailableActionProcessor extends WebRtcActionProcesso new byte[0], null, RingRtcDynamicConfiguration.getAudioProcessingMethod(), + SignalStore.internal().callingEnableOboeAdm(), webRtcInteractor.getGroupCallObserver()); return currentState.builder() diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupPreJoinActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupPreJoinActionProcessor.java index 8114332845..be726529f3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupPreJoinActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/GroupPreJoinActionProcessor.java @@ -51,6 +51,7 @@ public class GroupPreJoinActionProcessor extends GroupActionProcessor { new byte[0], AUDIO_LEVELS_INTERVAL, RingRtcDynamicConfiguration.getAudioProcessingMethod(), + SignalStore.internal().callingEnableOboeAdm(), webRtcInteractor.getGroupCallObserver()); try { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java index 889532ab65..533de5c339 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingCallActionProcessor.java @@ -102,6 +102,7 @@ public class IncomingCallActionProcessor extends DeviceAwareActionProcessor { context, videoState.getLockableEglBase().require(), RingRtcDynamicConfiguration.getAudioProcessingMethod(), + SignalStore.internal().callingEnableOboeAdm(), videoState.requireLocalSink(), callParticipant.getVideoSink(), videoState.requireCamera(), diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java index 936ee9872a..47d7467ba8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IncomingGroupCallActionProcessor.java @@ -185,6 +185,7 @@ public final class IncomingGroupCallActionProcessor extends DeviceAwareActionPro new byte[0], AUDIO_LEVELS_INTERVAL, RingRtcDynamicConfiguration.getAudioProcessingMethod(), + SignalStore.internal().callingEnableOboeAdm(), webRtcInteractor.getGroupCallObserver()); try { diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java index 3df6477f52..8658aca339 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/OutgoingCallActionProcessor.java @@ -152,6 +152,7 @@ public class OutgoingCallActionProcessor extends DeviceAwareActionProcessor { context, videoState.getLockableEglBase().require(), RingRtcDynamicConfiguration.getAudioProcessingMethod(), + SignalStore.internal().callingEnableOboeAdm(), videoState.requireLocalSink(), callParticipant.getVideoSink(), videoState.requireCamera(), diff --git a/dependencies.gradle.kts b/dependencies.gradle.kts index 88f7e44cc9..0f5c23ba18 100644 --- a/dependencies.gradle.kts +++ b/dependencies.gradle.kts @@ -122,7 +122,7 @@ dependencyResolutionManagement { library("libsignal-client", "org.signal", "libsignal-client").versionRef("libsignal-client") library("libsignal-android", "org.signal", "libsignal-android").versionRef("libsignal-client") library("signal-aesgcmprovider", "org.signal:aesgcmprovider:0.0.3") - library("signal-ringrtc", "org.signal:ringrtc-android:2.44.2") + library("signal-ringrtc", "org.signal:ringrtc-android:2.44.3") library("signal-android-database-sqlcipher", "org.signal:sqlcipher-android:4.5.4-S2") // Third Party diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 833ab52774..becadc74eb 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -8328,12 +8328,12 @@ https://docs.gradle.org/current/userguide/dependency_verification.html - - - + + + - - + +