50 lines
1.3 KiB
Dart
50 lines
1.3 KiB
Dart
import 'dart:developer';
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
import 'theme_state.dart';
|
|
import 'package:kmobile/config/theme_type.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
// import 'package:kmobile/config/themes.dart';
|
|
|
|
class ThemeCubit extends Cubit<ThemeState> {
|
|
ThemeCubit(): super(ThemeViolet()) {
|
|
loadTheme();
|
|
}
|
|
|
|
Future<void> loadTheme() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
final themeIndex = prefs.getInt('theme_type') ?? 0;
|
|
// final isDark = prefs.getBool('is_dark_mode') ?? false;
|
|
|
|
final type = ThemeType.values[themeIndex];
|
|
switch(type) {
|
|
case ThemeType.blue:
|
|
emit(ThemeBlue());
|
|
case ThemeType.violet:
|
|
emit(ThemeViolet());
|
|
default:
|
|
emit(ThemeViolet());
|
|
}
|
|
}
|
|
|
|
Future<void> changeTheme(ThemeType type) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setInt('theme_type', type.index);
|
|
log("Mode Change");
|
|
print("mode changed");
|
|
switch(type) {
|
|
case ThemeType.blue:
|
|
emit(ThemeBlue());
|
|
print('blue matched');
|
|
break;
|
|
case ThemeType.violet:
|
|
emit(ThemeViolet());
|
|
print('violet matched');
|
|
break;
|
|
default:
|
|
emit(ThemeBlue());
|
|
print('default macthed');
|
|
}
|
|
}
|
|
}
|
|
|