diff --git a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AudioSettingsViewModel.kt b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AudioSettingsViewModel.kt index c8d363d0c..fa733b711 100644 --- a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AudioSettingsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/AudioSettingsViewModel.kt @@ -39,12 +39,16 @@ class AudioSettingsViewModel : GenericSettingsViewModel() { MutableLiveData>() } - val echoCancellationListener = object : SettingListenerStub() { + val softwareEchoCancellerListener = object : SettingListenerStub() { override fun onBoolValueChanged(newValue: Boolean) { core.isEchoCancellationEnabled = newValue + if (!newValue) { + core.resetEchoCancellationCalibration() + softwareEchoCalibration.value = prefs.getString(R.string.audio_settings_echo_canceller_calibration_summary) + } } } - val echoCancellation = MutableLiveData() + val softwareEchoCanceller = MutableLiveData() val listener = object : CoreListenerStub() { override fun onEcCalibrationResult(core: Core, status: EcCalibratorStatus, delayMs: Int) { if (status == EcCalibratorStatus.InProgress) return @@ -52,7 +56,7 @@ class AudioSettingsViewModel : GenericSettingsViewModel() { } } - val echoCancellerCalibrationListener = object : SettingListenerStub() { + val softwareEchoCancellerCalibrationListener = object : SettingListenerStub() { override fun onClicked() { if (PermissionHelper.get().hasRecordAudioPermission()) { startEchoCancellerCalibration() @@ -61,7 +65,7 @@ class AudioSettingsViewModel : GenericSettingsViewModel() { } } } - val echoCalibration = MutableLiveData() + val softwareEchoCalibration = MutableLiveData() val echoTesterListener = object : SettingListenerStub() { override fun onClicked() { @@ -154,10 +158,10 @@ class AudioSettingsViewModel : GenericSettingsViewModel() { val audioCodecs = MutableLiveData>() init { - echoCancellation.value = core.isEchoCancellationEnabled + softwareEchoCanceller.value = core.isEchoCancellationEnabled adaptiveRateControl.value = core.isAdaptiveRateControlEnabled - echoCalibration.value = if (core.isEchoCancellationEnabled) { - prefs.getString(R.string.audio_settings_echo_cancellation_calibration_value).format(prefs.echoCancellerCalibration) + softwareEchoCalibration.value = if (core.echoCancellationCalibration > 0) { + prefs.getString(R.string.audio_settings_echo_cancellation_calibration_value).format(core.echoCancellationCalibration) } else { prefs.getString(R.string.audio_settings_echo_canceller_calibration_summary) } @@ -179,28 +183,28 @@ class AudioSettingsViewModel : GenericSettingsViewModel() { core.addListener(listener) core.startEchoCancellerCalibration() - echoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_started) + softwareEchoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_started) } fun echoCancellerCalibrationFinished(status: EcCalibratorStatus, delay: Int) { core.removeListener(listener) when (status) { - EcCalibratorStatus.InProgress -> { - echoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_started) - } EcCalibratorStatus.DoneNoEcho -> { - echoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_no_echo) + softwareEchoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_no_echo) + softwareEchoCanceller.value = false } EcCalibratorStatus.Done -> { - echoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_value).format(delay) + softwareEchoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_value).format(delay) + softwareEchoCanceller.value = true } EcCalibratorStatus.Failed -> { - echoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_failed) + softwareEchoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_failed) + } + EcCalibratorStatus.InProgress -> { // We should never get here but still + softwareEchoCalibration.value = prefs.getString(R.string.audio_settings_echo_cancellation_calibration_started) } } - - echoCancellation.value = status != EcCalibratorStatus.DoneNoEcho } fun startEchoTester() { diff --git a/app/src/main/java/org/linphone/core/CoreContext.kt b/app/src/main/java/org/linphone/core/CoreContext.kt index 4d18621b5..022e76f27 100644 --- a/app/src/main/java/org/linphone/core/CoreContext.kt +++ b/app/src/main/java/org/linphone/core/CoreContext.kt @@ -429,6 +429,9 @@ class CoreContext( core.config.setInt("misc", "conference_layout", 1) } + // TODO FIXME REMOVE + core.config.setInt("sound", "ec_delay", 250) + // Now LIME server URL is set on accounts val limeServerUrl = core.limeX3DhServerUrl.orEmpty() if (limeServerUrl.isNotEmpty()) { diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index 8d5caea8e..e12bd8540 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -529,9 +529,6 @@ class CorePreferences constructor(private val context: Context) { /* Default values related */ - val echoCancellerCalibration: Int - get() = config.getInt("sound", "ec_delay", -1) - val defaultDomain: String get() = config.getString("app", "default_domain", "sip.linphone.org")!! diff --git a/app/src/main/res/layout/settings_audio_fragment.xml b/app/src/main/res/layout/settings_audio_fragment.xml index f5bc360cb..914c402c2 100644 --- a/app/src/main/res/layout/settings_audio_fragment.xml +++ b/app/src/main/res/layout/settings_audio_fragment.xml @@ -67,16 +67,16 @@ + linphone:listener="@{viewModel.softwareEchoCancellerListener}" + linphone:checked="@={viewModel.softwareEchoCanceller}"/> + linphone:subtitle="@{viewModel.softwareEchoCalibration}" + linphone:listener="@{viewModel.softwareEchoCancellerCalibrationListener}"/> Schůzky Hlavní účet Zobrazované jméno - Rušení ozvěny Odstraňuje ozvěnu slyšitelnou druhou stranou Kalibrace potlačování ozvěny Zahájeno kalibrace potlačování ozvěny diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ffdd86bb7..79a71df43 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -161,7 +161,6 @@ Erweitert Primäres Konto Benutzername - Echounterdrückung Entfernt das Echo das am anderen Ende gehört wird Echounterdrückung kalibrieren (in Dezibel) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 9b708acd4..218450653 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -377,7 +377,6 @@ Chatear Red Avanzado - Cancelación de eco Elimina el eco que se escucha por el otro extremo Pulse para iniciar la calibración del cancelador de eco Se inició la calibración del cancelador de eco diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ef13b829f..e07cc3633 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -6,7 +6,7 @@ Vidéo Erreur durant le téléchargement ou l\'application de la configuration distante… Messages - Annulateur d\'écho + Annulateur d\'écho logiciel Codec : La calibration de l\'annulateur d\'écho est en cours Mettre fin à l\'appel diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index f4860e9c0..7dd943381 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -379,7 +379,6 @@ Elmúló üzenetek lejárati dátuma: %s Ez az üzenet mindkét félnél törlődik, miután elolvasta és a kiválasztott időt túllépte. Szeretné megnyitni szövegként, vagy exportálni (titkosítatlanul) egy harmadik fél alkalmazásába, ha elérhető\? - Visszhangkioltás Visszhangkioltás beállítása folyamatban van Végpontok közötti titkosítás engedélyezve Kattintson a visszhangkioltás beállításának megkezdéséhez diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index b02db032a..0f2e36a01 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -165,7 +165,6 @@ Vuoi iniziare una chiamata di gruppo\? \nOgnuno in questo gruppo riceverà una chiamata per unirsi alla riunione. Rete - Cancellazione dell\'eco Rimuove l\'eco sentita dall\'altra parte Clicca per iniziate il test dell\'eco Preferenze diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 9a45baafb..da8d369c9 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -425,7 +425,6 @@ プライマリーアカウント 表示名 ユーザー名 - エコーキャンセラー 相手側に聞こえるエコーを除去します エコーキャンセラーの調整 クリックしてエコーキャンセラーの調整を開始 diff --git a/app/src/main/res/values-ka/strings.xml b/app/src/main/res/values-ka/strings.xml index 4f475240e..30af133a8 100644 --- a/app/src/main/res/values-ka/strings.xml +++ b/app/src/main/res/values-ka/strings.xml @@ -522,7 +522,6 @@ პარამეტრები გვირაბი მთავარი ანგარიში - ექოს გაუქმება დააჭირეთ ექოს გაუქმების კალიბრირებისთვის ექოს გაუქმების კალიბრირება დაიწყო კალიბრირება ვერ მოხერხდა diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 3b992f477..1494bfbf2 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -218,7 +218,6 @@ Conta principal Nome de exibição Nome de utilizador - Cancelamento do eco Remove o eco ouvido pelo outro lado Clique para iniciar a calibração do cancelador de eco Calibrado em %s ms diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 261121d25..081ea0ab9 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -210,7 +210,6 @@ Дополнительно Отображаемое имя Имя пользователя - Эхоподавление Калибровка эхоподавления Калибровка эхоподавления началась Калибровка не удалась diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 23f6409e4..1da9bf070 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -252,7 +252,6 @@ 接受视频通话请求 麦克风增益调节 编解码器 - 回声消除 在%s毫秒内校准 不明的URL网址格式,无法下载配置资源… 更改将从下一次通话开始生效 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0e600f803..63225e538 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -234,7 +234,6 @@ 總是發送視訊請求 kbits/s 強制加密媒體 - 回音消除 刪除另一端聽到的回音 校正回音消除功能 點擊此處即可校正回音消除功能 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c5eab07c0..55458a86a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -482,7 +482,7 @@ Invalid password! - Echo cancellation + Software echo cancellation Removes the echo heard by other end Echo canceller calibration Click to start echo canceller calibration