From 63ed74c038ef13828a7f3048ff9aed9fa6ae201e Mon Sep 17 00:00:00 2001 From: Suphon Thanakornpakapong Date: Wed, 13 Oct 2021 12:40:12 +0700 Subject: [PATCH] Add a debug menu in preferences --- .../lawnchair/allapps/AllAppsSearchInput.kt | 9 +++++++ .../preferences/PreferenceManager.kt | 1 + .../ui/preferences/DebugMenuPreferences.kt | 27 +++++++++++++++++++ .../lawnchair/ui/preferences/Preferences.kt | 2 ++ .../ui/preferences/PreferencesDashboard.kt | 15 +++++++++++ 5 files changed, 54 insertions(+) create mode 100644 lawnchair/src/app/lawnchair/ui/preferences/DebugMenuPreferences.kt diff --git a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt index 39c41bb75d..28733d5787 100644 --- a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt +++ b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt @@ -14,9 +14,11 @@ import androidx.core.view.ViewCompat import androidx.core.view.isVisible import androidx.core.widget.addTextChangedListener import app.lawnchair.launcher +import app.lawnchair.preferences.PreferenceManager import app.lawnchair.search.LawnchairAppSearchAlgorithm import com.android.launcher3.ExtendedEditText import com.android.launcher3.Insettable +import com.android.launcher3.LauncherState import com.android.launcher3.R import com.android.launcher3.allapps.* import com.android.launcher3.allapps.search.AllAppsSearchBarController @@ -57,6 +59,13 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : LinearLayout( actionButton.setOnClickListener { input.reset() } + input.addTextChangedListener { + if (input.text.toString() == "/lawnchairdebug") { + val enableDebugMenu = PreferenceManager.getInstance(context).enableDebugMenu + enableDebugMenu.set(!enableDebugMenu.get()) + launcher.stateManager.goToState(LauncherState.NORMAL) + } + } } override fun onAttachedToWindow() { diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt index 70737580a4..bd5f63a4aa 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt @@ -84,6 +84,7 @@ class PreferenceManager private constructor(private val context: Context) : Base val showStatusBar = BoolPref("pref_showStatusBar", true, recreate) val allAppsIconLabels = BoolPref("pref_allAppsIconLabels", true, reloadGrid) val searchAutoShowKeyboard = BoolPref("pref_searchAutoShowKeyboard", false) + val enableDebugMenu = BoolPref("pref_enableDebugMenu", false) private val fontCache = FontCache.INSTANCE.get(context) val workspaceFont = FontPref("pref_workspaceFont", fontCache.uiTextMedium, recreate) diff --git a/lawnchair/src/app/lawnchair/ui/preferences/DebugMenuPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/DebugMenuPreferences.kt new file mode 100644 index 0000000000..6a7f4d174b --- /dev/null +++ b/lawnchair/src/app/lawnchair/ui/preferences/DebugMenuPreferences.kt @@ -0,0 +1,27 @@ +package app.lawnchair.ui.preferences + +import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.material.ExperimentalMaterialApi +import androidx.compose.runtime.Composable +import androidx.navigation.NavGraphBuilder +import app.lawnchair.ui.preferences.components.* + +@ExperimentalMaterialApi +@ExperimentalAnimationApi +fun NavGraphBuilder.debugMenuGraph(route: String) { + preferenceGraph(route, { DebugMenuPreferences() }) +} + +/** + * A screen to house unfinished preferences and debug flags + */ +@ExperimentalMaterialApi +@ExperimentalAnimationApi +@Composable +fun DebugMenuPreferences() { + PreferenceLayout( + label = "Debug Menu" + ) { + + } +} diff --git a/lawnchair/src/app/lawnchair/ui/preferences/Preferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/Preferences.kt index f76abd4742..6c4630c959 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/Preferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/Preferences.kt @@ -45,6 +45,7 @@ object Routes { const val FOLDERS: String = "folders" const val QUICKSTEP: String = "quickstep" const val FONT_SELECTION: String = "fontSelection" + const val DEBUG_MENU: String = "debugMenu" } val LocalNavController = staticCompositionLocalOf { @@ -89,6 +90,7 @@ fun Preferences(interactor: PreferenceInteractor = viewModel