Commit Graph
34 Commits
Author SHA1 Message Date
Fynn Petersen-FreyandGitHub 05cf5d57a9 feature(mobile): no longer wait for background backup in settings (#1984)
* feature(mobile): no longer wait for background backup in settings

migrate all Hive boxes required for the backup process to Isar

* add final modifier
2023-03-18 09:55:11 -05:00
04955a4123 feature(mobile): allow app to be used offline (#1932)
* feature(mobile): allow app to be used offline

* translatable server/network error message

* adjust profile drawer error message

* call getAllAsset after cold app starts

* fix analyzer error

* update asset state if length differs

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-03-15 16:29:07 -05:00
Fynn Petersen-FreyandGitHub 532bd6fe12 fix(mobile): add isar source code as a git submodule for F-Droid build (#1985) 2023-03-12 22:50:55 -05:00
Fynn Petersen-FreyandGitHub 3cce43309c fix(server): update album updatedAt on assets/users removed/added (#1977) 2023-03-11 06:41:46 -06:00
Fynn Petersen-FreyandGitHub 9ac087c59c fix(mobile): do not crash on malformed asset duration (#1921)
* fix(mobile): do not crash on malformed asset duration

* add unit test
2023-03-06 09:27:01 -06:00
Fynn Petersen-FreyandGitHub 8708867c1c feature(mobile): sync assets, albums & users to local database on device (#1759)
* feature(mobile): sync assets, albums & users to local database on device

* try to fix tests

* move DB sync operations to new SyncService

* clear db on user logout

* fix reason for endless loading timeline

* fix error when deleting album

* fix thumbnail of device albums

* add a few comments

* fix Hive box not open in album service when loading local assets

* adjust tests to int IDs

* fix bug: show all albums when Recent is selected

* update generated api

* reworked Recents album isAll handling

* guard against wrongly interleaved sync operations

* fix: timeline asset ordering (sort asset state by created at)

* fix: sort assets in albums by created at
2023-03-03 16:38:30 -06:00
911c35a7f1 refactor(mobile): add Isar DB & Store class (#1574)
* refactor(mobile): add Isar DB & Store class

new Store: globally accessible key-value store like Hive (but based on Isar)

replace first few places of Hive usage with the new Store

* reduce max. DB size to prevent errors on older iOS devices

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-02-09 11:32:08 -06:00
Fynn Petersen-FreyandGitHub 2139853dd9 refactor(mobile): introduce Album & User classes (#1561)
replace usages of AlbumResponseDto with Album
replace usages of UserResponseDto with User
2023-02-06 01:13:32 -06:00
Fynn Petersen-FreyandGitHub 0048662182 refactor(mobile): reworked Asset, store all required fields from local & remote (#1539)
replace usage of AssetResponseDto with Asset

Add new class ExifInfo to store data from ExifResponseDto
2023-02-04 14:42:42 -06:00
Fynn Petersen-FreyandGitHub d0f8d8d1f9 fix(server): re-enable Redis unix socket support (#1494) 2023-01-31 09:59:59 -06:00
Fynn Petersen-FreyandGitHub c23b2479f7 feat(mobile): configurable background backup delay (#1068)
let's the user configure how much to delay the trigger for running the backup whenever assets are changed on the device
2022-12-08 09:51:36 -06:00
Fynn Petersen-FreyandGitHub 83c7434eb5 feat(mobile): enable zoom of preview images & reuse cached thumbnails (#1049) 2022-12-03 21:59:39 -06:00
Fynn Petersen-FreyandGitHub 424b11cf50 feat(mobile): configure detail viewer asset loading (#1044) 2022-12-02 14:55:10 -06:00
Fynn Petersen-FreyandGitHub 1068c4ad23 feat(server,web): activate ETags for all API endpoints and asset serving (#1031)
This greatly reduces the network traffic by app/web.
2022-11-29 15:45:47 -06:00
Fynn Petersen-FreyandGitHub 765181bbc0 chore(mobile): improve CSV log export (#1032) 2022-11-28 10:17:27 -06:00
Fynn Petersen-FreyandGitHub d82dec9773 fix(mobile): fix cache invalidation on logout (#1030)
await all the cache-invalidation operations during logout and catch errors to actually perform all operations.
2022-11-28 10:01:09 -06:00
Fynn Petersen-FreyandGitHub 47f5e4134e feat(mobile): use cached asset info if unchanged instead of downloading all assets (#1017)
* feat(mobile): use cached asset info if unchanged instead of downloading all assets

This adds an HTTP ETag to the getAllAssets endpoint and client-side support in the app.
If locally cache content is identical to the content on the server, the potentially large list of all assets does not need to be downloaded.

* use ts import instead of require
2022-11-26 10:16:02 -06:00
Fynn Petersen-FreyandGitHub 8d0ff974e1 refactor(mobile): tidy-up dependencies, remove unused, replace rarely used ones (#948) 2022-11-11 11:52:02 -06:00
Fynn Petersen-FreyandGitHub 1633af7af6 feat(mobile): show local assets (#905)
* introduce Asset as composition of AssetResponseDTO and AssetEntity

* filter out duplicate assets (that are both local and remote, take only remote for now)

* only allow remote images to be added to albums

* introduce ImmichImage to render Asset using local or remote data

* optimized deletion of local assets

* local video file playback

* allow multiple methods to wait on background service finished

* skip local assets when adding to album from home screen

* fix and optimize delete

* show gray box placeholder for local assets

* add comments

* fix bug: duplicate assets in state after onNewAssetUploaded
2022-11-08 11:00:24 -06:00
Fynn Petersen-Frey dc7df5bcfa fix(mobile, Android): throttle all background backup notifications 2022-11-01 16:26:15 +01:00
Fynn Petersen-FreyandGitHub dcefd53bfe fix(mobile,Android): throttle detail progress notifications & wait on foregroundInfo (#907) 2022-10-31 21:02:06 -05:00
Fynn Petersen-FreyandGitHub cfa04fadd1 Merge pull request #906 from immich-app/dev/reduce-startup-time
reduce app startup time by loading Hive boxes in parallel
2022-10-31 17:52:39 +01:00
Fynn Petersen-Frey 4a6c337960 reduce app startup time by loading Hive boxes in parallel 2022-10-31 15:38:24 +01:00
Fynn Petersen-FreyandGitHub dc2c92e721 feat(server/web): download entire album as zip archive (#897)
* feat(server/web): download entire album as zip archive

* fix: remove duplicate API call

* disable ZIP compression (images are already compressed)
2022-10-30 12:38:04 -05:00
Fynn Petersen-FreyandGitHub a3aca4acb5 feat(mobile) Run background service after being killed (#789) 2022-10-06 11:32:45 -05:00
Fynn Petersen-FreyandGitHub 5dfce4db34 feat(mobile): background backup progress notifications (#781)
* settings to configure upload progress notifications (none/standard/detailed)
* use native Android notifications to show progress information
* e.g. 50% (30/60) assets
* e.g. Uploading asset XYZ - 25% (2/8MB)
* no longer show errors if canceled by system (losing network)
2022-10-05 09:59:35 -05:00
Fynn Petersen-FreyandGitHub 789bc8563c fix Android BackgroundServiceStartNotAllowedException (#687) 2022-09-13 20:12:31 -05:00
Fynn Petersen-FreyandGitHub 4fe535e5e8 improve Android background service reliability (#603)
This change greatly reduces the chance that a backup is not performed
when a new photo/video is made.
Instead of combining the change trigger and additonal constraints (wifi
or charging) into a single worker, these aspects are now separated.
Thus, it is now reliably possible to take pictures while the wifi
constraint is not satisfied and upload them hours/days later once
connected to wifi without taking a new photo.
As a positive side effect, this simplifies the error/retry handling
by directly leveraging Android's WorkManager without workarounds.
The separation also allows to notify the currently running BackupWorker
that new assets were added while backing up other assets to also upload
those newly added assets.
Further, a new tiny service checks if the app is killed, to reschedule
the content change worker and allow to detect the first new photo.
Bonus: The home screen now shows backup as enabled if background backup
is active.

* use separate worker/task for listening on changed/added assets
* use separate worker/task for performing the backup
* content observer worker enqueues backup worker on each new asset
* wifi/charging constraints only apply to backup worker
* backupworker is notified of assets added while running to re-run
* new service to catch app being killed to workaround WorkManager issue
2022-09-08 08:36:08 -05:00
Fynn Petersen-FreyandGitHub 75d2d82d05 ask user to disable battery optimizations when turning on background backup (#554)
* ask user to disable battery optimizations when turning on background backup

* remove obsolete texts/translations

* add button link to dontkillmyapp
2022-08-31 08:08:40 -05:00
Fynn Petersen-FreyandGitHub 5172242f88 fix: persist WiFi + charging settings of background backup (#553) 2022-08-30 09:09:19 -05:00
Fynn Petersen-FreyandGitHub 3125d04f32 show notifications on background backup errors (#496)
* show notifications on background backup errors

* settings page to configure (background backup error) notifications

* persist time since failed background backup

* fix darkmode slider color
2022-08-21 09:29:24 -07:00
Fynn Petersen-FreyandGitHub 33b1410d82 upload new photos in background with a service (#382)
* properly done background backup service

* new concurrency/locking management with heartbeat

fix communication erros with Kotlin plugin on start/stop service methods

better error handling for BackgroundService public methods

Add default notification message when service is running

* configurable WiFi & charging requirement for service

* use translations in background service
2022-08-18 09:41:59 -05:00
Fynn Petersen-FreyandGitHub bece6253d5 Improve Docker setup and reduce memory usage of production containers (#338) 2022-07-13 07:42:00 -05:00
Fynn Petersen-FreyandGitHub d69470e207 Add extended redis & DB port configuration via environment variables (#330)
* Add database port configuration via env variable

Add redis connection configuration via env variables

* Add redis connection configuration via env variables
2022-07-12 22:21:11 -05:00