provider mounted hardenings

This commit is contained in:
Fabian Freund
2025-10-02 13:34:47 +02:00
parent 550e1dd119
commit ae49d0f937
32 changed files with 197 additions and 146 deletions
@@ -52,8 +52,8 @@ Future<PreferenceSettingGroup> _preferenceSettingGroup(
Ref ref,
PreferencePartition partition,
String groupName,
) {
return ref.watch(
) async {
return await ref.watch(
_preferenceSettingGroupsProvider(partition).selectAsync(
(groups) =>
groups[groupName] ?? (throw Exception('Unknown setting group')),
@@ -104,6 +104,10 @@ class UnifiedPreferenceSettingsRepository
Map<String, PreferenceSettingGroup>? _statelessGroups;
Future<void> apply() async {
final preferenceRepository = ref.read(
_preferenceRepositoryProvider.notifier,
);
_statelessGroups = await ref.read(
_preferenceSettingGroupsProvider(partition).future,
);
@@ -117,10 +121,14 @@ class UnifiedPreferenceSettingsRepository
),
};
await ref.read(_preferenceRepositoryProvider.notifier).applyPrefs(prefs);
await preferenceRepository.applyPrefs(prefs);
}
Future<void> reset() async {
final preferenceRepository = ref.read(
_preferenceRepositoryProvider.notifier,
);
_statelessGroups = await ref.read(
_preferenceSettingGroupsProvider(partition).future,
);
@@ -130,7 +138,7 @@ class UnifiedPreferenceSettingsRepository
.flattened
.toList();
await ref.read(_preferenceRepositoryProvider.notifier).resetPrefs(prefs);
await preferenceRepository.resetPrefs(prefs);
}
@override
@@ -167,6 +175,10 @@ class PreferenceSettingsGroupRepository
PreferenceSettingGroup? _statelessSettingGroup;
Future<void> apply({List<String>? filter}) async {
final preferenceRepository = ref.read(
_preferenceRepositoryProvider.notifier,
);
_statelessSettingGroup ??= await ref.read(
_preferenceSettingGroupProvider(partition, groupName).future,
);
@@ -184,10 +196,14 @@ class PreferenceSettingsGroupRepository
.map((e) => MapEntry(e.key, e.value.value)),
);
await ref.read(_preferenceRepositoryProvider.notifier).applyPrefs(prefs);
await preferenceRepository.applyPrefs(prefs);
}
Future<void> reset({List<String>? filter}) async {
final preferenceRepository = ref.read(
_preferenceRepositoryProvider.notifier,
);
_statelessSettingGroup ??= await ref.read(
_preferenceSettingGroupProvider(partition, groupName).future,
);
@@ -199,9 +215,9 @@ class PreferenceSettingsGroupRepository
throw Exception('Preference not part of group');
}
await ref
.read(_preferenceRepositoryProvider.notifier)
.resetPrefs(filter ?? _statelessSettingGroup!.settings.keys.toList());
await preferenceRepository.resetPrefs(
filter ?? _statelessSettingGroup!.settings.keys.toList(),
);
}
@override
@@ -193,7 +193,7 @@ final class _PreferenceSettingGroupProvider
}
String _$_preferenceSettingGroupHash() =>
r'64d80a37928d7e5aea7d3d567dde8ade7292cd5f';
r'df85cf2207411a89b4c379e24989857f81d04011';
final class _PreferenceSettingGroupFamily extends $Family
with
@@ -341,7 +341,7 @@ final class UnifiedPreferenceSettingsRepositoryProvider
}
String _$unifiedPreferenceSettingsRepositoryHash() =>
r'35aa16ffa7aa1453c8331ed7470ef85a68d27178';
r'23c0da1fdc975bbfb88b3cf82f242dbe0d50cd87';
final class UnifiedPreferenceSettingsRepositoryFamily extends $Family
with
@@ -455,7 +455,7 @@ final class PreferenceSettingsGroupRepositoryProvider
}
String _$preferenceSettingsGroupRepositoryHash() =>
r'60f416ffe1cde4d535fb5b643a80aead20836bae';
r'05db908036ffa999886f4e9dc4429aa85f8957f9';
final class PreferenceSettingsGroupRepositoryFamily extends $Family
with