diff --git a/lawnchair/res/values/config.xml b/lawnchair/res/values/config.xml
index 3cba97b869..c76989f36a 100644
--- a/lawnchair/res/values/config.xml
+++ b/lawnchair/res/values/config.xml
@@ -55,6 +55,7 @@
true
true
true
+ false
false
true
true
diff --git a/lawnchair/res/values/strings.xml b/lawnchair/res/values/strings.xml
index e2294c9ac9..f6b807e0fe 100644
--- a/lawnchair/res/values/strings.xml
+++ b/lawnchair/res/values/strings.xml
@@ -43,6 +43,7 @@
Max. Folder Columns
Max. Folder Rows
Home Screen Grid
+ Lock Home Screen
Columns
Grid
Rows
@@ -116,6 +117,7 @@
Scroll Wallpaper
Top Shadow
Show Status Bar
+ Layout
What to Show
Notification Access Needed
Notification access needed.
diff --git a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt
index 62a4397ff2..cf3b442203 100644
--- a/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt
+++ b/lawnchair/src/app/lawnchair/preferences2/PreferenceManager2.kt
@@ -142,6 +142,11 @@ class PreferenceManager2(private val context: Context) : PreferenceManager {
defaultValue = context.resources.getBoolean(R.bool.config_default_show_top_shadow),
)
+ val lockHomeScreen = preference(
+ key = booleanPreferencesKey(name = "lock_home_screen"),
+ defaultValue = context.resources.getBoolean(R.bool.config_default_lock_home_screen),
+ )
+
val hideAppDrawerSearchBar = preference(
key = booleanPreferencesKey(name = "hide_app_drawer_search_bar"),
defaultValue = context.resources.getBoolean(R.bool.config_default_hide_app_drawer_search_bar),
diff --git a/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt
index fa927d1a6d..9c6b829dc3 100644
--- a/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt
+++ b/lawnchair/src/app/lawnchair/ui/preferences/HomeScreenPreferences.kt
@@ -80,6 +80,8 @@ fun HomeScreenPreferences() {
adapter = prefs2.showTopShadow.getAdapter(),
label = stringResource(id = R.string.show_sys_ui_scrim),
)
+ }
+ PreferenceGroup(heading = stringResource(id = R.string.layout)) {
val columns by prefs.workspaceColumns.getAdapter()
val rows by prefs.workspaceRows.getAdapter()
NavigationActionPreference(
@@ -87,6 +89,10 @@ fun HomeScreenPreferences() {
destination = subRoute(name = HomeScreenRoutes.GRID),
subtitle = stringResource(id = R.string.x_by_y, columns, rows),
)
+ SwitchPreference(
+ adapter = prefs2.lockHomeScreen.getAdapter(),
+ label = stringResource(id = R.string.home_screen_lock),
+ )
}
PreferenceGroup(heading = stringResource(id = R.string.status_bar_label)) {
val showStatusBarAdapter = prefs2.showStatusBar.getAdapter()