From 88a65e7374a45a950c4512396988e00a08c8d316 Mon Sep 17 00:00:00 2001 From: Pun Butrach Date: Sat, 13 Dec 2025 17:29:35 +0700 Subject: [PATCH] refactor: Replace old PreferenceGroup PreferenceGroupPositionAware is now stable enough, replace the old PreferenceGroup with this --- .../components/DraggablePreference.kt | 4 +- .../components/layout/PreferenceGroup.kt | 52 +------------------ .../search/DockSearchPreferences.kt | 8 +-- .../search/DrawerSearchPreferences.kt | 6 +-- .../components/search/FileSearchProvider.kt | 6 +-- .../search/SearchProviderPreference.kt | 6 +-- .../AppDrawerFoldersPreference.kt | 7 ++- .../destinations/AppDrawerPreferences.kt | 12 ++--- .../destinations/CustomIconShapePreference.kt | 6 +-- .../destinations/DebugMenuPreferences.kt | 8 +-- .../ExperimentalFeaturesPreferences.kt | 6 +-- .../destinations/FolderPreferences.kt | 8 +-- .../destinations/GeneralPreferences.kt | 12 ++--- .../destinations/GesturePreferences.kt | 4 +- .../destinations/HomeScreenGridPreferences.kt | 4 +- .../destinations/HomeScreenPreferences.kt | 22 ++++---- .../destinations/IconPackPreferences.kt | 6 +-- .../destinations/IconShapePreference.kt | 6 +-- .../destinations/PreferencesDashboard.kt | 4 +- .../destinations/QuickstepPreferences.kt | 8 ++- .../destinations/SearchPreferences.kt | 4 +- .../destinations/SearchProviderPreferences.kt | 4 +- .../destinations/SmartspacePreferences.kt | 12 ++--- 23 files changed, 81 insertions(+), 134 deletions(-) diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/DraggablePreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/DraggablePreference.kt index 07ccbaa5d1..1bd5eb23e2 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/DraggablePreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/DraggablePreference.kt @@ -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 DraggablePreferenceGroup( } ExpandAndShrink(visible = localItems != defaultList) { - PreferenceGroupPositionAware { + PreferenceGroup { item { _ -> ClickablePreference(label = stringResource(id = R.string.action_reset)) { onOrderChange(defaultList) diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/layout/PreferenceGroup.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/layout/PreferenceGroup.kt index ea95a1c08d..e02f17751f 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/layout/PreferenceGroup.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/layout/PreferenceGroup.kt @@ -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, diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/search/DockSearchPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/search/DockSearchPreferences.kt index 28f4f4d063..28d306739b 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/search/DockSearchPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/search/DockSearchPreferences.kt @@ -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 { _ -> diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/search/DrawerSearchPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/search/DrawerSearchPreferences.kt index 8b7280a82e..e42378cd03 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/search/DrawerSearchPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/search/DrawerSearchPreferences.kt @@ -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() diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/search/FileSearchProvider.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/search/FileSearchProvider.kt index 2cd47ca785..eb4a0e0235 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/search/FileSearchProvider.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/search/FileSearchProvider.kt @@ -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), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/search/SearchProviderPreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/search/SearchProviderPreference.kt index 69cff7e99b..ce6366c304 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/components/search/SearchProviderPreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/components/search/SearchProviderPreference.kt @@ -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( diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerFoldersPreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerFoldersPreference.kt index 29752839e5..5a794e3341 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerFoldersPreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerFoldersPreference.kt @@ -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 = {}, diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt index 2ca70c7570..7f31625efe 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/AppDrawerPreferences.kt @@ -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), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/CustomIconShapePreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/CustomIconShapePreference.kt index c706a66075..164889ba1e 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/CustomIconShapePreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/CustomIconShapePreference.kt @@ -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), ) { diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/DebugMenuPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/DebugMenuPreferences.kt index 106f8bd74a..34ca694c3c 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/DebugMenuPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/DebugMenuPreferences.kt @@ -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", diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/ExperimentalFeaturesPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/ExperimentalFeaturesPreferences.kt index f4e4569b64..a25c5f62b7 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/ExperimentalFeaturesPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/ExperimentalFeaturesPreferences.kt @@ -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), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt index bf26e6dffd..9c9bbd0c40 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/FolderPreferences.kt @@ -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, diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/GeneralPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/GeneralPreferences.kt index ed94b95331..e7156a6a55 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/GeneralPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/GeneralPreferences.kt @@ -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) } diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/GesturePreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/GesturePreferences.kt index a500e74b24..01f95a72e8 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/GesturePreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/GesturePreferences.kt @@ -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(), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenGridPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenGridPreferences.kt index 4632acb23a..8bd6f36e7f 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenGridPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenGridPreferences.kt @@ -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), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenPreferences.kt index 2dda6d78aa..91cf0fed35 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/HomeScreenPreferences.kt @@ -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(), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconPackPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconPackPreferences.kt index ced2145922..713c06fa6f 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconPackPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconPackPreferences.kt @@ -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, diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconShapePreference.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconShapePreference.kt index bf57885821..98c6464062 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconShapePreference.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/IconShapePreference.kt @@ -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 -> diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/PreferencesDashboard.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/PreferencesDashboard.kt index 963bd342b2..67b2e80c6d 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/PreferencesDashboard.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/PreferencesDashboard.kt @@ -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), diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/QuickstepPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/QuickstepPreferences.kt index 0d2d22d93e..adec0b1990 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/QuickstepPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/QuickstepPreferences.kt @@ -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 { _ -> diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchPreferences.kt index ff31bc7283..d2039c5b5b 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchPreferences.kt @@ -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() } diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchProviderPreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchProviderPreferences.kt index d233dc3bef..ab3704fb3a 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchProviderPreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/SearchProviderPreferences.kt @@ -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) diff --git a/lawnchair/src/app/lawnchair/ui/preferences/destinations/SmartspacePreferences.kt b/lawnchair/src/app/lawnchair/ui/preferences/destinations/SmartspacePreferences.kt index af99b86809..a19d8db957 100644 --- a/lawnchair/src/app/lawnchair/ui/preferences/destinations/SmartspacePreferences.kt +++ b/lawnchair/src/app/lawnchair/ui/preferences/destinations/SmartspacePreferences.kt @@ -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 { _ ->