From 46c68ffc5aaae3d9606a52a812ee1f583f0b1e28 Mon Sep 17 00:00:00 2001
From: Alex <alex.tran1502@gmail.com>
Date: Fri, 23 May 2025 09:17:03 -0500
Subject: [PATCH] fix(mobile): don't show locked asset in local album view

---
 mobile/lib/repositories/asset.repository.dart    | 4 ++++
 mobile/lib/repositories/timeline.repository.dart | 7 ++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/mobile/lib/repositories/asset.repository.dart b/mobile/lib/repositories/asset.repository.dart
index 60e5d09bcd..c6f8539167 100644
--- a/mobile/lib/repositories/asset.repository.dart
+++ b/mobile/lib/repositories/asset.repository.dart
@@ -1,4 +1,5 @@
 import 'package:hooks_riverpod/hooks_riverpod.dart';
+import 'package:immich_mobile/constants/enums.dart';
 import 'package:immich_mobile/entities/album.entity.dart';
 import 'package:immich_mobile/entities/asset.entity.dart';
 import 'package:immich_mobile/entities/duplicated_asset.entity.dart';
@@ -229,6 +230,8 @@ class AssetRepository extends DatabaseRepository implements IAssetRepository {
     return db.assets
         .where()
         .ownerIdEqualToAnyChecksum(fastHash(userId))
+        .filter()
+        .visibilityEqualTo(AssetVisibilityEnum.timeline)
         .sortByFileCreatedAtDesc()
         .findAll();
   }
@@ -239,6 +242,7 @@ class AssetRepository extends DatabaseRepository implements IAssetRepository {
         .where()
         .ownerIdEqualToAnyChecksum(fastHash(userId))
         .filter()
+        .visibilityEqualTo(AssetVisibilityEnum.timeline)
         .livePhotoVideoIdIsNotNull()
         .findAll();
   }
diff --git a/mobile/lib/repositories/timeline.repository.dart b/mobile/lib/repositories/timeline.repository.dart
index f48b749767..039013f7d7 100644
--- a/mobile/lib/repositories/timeline.repository.dart
+++ b/mobile/lib/repositories/timeline.repository.dart
@@ -72,7 +72,12 @@ class TimelineRepository extends DatabaseRepository
     Album album,
     GroupAssetsBy groupAssetByOption,
   ) {
-    final query = album.assets.filter().isTrashedEqualTo(false);
+    final query = album.assets
+        .filter()
+        .isTrashedEqualTo(false)
+        .not()
+        .visibilityEqualTo(AssetVisibilityEnum.locked);
+
     final withSortedOption = switch (album.sortOrder) {
       SortOrder.asc => query.sortByFileCreatedAt(),
       SortOrder.desc => query.sortByFileCreatedAtDesc(),