// Flutter imports: import 'package:flutter/material.dart' show ThemeMode; import 'package:remever/common/resources.dart'; import 'package:remever/common/storage.dart'; import 'package:remever/components/extensions/theme_mode.dart'; import 'package:remever/interfaces/warmup_service.dart'; import 'core_service.dart'; /// /// Сервис для работы с темой приложения /// class ThemeService extends CoreService implements IWarmupService { @override Future init() async { final ThemeMode? theme = hiveTheme.get(StorageKeys.themeKey); if (theme == null) { await hiveTheme.put(StorageKeys.themeKey, ThemeMode.light); } } /// /// Получение текущего значения для темы /// /// По-умолчанию - светлый /// ThemeMode get themeMode { return hiveTheme.get(StorageKeys.themeKey, defaultValue: ThemeMode.light)!; } /// /// Обновление темы приложения /// /// [oldThemeMode] должно быть текущее значение темы. Автоматически будет /// вызван метод {inversed} /// Future update(ThemeMode oldThemeMode) async { return updateInversed(oldThemeMode.inversed); } /// /// Обновление темы приложения /// Future updateInversed(ThemeMode themeMode) async { return hiveTheme.put(StorageKeys.themeKey, themeMode); } }