Merge branch 'fix' into alpha
This commit is contained in:
@ -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;
|
||||||
|
|||||||
@ -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(
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user