Browse Source

add back proper error handling

covalent 2 years ago
parent
commit
67c7a5a2ff
1 changed files with 8 additions and 0 deletions
  1. 8 0
      mobile/lib/shared/ui/immich_image.dart

+ 8 - 0
mobile/lib/shared/ui/immich_image.dart

@@ -8,6 +8,7 @@ import 'package:immich_mobile/shared/models/store.dart';
 import 'package:immich_mobile/utils/image_url_builder.dart';
 import 'package:immich_mobile/utils/image_url_builder.dart';
 import 'package:photo_manager/photo_manager.dart';
 import 'package:photo_manager/photo_manager.dart';
 import 'package:openapi/api.dart' as api;
 import 'package:openapi/api.dart' as api;
+import 'package:flutter_cache_manager/flutter_cache_manager.dart';
 
 
 /// Renders an Asset using local data if available, else remote data
 /// Renders an Asset using local data if available, else remote data
 class ImmichImage extends StatelessWidget {
 class ImmichImage extends StatelessWidget {
@@ -120,6 +121,13 @@ class ImmichImage extends StatelessWidget {
       fit: fit,
       fit: fit,
       placeholder: placeholderWidget,
       placeholder: placeholderWidget,
       errorBuilder: (context, error) {
       errorBuilder: (context, error) {
+        if (error is HttpExceptionWithStatus &&
+            error.statusCode >= 400 &&
+            error.statusCode < 500) {
+          debugPrint(
+              "Evicting thumbnail '$thumbnailRequestUrl' from cache: $error");
+          CachedNetworkImage.evictFromCache(thumbnailRequestUrl);
+        }
         return Icon(
         return Icon(
           Icons.image_not_supported_outlined,
           Icons.image_not_supported_outlined,
           color: Theme.of(context).primaryColor,
           color: Theme.of(context).primaryColor,