diff --git a/library/ui-strings/src/main/res/values/strings_sc.xml b/library/ui-strings/src/main/res/values/strings_sc.xml
index db66fd6627..7bfaa47de2 100644
--- a/library/ui-strings/src/main/res/values/strings_sc.xml
+++ b/library/ui-strings/src/main/res/values/strings_sc.xml
@@ -158,6 +158,8 @@
Schildi-debugging
Enable additional logs or debugging features
+ Additional logs
+ Visual debugging info
Read marker debugging
Timeline consistency debugging
Show displayIndex in timeline
diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsScDebuggingFragment.kt b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsScDebuggingFragment.kt
index 0a0f863b52..f4f7c63c4a 100644
--- a/vector/src/main/java/im/vector/app/features/settings/VectorSettingsScDebuggingFragment.kt
+++ b/vector/src/main/java/im/vector/app/features/settings/VectorSettingsScDebuggingFragment.kt
@@ -2,6 +2,7 @@ package im.vector.app.features.settings
import androidx.annotation.StringRes
import androidx.preference.Preference
+import androidx.preference.PreferenceGroup
import de.spiritcroc.matrixsdk.util.DbgUtil
import im.vector.app.R
import im.vector.app.core.preference.VectorSwitchPreference
@@ -14,31 +15,44 @@ class VectorSettingsScDebuggingFragment @Inject constructor(
override var titleRes = R.string.settings_sc_debugging
override val preferenceXmlRes = R.xml.vector_settings_sc_debugging
+ companion object {
+ const val SC_DEBUGGING_CATEGORY_LOGS = "SC_DEBUGGING_CATEGORY_LOGS"
+ const val SC_DEBUGGING_CATEGORY_VISUALS = "SC_DEBUGGING_CATEGORY_VISUALS"
+ }
+
data class DbgPref(val key: String, @StringRes val stringRes: Int)
- val dbgPrefs = arrayOf(
+ private val dbgLoggingPrefs = arrayOf(
DbgPref(DbgUtil.DBG_TIMELINE_CHUNKS, R.string.settings_sc_dbg_timeline_chunks),
- DbgPref(DbgUtil.DBG_SHOW_DISPLAY_INDEX, R.string.settings_sc_dbg_show_display_index),
DbgPref(DbgUtil.DBG_READ_MARKER, R.string.settings_sc_dbg_read_marker),
- DbgPref(DbgUtil.DBG_SHOW_READ_TRACKING, R.string.settings_sc_dbg_show_read_tracking),
DbgPref(DbgUtil.DBG_READ_RECEIPTS, R.string.settings_sc_dbg_read_receipts),
DbgPref(DbgUtil.DBG_VIEW_PAGER, R.string.settings_sc_dbg_view_pager),
+ )
+ private val dbgVisualsPrefs = arrayOf(
+ DbgPref(DbgUtil.DBG_SHOW_DISPLAY_INDEX, R.string.settings_sc_dbg_show_display_index),
+ DbgPref(DbgUtil.DBG_SHOW_READ_TRACKING, R.string.settings_sc_dbg_show_read_tracking),
DbgPref(DbgUtil.DBG_VIEW_PAGER_VISUALS, R.string.settings_sc_dbg_view_pager_visuals),
)
+ val dbgPrefs = dbgLoggingPrefs + dbgVisualsPrefs
- override fun bindPref() {
- dbgPrefs.forEach { dbgPref ->
+ private fun addScDbgPrefs(prefs: Array, group: PreferenceGroup) {
+ prefs.forEach { dbgPref ->
var pref: VectorSwitchPreference? = findPreference(dbgPref.key)
if (pref == null) {
pref = VectorSwitchPreference(requireContext())
pref.key = dbgPref.key
pref.title = getString(dbgPref.stringRes)
- preferenceScreen.addPreference(pref)
+ group.addPreference(pref)
}
pref.isChecked = DbgUtil.isDbgEnabled(pref.key)
pref.onPreferenceChangeListener = preferenceChangeListener
}
}
+ override fun bindPref() {
+ findPreference(SC_DEBUGGING_CATEGORY_LOGS)?.let { addScDbgPrefs(dbgLoggingPrefs, it) }
+ findPreference(SC_DEBUGGING_CATEGORY_VISUALS)?.let { addScDbgPrefs(dbgVisualsPrefs, it) }
+ }
+
private val preferenceChangeListener = Preference.OnPreferenceChangeListener { preference, newValue ->
if (newValue is Boolean && dbgPrefs.any { preference.key == it.key }) {
DbgUtil.onPreferenceChanged(requireContext(), preference.key as String, newValue)
diff --git a/vector/src/main/res/xml/vector_settings_sc_debugging.xml b/vector/src/main/res/xml/vector_settings_sc_debugging.xml
index 0192e4d66c..8c167946dd 100644
--- a/vector/src/main/res/xml/vector_settings_sc_debugging.xml
+++ b/vector/src/main/res/xml/vector_settings_sc_debugging.xml
@@ -3,7 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
-
+
+
+