diff --git a/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt b/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt index 8e43e7548..d2e815743 100644 --- a/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/help/viewmodel/HelpViewModel.kt @@ -44,6 +44,8 @@ class HelpViewModel constructor() : GenericViewModel() { companion object { private const val TAG = "[Help ViewModel]" + + private const val NUMBER_OF_CLICK_TO_ENABLE_DEVELOPER_MODE = 6 } val version = MutableLiveData() @@ -60,8 +62,6 @@ class HelpViewModel val logsUploadInProgress = MutableLiveData() - val versionClickCount = MutableLiveData() - val newVersionAvailableEvent: MutableLiveData>> by lazy { MutableLiveData>>() } @@ -90,6 +90,8 @@ class HelpViewModel MutableLiveData>() } + private var versionClickCount: Int = 0 + private val coreListener = object : CoreListenerStub() { @WorkerThread override fun onVersionUpdateCheckResultReceived( @@ -136,7 +138,6 @@ class HelpViewModel init { val currentVersion = BuildConfig.VERSION_NAME version.value = currentVersion - versionClickCount.value = 0 val versionCode = BuildConfig.VERSION_CODE val appGitDescribe = AppUtils.getString(R.string.linphone_app_version) @@ -153,6 +154,13 @@ class HelpViewModel firebaseProjectId.value = "unknown" } + versionClickCount = if (corePreferences.showDeveloperSettings) { + Log.i("$TAG Developer are already enabled") + NUMBER_OF_CLICK_TO_ENABLE_DEVELOPER_MODE + } else { + 0 + } + coreContext.postOnCoreThread { core -> core.addListener(coreListener) @@ -172,19 +180,25 @@ class HelpViewModel @UiThread fun versionClicked() { - if (corePreferences.showDeveloperSettings == true) { - showRedToast(R.string.settings_developer_already_enabled_toast, R.drawable.warning_circle) - return - } - - versionClickCount.value = (versionClickCount.value ?: 0) + 1 - if (versionClickCount.value == 7) { - coreContext.postOnCoreThread { - Log.w("$TAG Version was clicked seven times, enabling developer settings") - corePreferences.showDeveloperSettings = true - - showGreenToast(R.string.settings_developer_enabled_toast, R.drawable.gear) + versionClickCount += 1 + when (versionClickCount) { + NUMBER_OF_CLICK_TO_ENABLE_DEVELOPER_MODE - 2 -> { + showGreenToast(R.string.settings_developer_two_more_clicks_required_toast, R.drawable.gear) } + NUMBER_OF_CLICK_TO_ENABLE_DEVELOPER_MODE - 1 -> { + showGreenToast(R.string.settings_developer_one_more_click_required_toast, R.drawable.gear) + } + NUMBER_OF_CLICK_TO_ENABLE_DEVELOPER_MODE -> { + showGreenToast(R.string.settings_developer_enabled_toast, R.drawable.gear) + coreContext.postOnCoreThread { + Log.w("$TAG Version was clicked seven times, enabling developer settings") + corePreferences.showDeveloperSettings = true + } + } + NUMBER_OF_CLICK_TO_ENABLE_DEVELOPER_MODE + 1 -> { + showGreenToast(R.string.settings_developer_already_enabled_toast, R.drawable.gear) + } + else -> { } } } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f8693f970..603cbf935 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -306,6 +306,8 @@ Paramètres développeurs Afficher les paramètres développeurs + Encore 2 clicks pour activer les paramètres développeurs + Encore 1 click pour activer les paramètres développeurs Paramètres développeurs activés Paramètres développeurs déjà activés Activer l\'indicateur des volumes d\'enregistrement et de lecture diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0a61b3b92..6fc8a67a3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -347,6 +347,8 @@ Developer settings Show developer settings + Click 2 more times to enable developer settings + Click 1 more time to enable developer settings Developer settings enabled Developer settings already enabled Enable record/playback volume vu meters while in call