24 lines
801 B
Dart
24 lines
801 B
Dart
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'theme_mode_state.dart';
|
|
|
|
class ThemeModeCubit extends Cubit<ThemeModeState> {
|
|
ThemeModeCubit() : super(const ThemeModeState(mode: ThemeMode.system)) {
|
|
loadThemeMode();
|
|
}
|
|
|
|
Future<void> loadThemeMode() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final modeIndex = prefs.getInt('theme_mode') ?? 0; // default system
|
|
final mode = ThemeMode.values[modeIndex];
|
|
emit(ThemeModeState(mode: mode));
|
|
}
|
|
|
|
Future<void> changeThemeMode(ThemeMode mode) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setInt('theme_mode', mode.index);
|
|
emit(ThemeModeState(mode: mode));
|
|
}
|
|
}
|