From 72c5cfe5ae024cf7d98f7a21bb849d784e87968d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 17 Mar 2025 14:19:14 +0100 Subject: [PATCH] Added UI setting to have dialpad automatically opened when starting new call --- .../java/org/linphone/core/CorePreferences.kt | 11 ++++--- .../settings/viewmodel/SettingsViewModel.kt | 12 ++++++++ .../res/layout/settings_user_interface.xml | 30 ++++++++++++++++++- app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 50 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index e3657c420..2f1ee613d 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -227,6 +227,13 @@ class CorePreferences config.setBool("ui", "enable_secure_mode", value) } + @get:WorkerThread @set:WorkerThread + var automaticallyShowDialpad: Boolean + get() = config.getBool("ui", "automatically_show_dialpad", false) + set(value) { + config.setBool("ui", "automatically_show_dialpad", value) + } + @get:WorkerThread @set:WorkerThread var themeMainColor: String get() = config.getString("ui", "theme_main_color", "orange")!! @@ -318,10 +325,6 @@ class CorePreferences val fetchContactsFromDefaultDirectory: Boolean get() = config.getBool("app", "fetch_contacts_from_default_directory", true) - @get:WorkerThread - val automaticallyShowDialpad: Boolean - get() = config.getBool("ui", "automatically_show_dialpad", false) - @get:WorkerThread val showLettersOnDialpad: Boolean get() = config.getBool("ui", "show_letters_on_dialpad", true) diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt index f764468f3..fec40773e 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt @@ -135,6 +135,8 @@ class SettingsViewModel val allowIpv6 = MutableLiveData() // User Interface settings + val autoShowDialpad = MutableLiveData() + val showThemeSelector = MutableLiveData() val theme = MutableLiveData() val availableThemesNames = arrayListOf( @@ -296,6 +298,7 @@ class SettingsViewModel defaultLayout.postValue(core.defaultConferenceLayout.toInt()) + autoShowDialpad.postValue(corePreferences.automaticallyShowDialpad) theme.postValue(corePreferences.darkMode) color.postValue(corePreferences.themeMainColor) @@ -564,6 +567,15 @@ class SettingsViewModel expandUserInterface.value = expandUserInterface.value == false } + @UiThread + fun toggleAutoShowDialpad() { + val newValue = autoShowDialpad.value == false + coreContext.postOnCoreThread { core -> + corePreferences.automaticallyShowDialpad = newValue + autoShowDialpad.postValue(newValue) + } + } + @UiThread fun setTheme(themeValue: Int) { coreContext.postOnCoreThread { diff --git a/app/src/main/res/layout/settings_user_interface.xml b/app/src/main/res/layout/settings_user_interface.xml index 467b78693..f392d2593 100644 --- a/app/src/main/res/layout/settings_user_interface.xml +++ b/app/src/main/res/layout/settings_user_interface.xml @@ -28,6 +28,34 @@ android:visibility="@{viewModel.showColorSelector ? View.VISIBLE : View.GONE}" app:constraint_referenced_ids="color_spinner, color_spinner_caret, color_title" /> + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index dfea1fd68..3c5995d83 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -242,6 +242,7 @@ Se connecter uniquement via le Wi-Fi Autoriser l\'IPv6 Affichage + Ouvrir le pavé numérique automatiquement Thème Sombre Clair diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2032893ac..4def3698e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -281,6 +281,7 @@ Use only Wi-Fi networks Allow IPv6 User interface + Automatically open dialpad Theme Dark theme Light theme