This commit is contained in:
2024-12-16 02:35:30 +03:00
parent 3800860d02
commit de1d6c85e5
12 changed files with 351 additions and 39 deletions

View File

@@ -2,18 +2,36 @@ import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
class ApplicationController extends GetxController {
final _storage = GetStorage();
IconData getThemeIcon() => Get.isDarkMode
? Icons.light_mode
: Icons.dark_mode;
void toggleTheme() {
Get.changeThemeMode(
Get.isDarkMode
? ThemeMode.light
: ThemeMode.dark
);
ThemeMode getThemeModeFromStorage() {
ThemeMode mode = ThemeMode.system;
final themeKey = _storage.read('current_theme_mode');
if(themeKey == 'light') { mode = ThemeMode.light; }
if(themeKey == 'dark') { mode = ThemeMode.dark; }
return mode;
}
void setThemeMode(ThemeMode themeMode) {
Get.changeThemeMode(themeMode);
update();
}
void toggleTheme() {
_storage.write('current_theme_mode', Get.isDarkMode ? 'light' : 'dark');
setThemeMode(
Get.isDarkMode
? ThemeMode.light
: ThemeMode.dark
);
}
}

View File

@@ -0,0 +1,24 @@
import 'package:get/get.dart';
import 'package:reverse_nn/application/services/schedule.dart';
import 'package:reverse_nn/ui/screens/calendar_screen.dart';
class CalendarScheduleController extends GetxController {
Rx<DateTime> date = DateTime.now().copyWith(hour: 12, minute: 00).obs;
RxBool loading = false.obs;
Rx<List<Map<String, dynamic>>?> schedule = null.obs;
@override void onReady() {
super.onReady();
loadSchedule(date.value);
}
void loadSchedule(DateTime date) async {
loading = true.obs; update();
schedule = (await ScheduleService().getScheduleByDate(date)).obs;
loading = false.obs; update();
}
static void openScreen() async {
Get.to(() => const CalendarScreen());
}
}

View File

@@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:get/get.dart';
import 'package:reverse_nn/application/services/schedule.dart';
@@ -6,9 +8,13 @@ class ScheduleController extends GetxController {
@override void onReady() {
super.onReady();
ScheduleService().getCurrentStatus().then((currentSchedule) {
this.currentSchedule = currentSchedule.obs;
update();
});
updateCurrentSchedule();
}
void updateCurrentSchedule() async {
currentSchedule = (await ScheduleService().getCurrentStatus()).obs;
update();
Future.delayed(const Duration(seconds: 5), updateCurrentSchedule);
}
}