From c35abb2f6668cf9976e47d280239caa09ead0f52 Mon Sep 17 00:00:00 2001 From: Santo Shakil Date: Thu, 18 Jun 2026 21:40:18 +0600 Subject: [PATCH] fix(mobile): re-lock locked folder when the app is backgrounded (#29089) * fix(mobile): re-lock locked folder when the app is backgrounded * fix(mobile): simplify locked folder overlay condition * fix(mobile): lock locked folder on pause instead of resume --- .../pages/drift_locked_folder.page.dart | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mobile/lib/presentation/pages/drift_locked_folder.page.dart b/mobile/lib/presentation/pages/drift_locked_folder.page.dart index b19e8468ca..9849558c94 100644 --- a/mobile/lib/presentation/pages/drift_locked_folder.page.dart +++ b/mobile/lib/presentation/pages/drift_locked_folder.page.dart @@ -7,6 +7,7 @@ import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart import 'package:immich_mobile/providers/auth.provider.dart'; import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart'; import 'package:immich_mobile/providers/user.provider.dart'; +import 'package:immich_mobile/routing/router.dart'; import 'package:immich_mobile/widgets/common/mesmerizing_sliver_app_bar.dart'; @RoutePage() @@ -34,11 +35,17 @@ class _DriftLockedFolderPageState extends ConsumerState w @override void didChangeAppLifecycleState(AppLifecycleState state) { - if (mounted) { - setState(() { - _showOverlay = state != AppLifecycleState.resumed; - }); + if (!mounted) { + return; } + if (state == AppLifecycleState.paused) { + ref.read(authProvider.notifier).lockPinCode(); + context.navigateTo(const TabShellRoute()); + return; + } + setState(() { + _showOverlay = state != AppLifecycleState.resumed; + }); } @override