opt: color (#1782)

* fixes

* opt: color

* fix
This commit is contained in:
My-Responsitories
2025-12-18 11:08:03 +08:00
committed by GitHub
parent 11cdb67050
commit d7f7611af4
7 changed files with 102 additions and 58 deletions

View File

@@ -8,11 +8,13 @@ import 'package:PiliPlus/models/common/theme/theme_type.dart';
import 'package:PiliPlus/pages/home/view.dart';
import 'package:PiliPlus/pages/mine/controller.dart';
import 'package:PiliPlus/pages/setting/widgets/select_dialog.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_key.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:flex_seed_scheme/flex_seed_scheme.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
@@ -45,7 +47,7 @@ List<Item> generateItems(int count) {
}
class _ColorSelectPageState extends State<ColorSelectPage> {
final ColorSelectController ctr = Get.put(ColorSelectController());
final ctr = Get.put(ColorSelectController());
FlexSchemeVariant _dynamicSchemeVariant =
FlexSchemeVariant.values[Pref.schemeVariant];
@@ -177,9 +179,15 @@ class _ColorSelectPageState extends State<ColorSelectPage> {
..dynamicColor.value = val!
..setting.put(SettingBoxKey.dynamicColor, val);
if (val) {
await MyApp.initPlatformState();
if (await MyApp.initPlatformState()) {
Get.forceAppUpdate();
} else {
SmartDialog.showToast('该设备可能不支持动态取色');
ctr.dynamicColor.value = false;
}
} else {
Get.forceAppUpdate();
}
Get.forceAppUpdate();
},
),
),
@@ -218,7 +226,10 @@ class _ColorSelectPageState extends State<ColorSelectPage> {
spacing: 3,
children: [
ColorPalette(
color: item.color,
colorScheme: item.color.asColorSchemeSeed(
_dynamicSchemeVariant,
theme.brightness,
),
selected: ctr.currentColor.value == index,
),
Text(
@@ -275,5 +286,5 @@ class ColorSelectController extends GetxController {
final RxDouble currentTextScale = Pref.defaultTextScale.obs;
final Rx<ThemeType> themeType = Pref.themeType.obs;
Box setting = GStorage.setting;
Box get setting => GStorage.setting;
}