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
@@ -104,18 +104,17 @@ class EngineSettingsRepository extends _$EngineSettingsRepository {
Future<void> updateSettings(
UpdateEngineSettingsFunc updateWithCurrent,
) async {
final db = ref.read(userDatabaseProvider);
final current = await fetchSettings();
final oldJson = current.toJson();
final newJson = updateWithCurrent(current).toJson();
return ref.read(userDatabaseProvider).transaction(() async {
return db.transaction(() async {
for (final MapEntry(:key, :value) in newJson.entries) {
if (oldJson[key] != value) {
await ref
.read(userDatabaseProvider)
.settingDao
.updateSetting(key, _partitionKey, value);
await db.settingDao.updateSetting(key, _partitionKey, value);
}
}
});
@@ -34,7 +34,7 @@ final class EngineSettingsRepositoryProvider
}
String _$engineSettingsRepositoryHash() =>
r'8cf0a615f825ddc6411c2985d2cdc19ef31251cb';
r'f5e50bbfc707cdae698ac201d42e165bffc7615f';
abstract class _$EngineSettingsRepository
extends $StreamNotifier<EngineSettings> {
@@ -116,13 +116,13 @@ class GeneralSettingsRepository extends _$GeneralSettingsRepository {
Future<void> updateSettings(
UpdateGeneralSettingsFunc updateWithCurrent,
) async {
final db = ref.read(userDatabaseProvider);
final current = await fetchSettings();
final oldJson = current.toJson();
final newJson = updateWithCurrent(current).toJson();
final db = ref.read(userDatabaseProvider);
return db.transaction(() async {
for (final MapEntry(:key, :value) in newJson.entries) {
if (oldJson[key] != value) {
@@ -35,7 +35,7 @@ final class GeneralSettingsRepositoryProvider
}
String _$generalSettingsRepositoryHash() =>
r'3e2a07b8956094cd9376a254d9aedaa80a3c45c4';
r'a9b21f9c5ef50bb8a8761995ed2fea723375b80e';
abstract class _$GeneralSettingsRepository
extends $StreamNotifier<GeneralSettings> {
@@ -69,13 +69,13 @@ class TorSettingsRepository extends _$TorSettingsRepository {
}
Future<void> updateSettings(UpdateTorSettingsFunc updateWithCurrent) async {
final db = ref.read(userDatabaseProvider);
final current = await fetchSettings();
final oldJson = current.toJson();
final newJson = updateWithCurrent(current).toJson();
final db = ref.read(userDatabaseProvider);
return db.transaction(() async {
for (final MapEntry(:key, :value) in newJson.entries) {
if (oldJson[key] != value) {
@@ -34,7 +34,7 @@ final class TorSettingsRepositoryProvider
}
String _$torSettingsRepositoryHash() =>
r'be8519d4baf60436cae422813c2f2bbb5c2186d3';
r'341730ed58b49ab3d721583e0f2d5ac650018918';
abstract class _$TorSettingsRepository extends $StreamNotifier<TorSettings> {
Stream<TorSettings> build();