feat(mobile): use app without storage permission (#5014)

* feat(mobile): use app without storage permission

* address review feedback
This commit is contained in:
Fynn Petersen-Frey 2023-11-14 21:30:27 +01:00 committed by GitHub
parent 8f3ed8ba8e
commit 5145c33ed4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 134 additions and 232 deletions

View file

@ -2,10 +2,10 @@ import 'package:auto_route/auto_route.dart';
import 'package:immich_mobile/modules/onboarding/providers/gallery_permission.provider.dart';
import 'package:immich_mobile/routing/router.dart';
class GalleryPermissionGuard extends AutoRouteGuard {
class BackupPermissionGuard extends AutoRouteGuard {
final GalleryPermissionNotifier _permission;
GalleryPermissionGuard(this._permission);
BackupPermissionGuard(this._permission);
@override
void onNavigation(NavigationResolver resolver, StackRouter router) async {
@ -13,7 +13,7 @@ class GalleryPermissionGuard extends AutoRouteGuard {
if (p) {
resolver.next(true);
} else {
router.replaceAll([const PermissionOnboardingRoute()]);
router.push(const PermissionOnboardingRoute());
}
}
}

View file

@ -44,7 +44,7 @@ import 'package:immich_mobile/modules/search/views/search_result_page.dart';
import 'package:immich_mobile/modules/settings/views/settings_page.dart';
import 'package:immich_mobile/routing/auth_guard.dart';
import 'package:immich_mobile/routing/duplicate_guard.dart';
import 'package:immich_mobile/routing/gallery_permission_guard.dart';
import 'package:immich_mobile/routing/backup_permission_guard.dart';
import 'package:immich_mobile/shared/models/asset.dart';
import 'package:immich_mobile/shared/models/album.dart';
import 'package:immich_mobile/shared/models/logger_message.model.dart';
@ -77,7 +77,7 @@ part 'router.gr.dart';
AutoRoute(page: ChangePasswordPage),
CustomRoute(
page: TabControllerPage,
guards: [AuthGuard, DuplicateGuard, GalleryPermissionGuard],
guards: [AuthGuard, DuplicateGuard],
children: [
AutoRoute(page: HomePage, guards: [AuthGuard, DuplicateGuard]),
AutoRoute(page: SearchPage, guards: [AuthGuard, DuplicateGuard]),
@ -88,10 +88,13 @@ part 'router.gr.dart';
),
AutoRoute(
page: GalleryViewerPage,
guards: [AuthGuard, DuplicateGuard, GalleryPermissionGuard],
guards: [AuthGuard, DuplicateGuard],
),
AutoRoute(page: VideoViewerPage, guards: [AuthGuard, DuplicateGuard]),
AutoRoute(page: BackupControllerPage, guards: [AuthGuard, DuplicateGuard]),
AutoRoute(
page: BackupControllerPage,
guards: [AuthGuard, DuplicateGuard, BackupPermissionGuard],
),
AutoRoute(page: SearchResultPage, guards: [AuthGuard, DuplicateGuard]),
AutoRoute(page: CuratedLocationPage, guards: [AuthGuard, DuplicateGuard]),
AutoRoute(page: CreateAlbumPage, guards: [AuthGuard, DuplicateGuard]),
@ -179,8 +182,8 @@ class AppRouter extends _$AppRouter {
) : super(
authGuard: AuthGuard(_apiService),
duplicateGuard: DuplicateGuard(),
galleryPermissionGuard:
GalleryPermissionGuard(galleryPermissionNotifier),
backupPermissionGuard:
BackupPermissionGuard(galleryPermissionNotifier),
);
}

View file

@ -17,14 +17,14 @@ class _$AppRouter extends RootStackRouter {
GlobalKey<NavigatorState>? navigatorKey,
required this.authGuard,
required this.duplicateGuard,
required this.galleryPermissionGuard,
required this.backupPermissionGuard,
}) : super(navigatorKey);
final AuthGuard authGuard;
final DuplicateGuard duplicateGuard;
final GalleryPermissionGuard galleryPermissionGuard;
final BackupPermissionGuard backupPermissionGuard;
@override
final Map<String, PageFactory> pagesMap = {
@ -414,7 +414,6 @@ class _$AppRouter extends RootStackRouter {
guards: [
authGuard,
duplicateGuard,
galleryPermissionGuard,
],
children: [
RouteConfig(
@ -461,7 +460,6 @@ class _$AppRouter extends RootStackRouter {
guards: [
authGuard,
duplicateGuard,
galleryPermissionGuard,
],
),
RouteConfig(
@ -478,6 +476,7 @@ class _$AppRouter extends RootStackRouter {
guards: [
authGuard,
duplicateGuard,
backupPermissionGuard,
],
),
RouteConfig(