Files
Remever/lib/services/core/theme_service.dart
2025-03-03 20:59:42 +03:00

49 lines
1.4 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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<void> 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<void> update(ThemeMode oldThemeMode) async {
return updateInversed(oldThemeMode.inversed);
}
///
/// Обновление темы приложения
///
Future<void> updateInversed(ThemeMode themeMode) async {
return hiveTheme.put(StorageKeys.themeKey, themeMode);
}
}