Merge branch 'fix' into alpha

This commit is contained in:
guozhigq
2023-09-19 23:39:19 +08:00
3 changed files with 39 additions and 3 deletions

View File

@ -1,4 +1,7 @@
import 'dart:io';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_displaymode/flutter_displaymode.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -61,6 +64,23 @@ class MyApp extends StatelessWidget {
double textScale = double textScale =
setting.get(SettingBoxKey.defaultTextScale, defaultValue: 1.0); setting.get(SettingBoxKey.defaultTextScale, defaultValue: 1.0);
// 强制设置高帧率
if (Platform.isAndroid) {
try {
late List modes;
FlutterDisplayMode.supported.then((value) {
modes = value;
var storageDisplay = setting.get(SettingBoxKey.displayMode);
DisplayMode f = DisplayMode.auto;
if (storageDisplay != null) {
f = modes.firstWhere((e) => e.toString() == storageDisplay);
}
DisplayMode preferred = modes.toList().firstWhere((el) => el == f);
FlutterDisplayMode.setPreferredMode(preferred);
});
} catch (_) {}
}
return DynamicColorBuilder( return DynamicColorBuilder(
builder: ((ColorScheme? lightDynamic, ColorScheme? darkDynamic) { builder: ((ColorScheme? lightDynamic, ColorScheme? darkDynamic) {
ColorScheme? lightColorScheme; ColorScheme? lightColorScheme;

View File

@ -2,6 +2,8 @@ import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart'; import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_displaymode/flutter_displaymode.dart'; import 'package:flutter_displaymode/flutter_displaymode.dart';
import 'package:hive/hive.dart';
import 'package:pilipala/utils/storage.dart';
class SetDiaplayMode extends StatefulWidget { class SetDiaplayMode extends StatefulWidget {
const SetDiaplayMode({super.key}); const SetDiaplayMode({super.key});
@ -14,6 +16,7 @@ class _SetDiaplayModeState extends State<SetDiaplayMode> {
List<DisplayMode> modes = <DisplayMode>[]; List<DisplayMode> modes = <DisplayMode>[];
DisplayMode? active; DisplayMode? active;
DisplayMode? preferred; DisplayMode? preferred;
Box setting = GStrorage.setting;
final ValueNotifier<int> page = ValueNotifier<int>(0); final ValueNotifier<int> page = ValueNotifier<int>(0);
late final PageController controller = PageController() late final PageController controller = PageController()
@ -29,24 +32,36 @@ class _SetDiaplayModeState extends State<SetDiaplayMode> {
}); });
} }
// 获取所有的mode
Future<void> fetchAll() async { Future<void> fetchAll() async {
preferred = await FlutterDisplayMode.preferred; preferred = await FlutterDisplayMode.preferred;
active = await FlutterDisplayMode.active; active = await FlutterDisplayMode.active;
// GStorage().setDisplayModeType(preferred!); await setting.put(SettingBoxKey.displayMode, preferred.toString());
setState(() {}); setState(() {});
} }
// 初始化mode/手动设置
Future<void> init() async { Future<void> init() async {
try { try {
modes = await FlutterDisplayMode.supported; modes = await FlutterDisplayMode.supported;
} on PlatformException catch (e) { } on PlatformException catch (e) {
print(e); print(e);
} }
// var res = await GStorage().getDisplayModeType(); var res = await getDisplayModeType(modes);
// preferred = modes.toList().firstWhere((el) => el == res);
preferred = modes.toList().firstWhere((el) => el == res);
FlutterDisplayMode.setPreferredMode(preferred!); FlutterDisplayMode.setPreferredMode(preferred!);
} }
Future<DisplayMode> getDisplayModeType(modes) async {
var value = setting.get(SettingBoxKey.displayMode);
DisplayMode f = DisplayMode.auto;
if (value != null) {
f = modes.firstWhere((e) => e.toString() == value);
}
return f;
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(

View File

@ -129,6 +129,7 @@ class SettingBoxKey {
static const String customColor = 'customColor'; // 自定义主题色 static const String customColor = 'customColor'; // 自定义主题色
static const String iosTransition = 'iosTransition'; // ios路由 static const String iosTransition = 'iosTransition'; // ios路由
static const String enableSingleRow = 'enableSingleRow'; // 首页单列 static const String enableSingleRow = 'enableSingleRow'; // 首页单列
static const String displayMode = 'displayMode';
} }
class LocalCacheKey { class LocalCacheKey {