diff --git a/app/src/main/java/me/bmax/apatch/ui/component/BackgroundOptionsDialog.kt b/app/src/main/java/me/bmax/apatch/ui/component/BackgroundOptionsDialog.kt index b811f32eb..a91d55ec0 100644 --- a/app/src/main/java/me/bmax/apatch/ui/component/BackgroundOptionsDialog.kt +++ b/app/src/main/java/me/bmax/apatch/ui/component/BackgroundOptionsDialog.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Delete import androidx.compose.material.icons.filled.Image +import androidx.compose.material.icons.filled.Restore import androidx.compose.material3.AlertDialogDefaults import androidx.compose.material3.BasicAlertDialog import androidx.compose.material3.ExperimentalMaterial3Api @@ -68,6 +69,8 @@ fun BackgroundOptionsDialog( showBannerSection: Boolean = true, onSelectImage: () -> Unit, onClearImage: () -> Unit, + onRestoreDefault: (() -> Unit)? = null, // 改为可空,默认 null + restoreLabel: String = "", // 改为默认空字符串 // 模块信息相关(可选,不提供时不显示模块信息区域) customInfoTitle: String = "", customInfoNameLabel: String = "", @@ -153,6 +156,22 @@ fun BackgroundOptionsDialog( modifier = Modifier.padding(start = 8.dp) ) } + // 恢复默认壁纸按钮(和"选择图片"风格一致) + if (onRestoreDefault != null) { + FilledTonalButton( + onClick = { + onDismiss() + onRestoreDefault() + }, + modifier = Modifier + .fillMaxWidth() + .height(52.dp), + shape = RoundedCornerShape(14.dp), + ) { + Icon(Icons.Default.Restore, contentDescription = null, modifier = Modifier.size(20.dp)) + Text(text = restoreLabel, modifier = Modifier.padding(start = 8.dp)) + } + } // 清除按钮 — Outlined 风格,仅有已存在图片时显示 if (hasExisting) { OutlinedButton( diff --git a/app/src/main/java/me/bmax/apatch/ui/screen/HomeV4.kt b/app/src/main/java/me/bmax/apatch/ui/screen/HomeV4.kt index 3c84f5ebb..6b1294ad2 100644 --- a/app/src/main/java/me/bmax/apatch/ui/screen/HomeV4.kt +++ b/app/src/main/java/me/bmax/apatch/ui/screen/HomeV4.kt @@ -484,7 +484,6 @@ private fun HeroStatusCard( Row( modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween ) { VersionInfoColumn( modifier = Modifier.weight(1f), @@ -591,6 +590,12 @@ private fun HeroStatusCard( markdown = false, ) }, + // 新增:恢复默认壁纸 + onRestoreDefault = { + BackgroundManager.provisionDefaultDashboardCardBg(context) + showToast(context, context.getString(R.string.dashboard_card_background_restored)) + }, + restoreLabel = stringResource(R.string.dashboard_card_background_restore) ) } } @@ -772,10 +777,12 @@ private fun ModeLabelChip(label: String, contentColor: Color) { private fun VersionInfoColumn( modifier: Modifier = Modifier, label: String, - value: String + value: String, + horizontalAlignment: Alignment.Horizontal = Alignment.CenterHorizontally ) { Column( - modifier = modifier + modifier = modifier, + horizontalAlignment = horizontalAlignment ) { Text( text = label, diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 7db93f7a3..84ca6c903 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -188,6 +188,8 @@ 当前: %s SELinux 完全强制执行访问规则 SELinux 仅记录违规操作,不会拒绝 + 切换为宽容模式将关闭SELinux强制拦截,权限违规行为仅记录日志而不会直接拒绝,设备安全性会下降,是否继续? + 切换为强制模式?SELinux将启用完整权限管控,拦截所有未授权访问行为。 设备 系统版本 @@ -867,6 +869,8 @@ KernelPatch 需要修补 boot 镜像。 仪表盘壁纸保存成功 仪表盘壁纸保存失败 仪表盘壁纸已清除 + 恢复默认壁纸 + 已恢复默认壁纸 启用昼夜双暗度 自动根据明暗主题调整仪表盘壁纸暗度 白天模式仪表盘壁纸暗度 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b4ec1b3cc..3ae7f9a39 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -948,6 +948,8 @@ Please ensure the app is completely closed and reopened for the commands to exec Dashboard wallpaper saved successfully Failed to save dashboard wallpaper Dashboard wallpaper cleared + Restore Default + Default wallpaper restored Enable dual day/night dim Automatically adjust dashboard wallpaper dim for light and dark themes Day mode dashboard wallpaper dim