improved error logging and handling

This commit is contained in:
Fabian Freund
2026-01-21 11:07:23 +01:00
parent f648c43441
commit dc4a5a9c85
35 changed files with 242 additions and 115 deletions
@@ -20,6 +20,7 @@
import 'dart:typed_data';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:weblibre/core/logger.dart';
import 'package:weblibre/features/geckoview/domain/providers.dart';
import 'package:weblibre/features/user/data/providers.dart';
@@ -49,11 +50,16 @@ class CacheRepository extends _$CacheRepository {
final db = ref.watch(userDatabaseProvider);
final sub = eventService.iconUpdateEvents.listen((event) async {
if (Uri.tryParse(event.url) case final Uri url) {
await db.cacheDao.cacheIcon(url.origin, event.bytes);
}
});
final sub = eventService.iconUpdateEvents.listen(
(event) async {
if (Uri.tryParse(event.url) case final Uri url) {
await db.cacheDao.cacheIcon(url.origin, event.bytes);
}
},
onError: (Object error, StackTrace stackTrace) {
logger.e('Error in icon update events', error: error, stackTrace: stackTrace);
},
);
ref.onDispose(() async {
await sub.cancel();
@@ -41,7 +41,7 @@ final class CacheRepositoryProvider
}
}
String _$cacheRepositoryHash() => r'548b7cba9a23c21bba39f0918d7d90acaaf8d8e9';
String _$cacheRepositoryHash() => r'e3cd7461aefe9e034a663169cd81ab7f69c2640e';
abstract class _$CacheRepository extends $Notifier<void> {
void build();
@@ -6,6 +6,7 @@ import 'package:path_provider/path_provider.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:secure_archive/secure_archive.dart';
import 'package:weblibre/core/filesystem.dart';
import 'package:weblibre/core/logger.dart';
import 'package:weblibre/domain/entities/profile.dart';
import 'package:weblibre/features/user/domain/repositories/profile.dart';
@@ -95,8 +96,12 @@ class UserBackupService extends _$UserBackupService {
if (await outputDirectory.exists()) {
await outputDirectory.delete(recursive: true);
}
} catch (_) {
// Ignore cleanup errors
} catch (e, s) {
logger.w(
'Failed to cleanup temporary backup directory: ${outputDirectory.path}',
error: e,
stackTrace: s,
);
}
}
}
@@ -41,7 +41,7 @@ final class UserBackupServiceProvider
}
}
String _$userBackupServiceHash() => r'358e4c58703b14cff767184a4f658f7eac0454f6';
String _$userBackupServiceHash() => r'cbeffa04bb52d3c7d50a2eb38678750f2a0362cc';
abstract class _$UserBackupService extends $Notifier<void> {
void build();