From 052d7cc52266ee25f65e9566203c111faed8b923 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 7c0274237..4b2bdb07b 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -234,6 +234,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")!! @@ -325,10 +332,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 e065446ab..653d51386 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 @@ -142,6 +142,8 @@ class SettingsViewModel val allowIpv6 = MutableLiveData() // User Interface settings + val autoShowDialpad = MutableLiveData() + val showThemeSelector = MutableLiveData() val theme = MutableLiveData() val availableThemesNames = arrayListOf( @@ -305,6 +307,7 @@ class SettingsViewModel defaultLayout.postValue(core.defaultConferenceLayout.toInt()) + autoShowDialpad.postValue(corePreferences.automaticallyShowDialpad) theme.postValue(corePreferences.darkMode) color.postValue(corePreferences.themeMainColor) @@ -580,6 +583,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 39768eb43..e2d41d9e1 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -243,6 +243,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 6ab53dd0a..d72a82dc0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -282,6 +282,7 @@ Use only Wi-Fi networks Allow IPv6 User interface + Automatically open dialpad Theme Dark theme Light theme