Adam Gastineau
235daff561
chore(mobile): more complicated Freezed pass ( #30452 )
...
* chore(mobile): example freezed implementation on some models
2026-08-10 14:12:45 -07:00
Santo Shakil
35c2a90fca
fix(mobile): video playback controls dead for backed up videos opened from search ( #30587 )
...
* key video player state by asset id instead of hero tag
* expose id on BaseAsset instead of a separate playerKey
2026-08-09 23:54:55 +06:00
Adam Gastineau
18d4a796bb
chore(mobile): simple freezed implementation on some models ( #30168 )
...
* chore(mobile): example freezed implementation on some models
* Don't commit Freezed generated code
* Freezed easy pass
* Formatting fix
* Generate Flutter debugging info
2026-08-05 12:00:49 -07:00
Adam Gastineau
e7aace436d
chore(mobile): Apply stricter linting rules for correctness ( #30372 )
...
* chore(mobile): Apply stricter linting rules for correctness
* Added discarded_futures rule
2026-07-30 19:39:24 +00:00
Adam Gastineau
d864a90811
chore(mobile): Apply stricter linting rules for formatting ( #30370 )
...
* chore(mobile): Apply stricter linting rules for formatting
* Formatting fixes
2026-07-30 08:56:46 +00:00
shenlong
04a38ba91c
refactor: asset update method ( #30201 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-27 10:15:36 -04:00
Yaros
792d88961a
feat(mobile): custom date range for map ( #26205 )
...
* feat(mobile): custom date range for map
* refactor: rename timerange & remove isvalid
* refactor: rename customtimerange variables
* refactor: add back setRelativeTime
* refactor: implement suggestions
* refactor: suggestions
* fix: ifPresent
* fix: context.locale
* chore: restrict selection
* refactor: move options to mapconfig
* refactor: move model to domain
* chore: locale toLanguageTag
* add map codec tests
* rebase
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-23 20:48:15 +05:30
shenlong
3485dbffda
refactor(mobile): extract CachedKeyValueRepository ( #28789 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-21 20:23:50 +00:00
Peter Ombodi
a30ebab70c
fix(mobile): refresh asset stack after deleting viewer item ( #28164 )
...
* fix(mobile): refresh asset stack after deleting viewer item
* fix(mobile): clamp stack index,
filter visible stack assets
* refactor(mobile): simplify stack asset refresh handling
* fix(mobile): revert changes in DeleteLocalActionButton
* style(mobile): reformat code
* fix(mobile): remove redundant setStack
---------
Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com>
2026-07-22 01:48:47 +05:30
shenlong
297316c7b8
refactor: owned action assets filter ( #29382 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-16 19:49:30 +00:00
Santo Shakil
c4f084f4a5
fix(mobile): play videos from search results and folder view ( #29693 )
...
* fix(mobile): play videos from search results and folder view
* pr suggestion
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-07-08 20:22:35 +00:00
Adam Gastineau
a225c962de
fix(mobile): properly handle live photos locally ( #29462 )
...
* fix(mobile): properly handle live photos locally
* Added basic motion photo data tests
* Cover mismatched platforms and motion photos
* Revert unnecessary storage.repository changes
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-07-07 12:25:43 -05:00
Alex
165bca4b0a
feat: new feature message ( #29388 )
...
* feat: new feature board
* wip
* wip
* wip
* lint
* lint
* pr feedback
* pr feedback
* i18n
* i18n
2026-06-30 13:53:13 -05:00
Alex
622a330d82
chore: slideshow transition improvement ( #29079 )
...
* chore: better slideshow transition
* chore: tune
* simplify setup
* better default
* fix: correctly zoom alternatively
* lint
2026-06-15 10:10:05 -05:00
shenlong
296cd40da9
refactor: nullable settings key ( #28988 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-11 18:05:50 -05:00
Alex
8132e8a38c
feat: image quality option in sharing ( #28918 )
...
* feat: share with quality options
* merge main
* clean up
* refactor
* translation
* translation
* add settings and default behavior
* fix: lint
* cleanup
* merge main
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-10 09:26:09 -05:00
Yaros
346b98ed4f
feat(mobile): min face count per-user ( #28805 )
2026-06-05 13:16:07 -04:00
Yaros
733373c0ca
feat(mobile): ocr support ( #26523 )
2026-06-05 04:29:03 +05:30
shenlong
6b0fd89cd2
refactor: partner-page ( #28783 )
...
* refactor: partner-page
* cleanup
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-04 09:05:45 -04:00
shenlong
14aff51da9
refactor: rename metadata to settings ( #28691 )
...
rename metadata to settings
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-30 10:27:55 -05:00
shenlong
55947cb227
refactor: drop metadata scope ( #28668 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-28 16:42:59 -05:00
shenlong
3b23f71a3f
refactor: cleanup metadata ( #28485 )
...
jason-ify metadata
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-28 01:19:25 +05:30
shenlong
77701dd5a3
refactor: migrate backup config ( #28483 )
2026-05-19 00:40:10 +05:30
shenlong
d4808fdc4d
refactor: migrate album config ( #28482 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-18 23:28:59 +05:30
shenlong
9cffcc9f4e
refactor: migrate network config ( #28471 )
2026-05-18 16:22:42 +00:00
Ben Beckford
0ef04d9baa
feat(mobile): slideshow view ( #28421 )
...
* feat(mobile): slideshow view
* move slideshow settings to metadata store
* remove watch in initState
* wrap progress bar in safearea
* show slideshow button on remote albums
* fix crash on unknown assets
* always show slideshow option
* add zoom effect
* add padding to slideshow settings
* chore: styling tweak
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-05-15 18:12:04 -05:00
Marius
37cc028868
fix(mobile): use correct delete action ( #26575 )
...
fix(mobile): use correct delete for trashed assets
When viewing a trashed asset, the viewer bottom bar now shows the permanent delete button instead of the trash button, which had no effect on already-trashed assets.
2026-05-14 11:57:19 +00:00
shenlong
aeaf846482
chore: cleanup unused store keys ( #28415 )
...
cleanup unused store keys
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-13 18:03:57 -05:00
shenlong
0a4ed6fd71
refactor: migrate viewer config to metadata table ( #28396 )
...
* refactor: app metadata
* refactor to per row store
* cleanup
* more test
* review changes
* more refactor
* refactor
* migrate primary color
* migrate dynamic theme
* migrate colorfulInterface
* cleanup providers
* migrate cleanup
* migrate mapconfig
* remove unused keys
* migrate timeline config
* migrate image config
* migrate viewer config
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-13 09:36:19 -05:00
shenlong
79801595db
refactor: move image config to metadata table ( #28228 )
...
* migrate image config
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-13 03:20:35 +05:30
shenlong
91ac56cef2
refactor: move timeline config to metadata table ( #28227 )
...
* migrate timeline config
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-13 01:23:25 +05:30
shenlong
4d6a50c2cb
refactor: move map config to metadata table ( #28226 )
...
* refactor: app metadata
* refactor to per row store
* cleanup
* more test
* review changes
* more refactor
* refactor
* migrate primary color
* migrate dynamic theme
* migrate colorfulInterface
* cleanup providers
* migrate cleanup
* migrate mapconfig
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-11 22:43:52 -05:00
Ben Beckford
e142e3aca7
feat: recently added assets page ( #28272 )
...
* feat(server): add ordering date option to time buckets
* feat(web): add recently added page
* feat(server): recently created assets in explore data
* feat(web): recently added in explore tab
* fix: recently added assets ordering
* fix(server): failing bucket test
* feat(web): improve recently added preview
* chore: update e2e explore/timeline tests
* chore: rename and refactor timeline ordering dates
* fix(web): invalid timeline option
* feat(mobile): recently added page
* fix(server): sync tests
* fix(mobile): resync assets to get uploadedAt column
* chore: rename assetorderby enum
* chore(mobile): formatting
* minor fixes
* stylings
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-05-11 21:35:10 +00:00
shenlong
12f7b2a005
chore: add always_put_control_body_on_new_line lint ( #28352 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-11 13:47:24 -04:00
shenlong
21af184045
refactor: move cleanup config to metadata table ( #28225 )
...
* refactor: app metadata
* refactor to per row store
* cleanup
* more test
* review changes
* more refactor
* refactor
* migrate primary color
* migrate dynamic theme
* migrate colorfulInterface
* cleanup providers
* migrate cleanup
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-07 11:27:06 -05:00
shenlong
d4a97f2d25
refactor: move theme config to metadata table ( #28224 )
...
* refactor: app metadata
* refactor to per row store
* cleanup
* more test
* review changes
* more refactor
* refactor
* migrate primary color
* migrate dynamic theme
* migrate colorfulInterface
* cleanup providers
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-07 15:12:14 +00:00
shenlong
97100a4362
refactor: app metadata ( #28113 )
...
* refactor: app metadata
* refactor to per row store
* cleanup
* more test
* review changes
* more refactor
* refactor
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-05 10:45:51 +07:00
Daniel Dietzler
4bfb8b36c2
chore!: migrate album owner to album_user ( #27467 )
...
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-04-22 16:52:23 +02:00
Yaros
70397dc5a6
fix(mobile): zero exposure ( #28017 )
2026-04-21 15:47:27 -05:00
Luis Nachtigall
539a39ae49
refactor(mobile): Migrate durationInSeconds to durationMs ( #26615 )
2026-04-20 23:28:11 -04:00
shenlong
79fccdbee0
refactor: yeet old timeline ( #27666 )
...
* refactor: yank old timeline
# Conflicts:
# mobile/lib/presentation/pages/editing/drift_edit.page.dart
# mobile/lib/providers/websocket.provider.dart
# mobile/lib/routing/router.dart
* more cleanup
* remove native code
* chore: bump sqlite-data version
* remove old background tasks from BGTaskSchedulerPermittedIdentifiers
* rebase
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-04-15 23:00:27 +05:30
Brandon Wees
6dd6053222
feat: mobile editing ( #25397 )
...
* feat: mobile editing
fix: openapi patch
this sucks :pepehands:
chore: migrate some changes from the filtering PR
chore: color tweak
fix: hide edit button on server versions
chore: translation
* chore: code review changes
chore: code review
* sealed class
* const constant
* enum
* concurrent queries
* chore: major cleanup to use riverpod provider
* fix: aspect ratio selection
* chore: typesafe websocket event parsing
* fix: wrong disable state for save button
* chore: remove isCancelled shim
* chore: cleanup postframe callback usage
* chore: clean import
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2026-04-15 09:26:40 -05:00
shenlong
9c9feddf7d
refactor: folder page to use new models ( #27657 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-04-13 12:19:44 -05:00
Luis Nachtigall
e7db3b220d
feat(mobile): show animated images in asset viewer ( #26614 )
...
* Add support for showing animated images in AssetViewer with AnimatedImageStreamCompleter
* Add GIF overlay to thumbnail tile for animated assets
* formatting
* require isAnimated parameter in image providers for better asset handling
* feat: refactor AnimatedImageStreamCompleter to use streams for codec loading and initial image handling
* formatting
* add isAnimatedImage property to BaseAsset
* remove ApiService.getRequestHeaders() usage
2026-03-11 12:07:06 -05:00
Brandon Wees
9597f8c37f
feat(mobile): SyncAssetEditV1 ( #26518 )
...
* feat(mobile): SyncAssetEditV1
* fix: websocket handling
* fix: server version requirement
* fix: revert pubspec changes
2026-03-05 13:03:59 -06:00
Thomas
228ac63ab9
feat(mobile): keep search results visible ( #26498 )
...
Search results are replaced with a spinner when loading the next page,
which is quite jarring. Search results now remain visible when loading
the next page with a spinner at the bottom. The next page also loads
sooner, which makes it feel a lot smoother.
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-03-04 11:27:11 -06:00
Luis Nachtigall
f4e156494f
feat(mobile): add playbackStyle to local asset entity and related database schema ( #26596 )
...
* feat: add playbackStyle to local asset entity and related database schema
* implement conversion function for playbackStyle in local sync service
* implement conversion function for playbackStyle in local sync service
* refactor: remove deducedPlaybackStyle from TrashedLocalAssetEntityData
* add playbackStyle column to trashed local asset entity
* make playbackStyle non-nullable across the mobile codebase
* Streamline playbackStyle backfill:
- only backfill local assets playbackStyle in flutter/dart code
- only update trashed local assets in db migration
* bump target database version to 23 and update migration logic for playbackStyle
* set playback_style to 0 in merged_asset.drift as its a getter in base asset
* run make pigeon
* Populate playbackStyle for trashed assets during native migration
2026-03-01 14:50:21 -05:00
Alex Balgavy
8ba20cbd44
feat: tap to see next/previous image ( #20286 )
...
* feat(mobile): tap behavior for next/previous image
This change enables switching to the next/previous photo in the photo
viewer by tapping the left/right quarter of the screen.
* Avoid animation on first/last image
* Add changes to asset_viewer.page
* Add setting for tap navigation, disable by default
Not everyone wants to have tapping for next/previous image enabled, so
this commit adds a settings toggle. Since it might be confusing behavior
for new users, it is disabled by default.
* chore: refactor
* fix: lint
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2026-02-22 05:28:17 +00:00
Benjamin Nguyen
ae8dad68fc
feat(mobile): filter by tags ( #26196 )
...
filter by tags
2026-02-18 21:16:26 +00:00
Thomas
5c6433b4ca
feat(mobile): inline asset details ( #25952 )
...
The existing implementation for showing asset details uses a bottom
sheet, and is not in sync with the preview or scroll intent. Other apps
use inline details, which is much cleaner and feels better to use.
2026-02-17 09:24:34 -06:00