35 lines
1.0 KiB
Dart
35 lines
1.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:hive_ce/hive.dart';
|
|
|
|
class SettingsService extends ChangeNotifier {
|
|
static const String _darkModeKey = 'darkMode';
|
|
static const String _languageCodeKey = 'languageCode'; // Новый ключ для языка
|
|
late final Box _settingsBox;
|
|
|
|
SettingsService() {
|
|
_settingsBox = Hive.box('settings');
|
|
}
|
|
|
|
bool get isDarkMode => _settingsBox.get(_darkModeKey, defaultValue: false);
|
|
|
|
Future<void> setDarkMode(bool value) async {
|
|
await _settingsBox.put(_darkModeKey, value);
|
|
notifyListeners();
|
|
}
|
|
|
|
Future<void> toggleTheme() async {
|
|
await setDarkMode(!isDarkMode);
|
|
}
|
|
|
|
// Новый геттер для получения кода языка
|
|
String get languageCode => _settingsBox.get(_languageCodeKey, defaultValue: 'ru');
|
|
|
|
// Новый метод для установки кода языка
|
|
Future<void> setLanguageCode(String code) async {
|
|
await _settingsBox.put(_languageCodeKey, code);
|
|
notifyListeners();
|
|
}
|
|
}
|
|
|
|
|