import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter/material.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 { ThemeCubit() : super(ThemeState( lightTheme: AppThemes.getLightTheme(ThemeType.violet), themeMode: ThemeMode.light, themeType: ThemeType.violet, )) { loadTheme(); } Future 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]; emit(state.copyWith( lightTheme: AppThemes.getLightTheme(type), themeMode: isDark ? ThemeMode.dark : ThemeMode.light, themeType: type, )); } Future changeTheme(ThemeType type) async { final prefs = await SharedPreferences.getInstance(); await prefs.setInt('theme_type', type.index); emit(state.copyWith( lightTheme: AppThemes.getLightTheme(type), themeType: type, )); } Future toggleDarkMode(bool isDark) async { final prefs = await SharedPreferences.getInstance(); await prefs.setBool('is_dark_mode', isDark); emit(state.copyWith( themeMode: isDark ? ThemeMode.dark : ThemeMode.light, )); } }