feat : add toggle for dynamic hide stat bar clock

This commit is contained in:
MrSluffy
2024-12-20 13:24:07 +08:00
parent 335b684bd0
commit adfdc67bd6
5 changed files with 27 additions and 4 deletions
+1
View File
@@ -102,6 +102,7 @@
<bool name="config_default_widget_unlimited_size">false</bool>
<bool name="config_default_show_status_bar">true</bool>
<bool name="config_default_remember_position">false</bool>
<bool name="config_default_dynamic_hide_status_bar_clock">false</bool>
<bool name="config_default_show_scrollbar">true</bool>
<bool name="config_default_show_top_shadow">true</bool>
<bool name="config_default_lock_home_screen">false</bool>
+2
View File
@@ -520,6 +520,8 @@
<string name="status_bar_label">Status bar</string>
<string name="show_status_bar">Show status bar</string>
<string name="dark_status_bar_label">Dark status bar</string>
<string name="status_bar_clock_label">Status bar clock</string>
<string name="status_bar_clock_description">Dynamically hide status bar clock in first screen</string>
<string name="home_screen_text_color">Text color</string>
<string name="color_light">Light</string>
@@ -176,10 +176,16 @@ class LawnchairLauncher : QuickstepLauncher() {
}
}.launchIn(scope = lifecycleScope)
if (LawnchairApp.isRecentsEnabled) {
launcher.stateManager.addStateListener(statusBarClockListener)
} else {
launcher.stateManager.removeStateListener(statusBarClockListener)
preferenceManager2.statusBarClock.get().distinctUntilChanged().onEach {
with(launcher.stateManager) {
if (it) {
addStateListener(statusBarClockListener)
} else {
removeStateListener(statusBarClockListener)
// Make sure status bar clock is restored when the preference is toggled off
LawnchairApp.instance.restoreClockInStatusBar()
}
}
}
preferenceManager2.rememberPosition.get().onEach {
with(launcher.stateManager) {
@@ -228,6 +228,12 @@ class PreferenceManager2 private constructor(private val context: Context) : Pre
defaultValue = context.resources.getBoolean(R.bool.config_default_show_status_bar),
)
val statusBarClock = preference(
key = booleanPreferencesKey(name = "status_bar_clock"),
defaultValue = context.resources.getBoolean(R.bool.config_default_dynamic_hide_status_bar_clock),
onSet = { reloadHelper.reloadGrid() },
)
val rememberPosition = preference(
key = booleanPreferencesKey(name = "all_apps_remember_position"),
defaultValue = context.resources.getBoolean(R.bool.config_default_remember_position),
@@ -23,6 +23,7 @@ import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import app.lawnchair.LawnchairApp
import app.lawnchair.data.iconoverride.IconOverrideRepository
import app.lawnchair.nexuslauncher.OverlayCallbackImpl
import app.lawnchair.preferences.getAdapter
@@ -160,6 +161,13 @@ fun HomeScreenPreferences(
adapter = prefs2.darkStatusBar.getAdapter(),
label = stringResource(id = R.string.dark_status_bar_label),
)
if (LawnchairApp.isRecentsEnabled) {
SwitchPreference(
adapter = prefs2.statusBarClock.getAdapter(),
label = stringResource(id = R.string.status_bar_clock_label),
description = stringResource(id = R.string.status_bar_clock_description),
)
}
}
}
PreferenceGroup(heading = stringResource(id = R.string.icons)) {