refactor: Replace old PreferenceGroup

PreferenceGroupPositionAware is now stable enough, replace the old PreferenceGroup with this
This commit is contained in:
Pun Butrach
2025-12-13 17:29:35 +07:00
parent fad908aa66
commit 88a65e7374
23 changed files with 81 additions and 134 deletions
@@ -47,7 +47,7 @@ import androidx.compose.ui.unit.dp
import app.lawnchair.ui.preferences.components.controls.ClickablePreference
import app.lawnchair.ui.preferences.components.layout.ExpandAndShrink
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupHeading
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.theme.preferenceGroupColor
import app.lawnchair.ui.util.addIf
@@ -144,7 +144,7 @@ fun <T> DraggablePreferenceGroup(
}
ExpandAndShrink(visible = localItems != defaultList) {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
ClickablePreference(label = stringResource(id = R.string.action_reset)) {
onOrderChange(defaultList)
@@ -38,21 +38,11 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.runtime.snapshots.SnapshotStateList
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.graphics.drawOutline
import androidx.compose.ui.graphics.drawscope.translate
import androidx.compose.ui.layout.Layout
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.semantics.heading
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.text.font.FontWeight
@@ -60,52 +50,12 @@ import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import app.lawnchair.ui.theme.preferenceGroupColor
@Composable
fun PreferenceGroup(
modifier: Modifier = Modifier,
heading: String? = null,
description: String? = null,
showDescription: Boolean = true,
showDividers: Boolean = true,
dividerStartIndent: Dp = 0.dp,
dividerEndIndent: Dp = 0.dp,
dividersToSkip: Int = 0,
dividerColor: Color = MaterialTheme.colorScheme.surface,
content: @Composable () -> Unit,
) {
Column(
modifier = modifier,
) {
PreferenceGroupHeading(heading)
Surface(
modifier = Modifier.padding(horizontal = 16.dp),
shape = RoundedCornerShape(24.dp),
color = preferenceGroupColor(),
) {
if (showDividers) {
DividerColumn(
startIndent = dividerStartIndent,
endIndent = dividerEndIndent,
content = content,
dividersToSkip = dividersToSkip,
color = dividerColor,
)
} else {
Column {
content()
}
}
}
PreferenceGroupDescription(description = description, showDescription = showDescription)
}
}
/**
* PreferenceGroup with scope-based content for position-aware items.
* Items added via scope automatically get isFirst/isLast tracking
*/
@Composable
fun PreferenceGroupPositionAware(
fun PreferenceGroup(
modifier: Modifier = Modifier,
heading: String? = null,
description: String? = null,
@@ -30,7 +30,7 @@ import app.lawnchair.ui.preferences.components.controls.ListPreferenceEntry
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.ExpandAndShrink
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.preferences.destinations.DockPreferencesPreview
import app.lawnchair.ui.preferences.navigation.DockSearchProvider
@@ -54,7 +54,7 @@ fun DockSearchPreference(
val isLawnchairHotseat = hotseatModeAdapter.state.value == LawnchairHotseat
if (hotseatEnabled) {
Column {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
HotseatModePreference(
adapter = hotseatModeAdapter,
@@ -69,7 +69,7 @@ fun DockSearchPreference(
ExpandAndShrink(visible = isLawnchairHotseat) {
Column {
val hotseatQsbProviderAdapter by preferenceManager2().hotseatQsbProvider.getAdapter()
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(R.string.search_bar_settings),
) {
item { _ ->
@@ -84,7 +84,7 @@ fun DockSearchPreference(
)
}
}
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(R.string.style),
) {
item { _ ->
@@ -21,7 +21,7 @@ import app.lawnchair.ui.preferences.components.controls.ListPreference
import app.lawnchair.ui.preferences.components.controls.ListPreferenceEntry
import app.lawnchair.ui.preferences.components.controls.MainSwitchPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.navigation.SearchProviderPreference
import app.lawnchair.util.FileAccessManager
import com.android.launcher3.R
@@ -45,7 +45,7 @@ fun DrawerSearchPreference(
label = stringResource(id = R.string.show_app_search_bar),
modifier = modifier,
) {
PreferenceGroupPositionAware(heading = stringResource(R.string.general_label)) {
PreferenceGroup(heading = stringResource(R.string.general_label)) {
if (hiddenApps.isNotEmpty()) {
item { _ -> HiddenAppsInSearchPreference() }
}
@@ -71,7 +71,7 @@ fun DrawerSearchPreference(
val searchAlgorithm = preferenceManager2().searchAlgorithm.getAdapter().state.value
val navController = LocalNavController.current
PreferenceGroupPositionAware(heading = stringResource(id = R.string.show_search_result_types)) {
PreferenceGroup(heading = stringResource(id = R.string.show_search_result_types)) {
if (searchAlgorithm != LawnchairSearchAlgorithm.ASI_SEARCH) {
val canDisable = searchAlgorithm != LawnchairSearchAlgorithm.APP_SEARCH
val adapter = prefs.searchResultApps.getAdapter()
@@ -52,7 +52,7 @@ import app.lawnchair.ui.preferences.components.controls.MainSwitchPreference
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.ExpandAndShrink
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.theme.dividerColor
import app.lawnchair.ui.util.isPlayStoreFlavor
@@ -109,7 +109,7 @@ fun FileSearchProvider(
enabled = hasAnyPermissions,
modifier = modifier,
)
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(R.string.search_pref_files_search_on),
) {
val allFilesAccessState by viewModel.allFilesAccessState.collectAsStateWithLifecycle()
@@ -158,7 +158,7 @@ fun FileSearchProvider(
}
ExpandAndShrink(hasAnyPermissions) {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
SliderPreference(
label = stringResource(id = R.string.max_file_result_count_title),
@@ -39,7 +39,7 @@ import app.lawnchair.ui.preferences.components.controls.ClickablePreference
import app.lawnchair.ui.preferences.components.controls.MainSwitchPreference
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.theme.dividerColor
@@ -172,7 +172,7 @@ fun ContactsSearchProvider(
modifier = modifier,
enabled = contactsPermissionState.status.isGranted,
) {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
SliderPreference(
label = stringResource(R.string.max_people_result_count_title),
@@ -224,7 +224,7 @@ fun GenericSearchProviderPreference(
label = stringResource(getProviderName(provider)),
modifier = modifier,
) {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
SliderPreference(
label = stringResource(
@@ -47,7 +47,6 @@ import app.lawnchair.ui.preferences.components.controls.ClickablePreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.LoadingScreen
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.preferences.navigation.AppDrawerAppListToFolder
@@ -63,7 +62,7 @@ fun AppDrawerFolderPreferenceItem(
) {
val navController = LocalNavController.current
PreferenceGroupPositionAware(
PreferenceGroup(
modifier = modifier,
) {
item { _ ->
@@ -153,7 +152,7 @@ fun AppDrawerFoldersPreference(
label = stringResource(id = R.string.app_drawer_folder),
backArrowVisible = true,
) {
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(R.string.settings),
) {
item { _ ->
@@ -164,7 +163,7 @@ fun AppDrawerFoldersPreference(
)
}
}
PreferenceGroupPositionAware(heading = stringResource(R.string.folders_label)) {
PreferenceGroup(heading = stringResource(R.string.folders_label)) {
item { _ ->
PreferenceTemplate(
title = {},
@@ -47,7 +47,7 @@ import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreferenceWithPreview
import app.lawnchair.ui.preferences.components.layout.ExpandAndShrink
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.navigation.AppDrawerHiddenApps
import com.android.launcher3.R
@@ -76,7 +76,7 @@ fun AppDrawerPreferences(
AppDrawerFolderPreferenceItem()
}
val hiddenApps = prefs2.hiddenApps.getAdapter().state.value
PreferenceGroupPositionAware(heading = stringResource(id = R.string.general_label)) {
PreferenceGroup(heading = stringResource(id = R.string.general_label)) {
item { _ ->
NavigationActionPreference(
label = stringResource(id = R.string.hidden_apps_label),
@@ -87,7 +87,7 @@ fun AppDrawerPreferences(
item { _ -> SearchBarPreference(SearchRoute.DRAWER_SEARCH, showLabel = false) }
item { _ -> SuggestionsPreference() }
}
PreferenceGroupPositionAware(heading = stringResource(R.string.style)) {
PreferenceGroup(heading = stringResource(R.string.style)) {
item { _ -> ColorPreference(preference = prefs2.appDrawerBackgroundColor) }
item { _ ->
SliderPreference(
@@ -105,7 +105,7 @@ fun AppDrawerPreferences(
)
}
}
PreferenceGroupPositionAware(heading = stringResource(id = R.string.grid)) {
PreferenceGroup(heading = stringResource(id = R.string.grid)) {
item { _ ->
SliderPreference(
label = stringResource(id = R.string.app_drawer_columns),
@@ -134,7 +134,7 @@ fun AppDrawerPreferences(
}
}
val showDrawerLabels = prefs2.showIconLabelsInDrawer.getAdapter()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.icons)) {
PreferenceGroup(heading = stringResource(id = R.string.icons)) {
item { _ ->
SliderPreference(
label = stringResource(id = R.string.icon_sizes),
@@ -168,7 +168,7 @@ fun AppDrawerPreferences(
}
}
}
PreferenceGroupPositionAware(heading = stringResource(id = R.string.advanced)) {
PreferenceGroup(heading = stringResource(id = R.string.advanced)) {
item { _ ->
SwitchPreference(
label = stringResource(id = R.string.pref_all_apps_bulk_icon_loading_title),
@@ -49,7 +49,7 @@ import app.lawnchair.ui.preferences.components.controls.getSteps
import app.lawnchair.ui.preferences.components.controls.snapSliderValue
import app.lawnchair.ui.preferences.components.layout.BottomSpacer
import app.lawnchair.ui.preferences.components.layout.PreferenceDivider
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.util.LocalBottomSheetHandler
@@ -133,7 +133,7 @@ private fun IconShapeCornerPreferenceGroup(
modifier: Modifier = Modifier,
onSelectedIconShapeChange: (IconShape) -> Unit,
) {
PreferenceGroupPositionAware(
PreferenceGroup(
modifier = modifier,
heading = stringResource(id = R.string.color_sliders),
) {
@@ -200,7 +200,7 @@ private fun IconShapeClipboardPreferenceGroup(
) {
val context = LocalContext.current
val importErrorMessage = stringResource(id = R.string.icon_shape_clipboard_import_error)
PreferenceGroupPositionAware(
PreferenceGroup(
modifier = modifier,
heading = stringResource(id = R.string.clipboard),
) {
@@ -21,7 +21,7 @@ import app.lawnchair.ui.preferences.components.controls.ClickablePreference
import app.lawnchair.ui.preferences.components.controls.MainSwitchPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.controls.TextPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.data.liveinfo.liveInformationManager
import app.lawnchair.ui.preferences.data.liveinfo.model.LiveInformation
@@ -57,7 +57,7 @@ fun DebugMenuPreferences(
modifier = modifier,
) {
MainSwitchPreference(adapter = enableDebug, label = "Show debug menu") {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
ClickablePreference(
label = "Feature flags (Views)",
@@ -107,7 +107,7 @@ fun DebugMenuPreferences(
}
}
PreferenceGroupPositionAware(heading = "Debug flags") {
PreferenceGroup(heading = "Debug flags") {
flags2.forEach {
item { _ ->
SwitchPreference(
@@ -141,7 +141,7 @@ fun DebugMenuPreferences(
}
val apmSupport = context.checkCallingOrSelfPermission(Manifest.permission.PACKAGE_USAGE_STATS) == PackageManager.PERMISSION_GRANTED
PreferenceGroupPositionAware(heading = "Supported features") {
PreferenceGroup(heading = "Supported features") {
item { _ ->
ClickablePreference(
label = "Window blurs",
@@ -18,7 +18,7 @@ import app.lawnchair.ui.preferences.components.WallpaperAccessPermissionDialog
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.controls.WarningPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.util.FileAccessManager
import app.lawnchair.util.FileAccessState
@@ -47,7 +47,7 @@ fun ExperimentalFeaturesPreferences(
val hasPermission = wallpaperAccessState != FileAccessState.Denied
var showPermissionDialog by remember { mutableStateOf(false) }
PreferenceGroupPositionAware(
PreferenceGroup(
Modifier,
stringResource(R.string.workspace_label),
) {
@@ -148,7 +148,7 @@ fun ExperimentalFeaturesPreferences(
val alwaysReloadIconsAdapter = prefs2.alwaysReloadIcons.getAdapter()
val enableGncAdapter = prefs.enableGnc.getAdapter()
PreferenceGroupPositionAware(
PreferenceGroup(
Modifier,
stringResource(R.string.internal_label),
stringResource(R.string.internal_description),
@@ -26,7 +26,7 @@ import app.lawnchair.ui.preferences.LocalIsExpandedScreen
import app.lawnchair.ui.preferences.components.colorpreference.ColorPreference
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import com.android.launcher3.R
@@ -41,7 +41,7 @@ fun FolderPreferences(
) {
val prefs = preferenceManager()
val prefs2 = preferenceManager2()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.general_label)) {
PreferenceGroup(heading = stringResource(id = R.string.general_label)) {
item { _ -> ColorPreference(preference = prefs2.folderColor) }
item { _ ->
SliderPreference(
@@ -62,7 +62,7 @@ fun FolderPreferences(
)
}
}
PreferenceGroupPositionAware(heading = stringResource(id = R.string.grid)) {
PreferenceGroup(heading = stringResource(id = R.string.grid)) {
item { _ ->
SliderPreference(
label = stringResource(id = R.string.max_folder_columns),
@@ -82,7 +82,7 @@ fun FolderPreferences(
}
val homeScreenLabelsAdapter = prefs2.showIconLabelsOnHomeScreenFolder.getAdapter()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.icons)) {
PreferenceGroup(heading = stringResource(id = R.string.icons)) {
item { _ ->
SwitchPreference(
adapter = homeScreenLabelsAdapter,
@@ -44,7 +44,7 @@ import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.controls.WarningPreference
import app.lawnchair.ui.preferences.components.layout.ExpandAndShrink
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.notificationDotsEnabled
import app.lawnchair.ui.preferences.components.notificationServiceEnabled
@@ -88,7 +88,7 @@ fun GeneralPreferences() {
backArrowVisible = !LocalIsExpandedScreen.current,
label = stringResource(id = R.string.general_label),
) {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
SwitchPreference(
adapter = prefs.allowRotation.getAdapter(),
@@ -98,7 +98,7 @@ fun GeneralPreferences() {
}
}
ExpandAndShrink(visible = prefs2.enableFontSelection.asState().value) {
PreferenceGroupPositionAware(heading = stringResource(id = R.string.font_label)) {
PreferenceGroup(heading = stringResource(id = R.string.font_label)) {
item { _ ->
FontPreference(
fontPref = prefs.fontWorkspace,
@@ -133,7 +133,7 @@ fun GeneralPreferences() {
}
val wrapAdaptiveIcons = prefs.wrapAdaptiveIcons.getAdapter()
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.icons),
description = stringResource(id = (R.string.adaptive_icon_background_description)),
showDescription = wrapAdaptiveIcons.state.value,
@@ -194,7 +194,7 @@ fun GeneralPreferences() {
val showColorStyle = !(Utilities.ATLEAST_S && accentColorAdapter.state.value == ColorOption.SystemAccent) ||
!Utilities.ATLEAST_S
PreferenceGroupPositionAware(heading = stringResource(id = R.string.colors)) {
PreferenceGroup(heading = stringResource(id = R.string.colors)) {
item { _ -> ThemePreference() }
item { _ -> ColorPreference(preference = prefs2.accentColor) }
if (showColorStyle) {
@@ -209,7 +209,7 @@ fun GeneralPreferences() {
val dotColor = prefs2.notificationDotColor.asState().value
val dotTextColor = prefs2.notificationDotTextColor.asState().value
PreferenceGroupPositionAware(heading = stringResource(id = R.string.notification_dots)) {
PreferenceGroup(heading = stringResource(id = R.string.notification_dots)) {
item { _ -> NotificationDotsPreference(enabled = notificationEnabled, serviceEnabled = serviceEnabled) }
if (notificationEnabled && serviceEnabled) {
item { _ -> ColorPreference(preference = prefs2.notificationDotColor) }
@@ -7,7 +7,7 @@ import app.lawnchair.preferences.getAdapter
import app.lawnchair.preferences2.preferenceManager2
import app.lawnchair.ui.preferences.LocalIsExpandedScreen
import app.lawnchair.ui.preferences.components.GestureHandlerPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import com.android.launcher3.R
@@ -21,7 +21,7 @@ fun GesturePreferences(
backArrowVisible = !LocalIsExpandedScreen.current,
modifier = modifier,
) {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
GestureHandlerPreference(
adapter = prefs.doubleTapGestureHandler.getAdapter(),
@@ -25,7 +25,7 @@ import app.lawnchair.preferences.preferenceManager
import app.lawnchair.ui.preferences.LocalNavController
import app.lawnchair.ui.preferences.components.GridOverridesPreview
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import com.android.launcher3.LauncherAppState
import com.android.launcher3.R
@@ -61,7 +61,7 @@ fun HomeScreenGridPreferences(
val maxGridSize = if (increaseMaxGridSize.state.value) 20 else 10
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
SliderPreference(
label = stringResource(id = R.string.columns),
@@ -40,7 +40,7 @@ import app.lawnchair.ui.preferences.components.controls.ClickablePreference
import app.lawnchair.ui.preferences.components.controls.ListPreference
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.navigation.HomeScreenGrid
import app.lawnchair.util.collectAsStateBlocking
@@ -72,7 +72,7 @@ fun HomeScreenPreferences(
HomeLayoutSettings()
}
PreferenceGroupPositionAware(heading = stringResource(id = R.string.general_label)) {
PreferenceGroup(heading = stringResource(id = R.string.general_label)) {
val addIconToHomeAdapter = prefs.addIconToHome.getAdapter()
val isDeckLayoutAdapter = prefs2.deckLayout.getAdapter()
if (!isDeckLayoutAdapter.state.value) {
@@ -102,7 +102,7 @@ fun HomeScreenPreferences(
}
val feedAvailable = OverlayCallbackImpl.minusOneAvailable(LocalContext.current)
val enableFeedAdapter = prefs2.enableFeed.getAdapter()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.minus_one)) {
PreferenceGroup(heading = stringResource(id = R.string.minus_one)) {
item { _ ->
SwitchPreference(
adapter = enableFeedAdapter,
@@ -118,7 +118,7 @@ fun HomeScreenPreferences(
FeedPreference()
}
}
PreferenceGroupPositionAware(heading = stringResource(R.string.style)) {
PreferenceGroup(heading = stringResource(R.string.style)) {
item { _ -> HomeScreenTextColorPreference() }
item { _ ->
OverlayHandlerPreference(
@@ -127,7 +127,7 @@ fun HomeScreenPreferences(
)
}
}
PreferenceGroupPositionAware(heading = stringResource(id = R.string.wallpaper)) {
PreferenceGroup(heading = stringResource(id = R.string.wallpaper)) {
item { _ ->
SwitchPreference(
prefs.wallpaperScrolling.getAdapter(),
@@ -152,7 +152,7 @@ fun HomeScreenPreferences(
}
val columns by prefs.workspaceColumns.getAdapter()
val rows by prefs.workspaceRows.getAdapter()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.layout)) {
PreferenceGroup(heading = stringResource(id = R.string.layout)) {
item { _ ->
NavigationActionPreference(
label = stringResource(id = R.string.home_screen_grid),
@@ -168,11 +168,11 @@ fun HomeScreenPreferences(
)
}
}
PreferenceGroupPositionAware(heading = stringResource(id = R.string.popup_menu)) {
PreferenceGroup(heading = stringResource(id = R.string.popup_menu)) {
item { _ -> LauncherPopupPreferenceItem() }
}
val showStatusBarAdapter = prefs2.showStatusBar.getAdapter()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.status_bar_label)) {
PreferenceGroup(heading = stringResource(id = R.string.status_bar_label)) {
item { _ ->
SwitchPreference(
adapter = showStatusBarAdapter,
@@ -198,7 +198,7 @@ fun HomeScreenPreferences(
}
}
val homeScreenLabelsAdapter = prefs2.showIconLabelsOnHomeScreen.getAdapter()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.icons)) {
PreferenceGroup(heading = stringResource(id = R.string.icons)) {
item { _ ->
SliderPreference(
label = stringResource(id = R.string.icon_sizes),
@@ -229,7 +229,7 @@ fun HomeScreenPreferences(
val overrideRepo = IconOverrideRepository.INSTANCE.get(LocalContext.current)
val customIconsCount by remember { overrideRepo.observeCount() }.collectAsStateBlocking()
if (customIconsCount > 0) {
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
ClickablePreference(
label = stringResource(id = R.string.reset_custom_icons),
@@ -239,7 +239,7 @@ fun HomeScreenPreferences(
}
}
}
PreferenceGroupPositionAware(heading = stringResource(id = R.string.widget_button_text)) {
PreferenceGroup(heading = stringResource(id = R.string.widget_button_text)) {
item { _ ->
SwitchPreference(
adapter = prefs2.roundedWidgets.getAdapter(),
@@ -72,7 +72,7 @@ import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.invariantDeviceProfile
import app.lawnchair.ui.preferences.components.layout.Chip
import app.lawnchair.ui.preferences.components.layout.NestedScrollStretch
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.theme.preferenceGroupColor
import app.lawnchair.util.Constants
@@ -203,7 +203,7 @@ fun IconPackPreferences(
adapter = iconPackAdapter,
false,
)
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
SwitchPreference(
adapter = prefs.tintIconPackBackgrounds.getAdapter(),
@@ -228,7 +228,7 @@ fun IconPackPreferences(
true,
)
}
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
ListPreference(
enabled = themedIconsAvailable,
@@ -55,7 +55,7 @@ import app.lawnchair.preferences2.asState
import app.lawnchair.preferences2.preferenceManager2
import app.lawnchair.ui.preferences.LocalNavController
import app.lawnchair.ui.preferences.components.controls.ListPreferenceEntry
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.preferences.navigation.GeneralCustomIconShapeCreator
@@ -104,7 +104,7 @@ fun IconShapePreference(
label = stringResource(id = R.string.icon_shape_label),
modifier = modifier,
) {
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.custom),
) {
item { _ ->
@@ -118,7 +118,7 @@ fun IconShapePreference(
)
}
}
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.presets),
) {
entries.forEach { item ->
@@ -52,7 +52,7 @@ import app.lawnchair.ui.preferences.components.AnnouncementPreference
import app.lawnchair.ui.preferences.components.controls.PreferenceCategory
import app.lawnchair.ui.preferences.components.controls.WarningPreference
import app.lawnchair.ui.preferences.components.layout.ClickableIcon
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.preferences.data.liveinfo.SyncLiveInformation
@@ -114,7 +114,7 @@ fun PreferencesDashboard(
}
val deckLayout = prefs2.deckLayout.getAdapter()
PreferenceGroupPositionAware {
PreferenceGroup {
item {
PreferenceCategory(
label = stringResource(R.string.general_label),
@@ -20,9 +20,7 @@ import app.lawnchair.ui.preferences.components.RecentsQuickAction
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.controls.WarningPreference
import app.lawnchair.ui.preferences.components.layout.ExpandAndShrink
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.util.preview.PreviewLawnchair
import app.lawnchair.util.isOnePlusStock
@@ -75,7 +73,7 @@ fun QuickstepPreferences(
) {
if (!LawnchairApp.isRecentsEnabled) QuickSwitchIgnoredWarning()
val recentsTranslucentBackground by prefs.recentsTranslucentBackground.observeAsState()
PreferenceGroupPositionAware(heading = stringResource(id = R.string.general_label)) {
PreferenceGroup(heading = stringResource(id = R.string.general_label)) {
item { _ ->
SwitchPreference(
adapter = prefs.recentsTranslucentBackground.getAdapter(),
@@ -101,7 +99,7 @@ fun QuickstepPreferences(
)
val overrideWindowCornerRadius by prefs.overrideWindowCornerRadius.observeAsState()
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.window_corner_radius_label),
description = stringResource(id = (R.string.window_corner_radius_description)),
showDescription = overrideWindowCornerRadius,
@@ -125,7 +123,7 @@ fun QuickstepPreferences(
}
if (Utilities.ATLEAST_S_V2) {
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.taskbar_label),
) {
item { _ ->
@@ -12,7 +12,7 @@ import androidx.compose.ui.unit.dp
import app.lawnchair.ui.preferences.LocalIsExpandedScreen
import app.lawnchair.ui.preferences.LocalNavController
import app.lawnchair.ui.preferences.components.controls.ClickablePreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.TwoTabPreferenceLayout
import app.lawnchair.ui.preferences.components.search.DockSearchPreference
import app.lawnchair.ui.preferences.components.search.DrawerSearchPreference
@@ -44,7 +44,7 @@ fun SearchBarPreference(
}
if (showLabel) {
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.search_bar_label),
) {
item { _ -> preference() }
@@ -28,7 +28,7 @@ import app.lawnchair.ui.preferences.components.layout.ClickableIcon
import app.lawnchair.ui.preferences.components.layout.DividerColumn
import app.lawnchair.ui.preferences.components.layout.ExpandAndShrink
import app.lawnchair.ui.preferences.components.layout.PreferenceDivider
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.util.LocalBottomSheetHandler
@@ -47,7 +47,7 @@ fun SearchProviderPreferences(
label = stringResource(R.string.search_provider),
modifier = modifier,
) {
PreferenceGroupPositionAware {
PreferenceGroup {
QsbSearchProvider.values().forEach { qsbSearchProvider ->
item { _ ->
val appInstalled = qsbSearchProvider.isDownloaded(context)
@@ -34,7 +34,7 @@ import app.lawnchair.ui.preferences.components.controls.ListPreferenceEntry
import app.lawnchair.ui.preferences.components.controls.MainSwitchPreference
import app.lawnchair.ui.preferences.components.controls.SliderPreference
import app.lawnchair.ui.preferences.components.controls.SwitchPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroupPositionAware
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.theme.isSelectedThemeDark
import com.android.launcher3.R
@@ -69,7 +69,7 @@ fun SmartspacePreferences(
if (modeIsLawnchair) {
SmartspacePreview()
}
PreferenceGroupPositionAware {
PreferenceGroup {
item { _ ->
SmartspaceProviderPreference(
adapter = smartspaceModeAdapter,
@@ -106,7 +106,7 @@ private fun LawnchairSmartspaceSettings(
Column(
modifier = modifier,
) {
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.what_to_show),
modifier = Modifier.padding(top = 8.dp),
) {
@@ -161,7 +161,7 @@ fun SmartspacePreview(
val context = LocalContext.current
val themedContext = remember(themeRes) { ContextThemeWrapper(context, themeRes) }
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.preview_label),
modifier = modifier,
) {
@@ -201,7 +201,7 @@ fun SmartspaceDateAndTimePreferences(
val calendarHasMinimumContent = !showDateAdapter.state.value || !showTimeAdapter.state.value
val calendar = calendarAdapter.state.value
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.smartspace_date_and_time),
modifier = modifier.padding(top = 8.dp),
) {
@@ -278,7 +278,7 @@ fun SmartspacerSettings(
val prefs2 = preferenceManager2()
Column(modifier) {
PreferenceGroupPositionAware(
PreferenceGroup(
heading = stringResource(id = R.string.smartspacer_settings),
) {
item { _ ->