Extract settings and harden geofence automation

This commit is contained in:
Artem Kokos
2026-05-15 10:18:46 +07:00
parent 1963488479
commit d796537917
21 changed files with 1392 additions and 278 deletions

View File

@@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';
import '../features/settings/models/app_theme_preset.dart';
import '../models/home_config.dart';
import 'credentials_storage.dart';
@@ -8,6 +9,7 @@ import 'credentials_storage.dart';
class SettingsService {
static const String _homesKey = 'ignis_homes';
static const String _currentHomeKey = 'ignis_current_home_id';
static const String _themeKey = 'ignis_theme_preset';
final CredentialsStorage _credentialsStorage;
@@ -107,6 +109,16 @@ class SettingsService {
Future<void> deleteHomeApiKey(String homeId) =>
_credentialsStorage.deleteApiKey(homeId);
Future<AppThemePreset> getAppThemePreset() async {
final prefs = await SharedPreferences.getInstance();
return AppThemePreset.fromStorageValue(prefs.getString(_themeKey));
}
Future<void> setAppThemePreset(AppThemePreset preset) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString(_themeKey, preset.storageValue);
}
Future<List<Map<String, dynamic>>> _migrateApiKeysIfNeeded(
SharedPreferences prefs,
List<dynamic> rawList,