Commit Graph
3392 Commits
Author SHA1 Message Date
c12d5e6d35 feat: people management (#31620)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-28 21:29:15 +02:00
Santo Shakil 638b6ac553 fix(mobile): don't stack an upload with itself (#31851) 2026-09-28 22:15:04 +06:00
Luis Nachtigall 523c26e723 fix(mobile): don't clear cached initial image operation on completion (#31822) 2026-09-26 17:44:11 -04:00
Luis Nachtigall 93f65b750e fix(mobile): make cancellation in image providers consistent (#31823)
fix(mobile): handle cancellation in image providers
2026-09-26 17:39:15 -04:00
Santo Shakil fbff5f41be fix(mobile): ask before deleting local only photos on android 10 and below (#31146)
* ask before deleting local only photos on android 10 and below

* move the delete consent prompt into _cleanupLocalAssets

* ask on android 11 as well before deleting local photos

* ask before deleting only where android shows no prompt

* split the local delete prompt into its own helper

* pick the local delete dialog in one flat branch and rename notBackedUp to isLocalOnly
2026-09-25 20:19:01 +06:00
Adam Gastineau 2ccd0effc8 chore(mobile): enable dead code CI (#31753)
* chore(mobile): enable dead code CI

* Restore accidentally removed test and set mise default
2026-09-24 06:57:06 -07:00
Santo Shakil a4af86282d fix(mobile): resume after the app was launched in the background (#31557)
* run the first resume after a background launch with a full local sync

* keep the untouched lines of the swift file as they were

* check the background launch at the first resume even after a pause
2026-09-24 10:15:44 +06:00
Santo Shakil 2466eaeecd fix(mobile): play the server copy when the local video file cannot be read (#31606)
* play the server copy when the local video file cannot be read

* flatten the video source choice and add tests for it

* drop the platform override from the video viewer test
2026-09-24 10:15:33 +06:00
shenlongandshenlong-tanwen da5c2fedbe fix: save user_version in migration transaction (#31039)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-23 19:14:55 +05:30
Santo Shakil 3e2e8e0fe8 fix(mobile): retry the background backup when connectivity is restored (#30909)
* fix(mobile): retry the background backup when connectivity is restored

* return the backup result from the zone and drop the unrelated upload test

* flip the background worker bool to needsRetry

* decide the background retry from the upload callbacks

* run the background worker offline again and retry on reconnect with a separate connected gated request

* retry the background backup when any upload fails and keep one worker at a time

* always hand the retry to the connected worker and release the worker lock if startWork throws

* respect the charging only setting on the connected retry worker
2026-09-23 17:27:45 +06:00
Adam Gastineau 91247f1492 chore(mobile): migrate OCR, Tag, and UserMetadata to Store (#31704)
* chore(mobile): migrate OCR, Tag, and UserMetadata to Store

* Add comments to Tag HTTP repository

* Add mounted check
2026-09-22 18:29:33 +00:00
Adam Gastineau f367ab2121 fix(mobile): prevent SurfaceLayer crashing on maps in Viewer on Android (#31709) 2026-09-22 20:55:22 +05:30
Alex d6d0947383 feat: birthday memories (#30831) 2026-09-22 04:30:43 -05:00
Yohanes Kirana f48d4b3321 fix(mobile): ios clear file cache feedback (#31401)
* add clear file cache handling and snackbar

* create function to count deleted cache size

* clean up code and test

* ensure stable behaviour on non ios device

* refactor(mobile): simplify clear file cache feedback
2026-09-21 09:11:03 -07:00
Adam Gastineau 241ca1e2a2 chore(mobile): make Person Store reactive via Drift (#31661) 2026-09-18 11:21:31 -07:00
Santo Shakil 909b8aac93 fix(mobile): clamp out of range datetimes so timeline queries cannot crash (#30490)
* fix(mobile): clamp out of range datetimes so timeline queries cannot crash

* replace the per column converters with a clamping custom type

* heal each table in one statement, rename the clamp type, read dates as stored

* one medium test for the clamp, drop the dart side bounds, private clamp type
2026-09-18 17:41:15 +00:00
Adam Gastineau 47f349c51c chore(mobile): mise clean command (#31635) 2026-09-18 06:16:59 -07:00
Santo Shakil 398a04e11d fix(mobile): sync status page goes blank when the counts query fails (#31642)
* sync status page stays usable when the counts query fails

* sync status error text through i18n
2026-09-17 18:14:11 +00:00
Luis Nachtigall 9994eb3bed fix(mobile): prevent live photo from getting stuck during dismiss animation (#28080)
* update animation methods to return futures

* fix(mobile): prevent live photo from getting stuck during dismiss animation

* chore: rename variables + comment
2026-09-17 10:32:20 -07:00
Santo Shakil e8c6218431 fix(mobile): show the real date for android local photos with no exif (#29193)
* fix(mobile): show the real date for android local photos with no exif

photos with no exif date showed their copy-to-phone date in the "on this device" albums instead of the real date. fall back to the earlier of date_modified/date_added (matches the server + ios), plus a migration to fix the rows already saved wrong.

* persist migration progress when the date backfill fails

* fix local date migration for trash and epoch rows

* cover epoch dates in both local asset tables

* simplify the created date pick and rework the migration test

* heal no-exif dates from mediastore in the v27 migration

* check gallery access from dart and skip dates that do not parse

* let the date heal run once and never block the version

* read the trashed assets through the same cast the sync uses
2026-09-17 19:05:07 +06:00
Luis Nachtigall 5c8037301c fix(mobile): fill video placeholder to prevent flicker on open (#31621) 2026-09-17 05:44:08 -07:00
Jason Rasmussen efbbd32e55 feat(mobile): asset face v3 (#31615)
* feat(mobile): asset face v3

* fix: manually (cascade) delete asset faces
2026-09-16 16:27:02 -04:00
Jason Rasmussen 54e7ffa4e6 feat: asset face v3 (#31591) 2026-09-16 16:27:01 -04:00
TokenLimitExceeded 810454a343 fix: set limit maximum zoom in asset viewer (#31609)
* set maxScale in asset viewer

fix #31496 by setting a a maximum of 10× the fitted size

* change maxScale to 20x

* moved the multiplier to a constant

* type fix

* fix mismerge
2026-09-16 12:15:21 -07:00
Santo Shakil c68ecb3892 feat(mobile): write the previous checksum when the upload finishes (#31577)
* write the previous checksum when the upload finishes

* ask the server for the checksum when the upload has none
2026-09-16 23:47:02 +06:00
Adam Gastineau bd59a373de fix(mobile): make EXIF provider reactive (#31552)
* fix(mobile): make EXIF provider reactive

* Fix tests

* Remove unnecessary invalidations
2026-09-16 17:36:37 +00:00
Adam Gastineau 2e98d745bf fix(mobile): load more than one image on Android with Remove animations (#31587)
* fix(mobile): load more than one image on Android with Remove animations

* Wrap album Mesmerizing Slivers with ProgressiveImage
2026-09-16 13:47:23 +00:00
Adam Gastineau 64de38092e chore(mobile): centralize duplicate mesmerizing header components (#31590)
* chore(mobile): centralize duplicate mesmerizing header components

* Fix formatting
2026-09-15 12:33:15 -07:00
Santo Shakil 962ffaacc1 feat(mobile): stack edited photos over the original on upload (#31082)
* feat(mobile): stack edited photos over the original on upload

* stack through the asset service and give the live photo still its task metadata

* add plain photo stacking tests and the 2x2 edit detection matrix
2026-09-15 11:22:14 -07:00
Jason Rasmussen 99fd561144 chore: transition to nullable user.oauthId (#31560) 2026-09-15 09:33:15 -04:00
shenlongandshenlong-tanwen bea31eb064 fix: make local album provider reactive (#31582)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-15 08:11:31 -05:00
shenlongandshenlong-tanwen ca4637adc7 refactor: reenable cloud ids (#30345)
* refactor: reenable cloud ids

# Conflicts:
#	mobile/lib/domain/utils/migrate_cloud_ids.dart

* cleanup error formatting

* throw on unsupported

* move to freezed and slice http batching

* simplify remote asset duplication handling

* kUnsupportedOSError casing

* simplify _resolveCloudIds in local sync service

* cleanup and doccomment

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-15 00:12:26 +05:30
shenlongandshenlong-tanwen d2928cecce refactor: migrate to new changePassword endpoint (#31277)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-14 21:04:42 +05:30
Adam Gastineau c9eeedecc6 chore(mobile): shared DataController for management of data sources (#31457)
* chore(mobile): static Store to unify and streamline reactivity

* Add tests of caching and new stores

* Don't instantiate PeopleDbRepository

* Slight DB rename and fix throwing store methods

* chore(mobile): shared DataController for management of data sources

* chore(mobile): shared DataController for management of data sources

* Fix lint with removed dependency

* Re-order Store bootstrap

* Remove extra import
2026-09-14 07:58:34 -07:00
Santo Shakil aa8c5be42d chore(mobile): name pr builds after their pr number (#31541) 2026-09-14 19:34:14 +06:00
Adam Gastineau 6874c07dbe chore(mobile): static Store to unify and streamline reactivity (#31099)
* chore(mobile): static Store to unify and streamline reactivity

* Add tests of caching and new stores

* Don't instantiate PeopleDbRepository

* Slight DB rename and fix throwing store methods
2026-09-11 10:56:00 -07:00
Jason Rasmussen c0eed4902a chore: version v3.2.0 (#31441)
chore: v3.2.0
2026-09-11 11:02:34 -04:00
ArthurandArthur 7a6cfa65a9 chore(mobile): correctly rename person form state class (#31428)
chore: correctly name _PersonBirthdayEditFormState

Co-authored-by: Arthur <arthur@freye.in>
2026-09-11 06:08:15 -07:00
Damiano Ferrari d6dc6dcc3b refactor(mobile): convert CropAspectRatio to an enhanced enum (#31119)
* chore: migrate `CropAspectRatio` to enhanced enum

* chore: remove wrongly added file

* chore: implemented mertalev suggested changes

* fix: Added translations

* fix: address linter errors
2026-09-09 11:57:21 -07:00
Adam Gastineau ed38695209 chore(mobile): split out Timeline dragging into new widget (#31255) 2026-09-08 12:27:15 -07:00
Yaros 956330958f fix(mobile): hide negative age (#31341) 2026-09-08 10:25:56 -07:00
Adam Gastineau df7494b49e chore(mobile): split Timeline widget into smaller parts (#31223) 2026-09-08 07:11:04 -07:00
8d90cbeafc chore(mobile): remove unused code (#31280)
* chore: remove unused methods

* Remove dead test group

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Adam Gastineau <adam@agg.im>
2026-09-08 13:56:46 +00:00
shenlongandshenlong-tanwen 1dedbe4c39 chore: pump flutter to 3.47.2 (#31285)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-08 06:37:34 -07:00
Adam Gastineau 4c7b30c18b chore(mobile): move settings components to UI package (#31272) 2026-09-04 12:06:01 -07:00
Adam Gastineau a6d43828f6 fix(mobile): rewrite slideshow controller system (#30771)
* fix(mobile): rewrite slideshow controller system

* Normalize playback status changes

* Improve preloading assets

* Added controller and widget tests

* Minor fixes from PR comments

* More minor fixes

* Move slideshow test after rename
2026-09-04 07:48:49 -07:00
ArthurandArthur 31943fbe07 fix(mobile): make shared link download toggle depend on metadata toggle (#31264)
Co-authored-by: Arthur <arthur@freye.in>
2026-09-04 06:14:28 -07:00
Santo Shakil b1a93688d3 fix(mobile): refresh the memory lane after resume (#31239) 2026-09-03 20:00:22 -05:00
Adam Gastineau 8fbddc8f3a fix(mobile): use timeline scroll velocity to add placeholders (#29443)
* fix(mobile): use timeline scroll velocity to add placeholders

* Switch to using Flutter recommendDeferredLoading

* Shared debounce logic
2026-09-03 16:29:14 +00:00
Adam Gastineau 8e04e6e2c6 fix(mobile): prevent inner mutability on Freezed classes (#31229)
* fix(mobile): prevent inner mutability on Freezed classes

* Minor fixes
2026-09-03 21:04:58 +05:30