You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
881 B
34 lines
881 B
import 'package:get/get.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:get_storage/get_storage.dart';
|
|
|
|
class AppController extends GetxController {
|
|
static AppController get to => Get.find();
|
|
|
|
final _isDarkMode = false.obs;
|
|
final _currentIndex = 0.obs;
|
|
final _storage = GetStorage();
|
|
|
|
bool get isDarkMode => _isDarkMode.value;
|
|
int get currentIndex => _currentIndex.value;
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
_loadThemeMode();
|
|
}
|
|
|
|
void _loadThemeMode() {
|
|
_isDarkMode.value = _storage.read('isDarkMode') ?? false;
|
|
}
|
|
|
|
Future<void> toggleThemeMode() async {
|
|
_isDarkMode.value = !_isDarkMode.value;
|
|
Get.changeThemeMode(_isDarkMode.value ? ThemeMode.dark : ThemeMode.light);
|
|
await _storage.write('isDarkMode', _isDarkMode.value);
|
|
}
|
|
|
|
void changeIndex(int index) {
|
|
_currentIndex.value = index;
|
|
}
|
|
}
|