Skip to content

Commit

Permalink
[optimize|build] Optimize SettingsItem.kt; update dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
SkyD666 committed Apr 21, 2024
1 parent 21d58e2 commit f626191
Show file tree
Hide file tree
Showing 24 changed files with 104 additions and 99 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ android {
minSdk = 24
targetSdk = 34
versionCode = 65
versionName = "2.2-rc02"
versionName = "2.2-rc03"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Expand Down Expand Up @@ -168,7 +168,7 @@ dependencies {
implementation("androidx.navigation:navigation-compose:2.7.7")
implementation("androidx.security:security-crypto:1.1.0-alpha06")
implementation("com.google.accompanist:accompanist-drawablepainter:$accompanistVersion")
implementation("io.coil-kt:coil-compose:2.5.0")
implementation("io.coil-kt:coil-compose:2.6.0")
implementation("io.coil-kt:coil-gif:2.5.0")
implementation("androidx.profileinstaller:profileinstaller:1.3.1")
implementation("androidx.core:core-splashscreen:1.0.1")
Expand Down
79 changes: 42 additions & 37 deletions app/src/main/java/com/skyd/rays/ui/component/SettingsItem.kt
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ fun BannerItem(content: @Composable () -> Unit) {

@Composable
fun SliderSettingsItem(
icon: ImageVector,
imageVector: ImageVector?,
text: String,
value: Float,
modifier: Modifier = Modifier,
Expand All @@ -84,7 +84,7 @@ fun SliderSettingsItem(
onValueChange: (Float) -> Unit,
) {
SliderSettingsItem(
icon = rememberVectorPainter(image = icon),
painter = imageVector?.let { rememberVectorPainter(image = it) },
text = text,
value = value,
modifier = modifier,
Expand All @@ -99,7 +99,7 @@ fun SliderSettingsItem(

@Composable
fun SliderSettingsItem(
icon: Painter,
painter: Painter?,
text: String,
value: Float,
modifier: Modifier = Modifier,
Expand All @@ -112,7 +112,7 @@ fun SliderSettingsItem(
onValueChange: (Float) -> Unit,
) {
BaseSettingsItem(
icon = icon,
painter = painter,
text = text,
modifier = modifier,
enabled = enabled,
Expand All @@ -136,7 +136,7 @@ fun SliderSettingsItem(

@Composable
fun SwitchSettingsItem(
icon: ImageVector,
imageVector: ImageVector?,
text: String,
modifier: Modifier = Modifier,
description: String? = null,
Expand All @@ -145,7 +145,7 @@ fun SwitchSettingsItem(
onCheckedChange: ((Boolean) -> Unit)?,
) {
SwitchSettingsItem(
icon = rememberVectorPainter(image = icon),
painter = imageVector?.let { rememberVectorPainter(image = it) },
text = text,
modifier = modifier,
description = description,
Expand All @@ -157,7 +157,7 @@ fun SwitchSettingsItem(

@Composable
fun SwitchSettingsItem(
icon: Painter,
painter: Painter?,
text: String,
modifier: Modifier = Modifier,
description: String? = null,
Expand All @@ -175,7 +175,7 @@ fun SwitchSettingsItem(
role = Role.Switch,
onValueChange = { onCheckedChange?.invoke(it) },
),
icon = icon,
painter = painter,
text = text,
descriptionText = description,
enabled = enabled,
Expand All @@ -191,7 +191,7 @@ fun SwitchSettingsItem(

@Composable
fun RadioSettingsItem(
icon: ImageVector,
imageVector: ImageVector?,
text: String,
modifier: Modifier = Modifier,
description: String? = null,
Expand All @@ -200,7 +200,7 @@ fun RadioSettingsItem(
onClick: (() -> Unit)? = null,
) {
RadioSettingsItem(
icon = rememberVectorPainter(image = icon),
painter = imageVector?.let { rememberVectorPainter(image = it) },
text = text,
modifier = modifier,
description = description,
Expand All @@ -212,7 +212,7 @@ fun RadioSettingsItem(

@Composable
fun RadioSettingsItem(
icon: Painter,
painter: Painter?,
text: String,
modifier: Modifier = Modifier,
description: String? = null,
Expand All @@ -231,7 +231,7 @@ fun RadioSettingsItem(
role = Role.RadioButton,
onClick = { onClick?.invoke() },
),
icon = icon,
painter = painter,
text = text,
descriptionText = description,
enabled = enabled,
Expand All @@ -247,15 +247,15 @@ fun RadioSettingsItem(

@Composable
fun ColorSettingsItem(
icon: ImageVector,
imageVector: ImageVector?,
text: String,
modifier: Modifier = Modifier,
description: String? = null,
onClick: (() -> Unit)? = null,
initColor: Color,
) {
ColorSettingsItem(
icon = rememberVectorPainter(image = icon),
painter = imageVector?.let { rememberVectorPainter(image = it) },
text = text,
modifier = modifier,
description = description,
Expand All @@ -266,15 +266,15 @@ fun ColorSettingsItem(

@Composable
fun ColorSettingsItem(
icon: Painter,
painter: Painter?,
text: String,
modifier: Modifier = Modifier,
description: String? = null,
onClick: (() -> Unit)? = null,
initColor: Color,
) {
BaseSettingsItem(
icon = icon,
painter = painter,
text = text,
modifier = modifier,
descriptionText = description,
Expand All @@ -296,22 +296,22 @@ fun ColorSettingsItem(
@Composable
fun BaseSettingsItem(
modifier: Modifier = Modifier,
icon: Painter,
painter: Painter?,
text: String,
descriptionText: String? = null,
enabled: Boolean = true,
onClick: (() -> Unit)? = null,
onLongClick: (() -> Unit)? = null,
dropdownMenu: (@Composable () -> Unit)? = null,
content: (@Composable () -> Unit)? = null
) {
BaseSettingsItem(
modifier = modifier,
icon = icon,
painter = painter,
text = text,
description = if (descriptionText != null) {
{
Text(
modifier = Modifier.padding(top = 5.dp),
text = descriptionText,
style = MaterialTheme.typography.bodyMedium,
maxLines = 3,
Expand All @@ -322,19 +322,21 @@ fun BaseSettingsItem(
enabled = enabled,
onClick = if (enabled) onClick else null,
onLongClick = if (enabled) onLongClick else null,
dropdownMenu = dropdownMenu,
content = content,
)
}

@Composable
fun BaseSettingsItem(
modifier: Modifier = Modifier,
icon: Painter,
painter: Painter?,
text: String,
description: (@Composable () -> Unit)? = null,
enabled: Boolean = true,
onClick: (() -> Unit)? = null,
onLongClick: (() -> Unit)? = null,
dropdownMenu: (@Composable () -> Unit)? = null,
content: (@Composable () -> Unit)? = null
) {
CompositionLocalProvider(
Expand All @@ -355,22 +357,24 @@ fun BaseSettingsItem(
.padding(LocalVerticalPadding.current),
verticalAlignment = Alignment.CenterVertically
) {
if (LocalUseColorfulIcon.current) {
Image(
modifier = Modifier
.padding(10.dp)
.size(24.dp),
painter = icon,
contentDescription = null
)
} else {
Icon(
modifier = Modifier
.padding(10.dp)
.size(24.dp),
painter = icon,
contentDescription = null,
)
if (painter != null) {
if (LocalUseColorfulIcon.current) {
Image(
modifier = Modifier
.padding(10.dp)
.size(24.dp),
painter = painter,
contentDescription = null
)
} else {
Icon(
modifier = Modifier
.padding(10.dp)
.size(24.dp),
painter = painter,
contentDescription = null,
)
}
}
Column(
modifier = Modifier
Expand All @@ -383,6 +387,7 @@ fun BaseSettingsItem(
maxLines = 3,
overflow = TextOverflow.Ellipsis,
)
dropdownMenu?.invoke()
if (description != null) {
Box(modifier = Modifier.padding(top = 5.dp)) {
description.invoke()
Expand All @@ -400,7 +405,7 @@ fun BaseSettingsItem(
fun CategorySettingsItem(text: String) {
Text(
modifier = Modifier.padding(
start = 16.dp + 10.dp + 24.dp + 10.dp + 10.dp,
start = 16.dp + 10.dp,
end = 20.dp,
top = 10.dp,
bottom = 5.dp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,55 +54,55 @@ fun SettingsScreen() {
) {
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.Default.Palette),
painter = rememberVectorPainter(Icons.Default.Palette),
text = stringResource(id = R.string.appearance_screen_name),
descriptionText = stringResource(id = R.string.setting_screen_appearance_description),
onClick = { navController.navigate(APPEARANCE_SCREEN_ROUTE) }
)
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.AutoMirrored.Default.ManageSearch),
painter = rememberVectorPainter(Icons.AutoMirrored.Default.ManageSearch),
text = stringResource(id = R.string.search_config_screen_name),
descriptionText = stringResource(id = R.string.setting_screen_search_description),
onClick = { navController.navigate(SEARCH_CONFIG_SCREEN_ROUTE) }
)
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.Default.Share),
painter = rememberVectorPainter(Icons.Default.Share),
text = stringResource(id = R.string.share_config_screen_name),
descriptionText = stringResource(id = R.string.setting_screen_share_config_description),
onClick = { navController.navigate(SHARE_CONFIG_SCREEN_ROUTE) }
)
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.Default.Dataset),
painter = rememberVectorPainter(Icons.Default.Dataset),
text = stringResource(id = R.string.data_screen_name),
descriptionText = stringResource(id = R.string.setting_screen_data_description),
onClick = { navController.navigate(DATA_SCREEN_ROUTE) }
)
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.Default.SmartToy),
painter = rememberVectorPainter(Icons.Default.SmartToy),
text = stringResource(id = R.string.ml_screen_name),
descriptionText = stringResource(id = R.string.setting_screen_ml_description),
onClick = { navController.navigate(ML_SCREEN_ROUTE) }
)
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.Default.AdminPanelSettings),
painter = rememberVectorPainter(Icons.Default.AdminPanelSettings),
text = stringResource(id = R.string.privacy_screen_name),
descriptionText = stringResource(id = R.string.setting_screen_privacy_description),
onClick = { navController.navigate(PRIVACY_SCREEN_ROUTE) }
)
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.Default.Api),
painter = rememberVectorPainter(Icons.Default.Api),
text = stringResource(id = R.string.api_screen_name),
descriptionText = stringResource(id = R.string.setting_screen_api_description),
onClick = { navController.navigate(API_SCREEN_ROUTE) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ fun ApiScreen() {
) {
item {
BaseSettingsItem(
icon = rememberVectorPainter(Icons.Default.Visibility),
painter = rememberVectorPainter(Icons.Default.Visibility),
text = stringResource(id = R.string.api_grant_screen_name),
descriptionText = stringResource(id = R.string.api_grant_screen_description),
onClick = { navController.navigate(API_GRANT_SCREEN_ROUTE) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ fun ApiGrantScreen(viewModel: ApiGrantViewModel = hiltViewModel()) {
item {
BannerItem {
SwitchSettingsItem(
icon = if (apiGrant) Icons.Default.Visibility else Icons.Default.VisibilityOff,
imageVector = if (apiGrant) Icons.Default.Visibility else Icons.Default.VisibilityOff,
text = stringResource(id = R.string.api_grant_screen_enable),
checked = apiGrant,
onCheckedChange = {
Expand Down Expand Up @@ -132,7 +132,7 @@ fun ApiGrantScreen(viewModel: ApiGrantViewModel = hiltViewModel()) {
) {
SwitchSettingsItem(
modifier = Modifier.background(MaterialTheme.colorScheme.background),
icon = rememberDrawablePainter(drawable = item.appIcon),
painter = rememberDrawablePainter(drawable = item.appIcon),
checked = item.apiGrantPackageBean.enabled,
enabled = apiGrant,
text = item.appName,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,15 +146,15 @@ fun AppearanceScreen() {
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(image = Icons.Default.DarkMode),
painter = rememberVectorPainter(image = Icons.Default.DarkMode),
text = stringResource(id = R.string.appearance_screen_dark_mode),
descriptionText = stringResource(id = R.string.appearance_screen_dark_mode_description),
onClick = { openDarkBottomSheet = true }
)
}
item {
SwitchSettingsItem(
icon = Icons.Default.Palette,
imageVector = Icons.Default.Palette,
text = stringResource(R.string.appearance_screen_sticker_color_theme),
description = stringResource(R.string.appearance_screen_sticker_color_theme_description),
checked = LocalStickerColorTheme.current,
Expand All @@ -172,7 +172,7 @@ fun AppearanceScreen() {
}
item {
BaseSettingsItem(
icon = rememberVectorPainter(image = Icons.Default.Search),
painter = rememberVectorPainter(image = Icons.Default.Search),
text = stringResource(id = R.string.search_style_screen_name),
descriptionText = null,
onClick = { navController.navigate(SEARCH_STYLE_SCREEN_ROUTE) }
Expand Down
Loading

0 comments on commit f626191

Please sign in to comment.