From 2c92845af0e15fe84c4742d5574d52bd8a354bfe Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Mon, 11 Aug 2025 14:48:10 +0800 Subject: [PATCH] tweak Signed-off-by: bggRGjQaUbCoE --- lib/common/widgets/dialog/dialog.dart | 4 ++-- .../widgets/image/network_img_layer.dart | 20 +++++++++---------- lib/pages/main/view.dart | 2 ++ lib/pages/setting/models/style_settings.dart | 9 +++++---- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/common/widgets/dialog/dialog.dart b/lib/common/widgets/dialog/dialog.dart index b5325c398..99823fd61 100644 --- a/lib/common/widgets/dialog/dialog.dart +++ b/lib/common/widgets/dialog/dialog.dart @@ -1,13 +1,13 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; -Future showConfirmDialog({ +void showConfirmDialog({ required BuildContext context, required String title, dynamic content, required VoidCallback onConfirm, }) { - return showDialog( + showDialog( context: context, builder: (context) { return AlertDialog( diff --git a/lib/common/widgets/image/network_img_layer.dart b/lib/common/widgets/image/network_img_layer.dart index 30cd8d5f1..7605048ac 100644 --- a/lib/common/widgets/image/network_img_layer.dart +++ b/lib/common/widgets/image/network_img_layer.dart @@ -1,6 +1,5 @@ import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/models/common/image_type.dart'; -import 'package:PiliPlus/utils/context_ext.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/image_util.dart'; import 'package:PiliPlus/utils/storage_pref.dart'; @@ -43,26 +42,25 @@ class NetworkImgLayer extends StatelessWidget { final BoxFit? boxFit; static Color? reduceLuxColor = Pref.reduceLuxColor; + static bool reduce = false; @override Widget build(BuildContext context) { - final reduce = - quality != 100 && reduceLuxColor != null && context.isDarkMode; return src?.isNotEmpty == true ? type == ImageType.avatar - ? ClipOval(child: _buildImage(context, reduce)) + ? ClipOval(child: _buildImage(context)) : radius == 0 || type == ImageType.emote - ? _buildImage(context, reduce) + ? _buildImage(context) : ClipRRect( borderRadius: radius != null ? BorderRadius.circular(radius!) : StyleString.mdRadius, - child: _buildImage(context, reduce), + child: _buildImage(context), ) - : getPlaceHolder?.call() ?? _placeholder(context, reduce); + : getPlaceHolder?.call() ?? _placeholder(context); } - Widget _buildImage(BuildContext context, bool reduce) { + Widget _buildImage(BuildContext context) { int? memCacheWidth, memCacheHeight; if (height == null || forceUseCacheWidth || width <= height!) { memCacheWidth = width.cacheSize(context); @@ -81,15 +79,15 @@ class NetworkImgLayer extends StatelessWidget { fadeInDuration: fadeInDuration ?? const Duration(milliseconds: 120), filterQuality: FilterQuality.low, placeholder: (BuildContext context, String url) => - getPlaceHolder?.call() ?? _placeholder(context, reduce), + getPlaceHolder?.call() ?? _placeholder(context), imageBuilder: imageBuilder, - errorWidget: (context, url, error) => _placeholder(context, reduce), + errorWidget: (context, url, error) => _placeholder(context), colorBlendMode: reduce ? BlendMode.modulate : null, color: reduce ? reduceLuxColor : null, ); } - Widget _placeholder(BuildContext context, bool reduce) { + Widget _placeholder(BuildContext context) { return Container( width: width, height: height, diff --git a/lib/pages/main/view.dart b/lib/pages/main/view.dart index 0a6350702..55750e426 100644 --- a/lib/pages/main/view.dart +++ b/lib/pages/main/view.dart @@ -41,6 +41,8 @@ class _MainAppState extends State @override void didChangeDependencies() { super.didChangeDependencies(); + NetworkImgLayer.reduce = + NetworkImgLayer.reduceLuxColor != null && context.isDarkMode; MainApp.routeObserver.subscribe(this, ModalRoute.of(context) as PageRoute); } diff --git a/lib/pages/setting/models/style_settings.dart b/lib/pages/setting/models/style_settings.dart index 3f0bf32cc..5fd71f10c 100644 --- a/lib/pages/setting/models/style_settings.dart +++ b/lib/pages/setting/models/style_settings.dart @@ -449,6 +449,7 @@ List get styleSettings => [ SettingsModel( settingsType: SettingsType.normal, onTap: (setState) { + final reduceLuxColor = Pref.reduceLuxColor; showDialog( context: Get.context!, builder: (context) => AlertDialog( @@ -457,9 +458,9 @@ List get styleSettings => [ title: const Text('Color Picker'), content: SlideColorPicker( showResetBtn: false, - color: Pref.reduceLuxColor ?? Colors.white, - callback: (Color? color) async { - if (color != null && color != Pref.reduceLuxColor) { + color: reduceLuxColor ?? Colors.white, + callback: (Color? color) { + if (color != null && color != reduceLuxColor) { if (color == Colors.white) { NetworkImgLayer.reduceLuxColor = null; GStorage.setting.delete(SettingBoxKey.reduceLuxColor); @@ -477,7 +478,7 @@ List get styleSettings => [ } if (color.computeLuminance() < 0.2) { - await showConfirmDialog( + showConfirmDialog( context: context, title: '确认使用#${(color.toARGB32() & 0xFFFFFF).toRadixString(16).toUpperCase().padLeft(6)}?',