1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-24 10:37:28 +02:00
Commit Graph

433 Commits

Author SHA1 Message Date
Sergey Kondrikov
fb2cfcb640
feat(mobile): custom video player controls (#2960)
* Remove toggle fullscreen button

* Implement custom video player controls

* Move Padding into Container
2023-06-26 10:27:47 -05:00
Fynn Petersen-Frey
99f85fb359
feat(Android): guard against missing EXIF info (#2965) 2023-06-26 10:27:32 -05:00
Alex
b015648bfe
chore(mobile): Add more error log (#2949)
Co-authored-by: alex <alex@pop-os.localdomain>
2023-06-25 18:59:35 -05:00
Alex
0d0866d5d9
feat(mobile): Facial recognition (#2507)
* Add API service

* Added service, provider

* merge main

* update pubspec

* styling

* dev: add person search result page

* dev: display person asset on page

* dev: add rename form

* style form

* dev: mechanism to add name to faces

* styling

* fix bad merge

* update api

* test

* revert

* Add header widget

* change name

* show all people page

* fix test

* pr feedback

* Add name to app bar

* feedback

* styling
2023-06-23 10:44:02 -05:00
Fynn Petersen-Frey
3e2f335a4c
feat(mobile): optimize screen space usage (#2911)
* feat(mobile): optimize screen space usage

* undo nav bar changes
2023-06-22 09:50:27 -05:00
Fynn Petersen-Frey
7f44d508dc
feat(mobile): pinch to zoom on asset grid (#2905) 2023-06-21 21:13:23 -05:00
martyfuhry
26f58d3335
Fixes local position late initialization (#2884) 2023-06-20 19:58:17 -05:00
martyfuhry
1b15b5414c
Adds photo thumbnail to videos (#2880)
* Motion photos use placeholder image for more seamless loading

* Fixes merge conflicts
2023-06-20 16:17:43 -05:00
Sergey Kondrikov
e101e40c47
fix(mobile): Disable hit testing for transparent bars (#2727) 2023-06-11 13:10:17 -05:00
Fynn Petersen-Frey
73075c64d1
feature(mobile): hash assets & sync via checksum (#2592)
* compare different sha1 implementations

* remove openssl sha1

* sync via checksum

* hash assets in batches

* hash in background, show spinner in tab

* undo tmp changes

* migrate by clearing assets

* ignore duplicate assets

* error handling

* trigger sync/merge after download and update view

* review feedback improvements

* hash in background isolate on iOS

* rework linking assets with existing from DB

* fine-grained errors on unique index violation

* hash lenth validation

* revert compute in background on iOS

* ignore duplicate assets on device

* fix bug with batching based on accumulated size

---------

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2023-06-10 13:13:59 -05:00
Michel Heusschen
7f0ad8e2d2
fix(web+mobile): consistent filename handling (#2534) 2023-05-27 20:53:29 -05:00
Fynn Petersen-Frey
71ef7685c5
chore(mobile): update isar (#2571) 2023-05-26 08:09:44 -05:00
Fynn Petersen-Frey
bcc2c34eef
feat(mobile): partner sharing (#2541)
* feat(mobile): partner sharing

* getAllAssets for other users

* i18n

* fix tests

* try to fix web tests

* shared with/by confusion

* error logging

* guard against outdated server version
2023-05-24 22:52:43 -05:00
Fynn Petersen-Frey
02b8b2c125
chore(mobile): remove hive (#2497) 2023-05-20 20:42:19 -05:00
Fynn Petersen-Frey
dc7b0f75bb
chore(mobile): use Record instead of custom pair+triple (#2483) 2023-05-20 20:41:34 -05:00
Fynn Petersen-Frey
89edbcacfa
chore(mobile): remove obsolete files (#2482) 2023-05-19 22:06:39 -05:00
Fynn Petersen-Frey
0dde76bbbc
feat(mobile): lazy loading of assets (#2413) 2023-05-17 12:36:02 -05:00
Alex
43951ec208
chore(mobile): Upgrade to Flutter 3.10 (#2429)
* update dependencies

* resolve dependency and update code for Flutter 3.10

* update github action flutter version

* update test version

* iOS deployment

* pump intl package

* list tile fix
2023-05-12 09:21:13 -05:00
Michel Heusschen
cd43edf074
feat(mobile): improve localization (#2405) 2023-05-09 08:58:27 -05:00
Atul Mehla
5885ec8e65
Add text notifying user that no asset is found (#2400) 2023-05-08 19:37:06 -05:00
Steffen Auer
861de7f8b3
chore(web/mobile): use Heart Icon & small icon changes (#2397) 2023-05-08 14:01:39 -05:00
Jason Rasmussen
e22cdea485
chore(server,mobile): remove device info entity (#1527)
* chore(server): remove unused device info code

* chore: generate open api

* remove any DeviceTypeEnum usage from mobile

* chore: coverage

* fix: drop device info table

---------

Co-authored-by: Fynn Petersen-Frey <zody22@gmail.com>
2023-04-28 15:01:03 -05:00
Jason Rasmussen
b8313abfa8
feat(web,server): manage authorized devices (#2329)
* feat: manage authorized devices

* chore: open api

* get header from mobile app

* write header from mobile app

* styling

* fix unit test

* feat: use relative time

* feat: update access time

* fix: tests

* chore: confirm wording

* chore: bump test coverage thresholds

* feat: add some icons

* chore: icon tweaks

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-04-25 21:19:23 -05:00
Alex
c8d3faec6d
fix(mobile): video player disposes early (#2275)
* fix(mobile): video player disposes early

* fixed show download button based on asset state

* style icon size

* disable screensleep on video player

* better position for video

* better scroll physics on iOS
2023-04-18 11:23:56 -05:00
Fynn Petersen-Frey
e80d37bf8f
refactor(mobile): add AssetState and proper asset updating (#2270)
* refactor(mobile): add AssetState and proper asset updating

* generate files

---------

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-04-18 04:47:24 -05:00
Alex
2e5cd986dd
feat(mobile): Archive feature on mobile (#2258)
* update asset to include isArchive property

* Not display archived assets on timeline

* replace share button to archive button

* Added archive page

* Add bottom nav bar

* clean up homepage

* remove deadcode

* improve on sync is archive

* show archive asset correctly

* better merge condition

* Added back renderList to re-rendering don't jump around

* Better way to handle showing archive assets

* complete ArchiveSelectionNotifier

* toggle archive

* remove deadcode

* fix unit tests

* update assets in DB when changing assets

* update asset state to reflect archived status

* allow to archive assets via multi-select from timeline

* fixed logic

* Add options to bulk unarchive

* regenerate api

* Change position of toast message

---------

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2023-04-17 00:02:07 -05:00
Fynn Petersen-Frey
d500ef77cf
feature(mobile): configurable log level (#2248)
* feature(mobile): configurable log level

* increase maxLogEntries to 500

---------

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2023-04-14 08:50:46 -05:00
Alex
a9859bc029
feat: Add description (#2237)
* Added dto, logic to insert description and web implementation

* create text field and update on remote database

* Update description and save changes

* styling

* fix web test

* fix server test

* preserve description on metadata extraction job run

* handle exif info is null situation

* pr feedback

* format openapi spec

* update createAssetDto

* refactor logic to service

* move files

* only owner can update description

* Render description correctly in shared album

* Render description correctly in shared link

* disable description edit for not owner of asset on mobile

* localization and clean up

* fix test

* Uses providers for description text (#2244)

* uses providers for description text

* comments

* fixes initial data setting

* fixes notifier

---------

Co-authored-by: martyfuhry <martyfuhry@gmail.com>
2023-04-13 10:22:06 -05:00
Alex
1564807aa0
feat(mobile): add trobleshooting toggle (#2235)
* Added troubleshooting settings

* Added asset detail info in debug mode

* lint
2023-04-11 12:21:00 -05:00
martyfuhry
0979906933
adds bottom safe area to video player (#2194) 2023-04-06 12:51:52 -05:00
martyfuhry
ad680b6a35
fix(mobile): Fixed hero animation re-enabling on immich asset grid (#2169)
* fixed hero animation re-enabling on immich asset grid

* comments
2023-04-04 17:23:47 -05:00
Alex
d6f2ca6aaa
feat(mobile): improved logging page experience (#2158)
* feat(mobile): improve logging page

* Use new API for share file

* removed unused code

* Better safe area on the home screen

* Added preparing share dialog to home screen
2023-04-03 16:43:46 -05:00
Parikshit Misra
b49f66bbc9
feat(mobile): uploading files in chunk (#2101) 2023-03-28 13:41:55 -05:00
Alex
0854737be2
feat(mobile): improve explore page and allow metadata search (#2097) 2023-03-28 15:34:06 +00:00
Michel Heusschen
089dbdbd7e
feat(server): require auth for more endpoints (#2092)
* feat(server): require auth for more endpoints

* dev: add authorization header to profile image on mobile

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-03-27 09:38:54 -05:00
Fynn Petersen-Frey
cae37657e9
feature(mobile): Hardening synchronization mechanism + Pull to refresh (#2085)
* fix(mobile): allow syncing duplicate local IDs

* enable to run isar unit tests on CI

* serialize sync operations, add pull to refresh on timeline

---------

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2023-03-26 21:35:52 -05:00
martyfuhry
501b96baf7
feat(mobile): Explore favorites, recently added, videos, and motion photos (#2076)
* Added placeholder for search explore

* refactor immich asset grid to use ref and provider

* all videos page

* got favorites, recently added, videos, and motion videos all using the immich grid

* Fixed issue with hero animations

* theming

* localization

* delete empty file

* style text

* Styling icons

* more styling

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-03-24 22:44:53 -05:00
Fynn Petersen-Frey
40832f0ea7
refactor(mobile): store backup settings on device (#2054)
Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-03-23 10:25:58 -05:00
martyfuhry
32a065afc7
feat(mobile): Use new search API and GridView for Places / Locations (#2043)
* Use new search API and GridView for Places / Locations

* Fixes search service by adding clip: true

* Rebased from master, uses view all explore grid now

* localized view all button

* adds empty

* style text

* Fix issue with horizontal Things not render due to missing height info

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-03-23 10:08:14 -05:00
Fynn Petersen-Frey
eccde8fa07
refactor(mobile): migrate all Hive boxes to Isar database (#2036) 2023-03-22 20:36:44 -05:00
Fynn Petersen-Frey
db6b14361d
fix(mobile): proper syncing with Recents album on iOS (#2020)
* fix(mobile): deal with Recents album on iOS

* feature(mobile): local asset sync logging

* add comments

* delete ExifInfo when deleting Asset

---------

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2023-03-19 17:05:18 -05:00
Atul Mehla
719f074ccf
feat(mobile): persist album sort order (#1997)
Co-authored-by: Atul Mehla <>
2023-03-19 14:54:31 -05:00
martyfuhry
646b912da8
feat(mobile): Share album name and adaptive shared album display (#2017)
* shows the owner name of shared albums

* responsive and better names

* rich text

* localization and overflow

* unused import

* adds on tap

* suppress owner name for regular album view

* aspect ratio

* Add some styling to text

* More styling

* Style album thumbnail name

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-03-19 19:47:51 +00:00
Fynn Petersen-Frey
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
Fynn Petersen-Frey
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
martyfuhry
08ed71e51e
improve login ux (#2004)
removed animated switchers to resolve issue with flutter/issues/120874
2023-03-15 14:38:26 -05:00
Alex
416e30ede2
fix(mobile): Sorted shared album and added share user doesn't reflect change in album view (#1955)
* fix: sorted shared album

* Added TODO comment for tomorrow work

* update album shared property after adding user

---------

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2023-03-12 08:43:09 -05:00
martyfuhry
8adca31c24
fixes gallery viewer fullscreen edge case (#1959) 2023-03-11 06:42:35 -06:00
martyfuhry
950989a85e
feat(mobile): Transparent bottom Android navigation bar (#1953)
* transparent system overlay

* immersive view to gallery viewer, as well

* comments
2023-03-05 22:51:18 -06:00
martyfuhry
a4c215751e
feat(mobile): Enter server first for login (#1952)
* improves login form

* login form improvements

* correctly trim server endpoint controller text when logging in

* don't show loading while fetching server info

* fixes get server login credentials

* fixes up sign in form

* error handling

* fixed layout

* removed placeholder text
2023-03-05 22:46:38 -06:00
martyfuhry
1f631eafce
fixes ios debug info tile only shown in iOS (#1951) 2023-03-05 13:50:03 -06:00
martyfuhry
dac4020f27
fix(mobile): Fixes hero animation on main timeline (#1924)
* fixed hero animation for local assets

* fixes backwards hero animation out of gallery image
2023-03-03 16:49:40 -06:00
Fynn Petersen-Frey
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
martyfuhry
9d57039274
feat(mobile): Responsive list and grid view of backup album selection and fixes search filter (#1895)
* rebuilding gridview

* adds listview, gridview and responsive display to backup album selection

* aligned selection info title and chips to the left

* fixed search

* style: album tile

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-02-28 21:10:53 -06:00
martyfuhry
12217bde8a
feat(mobile): Adds onboarding for permissions (#1865)
* adds onboarding

* fixed error where login was taking you to permission page

* fixed a bad rebase and added more checks to not start backup service on login if no gallery permission

* forgot the permission handler import in AppDelegate

* reverts album selection page

* change to ref watch

* added device_info_plus to podspec

* removed unused import

---------

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
2023-02-28 10:22:18 -06:00
martyfuhry
a0b8312ce4
adds safe area to album to stop from clipping bottom of albums (#1889) 2023-02-27 18:35:10 -06:00
Matthias Rupp
c9a6820de7
chore(mobile): Favorite provider unit test (#1874)
* Favorite provider tests

* Remove unused mock

* Add setUp function to avoid duplicate code
2023-02-27 21:15:25 +01:00
martyfuhry
2b988e1d5d
feat(mobile): Background app refresh status (#1839)
* adds background app refresh message

* fixes ios background settings provider

* styling

* capitalization

* changed to watch

* uses settings notifier now

* forgot to commit this file

* changed to watch and added more clarification

---------

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
2023-02-23 12:33:53 -06:00
Alex
a2549c5bbd
fix(mobile): no album thumbnail lead to no album selection shown and add global logs (#1841)
* fix(mobile): no album thumbnail lead to no album selection shown

* add more log info

* added global error handling

* better place to init logger

* get more log
2023-02-23 06:36:17 +00:00
martyfuhry
98a8be82e2
removes deleted asset from gallery list (#1837) 2023-02-22 20:50:13 -06:00
Alex
bf3f4e560d
chore(mobile): Improve reliability of asset loading and indexing (#1813)
* chore(mobile): Improve reliability of asset loading and indexing

* chore: add comments

* chore: remove log

* fix: put back box open sequence
2023-02-21 09:25:31 -06:00
martyfuhry
e9c9b7a3e2
feat(mobile): iOS background sync notifications (#1811)
* adds notification handling logic

* notification on background updates for iOS

* fixed regression where i accidentally removed load translations from the background sync

* fixed ios translations

---------

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-02-21 06:28:52 -06:00
martyfuhry
2d2cfb0349
fix(mobiile): Fixed load translations in background sync (#1810)
* fixed regression where i accidentally removed load translations from the background sync

* only for android

---------

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
2023-02-20 21:44:14 -06:00
Alex
98998cccbc
fix(mobile): user get logged out upon clicking on any thing after logging in (#1808)
* fix(mobile): user get logged out upon clicking on any thing after logging in

* wip: fixing still

* fix: the actual issue

* Fix: avaialble album not updating UI
2023-02-20 21:43:39 -06:00
Alex
03d484aba2
chore(mobile): styling and linter (#1807)
* chore(mobile): styling and linter

* style: adaptive SwitchListTile
2023-02-20 21:40:19 -06:00
Michel Heusschen
88a2966666
feat(mobile): improve date formatting (#1804) 2023-02-20 11:23:00 -06:00
Michel Heusschen
e408e8ca4a
feat(mobile): added more translations (#1805) 2023-02-20 11:22:35 -06:00
martyfuhry
87fea29e32
feat(mobile): iOS background sync (#1758)
* first run of getting background sync working in iOS

* got background sync calling into flutter

* added background task

* added necessary sync files

* fixed some names and added more implementations

* got as far as Hive.initFlutter

* brute force got to await Hive.initFlutter

* lots of print statements to figure out where execution is failing, and its failing at the root asset bundle in the localization.dart service

* first time working, got plugins registered

* removed broken cleanup code

* refactored

* linters

* now can pass user settings

* background service plugin uses app background processing instead of fetch

* renamed backgroundFetch to backgroundProcessing to make it clearer

* don't use max delay

* adds fetch back in

* fixes require charging default values and backup controller page

* fixes background fetch

* fixes ios not importing photos

* guarded path provider ios

* lint

* adds max tries for heartbeat to work in iOS

* fail after seconds

* timeout instead of fail after seconds

* removes release lock from system stop

* restores checkLockReleasedWithHeartbeat to Future<void>

* removes max tries from acquire lock

* fixes lock timeout with iOS

* restored for loop

* adds comments, made the AppRefresh task only run while not requiring network or charge

* fixed compile issue

* now both are registered and added better comments. also added ability for task to cancel itself

* added the podfile and pubspec

* added backup diagnostics to IOS and removed iOS ignored backup options and fixed network connectivity always required

* Added Alex's dev team

* styled debug list item, fixed refresh task not set bug, fixed enable / disable background service on platform channel

---------

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-02-20 05:59:50 +00:00
Zack Pollard
5ad4e5b614
infra(server)!: fix typeorm asset entity relations (#1782)
* fix: add correct relations to asset typeorm entity

* fix: add missing createdAt column to asset entity

* ci: run check to make sure generated API is up-to-date

* ci: cancel workflows that aren't for the latest commit in a branch

* chore: add fvm config for flutter
2023-02-19 16:44:53 +00:00
martyfuhry
8c315dfeb1
fix(mobile): Delete goes to next page instead of popping back to the main timeline (#1781)
* delete goes to next page instead of popping

* moves pagecontroller to constructor so we dont rebuilt each time
2023-02-17 20:47:28 -06:00
martyfuhry
6e9749d6c4
feat(mobile): Scroll to top when tapping photos while already on photo page (#1784)
* adds scroll to top when tapping photos while already on photo page

* unused import
2023-02-17 20:46:25 -06:00
Alex
37cfac27b8
fix(mobile): Remove unsplash placeholder image and style empty places, objects (#1742) 2023-02-13 06:29:45 -06:00
Alex
11b2e2a6e2
chore(mobile): additional MD3 styling and refactor some code (#1741) 2023-02-13 05:05:31 +00:00
Alex
d555ee737b
feat(mobile): spinning flower (#1740) 2023-02-12 22:49:53 -06:00
martyfuhry
12a6a7d95a
feat(mobile): Uses profile photo for user avatar drawer (#1738)
* uses profile photo for user avatar drawer

* Added some styling to the profile picture

* made the whole profile photo a gesture detector

* fixed image updating

* invalidates cachednetworkimage when new profile photo is uploaded

* Revert "invalidates cachednetworkimage when new profile photo is uploaded"

This reverts commit 17c83be556.

* Add fadeInImage to loading user profile

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-02-13 03:32:16 +00:00
Matthias Rupp
6b3892987a
dev(mobile): Fix freeze bug on app start (#1732)
* Group by date objects instead of strings

* Change OpenAPI code generation to wrap json decoding in
Change OpenAPI code generation to wrap decodeJson in compute

* Remove orig file

* Fix linter error

* Change drag handle date format

* Order timeline explictly from new to old

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-02-11 21:37:48 -06:00
Alex
09ab06ae6c
chore(mobile): Upgrade to Flutter 3.7 (#1416) 2023-02-11 14:23:32 -06:00
martyfuhry
ad9373312b
feat(mobile): Responsive display of exif data in bottom sheet (#1725)
* two column view of exif

* fixes padding

* fixed divider when no map

* fixed map visibility in two column
2023-02-10 20:31:15 -06:00
martyfuhry
c90dcde7cc
cleaned up action bar, changed horizontal more to info button (#1727) 2023-02-10 16:11:09 -06:00
martyfuhry
74cd3d66c6
fixed cloud download button (#1726) 2023-02-10 12:01:58 -06:00
martyfuhry
e6f9d9a31a
feat(mobile): Shows a toast after adding to favorites (#1714)
* shows toast on adding assets to favorites

* add to favorites first

* typo
2023-02-10 00:05:39 -06:00
martyfuhry
6e4ba6184b
fixes safe area issue with multiselect and adds overscroll on main timeline to select bottom (#1718) 2023-02-10 00:02:26 -06:00
Matthias Rupp
fd13265131
feat(mobile): Home screen customization options (#1563)
* Try staggered layout for home page

* Introduce setting for dynamic layout

* Fix some provider related bugs

* Make asset grouping configurable

* Add translation keys, refactor group title

* Rename enum values

* Fix enum names

* Reformat long if statement

* Fix timezone related bug

* Minor clean up

* Fix unit test

* Add second assets check back to home screen
2023-02-09 11:35:44 -06:00
Fynn Petersen-Frey
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
martyfuhry
dc9da7480c
feat(mobile): Responsive layout improvements with a navigation rail and album grid (#1583) 2023-02-08 13:42:45 -06:00
martyfuhry
b8d2f5b373
feat(mobile): Multiselect add to favorite from the timeline (#1558)
* multiselect add to favorites
2023-02-06 07:59:56 -05:00
Fynn Petersen-Frey
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
Alex
7dbddba757
chore(server): remove token when logged out (#1560)
* chore(mobile): invoke logout() on mobile app

* feat: add mechanism to delete token from logging out endpoint

* fix: set state after login sequence success

* fix: not removing token when logging out from OAuth

* fix: prettier

* refactor: using accessTokenId to delete

* chore: pr comments

* fix: test

* fix: test threshold
2023-02-05 23:31:16 -06:00
martyfuhry
16183791f3
feat(mobile): Removed stay logged in checkbox and made it enabled by default (#1550)
* removed stay logged in checkbox and made it enabled by default

* adds padding to login button

* removed all isSaveLogin

* fix: logout would re-login with previous credential upon app restart

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-02-05 08:07:02 -06:00
martyfuhry
f38c7a4b7e
feat(mobile): Tap to enter immersive mode on gallery viewer (#1546) 2023-02-05 06:57:07 -06:00
Matthias Rupp
bb0b2a1f53
feat(mobile): Library page rework (album sorting, favorites) (#1501)
* Add album sorting

* Change AppBar to match photos page behaviour

* Add buttons

* First crude implementation of the favorites page

* Clean up

* Add favorite button

* i18n

* Add star indicator to thumbnail

* Add favorite logic to separate provider and fix favorite behavior in album

* Review feedback (Add isFavorite variable)

* dev: style buttons

* dev: styled drop down button

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-02-04 21:25:11 -06:00
Fynn Petersen-Frey
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
martyfuhry
ff3cde4dfb
feat(mobile): Fullscreen image effects (#1529)
* fullscreen image effects

* toggles app bar instead of hides on tap

* edgeToEdge mode to render beneath navbar on android

* fixed appbar size

* fixed safearea for video and added opacity to appbar in gallery

* wrapped in black container to fix artifact on iOS

* changed to black

* added scaffold back woops
2023-02-03 10:26:05 -06:00
Jason Rasmussen
2b0b2bb1ae
refactor(server): download file (#1512)
* refactor(server): download file

* chore: generate open-api and remove unused refs

* chore(server): tests

* chore: remove unused code
2023-02-03 09:16:25 -06:00
martyfuhry
0b65cea6fd
fixed local asset thumbnail size and eliminated fade in duration of loading assets (#1525) 2023-02-02 13:29:52 -06:00
martyfuhry
a1806390b0
fixes dark mode color for invite to album app bar (#1524) 2023-02-02 12:31:44 -06:00
martyfuhry
5d6559e839
fix(mobile): back button while multiselecting showing the last selected image (#1521) 2023-02-02 12:20:26 -06:00
martyfuhry
2c356ec87f
fix(mobile) uses clamping scroll physics on android (#1503) 2023-02-01 16:29:32 -06:00
martyfuhry
02f5a86ee9
(fix)mobile: Improve the gallery to improve scale, double tap, and swipe gesture detection (#1502)
* photoviewgallery

* stiffer scrolling to react more like google photos

* adds a dx threshhold for the swipe/up down from the original dropped point

* stopped wrapping imageview in gallery viewer to avoid the double photoview issue. breaks imageview page pinch-to-zoom, so i need to fix that for other callers

* refactors gallery view to use remoteimage directly and breaks imageviewpage

* removed image_viewer_page

* adds minscale

* adds photo_view to repository

* double tap to zoom out with hacked commit

* double tapping!

* got up and down swipe gestures working

* fixed wrong cache and headers in image providers

* fixed image quality and added videos back in

* local loading asset image fix

* precaches images

* fixes lint errors

* deleted remote_photo_view and more linters

* fixes scale

* load preview and load original

* precache does original / preview as well

* refactored image providers to nice functions and added JPEG thumbnail format to remote image thumbnail lookup

* moved photo_view to shared/ui/

* three stage loading with webp and fixes some thumbnail fits

* fixed local thumbnail

* fixed paging in iOS
2023-02-01 10:59:34 -06:00
Alex
830fec0c29
feat(mobile) reused HTTP client for uploading assets (#1487)
* feat(mobile) reused HTTP client for uploading assets

* remove unused comments
2023-01-30 16:00:03 -06:00
martyfuhry
3210302ecd
fix(mobile): Fix back button closing the app from multiselection in Android (#1477)
* fixes back button multiselection on android in main timeline

* back button on multiselect in album clears selection

* fixed homepage back and refactor future

* not a futureOr
2023-01-29 22:36:26 -06:00
Alex
91114e5aa0
fix(mobile) add and delete asset in album doesn' (#1474)
t update count in list
2023-01-28 21:57:13 -06:00
martyfuhry
6b5d6e4091
fix(mobile): top padding missing from drag handle in add to album bottom sheet (#1462) 2023-01-28 15:05:28 -06:00
martyfuhry
5939d79057
fix(mobile): removed unused album_list file (#1455) 2023-01-27 21:39:42 -06:00
Alex
0220f900c1
fix(mobile): Pump ios version and fix static code test (#1451)
* fix(mobile): Pump ios version and fix static code test

* Added changelog note
2023-01-27 16:20:45 -06:00
martyfuhry
8d47798fa2
feat(mobile): Add multi selected assets to album (#1446)
* refactored to use multiple assets in AddToAlbumList

* add to album from multiselect

* consistent language

* fixed accidental boolean
2023-01-27 15:05:08 -06:00
Matthias Rupp
9be71f603e
fix(mobile): Fix endless 'Building timeline' loop after changing the number of assets per row (#1445) 2023-01-27 13:08:05 -06:00
martyfuhry
d377cf0d02
feat(mobile): Add to album from asset detail view (#1413)
* add to album from asset detail view

* layout and design

* added shared albums

* fixed remote, asset update, and hit test

* made static size

* fixed create album

* suppress shared expansion tile if there are no shared albums

* updates album

* padding on tile
2023-01-26 23:16:28 -06:00
Alex
8b73c2bf8a
fix(server): Handle exposure time correctly (#1432) 2023-01-26 13:14:05 -06:00
Matthias Rupp
bcb0056b55
chore(mobile): Run dart analyze in CI (#1425)
* Run dart analyze in CI

* Add pub get

* Fix linter errors in mobile code
2023-01-26 08:40:19 -06:00
Matthias Rupp
f64db3a2f9
chore(mobile): add login integration tests and reorganize CI definitions (#1417)
* Add integration tests for the login process

* Reorganize tests

* Test wrong instance URL

* Run mobile unit tests in CI

* Fix CI

* Pin Flutter Version to 3.3.10

* Push something stupid to re-trigger CI
2023-01-25 10:10:04 -06:00
Alex
8b7d7f1666
fix(mobile): Home page app bar icons don't conform to theme change (#1409)
* fix(mobile): Home page app bar icons don't conform to theme change

* Remove unsued code
2023-01-24 12:23:06 -06:00
Alex
9a300d0286
feat(mobile): show current upload asset (#1399)
* Refactor info box

* Added show thumbnail

* Added loading indicator
2023-01-23 17:10:21 -06:00
Alex Tran
3aab8ccb4a Correctly show current backup asset date when createdAt is in the year of 1970 2023-01-22 22:40:56 -06:00
Alex
a65fea4d64
Actually remove http warning message 2023-01-21 23:29:34 -06:00
Matthias Rupp
f4c90426a5
feat(mobile): Add integration tests (#1359) 2023-01-21 21:43:28 -06:00
Connery Noble
43e9529ce4
feat(.well-known): add .well-known/immich to reference API endpoint (#1308)
* feat(.well-known): add .well-known/immich to reference API endpoint

* feat(.well-known): make schema optional (defaults to https)

* adjust method comment to be a little less confusing

* fix casting issue with resovled url

* include when checking Well-known, update server hint

* add validation for login form's server url

* consolidate common process into resolveAndSetEndpoint

* fix missed prettier formatting

* revert translation changes

* update environment variable description, hopefully a bit clearer

* rename environment variable to IMMICH_API_URL_EXTERNAL

* comment out optional env variables

* fix(web): browser-side api client to include authorization token

* Revert "fix(web): browser-side api client to include authorization token"

This reverts commit 60e338938f.

* remove multi-domain related changes
2023-01-19 09:45:37 -06:00
Matthias Rupp
7a1ae8691e
feat(mobile): Various minor performance improvements (#1176)
* Improve scroll performance by introducing repaint boundaries and moving more calculations to providers.

* Add error handing for malformed dates.

* Remove unused method

* Use compute in different places to improve app performance during heavy tasks

* Fix test

* Refactor `List<RenderAssetGridElement>` to separate `RenderList` class and make `fromAssetGroups` a static method of this class.

* Fix loading indicator bug

* Use provider directly

* `RenderList` refactoring

* `AssetNotifier` refactoring

* Move `combine` to static private method

* Extract compute methods in cache services to static private methods.

* Use `tryParse` instead of `parse` with try/catch for dates.

* Fix bug in caching mechanism.

* Fixed state not being used to trigger conditional rendering

* styling

* Corrected state

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2023-01-18 09:59:23 -06:00
Matthias Rupp
89a6ed2a5b
feat(mobile): Rework of the exif sheet (#1213)
* Draggable sheet in asset viewer page

* Minor improvements

* Fix display bug

* Fix some styling

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-01-11 14:54:12 -06:00
Alex
d3bc92c3f8
fix(mobile) Disable autocorrection on endpoint URL (#1166) 2022-12-22 14:29:48 -06:00
Alex
2459eabb05
feat(mobile) delete button in detail viewer (#1165) 2022-12-22 14:10:21 -06:00
Enrico Brambilla
8ee7504c45
feat(mobile): autofill login form (#1128) 2022-12-20 09:10:31 -06:00
Alex
2edbf64e69
fix(mobile) invalid date in exif cause timeline to crash (#1095) 2022-12-11 14:49:03 -06:00
Jason Rasmussen
cefdd86b7f
refactor(server): device info service (#1071)
* refactor(server): device info service

* use upsertDeviceInfo in mobile app

* fix: return types and dedupe code

Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com>
2022-12-08 09:57:07 -06:00
Fynn Petersen-Frey
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-Frey
83c7434eb5
feat(mobile): enable zoom of preview images & reuse cached thumbnails (#1049) 2022-12-03 21:59:39 -06:00
Fynn Petersen-Frey
424b11cf50
feat(mobile): configure detail viewer asset loading (#1044) 2022-12-02 14:55:10 -06:00
Alex
a3971543b5
fix(mobile): Start up from splash screen does not trigger foreground backup (#1042) 2022-12-01 09:20:53 -06:00
Alex
d31eddf32f
chore(mobile) Improve mobile UI (#1038) 2022-11-30 10:58:07 -06:00
Fynn Petersen-Frey
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
Alex
024177515d
feat(mobile) Add in app logging to show app's log information (#1014) 2022-11-27 14:34:19 -06:00
Fynn Petersen-Frey
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
Kiel Hurley
976d347623
feat(server,web,mobile): Use binary prefixes for data sizes (#1009) 2022-11-24 11:39:27 -06:00
Alex
39b7ab66d4
chore(mobile): clean up linter problems (#1000) 2022-11-21 06:13:14 -06:00
Alex
56ce747ffc
fix(mobile): freeze on splash screen due to accessing bad state (#998) 2022-11-21 05:29:43 -06:00
Alex
b3e51cc849
feat(mobile) Add OAuth Login On Mobile (#990)
* Added return type for oauth/callback

* Remove console.log

* Redirect app

* Wording

* Added loading state change

* Added OAuth login on mobile

* Return correct status for  correct redirection

* Auto discovery OAuth Login
2022-11-20 11:43:10 -06:00
Alex Tran
e01e4e6530 Fixed motion play icon in light mode mobile 2022-11-19 15:23:49 -06:00
Alex
8bc64be77b
feat: support iOS LivePhoto backup (#950) 2022-11-18 23:12:54 -06:00
Alex
e799f35dd2
chore(server) refactor serveFile and downloadFile endpoint (#978) 2022-11-16 00:11:16 -06:00
Fynn Petersen-Frey
8d0ff974e1
refactor(mobile): tidy-up dependencies, remove unused, replace rarely used ones (#948) 2022-11-11 11:52:02 -06:00
Fynn Petersen-Frey
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
Alex Tran
2ff1a81f19 Update size 2022-11-06 21:20:48 -06:00
Alex
f0874ff3fd
feat(mobile) Enhance bottom app bar on home page (#934)
* Added bottom sheet

* Finished styling bottom app bar

* Fixed border radius
2022-11-06 20:41:10 -06:00
Alex
c8538cc62f
feat(mobile): Enhanced vertical swiping motion in image viewer (#932) 2022-11-05 22:59:06 -05:00
Matthias Rupp
b5751a3fa8
feat(mobile): Add selected assets to album (#901)
* First implementation that uses new API

* Various UI improvements

* Create new album from home screen

* Fix padding when in multiselect mode

* Alex Suggestions

* Change to album after creation
2022-11-05 20:21:55 -05:00
Fynn Petersen-Frey
dc7df5bcfa fix(mobile, Android): throttle all background backup notifications 2022-11-01 16:26:15 +01:00
Fynn Petersen-Frey
dcefd53bfe
fix(mobile,Android): throttle detail progress notifications & wait on foregroundInfo (#907) 2022-10-31 21:02:06 -05:00
Fynn Petersen-Frey
4a6c337960 reduce app startup time by loading Hive boxes in parallel 2022-10-31 15:38:24 +01:00
Alex
6159c83fd2
feat(mobile) duplicated asset upload handling mechanism (#853) 2022-10-25 09:51:03 -05:00
Alex
a87c1c1210
fix(mobile) not possible to sign out when option is enable (#860) 2022-10-24 14:45:58 -05:00
Alex
061b229e12
feat(mobile): Cache assets and albums for faster loading speed
feat(mobile): Cache assets and albums for faster loading speed
2022-10-19 15:53:15 -05:00
Matthias Rupp
3617433858 Refactor abstract class to separate file 2022-10-19 22:03:54 +02:00
Matthias Rupp
d77e25425e Add cache for shared albums 2022-10-18 14:06:35 +02:00
Zeeshan Khan
a3ca5307a5 fixes #310 back button navigation 2022-10-17 13:04:17 -05:00
Matthias Rupp
6796462b13 Switch to plain fs based caching mechanism 2022-10-17 18:02:43 +02:00
Matthias Rupp
d08475d5af Switch to lazyBox 2022-10-17 16:40:51 +02:00
Matthias Rupp
d310c77fc8 Add album list response caching 2022-10-17 14:53:27 +02:00
Matthias Rupp
75d8ca1306 Invalidation on logout and timing measurements 2022-10-16 09:50:31 +02:00
Matthias Rupp
894eea739e JSON based caching 2022-10-15 23:20:15 +02:00
Matthias Rupp
1156290377 Add asset response cache 2022-10-14 23:57:55 +02:00
Alex Tran
f05d5bdb9e Added haptic feedback to incorect login 2022-10-14 16:13:35 -05:00
Alex Tran
e38166837d Merge branch 'main' of github.com:immich-app/immich into dev/mobile-cosmetic-improvement 2022-10-14 15:58:26 -05:00
Alex Tran
293e713af6 Hide bottom app bar when multiselect enabled 2022-10-14 15:37:15 -05:00
Alex Tran
03866b4c31 Merge branch 'feature/albums-new-grid' of github.com:immich-app/immich into feature/albums-new-grid 2022-10-14 14:52:07 -05:00
Alex Tran
4f2c08525f Merge upstream 2022-10-14 14:52:00 -05:00
Matthias Rupp
2c12f53937 Fix storage indicator settings 2022-10-14 21:17:23 +02:00
Alex Tran
c88e5f9be2 Add haptic feedback on swiping asset 2022-10-14 11:26:10 -05:00
Alex Tran
0f51a9794e fixed delete dialog colors 2022-10-14 11:15:19 -05:00
Matthias Rupp
6ab6507db9 Revert changes to albums 2022-10-08 13:18:45 +02:00
Matthias Rupp
3c807ae86e Exernalize multiselect state 2022-10-08 13:08:56 +02:00
Matthias Rupp
6b84534632 Get rid of home page state provider 2022-10-06 22:41:56 +02:00
Fynn Petersen-Frey
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
Alex
479f706f8a
fix(mobile): Fix error parsing datetime prevent the timeline to be displayed (#784) 2022-10-04 15:19:29 -05:00
Matthias Rupp
a117e897ca Move selection logic to asset grid class 2022-10-01 19:19:40 +02:00
Matthias Rupp
347ac70063 Make new asset grid the default 2022-10-01 10:38:11 +02:00
Matthias Rupp
1970a64f6f Use new asset grid for search result page 2022-09-30 11:05:54 +02:00
Matthias Rupp
dd71a53f5e Hide scroll handle for lists < 100 assets 2022-09-30 10:47:31 +02:00
Matthias Rupp
8440d9890c Improve scrolling performance in albums and search 2022-09-29 21:53:35 +02:00
Matthias Rupp
87ca031335
Fix bug with missing year and add date to drag handle (#761) 2022-09-29 10:19:55 -05:00
Matthias Rupp
28bf497a0b
feat(mobile): Improve timeline performance on mobile - experimental (#710) 2022-09-28 11:30:38 -05:00
Alex
e5459b68ff
fix(server,web,mobile): Incorrectly record and show timestamp and time zone of the asset (#706)
Implemented a mechanism to extract the correct time zone from the GPS coordinate if presented in the file's EXIF, and to convert the timestamp to the correct UTC time so that the time will show correctly based on the mobile/web local time zone.
2022-09-22 15:58:17 -05:00
Alex
10239161fd
fix(mobile): app crash when there is no object detection result on search page (#725)
* fix(mobile): app crash when there is no data for object detection

* Up version for release

* Up version for release
2022-09-19 11:03:51 -05:00
Alex
2e06be5155
Up mobile version and update deprecated api 2022-09-18 16:11:24 -05:00
Alex
47b73a5b64
fix(mobile): Fixed iOS 16 overflow cache and memory leaked in gallery viewer. (#700) 2022-09-16 16:46:23 -05:00
Alex
7e8bf94543
fix/cache read write error ios16 (#691)
* Fix(mobile) cache read/write issue, cannot load image on ios16

* Update
2022-09-14 10:18:25 -05:00
Alex
011332e509
fix(mobile) memory leaked causes app to crash when swiping (#673)
* Dispose image provider when swiping away from the asset
2022-09-11 09:56:26 -05:00
Alex
5403ef4d84
Fix(mobile) oversize play button (#672) 2022-09-11 00:25:04 -05:00
Alex
f88ff4fb5c
fix(mobile): background backup not working in release mode (#664) 2022-09-10 11:46:51 -05:00
Fynn Petersen-Frey
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
Alex Tran
c19d26f4f3 Update some mobile UI with Material 3 theme 2022-09-06 09:37:04 -05:00
Alex Tran
2edfc75c8a Fixed sliverappbar icon color to conform with theming 2022-09-06 08:18:07 -05:00
Fynn Petersen-Frey
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-Frey
5172242f88
fix: persist WiFi + charging settings of background backup (#553) 2022-08-30 09:09:19 -05:00
Matthias Rupp
25e68cf826
Better caching for mobile (#521)
* Use custom caches in all modules

* Cache Settings

* Fix wrong key

* Create custom cache repository based on hive

* Show cache usage in settings

* Show cache sizes

* Change settings ranges and default value

* Handle cache clear by operating system

* Resolve review comments
2022-08-29 22:44:43 -05:00
Alex
bf2760ffef
Fixed mobile timeline crash when date group cannot be parsed (#530)
* Handle error when datetime is incorrect

* Added better debug message
2022-08-24 21:31:20 -07:00
Alex
5cd4d2d158
Added condition to show notification setting on android only 2022-08-21 11:04:01 -07:00
Matthias Rupp
8e4c4c34e4
Use CachedNetworkImage and separate cache for thumbnails on library page (#509)
* Use CachedNetworkImage and separate cache for thumbnails on library page

* Use caching for shared albums as well

* Introduce cache service
2022-08-21 09:41:36 -07:00
Fynn Petersen-Frey
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
Matthias Rupp
013a0f8324
Customization options for asset grid (#498)
* Add settings options for number of assets per row and storage indicator

* Add attributes to enum to avoid duplicate code

* Also apply customizations to albums

* Minor Refactorings

* Three stage loading i18n fix
2022-08-20 14:19:40 -07:00
Alex
25338ce02f
Fixed issue with filename is blank on iOS causing update to fail 2022-08-18 16:27:08 -05:00