Updated strings regarding software echo canceller + reset calibrated value when disabling it + display currently calibrated value if any

This commit is contained in:
Sylvain Berfini 2023-04-12 13:34:43 +02:00
parent 122581fd68
commit e60cc20a23
17 changed files with 30 additions and 37 deletions

View file

@ -39,12 +39,16 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
MutableLiveData<Event<Boolean>>()
}
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<Boolean>()
val softwareEchoCanceller = MutableLiveData<Boolean>()
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<String>()
val softwareEchoCalibration = MutableLiveData<String>()
val echoTesterListener = object : SettingListenerStub() {
override fun onClicked() {
@ -154,10 +158,10 @@ class AudioSettingsViewModel : GenericSettingsViewModel() {
val audioCodecs = MutableLiveData<ArrayList<ViewDataBinding>>()
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() {

View file

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

View file

@ -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")!!

View file

@ -67,16 +67,16 @@
<include
layout="@layout/settings_widget_switch"
linphone:title="@{@string/audio_settings_echo_cancellation_title}"
linphone:title="@{@string/audio_settings_software_echo_cancellation_title}"
linphone:subtitle="@{@string/audio_settings_echo_cancellation_summary}"
linphone:listener="@{viewModel.echoCancellationListener}"
linphone:checked="@={viewModel.echoCancellation}"/>
linphone:listener="@{viewModel.softwareEchoCancellerListener}"
linphone:checked="@={viewModel.softwareEchoCanceller}"/>
<include
layout="@layout/settings_widget_basic"
linphone:title="@{@string/audio_settings_echo_canceller_calibration_title}"
linphone:subtitle="@{viewModel.echoCalibration}"
linphone:listener="@{viewModel.echoCancellerCalibrationListener}"/>
linphone:subtitle="@{viewModel.softwareEchoCalibration}"
linphone:listener="@{viewModel.softwareEchoCancellerCalibrationListener}"/>
<include
layout="@layout/settings_widget_basic"

View file

@ -331,7 +331,6 @@
<string name="settings_conferences_title">Schůzky</string>
<string name="settings_primary_account_title">Hlavní účet</string>
<string name="settings_primary_account_display_name_title">Zobrazované jméno</string>
<string name="audio_settings_echo_cancellation_title">Rušení ozvěny</string>
<string name="audio_settings_echo_cancellation_summary">Odstraňuje ozvěnu slyšitelnou druhou stranou</string>
<string name="audio_settings_echo_canceller_calibration_title">Kalibrace potlačování ozvěny</string>
<string name="audio_settings_echo_cancellation_calibration_started">Zahájeno kalibrace potlačování ozvěny</string>

View file

@ -161,7 +161,6 @@
<string name="settings_advanced_title">Erweitert</string>
<string name="settings_primary_account_title">Primäres Konto</string>
<string name="settings_primary_account_username_title">Benutzername</string>
<string name="audio_settings_echo_cancellation_title">Echounterdrückung</string>
<string name="audio_settings_echo_cancellation_summary">Entfernt das Echo das am anderen Ende gehört wird</string>
<string name="audio_settings_echo_canceller_calibration_title">Echounterdrückung kalibrieren</string>
<string name="audio_settings_microphone_gain_summary">(in Dezibel)</string>

View file

@ -377,7 +377,6 @@
<string name="settings_chat_title">Chatear</string>
<string name="settings_network_title">Red</string>
<string name="settings_advanced_title">Avanzado</string>
<string name="audio_settings_echo_cancellation_title">Cancelación de eco</string>
<string name="audio_settings_echo_cancellation_summary">Elimina el eco que se escucha por el otro extremo</string>
<string name="audio_settings_echo_canceller_calibration_summary">Pulse para iniciar la calibración del cancelador de eco</string>
<string name="audio_settings_echo_cancellation_calibration_started">Se inició la calibración del cancelador de eco</string>

View file

@ -6,7 +6,7 @@
<string name="call_stats_video">Vidéo</string>
<string name="assistant_remote_provisioning_failure">Erreur durant le téléchargement ou l\'application de la configuration distante…</string>
<string name="settings_chat_title">Messages</string>
<string name="audio_settings_echo_cancellation_title">Annulateur d\'écho</string>
<string name="audio_settings_software_echo_cancellation_title">Annulateur d\'écho logiciel</string>
<string name="call_stats_codec">Codec :</string>
<string name="audio_settings_echo_cancellation_calibration_started">La calibration de l\'annulateur d\'écho est en cours</string>
<string name="content_description_terminate_call">Mettre fin à l\'appel</string>

View file

@ -379,7 +379,6 @@
<string name="chat_event_ephemeral_lifetime_changed">Elmúló üzenetek lejárati dátuma: %s</string>
<string name="chat_room_ephemeral_messages_desc">Ez az üzenet mindkét félnél törlődik, miután elolvasta és a kiválasztott időt túllépte.</string>
<string name="chat_message_cant_open_file_in_app_dialog_message">Szeretné megnyitni szövegként, vagy exportálni (titkosítatlanul) egy harmadik fél alkalmazásába, ha elérhető\?</string>
<string name="audio_settings_echo_cancellation_title">Visszhangkioltás</string>
<string name="assistant_ec_calibration">Visszhangkioltás beállítása folyamatban van</string>
<string name="content_description_e2e_encryption_enabled">Végpontok közötti titkosítás engedélyezve</string>
<string name="audio_settings_echo_canceller_calibration_summary">Kattintson a visszhangkioltás beállításának megkezdéséhez</string>

View file

@ -165,7 +165,6 @@
<string name="conference_start_group_call_dialog_message">Vuoi iniziare una chiamata di gruppo\?
\nOgnuno in questo gruppo riceverà una chiamata per unirsi alla riunione.</string>
<string name="settings_network_title">Rete</string>
<string name="audio_settings_echo_cancellation_title">Cancellazione dell\'eco</string>
<string name="audio_settings_echo_cancellation_summary">Rimuove l\'eco sentita dall\'altra parte</string>
<string name="audio_settings_echo_tester_summary">Clicca per iniziate il test dell\'eco</string>
<string name="settings_list_title">Preferenze</string>

View file

@ -425,7 +425,6 @@
<string name="settings_primary_account_title">プライマリーアカウント</string>
<string name="settings_primary_account_display_name_title">表示名</string>
<string name="settings_primary_account_username_title">ユーザー名</string>
<string name="audio_settings_echo_cancellation_title">エコーキャンセラー</string>
<string name="audio_settings_echo_cancellation_summary">相手側に聞こえるエコーを除去します</string>
<string name="audio_settings_echo_canceller_calibration_title">エコーキャンセラーの調整</string>
<string name="audio_settings_echo_canceller_calibration_summary">クリックしてエコーキャンセラーの調整を開始</string>

View file

@ -522,7 +522,6 @@
<string name="settings_list_title">პარამეტრები</string>
<string name="settings_tunnel_title">გვირაბი</string>
<string name="settings_primary_account_title">მთავარი ანგარიში</string>
<string name="audio_settings_echo_cancellation_title">ექოს გაუქმება</string>
<string name="audio_settings_echo_canceller_calibration_summary">დააჭირეთ ექოს გაუქმების კალიბრირებისთვის</string>
<string name="audio_settings_echo_cancellation_calibration_started">ექოს გაუქმების კალიბრირება დაიწყო</string>
<string name="audio_settings_echo_cancellation_calibration_failed">კალიბრირება ვერ მოხერხდა</string>

View file

@ -218,7 +218,6 @@
<string name="settings_primary_account_title">Conta principal</string>
<string name="settings_primary_account_display_name_title">Nome de exibição</string>
<string name="settings_primary_account_username_title">Nome de utilizador</string>
<string name="audio_settings_echo_cancellation_title">Cancelamento do eco</string>
<string name="audio_settings_echo_cancellation_summary">Remove o eco ouvido pelo outro lado</string>
<string name="audio_settings_echo_canceller_calibration_summary">Clique para iniciar a calibração do cancelador de eco</string>
<string name="audio_settings_echo_cancellation_calibration_value">Calibrado em %s ms</string>

View file

@ -210,7 +210,6 @@
<string name="settings_advanced_title">Дополнительно</string>
<string name="settings_primary_account_display_name_title">Отображаемое имя</string>
<string name="settings_primary_account_username_title">Имя пользователя</string>
<string name="audio_settings_echo_cancellation_title">Эхоподавление</string>
<string name="audio_settings_echo_canceller_calibration_title">Калибровка эхоподавления</string>
<string name="audio_settings_echo_cancellation_calibration_started">Калибровка эхоподавления началась</string>
<string name="audio_settings_echo_cancellation_calibration_failed">Калибровка не удалась</string>

View file

@ -252,7 +252,6 @@
<string name="video_settings_automatically_accept_title">接受视频通话请求</string>
<string name="audio_settings_microphone_gain_title">麦克风增益调节</string>
<string name="audio_settings_codecs_title">编解码器</string>
<string name="audio_settings_echo_cancellation_title">回声消除</string>
<string name="audio_settings_echo_cancellation_calibration_value">在%s毫秒内校准</string>
<string name="assistant_remote_provisioning_wrong_format">不明的URL网址格式无法下载配置资源…</string>
<string name="audio_settings_input_device_summary">更改将从下一次通话开始生效</string>

View file

@ -234,7 +234,6 @@
<string name="video_settings_initiate_call_summary">總是發送視訊請求</string>
<string name="video_settings_bandwidth_limit_summary">kbits/s</string>
<string name="call_settings_encryption_mandatory_title">強制加密媒體</string>
<string name="audio_settings_echo_cancellation_title">回音消除</string>
<string name="audio_settings_echo_cancellation_summary">刪除另一端聽到的回音</string>
<string name="audio_settings_echo_canceller_calibration_title">校正回音消除功能</string>
<string name="audio_settings_echo_canceller_calibration_summary">點擊此處即可校正回音消除功能</string>

View file

@ -482,7 +482,7 @@
<string name="settings_password_protection_dialog_invalid_input">Invalid password!</string>
<!-- Audio settings -->
<string name="audio_settings_echo_cancellation_title">Echo cancellation</string>
<string name="audio_settings_software_echo_cancellation_title">Software echo cancellation</string>
<string name="audio_settings_echo_cancellation_summary">Removes the echo heard by other end</string>
<string name="audio_settings_echo_canceller_calibration_title">Echo canceller calibration</string>
<string name="audio_settings_echo_canceller_calibration_summary">Click to start echo canceller calibration</string>