JamesZhang 1 년 전
부모
커밋
a51cfa54d3
3개의 변경된 파일39개의 추가작업 그리고 0개의 파일을 삭제
  1. 2 0
      lib/appfx.dart
  2. 35 0
      lib/theme/appTheme.dart
  3. 2 0
      pubspec.yaml

+ 2 - 0
lib/appfx.dart

@@ -4,3 +4,5 @@ export 'util/tools.dart';
 export 'util/logger.dart';
 
 export 'store/dbMgrBase.dart';
+
+export 'theme/appTheme.dart';

+ 35 - 0
lib/theme/appTheme.dart

@@ -0,0 +1,35 @@
+
+import 'package:flutter/material.dart';
+import 'package:flutter_riverpod/flutter_riverpod.dart';
+
+
+class AppTheme {
+
+  static final appThemeProvider = StateProvider<ThemeMode?>((ref) {
+    return ThemeMode.system;
+  });
+
+  static late WidgetRef? _appWidgetRef;
+  static StateController<ThemeMode?>? _appThemeNotifier;
+  static setRootWidgetRef(WidgetRef ref) {
+    _appWidgetRef = ref;
+    _appThemeNotifier = ref.watch(appThemeProvider.notifier);
+  }
+
+
+  static ThemeMode? getTheme([WidgetRef? ref]) {
+    if (ref != null) {
+      return ref.watch(appThemeProvider);
+    } else {
+      return _appWidgetRef!.watch(appThemeProvider);
+    }
+  }
+
+
+  static setTheme(ThemeMode mode) {
+    _appThemeNotifier?.state = mode;
+  }
+
+
+}
+

+ 2 - 0
pubspec.yaml

@@ -8,6 +8,8 @@ environment:
   sdk: '>=3.2.2 <4.0.0'
 
 dependencies:
+  flutter:
+    sdk: flutter
   convert: ^3.1.1
   flutter_riverpod: ^2.4.9
   riverpod_annotation: ^2.3.3