[PR #5014] [MERGED] feat(mobile): use app without storage permission #10622

Closed
opened 2026-02-05 14:25:12 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/5014
Author: @fyfrey
Created: 11/13/2023
Status: Merged
Merged: 11/14/2023
Merged by: @alextran1502

Base: mainHead: feat/app-without-storage-permission


📝 Commits (2)

  • a0e9ce1 feat(mobile): use app without storage permission
  • b50bd40 address review feedback

📊 Changes

14 files changed (+134 additions, -232 deletions)

View changed files

📝 mobile/assets/i18n/en-US.json (+2 -4)
📝 mobile/lib/modules/album/providers/album.provider.dart (+2 -0)
📝 mobile/lib/modules/album/services/album.service.dart (+4 -0)
📝 mobile/lib/modules/backup/providers/backup.provider.dart (+14 -31)
📝 mobile/lib/modules/backup/ui/album_info_card.dart (+4 -27)
📝 mobile/lib/modules/backup/ui/album_info_list_tile.dart (+4 -28)
📝 mobile/lib/modules/backup/views/backup_album_selection_page.dart (+2 -56)
📝 mobile/lib/modules/backup/views/backup_controller_page.dart (+54 -51)
📝 mobile/lib/modules/onboarding/views/permission_onboarding_page.dart (+6 -17)
📝 mobile/lib/routing/backup_permission_guard.dart (+3 -3)
📝 mobile/lib/routing/router.dart (+9 -6)
📝 mobile/lib/routing/router.gr.dart (+3 -4)
📝 mobile/lib/shared/providers/app_state.provider.dart (+7 -5)
📝 mobile/lib/shared/services/sync.service.dart (+20 -0)

📄 Description

fixes #1905

Changes with this PR

  • app is usable without granting storage/photo/video/asset/gallery etc. permissions
  • permission is not asked during app startup but only when opening backup screen
  • can use app without selecting a single backup album
  • no more need for the workaround "create a new device album with a single asset in it and select it"
  • after removing the last backup album, a) all backup tasks are canceled and disabled, b) all local assets&albums are removed from the DB (all merged assets become remote-only)
  • expensive _updateBackupAssetCount is not executed on every album selection change; it's now only executed once after making any number of album selections and returning to the main backup screen. This makes the album selection process a lot faster/snappier on some devices
  • backup screen shows only the "select album for backup" card if no album is selected

Screenshots

After tap on backup button:
image
If the user taps "Back" or navigates back otherwise, the previous page is shown again (e.g. home or library)

Initial backup screen without any selected albums:
image

Select album screen without any selected album is now possible:
image

After selecting at least 1 album:
image


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/5014 **Author:** [@fyfrey](https://github.com/fyfrey) **Created:** 11/13/2023 **Status:** ✅ Merged **Merged:** 11/14/2023 **Merged by:** [@alextran1502](https://github.com/alextran1502) **Base:** `main` ← **Head:** `feat/app-without-storage-permission` --- ### 📝 Commits (2) - [`a0e9ce1`](https://github.com/immich-app/immich/commit/a0e9ce135e89d4a698a9c89c1e1159d5fc6485e4) feat(mobile): use app without storage permission - [`b50bd40`](https://github.com/immich-app/immich/commit/b50bd40c1e0bd2fb7a85b9b53285246d695f9b11) address review feedback ### 📊 Changes **14 files changed** (+134 additions, -232 deletions) <details> <summary>View changed files</summary> 📝 `mobile/assets/i18n/en-US.json` (+2 -4) 📝 `mobile/lib/modules/album/providers/album.provider.dart` (+2 -0) 📝 `mobile/lib/modules/album/services/album.service.dart` (+4 -0) 📝 `mobile/lib/modules/backup/providers/backup.provider.dart` (+14 -31) 📝 `mobile/lib/modules/backup/ui/album_info_card.dart` (+4 -27) 📝 `mobile/lib/modules/backup/ui/album_info_list_tile.dart` (+4 -28) 📝 `mobile/lib/modules/backup/views/backup_album_selection_page.dart` (+2 -56) 📝 `mobile/lib/modules/backup/views/backup_controller_page.dart` (+54 -51) 📝 `mobile/lib/modules/onboarding/views/permission_onboarding_page.dart` (+6 -17) 📝 `mobile/lib/routing/backup_permission_guard.dart` (+3 -3) 📝 `mobile/lib/routing/router.dart` (+9 -6) 📝 `mobile/lib/routing/router.gr.dart` (+3 -4) 📝 `mobile/lib/shared/providers/app_state.provider.dart` (+7 -5) 📝 `mobile/lib/shared/services/sync.service.dart` (+20 -0) </details> ### 📄 Description fixes #1905 ### Changes with this PR - app is usable without granting storage/photo/video/asset/gallery etc. permissions - permission is not asked during app startup but only when opening backup screen - can use app without selecting a single backup album - no more need for the workaround "create a new device album with a single asset in it and select it" - after removing the last backup album, a) all backup tasks are canceled and disabled, b) all local assets&albums are removed from the DB (all merged assets become remote-only) - expensive `_updateBackupAssetCount` is not executed on every album selection change; it's now only executed once after making any number of album selections and returning to the main backup screen. This makes the album selection process a lot faster/snappier on some devices - backup screen shows only the "select album for backup" card if no album is selected ### Screenshots **After tap on backup button:** ![image](https://github.com/immich-app/immich/assets/10599762/86796b90-cd71-4f4e-9012-91353ddd58de) If the user taps "Back" or navigates back otherwise, the previous page is shown again (e.g. home or library) **Initial backup screen without any selected albums:** ![image](https://github.com/immich-app/immich/assets/10599762/1cfad9fd-6987-4d4d-af92-e2d7325088ae) **Select album screen without any selected album is now possible:** ![image](https://github.com/immich-app/immich/assets/10599762/f5946218-7bbc-40d1-af36-be267c20df4f) **After selecting at least 1 album:** ![image](https://github.com/immich-app/immich/assets/10599762/89e85e87-f8aa-4d2c-9c4e-a834275b17c2) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 14:25:12 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#10622