Skip to content

Commit

Permalink
Improve PreferenceDashboard UI
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperDragonXD committed Jul 26, 2024
1 parent 1834fb0 commit c36e06c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@

package app.lawnchair.ui.preferences

import android.app.Activity
import android.content.Context
import android.content.ContextWrapper
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
Expand Down Expand Up @@ -73,12 +71,6 @@ class PreferenceActivity : AppCompatActivity() {
}
}

fun Context.findActivity(): Activity? = when (this) {
is Activity -> this
is ContextWrapper -> baseContext.findActivity()
else -> null
}

/**
* The default light scrim, as defined by androidx and the platform:
* https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:activity/activity/src/main/java/androidx/activity/EdgeToEdge.kt;l=35-38;drc=27e7d52e8604a080133e8b842db10c89b4482598
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import android.content.Intent
import android.content.pm.LauncherApps
import android.os.Process
import android.provider.Settings
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Spacer
Expand All @@ -20,9 +21,11 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.material3.surfaceColorAtElevation
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
Expand All @@ -33,7 +36,6 @@ import app.lawnchair.backup.ui.restoreBackupOpener
import app.lawnchair.preferences.observeAsState
import app.lawnchair.preferences.preferenceManager
import app.lawnchair.ui.OverflowMenu
import app.lawnchair.ui.preferences.LocalNavController
import app.lawnchair.ui.preferences.components.AnnouncementPreference
import app.lawnchair.ui.preferences.components.controls.PreferenceCategory
import app.lawnchair.ui.preferences.components.controls.WarningPreference
Expand All @@ -43,6 +45,7 @@ import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.preferences.components.layout.PreferenceTemplate
import app.lawnchair.ui.preferences.data.liveinfo.SyncLiveInformation
import app.lawnchair.ui.preferences.navigation.Routes
import app.lawnchair.ui.util.addIf
import app.lawnchair.util.isDefaultLauncher
import app.lawnchair.util.restartLauncher
import com.android.launcher3.BuildConfig
Expand All @@ -62,7 +65,7 @@ fun PreferencesDashboard(
modifier = modifier,
verticalArrangement = Arrangement.Top,
backArrowVisible = false,
actions = { PreferencesOverflowMenu() },
actions = { PreferencesOverflowMenu(currentRoute = currentRoute, onNavigate = onNavigate) },
) {
AnnouncementPreference()

Expand Down Expand Up @@ -162,21 +165,38 @@ fun PreferencesDashboard(

@Composable
fun PreferencesOverflowMenu(
currentRoute: String,
onNavigate: (String) -> Unit,
modifier: Modifier = Modifier,
) {
val navController = LocalNavController.current
val enableDebug by preferenceManager().enableDebugMenu.observeAsState()
val highlightColor = MaterialTheme.colorScheme.surfaceColorAtElevation(4.dp)
val highlightShape = MaterialTheme.shapes.large

val experimentalFeaturesRoute = Routes.EXPERIMENTAL_FEATURES
if (enableDebug) {
val resolvedRoute = Routes.DEBUG_MENU
ClickableIcon(
imageVector = Icons.Rounded.Build,
onClick = { navController.navigate(resolvedRoute) },
onClick = { onNavigate(resolvedRoute) },
modifier = Modifier.addIf(currentRoute.contains(resolvedRoute)) {
Modifier
.clip(highlightShape)
.background(highlightColor)
}
)
}
val openRestoreBackup = restoreBackupOpener()
OverflowMenu(
modifier = modifier,
modifier = modifier.addIf(
listOf(Routes.CREATE_BACKUP, Routes.RESTORE_BACKUP, experimentalFeaturesRoute).any {
currentRoute.contains(it)
},
) {
Modifier
.clip(highlightShape)
.background(highlightColor)
},
) {
val context = LocalContext.current
DropdownMenuItem(onClick = {
Expand All @@ -192,14 +212,14 @@ fun PreferencesOverflowMenu(
Text(text = stringResource(id = R.string.debug_restart_launcher))
})
DropdownMenuItem(onClick = {
navController.navigate(experimentalFeaturesRoute)
onNavigate(experimentalFeaturesRoute)
hideMenu()
}, text = {
Text(text = stringResource(id = R.string.experimental_features_label))
})
PreferenceDivider(modifier = Modifier.padding(vertical = 8.dp))
DropdownMenuItem(onClick = {
navController.navigate(Routes.CREATE_BACKUP)
onNavigate(Routes.CREATE_BACKUP)
hideMenu()
}, text = {
Text(text = stringResource(id = R.string.create_backup))
Expand Down

0 comments on commit c36e06c

Please sign in to comment.