Improved process to enable developer settings

This commit is contained in:
Sylvain Berfini 2025-06-17 19:57:44 +02:00
parent 1307ec5471
commit 79212a8757
3 changed files with 33 additions and 15 deletions

View file

@ -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<String>()
@ -60,8 +62,6 @@ class HelpViewModel
val logsUploadInProgress = MutableLiveData<Boolean>()
val versionClickCount = MutableLiveData<Int>()
val newVersionAvailableEvent: MutableLiveData<Event<Pair<String, String>>> by lazy {
MutableLiveData<Event<Pair<String, String>>>()
}
@ -90,6 +90,8 @@ class HelpViewModel
MutableLiveData<Event<String>>()
}
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,20 +180,26 @@ class HelpViewModel
@UiThread
fun versionClicked() {
if (corePreferences.showDeveloperSettings == true) {
showRedToast(R.string.settings_developer_already_enabled_toast, R.drawable.warning_circle)
return
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)
}
versionClickCount.value = (versionClickCount.value ?: 0) + 1
if (versionClickCount.value == 7) {
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
showGreenToast(R.string.settings_developer_enabled_toast, R.drawable.gear)
}
}
NUMBER_OF_CLICK_TO_ENABLE_DEVELOPER_MODE + 1 -> {
showGreenToast(R.string.settings_developer_already_enabled_toast, R.drawable.gear)
}
else -> { }
}
}
@UiThread

View file

@ -306,6 +306,8 @@
<string name="settings_developer_title">Paramètres développeurs</string>
<string name="settings_developer_show_title">Afficher les paramètres développeurs</string>
<string name="settings_developer_two_more_clicks_required_toast">Encore 2 clicks pour activer les paramètres développeurs</string>
<string name="settings_developer_one_more_click_required_toast">Encore 1 click pour activer les paramètres développeurs</string>
<string name="settings_developer_enabled_toast">Paramètres développeurs activés</string>
<string name="settings_developer_already_enabled_toast">Paramètres développeurs déjà activés</string>
<string name="settings_developer_enable_vu_meters_title">Activer l\'indicateur des volumes d\'enregistrement et de lecture</string>

View file

@ -347,6 +347,8 @@
<string name="settings_developer_title">Developer settings</string>
<string name="settings_developer_show_title">Show developer settings</string>
<string name="settings_developer_two_more_clicks_required_toast">Click 2 more times to enable developer settings</string>
<string name="settings_developer_one_more_click_required_toast">Click 1 more time to enable developer settings</string>
<string name="settings_developer_enabled_toast">Developer settings enabled</string>
<string name="settings_developer_already_enabled_toast">Developer settings already enabled</string>
<string name="settings_developer_enable_vu_meters_title">Enable record/playback volume vu meters while in call</string>