feat: harden geofence and distance diagnostics
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
import '../../../models/home_config.dart';
|
||||
import '../geofence_task_sync.dart';
|
||||
import '../services/geofence_runtime_store.dart';
|
||||
import '../../auth/providers/auth_providers.dart';
|
||||
import '../../shared/providers/core_providers.dart';
|
||||
|
||||
@@ -39,9 +41,11 @@ class CurrentHomeNotifier extends Notifier<HomeConfig?> {
|
||||
try {
|
||||
await switchTo(home);
|
||||
await ref.read(authInfoProvider.notifier).load(failOnError: true);
|
||||
await syncGeofenceTask(ref.read(homesProvider), currentHome: state);
|
||||
} catch (error) {
|
||||
await _restoreSelection(previousHome);
|
||||
ref.read(authInfoProvider.notifier).restore(previousAuthState);
|
||||
await syncGeofenceTask(ref.read(homesProvider), currentHome: state);
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
@@ -49,6 +53,7 @@ class CurrentHomeNotifier extends Notifier<HomeConfig?> {
|
||||
Future<void> clear() async {
|
||||
await ref.read(settingsServiceProvider).setCurrentHomeId(null);
|
||||
state = null;
|
||||
await syncGeofenceTask(ref.read(homesProvider), currentHome: null);
|
||||
}
|
||||
|
||||
/// Инициализировать API-клиент текущим домом
|
||||
@@ -91,6 +96,7 @@ class HomesNotifier extends Notifier<List<HomeConfig>> {
|
||||
|
||||
Future<void> remove(String id) async {
|
||||
await ref.read(settingsServiceProvider).deleteHome(id);
|
||||
await GeofenceRuntimeStore().removeHome(id);
|
||||
await load();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user