1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2024-12-28 22:51:59 +00:00
Commit graph

1652 commits

Author SHA1 Message Date
Alex The Bot
a8a7d29891 Version v1.106.3 2024-06-12 18:26:10 +00:00
Alex
67e98ed313
fix(mobile): video player not updating state (#10220)
* fix(mobile): video player not updating state

* unused code
2024-06-12 12:43:01 -05:00
Jason Rasmussen
3d82005797
fix: no floats (replace with doubles) (#10218)
* fix: no floats (replace with doubles)

* Update server/src/utils/misc.ts

Co-authored-by: Zack Pollard <zackpollard@ymail.com>

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-06-12 17:36:24 +01:00
Alex The Bot
81790ab166 Version v1.106.2 2024-06-11 19:09:13 +00:00
Alejandro Armas
69b948f3d0
fix(mobile): Motion Photos stopping music (#10151)
Add videoPlayer opt to prevent motionPhotos pausing music
2024-06-11 11:14:49 -05:00
Alex
60701d131e
chore(mobile): post release pump (#10114) 2024-06-11 06:26:52 -05:00
Alex
04808f8b5c
fix(mobile): warning message not resetting when changing server URL (#10112) 2024-06-11 10:48:49 +00:00
Alex The Bot
b5991c908e Version v1.106.1 2024-06-11 09:39:23 +00:00
Alex The Bot
f32c02bd25 Version v1.106.0 2024-06-10 17:50:00 +00:00
Alex
46df165ef2
feat(mobile): compatibility message warning (#10065)
* feat(mobile): compatibility message warning

* refactor and better signature
2024-06-10 12:43:54 -05:00
Fynn Petersen-Frey
972c66d467
fix(server): proper asset sync (#10019)
* fix(server,mobile): proper asset sync

* fix CI issues

* only use id instead of createdAt+id

* remove createdAt index

* fix typo

* cleanup createdAt usage

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-06-09 14:19:28 -05:00
Alex
e1e7de4d4c
chore(mobile): translation update (#10053) 2024-06-08 19:51:36 +00:00
Alex
dbd9782763
fix(mobile): viewAsset URL string (#10044) 2024-06-08 10:50:14 +00:00
Alex
9ac2ac2fcb
feat(web): send test email button (#10011)
* feat(web): test email button

* openapi

* UI button

* Show notification

* pr feedback

* remove jobs

* send email directly from repository and add feedback

* avoid sending many emails

* linter

* pr feedback

* lint

* lint

* lint
2024-06-07 11:34:09 -05:00
Mert
2b1b43a7e4
feat(ml): composable ml (#9973)
* modularize model classes

* various fixes

* expose port

* change response

* round coordinates

* simplify preload

* update server

* simplify interface

simplify

* update tests

* composable endpoint

* cleanup

fixes

remove unnecessary interface

support text input, cleanup

* ew camelcase

* update server

server fixes

fix typing

* ml fixes

update locustfile

fixes

* cleaner response

* better repo response

* update tests

formatting and typing

rename

* undo compose change

* linting

fix type

actually fix typing

* stricter typing

fix detection-only response

no need for defaultdict

* update spec file

update api

linting

* update e2e

* unnecessary dimension

* remove commented code

* remove duplicate code

* remove unused imports

* add batch dim
2024-06-07 03:09:47 +00:00
Jan108
b2761b12d1
feat(web): Option to assign people to unassigned faces (#9773)
* added unassigned faces to people edit

* svelte fix

* fix format

* Captialized unassigned person name, removed person id from alttext, fixed problem with multiple faces per person

* Added faces to the getAssetInfo API endpoint

* Updated openApi clients

* Readded the photoeditor dependency

* fixed lint/format

* fixed photoViewer type

* changes getAssetInfo.faces to only include unassigned faces

* fix: bad merge

* title

* logic

---------

Co-authored-by: Jan108 <dasJan108@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-06-05 07:26:00 +00:00
Alex
b3ee394fdc
feat(web): email notification preference settings (#9934)
* feat(web): email notification preference settings

* Update

* remove failed api generation file

* fix handle album invite return value

* Update web/src/lib/components/user-settings-page/notifications-settings.svelte

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* wording

* test

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-06-03 16:00:20 -05:00
Jason Rasmussen
69d2fcb43e
refactor: asset media endpoints (#9831)
* refactor: asset media endpoints

* refactor: mobile upload livePhoto as separate request

* refactor: change mobile backup flow to use new asset upload endpoints

* chore: format and analyze dart code

* feat: mark motion as hidden when linked

* feat: upload video portion of live photo before image portion

* fix: incorrect assetApi calls in mobile code

* fix: download asset

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-05-31 13:44:04 -04:00
Daniel Dietzler
4376104e3a
refactor(server): rename api tags to follow plural nomenclature of endpoints (#9872)
* rename api tags to follow plural nomenclature of endpoints

* chore: open api

* fix mobile
2024-05-29 18:26:57 -04:00
Daniel Dietzler
5463660746
refactor(server)!: move markers and style to dedicated map endpoint/controller (#9832)
* move markers and style to dedicated map endpoint

* chore: open api

* chore: clean up repos

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-29 11:51:01 -04:00
renovate[bot]
3f6e61d073
chore(deps): update dependency flutter to v3.22.1 (#9820)
* chore(deps): update dependency flutter to v3.22.1

* ci: flutter actions pull flutter version from pubspec.yaml

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-05-28 12:15:28 +01:00
Snowknight26
ee3530b34c
feat: add units to exposure time display (#9803)
* feat(web): add units to exposure time display

* feat(mobile): add units to exposure time display
2024-05-28 10:05:36 +01:00
Jason Rasmussen
0fc6d69824
feat(server): user preferences (#9736)
* refactor(server): user endpoints

* feat(server): user preferences

* mobile: user preference

* wording

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-28 09:16:53 +07:00
Conner Hnatiuk
11152f9b3d
fix(mobile): appBar on album viewer screen animates out and doesnt alter asset grid position (#9741)
* Animated out top bar added, currenlty need to move up current app bar as it is too far down

* album viewer appBar animates out and does not cause screen shift

* Formatting

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-27 00:13:32 +00:00
Jason Rasmussen
75830a4878
refactor(server): user endpoints (#9730)
* refactor(server): user endpoints

* fix repos

* fix unit tests

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-27 05:15:52 +07:00
Min Idzelis
d5cf8e4bfe
refactor(server): move checkExistingAssets(), checkBulkUpdate() remove getAllAssets() (#9715)
* Refactor controller methods, non-breaking change

* Remove getAllAssets

* used imports

* sync:sql

* missing mock

* Removing remaining references

* chore: remove unused code

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-24 21:02:22 -04:00
Zack Pollard
39d2c4f37b
chore: remove all deprecated endpoints/properties from server and mobile app (#9724)
* chore: remove deprecated title property from MemoryLaneResponseDto

* chore: remove deprecated webpPath and resizePath from MetadataSearchDto

* chore: remove deprecated sharedUserIds property from Album AddUsersDto

* chore: remove deprecated sharedUsers property from AlbumResponseDto

* chore: remove deprecated sharedWithUserIds property from CreateAlbumDto

* chore: remove deprecated isExternal and isReadOnly properties from AssetResponseDto

* chore: remove deprecated /server-info endpoint

* chore: bloody linters
2024-05-24 15:37:01 +01:00
Kedas
1f5d82e9d9
fix(mobile): respect SSL override during background sync (#9587) 2024-05-24 10:16:14 +01:00
François-Xavier Payet
56ea07bcba
fix(mobile): use correct Focus Node for latitude and longitude (#9699)
FIx focus node for longitude

Co-authored-by: François-Xavier Payet <fxpayet@salesapps.io>
2024-05-24 09:59:05 +01:00
Min Idzelis
4f21f6a2e1
feat: API operation replaceAsset, POST /api/asset/:id/file (#9684)
* impl and unit tests for replaceAsset

* Remove it.only

* Typo in generated spec +regen

* Remove unused dtos

* Dto removal fallout/bugfix

* fix - missed a line

* sql:generate

* Review comments

* Unused imports

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-23 20:26:22 -04:00
Alex
57d94bce68
feat(web): deduplication UI (#9540) 2024-05-23 12:57:25 -05:00
Jason Rasmussen
8f37784eae
refactor(server): /user profile endpoint (#9669)
* refactor(server): user profile endpoint

* chore: open api
2024-05-22 14:31:12 -04:00
Jason Rasmussen
ecd018a826
refactor(server): user info endpoint (#9668)
* refactor(server): user info endpoint

* chore: open api
2024-05-22 14:15:33 -04:00
Jason Rasmussen
202745f14b
refactor(server): plural endpoints (#9667) 2024-05-22 13:24:57 -04:00
renovate[bot]
27a02c75dc
chore(deps): update dependency fastlane to v2.220.0 (#9653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-22 09:46:53 +00:00
Zack Pollard
a3e7e8cc31
refactor: deprecate /server-info and replace with /server-info/storage (#9645) 2024-05-22 10:25:55 +01:00
Jason Rasmussen
2ada4a8426
chore: gitignore open api docs/tests (#9643) 2024-05-21 16:35:20 +01:00
renovate[bot]
924e9f08cd
chore(deps): update mobile (#9629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-21 13:40:21 +00:00
renovate[bot]
67fa598f44
chore(deps): update mobile (#9621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-21 08:31:53 +00:00
waclaw66
9222b9d130
fix(mobile): invite user list (#9624)
* fix(mobile): invite user list

* make it dense as before
2024-05-21 09:27:17 +01:00
Zack Pollard
d6757fc2dd
chore: update fvmrc flutter version to 3.22.0 (#9625) 2024-05-21 09:22:22 +01:00
Jason Rasmussen
84d824d6a7
refactor: library type (#9525) 2024-05-20 18:09:10 -04:00
Alex
1ad04f0b17
chore(server): openapi generation (#9585) 2024-05-18 13:50:28 -05:00
Alex
2689178a35
chore(server): openapi generation for Duplicate controller (#9560) 2024-05-17 12:05:23 -05:00
Alex
df42352f84
chore(server): openapi generation (#9554) 2024-05-17 14:58:55 +00:00
Mert
d8eca168ca
feat(server): fully accelerated nvenc (#9452)
* use arrayContaining

* libplacebo for nvenc

update dockerfile

* tweaks

* update nvenc options

* tweak settings

* refactor

* toggle for hardware decoding, software / hardware decoding for nvenc and rkmpp

* fix software tone-mapping not being applied

* separate configs for hw/sw

* update api

* add hw decode toggle

* fix mutating config

* remove `version` flag

* fix config type

* remove submodule

* handle temporal AQ

* remove duplicate tests

* use `tonemap_opencl`

* wording

* update docs
2024-05-16 13:30:26 -04:00
Mert
64636c0618
feat(server): near-duplicate detection (#8228)
* duplicate detection job, entity, config

* queueing

* job panel, update api

* use embedding in db instead of fetching

* disable concurrency

* only queue visible assets

* handle multiple duplicateIds

* update concurrent queue check

* add provider

* add web placeholder, server endpoint, migration, various fixes

* update sql

* select embedding by default

* rename variable

* simplify

* remove separate entity, handle re-running with different threshold, set default back to 0.02

* fix tests

* add tests

* add index to entity

* formatting

* update asset mock

* fix `upsertJobStatus` signature

* update sql

* formatting

* default to 0.03

* optimize clustering

* use asset's `duplicateId` if present

* update sql

* update tests

* expose admin setting

* refactor

* formatting

* skip if ml is disabled

* debug trash e2e

* remove from web

* remove from sidebar

* test if ml is disabled

* update sql

* separate duplicate detection from clip in config, disable by default for now

* fix doc

* lower minimum `maxDistance`

* update api

* Add and Use Duplicate Detection Feature Flag (#9364)

* Add Duplicate Detection Flag

* Use Duplicate Detection Flag

* Attempt Fixes for Failing Checks

* lower minimum `maxDistance`

* fix tests

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>

* chore: fixes and additions after rebase

* chore: update api (remove new Role enum)

* fix: left join smart search so getAll works without machine learning

* test: trash e2e go back to checking length of assets is zero

* chore: regen api after rebase

* test: fix tests after rebase

* redundant join

---------

Co-authored-by: Nicholas Flamy <30300649+NicholasFlamy@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Zack Pollard <zack@futo.org>
2024-05-16 18:08:37 +01:00
Alex
673e97e71d
chore(mobile): upgrade flutter to 3.22 (#9518)
* chore(mobile): upgrade flutter sdk

* gha

* update kotlin

* refactor

* ios build

* remove patch files

* not touching openapi pubpsec file
2024-05-16 10:58:02 -05:00
Jason Rasmussen
0589575154
chore: bump open-api (#9522) 2024-05-15 16:52:52 -05:00
Jason Rasmussen
73bf8f343a
chore(server): remove unused property (#9521) 2024-05-15 15:17:48 -04:00
Alex The Bot
88d4338348 Version v1.105.1 2024-05-14 21:31:24 +00:00
kleinMaggus
d62e90424e
feat(web,mobile) Allow videos to be looped in the detail viewer (#8615)
* First version of video looping for the web

* Use prop for slideshow state

* refactor asset settings and add autoloop video setting

* rename variables and adjust description

* loop videos based on user settings in gallery viewer

* make asset viewer setting a stateless widget

* do not update video playback value if looping is enabled

* add some translations

* adjust description

* add missing id

* WIP

* chore: clean up

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-14 14:31:47 -05:00
renovate[bot]
b7715305b3
chore(deps): update dependency fastlane to v2.220.0 (#9491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 14:12:27 -05:00
shenlong
6c008176c9
deps(mobile): update dependency auto_route to v8 (#9456)
deps: update dependency auto_route to v8

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-14 14:07:31 -05:00
renovate[bot]
72b1d582ba
chore(deps): update dependency flutter_lints to v4 (#9488)
* chore(deps): update dependency flutter_lints to v4

* fix lints

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-14 18:52:07 +00:00
renovate[bot]
42d0fc85ca
chore(deps): update mobile (#9453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 13:39:48 -05:00
Alex Tran
d551003311 chore: post release tasks 2024-05-14 13:38:12 -05:00
Alex The Bot
596ab39293 Version v1.105.0 2024-05-14 17:07:25 +00:00
Fynn Petersen-Frey
116043b2b4
feat(mobile): use efficient sync (#8842)
* feat(mobile): use efficient sync

review feedback

* adapt to changed  server endpoints

* formatting

* fix memory lane bug

* fix: bad merge

* fix call not returning correct number of asset

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-14 10:35:37 -05:00
Alex Tran
5985f72643 chore: post release tasks 2024-05-13 14:17:28 -05:00
Alex The Bot
a6f557c24c Version v1.104.0 2024-05-13 18:31:57 +00:00
Alex
1045957add
Localizely: Translations update (#9432)
chore(mobile): translation update
2024-05-13 13:27:21 -05:00
Andreas Gerstmayr
48927f5fb9
feat(server, web): include pictures of shared albums on map (#7439)
* feat(server, web): include pictures of shared albums on map

* run prettier

* re-create api clients

* implement suggestions from code review

* shared from partner -> shared from partners

* rename to 'include shared partner assets'

* chore: fix tsc error in server and prettier in web

* fix: include assets shared via owner albums

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-13 09:28:57 -04:00
Alex
fed8d11fb8
refactor(mobile): remove shared module (#9363) 2024-05-10 11:40:41 -05:00
Conner Hnatiuk
34d8879d32
fix(mobile) timeline slider no longer dissapears (#9358)
fix(mobile) added heightOffset, scrollbar accounts for main appBar and does not get squished

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-09 17:31:25 +00:00
Alex
55031cc117
Revert "feat(android) Check server is reachable before starting background backup (#8989)" (#9324)
This reverts commit 0435de50f8.
2024-05-09 12:16:53 -05:00
Dhrumil Shah
e4b777ecef
feat(mobile): Add pull to refresh to sharing page (#9274)
* Add pull to refresh to sharing page

* Fix format
2024-05-07 22:52:56 -05:00
renovate[bot]
f10fb0723d
chore(deps): update mobile (#7229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 22:24:37 -05:00
Dhrumil Shah
ae08abde24
fix(mobile): Fix asset selector title bar text (#9273)
Fix title bar text
2024-05-07 22:24:30 -05:00
aryiu
5eaf489ecf
fix(mobile): fix ca-CA.json file name (#9288)
Update and rename ca.json to ca-CA.json
2024-05-08 03:03:14 +00:00
Jason Rasmussen
e79d1b1ec2
refactor: create album users (#9315) 2024-05-07 16:38:09 -04:00
Alex
ee6995783f
fix(mobile): add user to album using new dto property (#9312)
* fix(mobile): add user to album using new DTO property

* fix(mobile): add user to album using new DTO property
2024-05-07 20:00:38 +00:00
Alex
5806a3ce25
refactor(mobile): widgets (#9291)
* refactor(mobile): widgets

* update
2024-05-06 23:04:21 -05:00
Alex
7520ffd6c3
fix(mobile): allow select empty album as backup album (#9290) 2024-05-06 23:00:52 -05:00
Alex
a2c5eaa73e
Localizely: Translations update (#9287)
chore(mobile): translation update
2024-05-06 15:39:53 -05:00
Tushar Harsora
065f1410f8
chore(mobile) Linked pt-BR.json with Mobile app and localizely.yml (#9281)
Linked pt-BR.json with Android app and localizely.yml

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
2024-05-06 11:22:27 -05:00
Alex
090592e5ae
refactor(mobile): pages (#9246)
* refactor(mobile): pages

* refactor

* album pages

* pages

* pages

* use *.page.dart

* representation

* put back module
2024-05-05 13:14:49 -05:00
Tushar Harsora
c18beddef8
fix(mobile): Reset dropdown values in search by location on mobile (#9261)
* set derived inputs as null if source input changes

* format

---------

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-04 22:44:34 +00:00
Jason Rasmussen
5b87abb021
feat(server): read-write external assets (#9235)
* refactor: remove isReadOnly and isExternal usages

* chore: open api

* fix: linting

* remove mobile isReadOnly dependency

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-03 15:34:57 -04:00
Alex
c1253663b7
refactor(mobile): services and providers (#9232)
* refactor(mobile): services and provider

* providers
2024-05-02 15:59:14 -05:00
Jason Rasmussen
ec4eb7cd19
feat(server): immich checksum header (#9229)
* feat: dedupe by checksum header

* chore: open api
2024-05-02 15:42:26 -04:00
jzhangdev
42f03af2dc
feat(mobile): play motion video with long press gesture support (#6543) 2024-05-02 15:37:39 +00:00
Nicolò
9bce3417e9
feat(server): email notifications (#8447)
* feat(server): add `react-mail` as mail template engine and `nodemailer`

* feat(server): add `smtp` related configs to `SystemConfig`

* feat(web): add page for SMTP settings

* feat(server): add `react-email.adapter`

This adapter render the React-Email into HTML and plain/text email.
The output is set as the body of the email.

* feat(server): add `MailRepository` and `MailService`

Allow to use the NestJS-modules-mailer module to send SMTP emails.
This is the base transport for the `NotificationRepository`

* feat(server): register the job dispatcher and Job for async email

This allows to queue email sending jobs for the `EmailService`.

* feat(server): add `NotificationRepository` and `NotificationService`

This act as a middleware to properly route the notification to the right transport.
As POC I've only implemented a simple SMTP transport.

* feat(server): add `welcome` email template

* feat(server): add the first notification on `createUser` in `UserService`

This trigger an event for the `NotificationRepository` that once processes
by using the global config and per-user config will carry the payload to the right notification transport.

* chore: clean up

* chore: clean up web

* fix: type errors"

* fix package lock

* fix mail sending, option to ignore certs

* chore: open api

* chore: clean up

* remove unused import

* feat: email feature flag

* chore: remove unused interface

* small styling

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-02 15:43:18 +01:00
Zack Pollard
0a598ae1b8
chore: fvm and node dependency updates and pinning (#9203)
* chore(mobile): ignore .fvm directory and update .fvmrc version

* chore(cli): add nvm and volta node versioning files/config

* chore(docs): add nvm and volta node versioning files/config, bump to node v20

* chore(server): add nvm node versioning file

* chore(web): add nvm and volta node versioning files/config

* chore(e2e): add nvm and volta node versioning files/config
2024-05-01 14:05:18 +01:00
Alex
c0495ca23f
fix(mobile): show all places don't show all places (#9193)
fix(mobile): show all places doesn't show all places
2024-04-30 22:14:33 -05:00
Alex
f057fe045e
refactor(mobile): entities and models (#9182)
* refactor(mobile): entities

* store entity

* refactor: models

* remove domain

* save all

* bad refactor
2024-04-30 21:36:40 -05:00
Alex The Bot
ba18776fc2 Version v1.103.1 2024-04-29 17:53:49 +00:00
Alex
25262b644f
chore: post release tasks 2024-04-29 10:31:50 -05:00
Alex The Bot
4291b38769 Version v1.103.0 2024-04-29 14:42:49 +00:00
Alex
b4f6184aa6
chore(mobile): more logs (#9081) 2024-04-29 09:17:49 -05:00
Alex
87de809e3d
fix(mobile): sync issue (#9149) 2024-04-29 08:54:21 -05:00
Jason Rasmussen
59caf1fce4
chore: lifecycle metadata (#9103)
feat(server): track endpoint lifecycle
2024-04-29 13:48:28 +00:00
Fynn Petersen-Frey
32e7cfea3d
fix(server): stacked assets for full sync, userIds as array for delta sync (#9100)
* fix(server): stacked assets for full sync, userIds as array for delta sync

* refactor(server): sync

* fix getDeltaSync after partner removal

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-28 23:24:21 -04:00
Alex
cf01ec1eb0
chore(mobile): Use bulk update endpoint (#9110)
* chore(mobile): bulk update

* deterministic update on client
2024-04-27 13:10:27 -05:00
Jason Rasmussen
5a49de5592
chore(server): remove old asset search (#9104)
* chore(server): remove old asset search

* chore: remove more unused search code
2024-04-27 12:57:39 +00:00
DeadEnd
00d186ec52
chore(mobile): add toast notification for "Download Started" (#9023)
Add Toast for download started

Add Toast notification for mobile download started.
Added new placeholder in each language file - populated with best estimate translations.
2024-04-26 01:08:52 -05:00
Alex
1d15cfb5f3
chore(server): remove unusuned endpoint/service/interface in asset-v1 (#9086) 2024-04-26 01:02:04 -05:00
Conner Hnatiuk
3e03f5348f
fix(mobile): restore button in asset viewer (#8919)
* fix:(mobile): spell error in top_control_app_bar.dart in function buildAddToAlbumButtom

* fix(mobile): add restore button to individual image view of trashed assets

* formatting
2024-04-26 01:01:03 -05:00
Alex
f1083a4c73
fix(mobile): group setting change doesn't propagate across the app (#9066)
fix(mobile): group setting change doesn't propage across the app
2024-04-26 00:54:45 -05:00
Alex
52bcb46b42
fix(mobile): show places in Search page on mobile (#9085)
* fix(mobile): show map on mobile

* remove ununsed code
2024-04-26 00:49:31 -05:00
Conner Hnatiuk
a0d03925e0
fix(mobile): appBar on home screen animates out and doesnt alter asset grid position (#9026) 2024-04-25 09:36:35 -05:00
martyfuhry
732bd1e652
fix(mobile): Fixes memory image cache for local images (#9019)
* Fixes equality operator for immich local image provider

* Changes image cache manager to no longer be image cache managers

* Updates large image cache to 12 images

format

* Try 5 Image cache

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-24 23:30:32 -05:00
mgabor
2943f93098
feat: readonly album sharing (#8720)
* rename albums_shared_users_users to album_permissions and add readonly column

* disable synchronize on the original join table

* remove unnecessary FK names

* set readonly=true as default for new album shares

* separate and implement album READ and WRITE permission

* expose albumPermissions on the API, deprecate sharedUsers

* generate openapi

* create readonly view on frontend

* ??? move slideshow button out from ellipsis menu so that non-owners can have access too

* correct sharedUsers joins

* add album permission repository

* remove a log

* fix assetCount getting reset when adding users

* fix lint

* add set permission endpoint and UI

* sort users

* remove log

* Revert "??? move slideshow button out from ellipsis menu so that non-owners can have access too"

This reverts commit 1343bfa311.

* rename stuff

* fix db schema annotations

* sql generate

* change readonly default to follow migration

* fix deprecation notice

* change readonly boolean to role enum

* fix joincolumn as primary key

* rename albumUserRepository in album service

* clean up userId and albumId

* add write access to shared link

* fix existing tests

* switch to vitest

* format and fix tests on web

* add new test

* fix one e2e test

* rename new API field to albumUsers

* capitalize serverside enum

* remove unused ReadWrite type

* missed rename from previous commit

* rename to albumUsers in album entity as well

* remove outdated Equals calls

* unnecessary relation

* rename to updateUser in album service

* minor renamery

* move sorting to backend

* rename and separate ALBUM_WRITE as ADD_ASSET and REMOVE_ASSET

* fix tests

* fix "should migrate single moving picture" test failing on European system timezone

* generated changes after merge

* lint fix

* fix correct page to open after removing user from album

* fix e2e tests and some bugs

* rename updateAlbumUser rest endpoint

* add new e2e tests for updateAlbumUser endpoint

* small optimizations

* refactor album e2e test, add new album shared with viewer

* add new test to check if viewer can see the album

* add new e2e tests for readonly share

* failing test: User delete doesn't cascade to UserAlbum entity

* fix: handle deleted users

* use lodash for sort

* add role to addUsersToAlbum endpoint

* add UI for adding editors

* lint fixes

* change role back to editor as DB default

* fix server tests

* redesign user selection modal editor selector

* style tweaks

* fix type error

* Revert "style tweaks"

This reverts commit ab604f4c8f.

* Revert "redesign user selection modal editor selector"

This reverts commit e6f344856c.

* chore: cleanup and improve add user modal

* chore: open api

* small styling

---------

Co-authored-by: mgabor <>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-25 04:19:49 +00:00
Arno Wiest
dc9b51ad02
feat(mobile): Added "jump to date" functionality to the memory view (#7323)
* implemented jump to date from memory

* Changed implementation to a ValueNotifier & fixes

* remove debug code

* feat(mobile):
- Added index bound checks
- Handled edge cases when scrolling to the very bottom of the grid-view
- removing the listener on dispose

* feat(mobile): fixed debug index offset & added debug toast for scroll errors

* feat(mobile): added more debug toasts...

* feat(mobile): scroll to month, if timeline is not grouped by days

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-24 15:02:03 -05:00
hdlineage
1e004611e4
feat(mobile) Add zh-TW.json for Traditional Chinese Language Support (#9046)
* Create zh-TW.json for Traditional Chinese Language Support

zh-TW for Traditional Chinese (Used in Taiwan and Hong Kong)

* Update zh-TW.json for missed translation.

Update missed translation at line 25.

* add zh-TW to localizely

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-24 15:28:47 +00:00
Alex
48b0b7e8bd
fix(mobile): ios random logout (#8997)
* fix(mobile): random logout

* move logout mechanism to the end

* More logs

* wording

* more logs

* fixed

* Better check
2024-04-23 16:09:10 -05:00
devjn
0435de50f8
feat(android) Check server is reachable before starting background backup (#8989)
* Check that server is reachable before starting backup work

* Fix iOS not starting background service

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-23 12:50:34 -05:00
Daniel Dietzler
7f1651df71
chore(server): enable swagger to take class validator rules into account (#9022)
* enable swagger to take class validator rules into account

* chore: open api
2024-04-22 18:13:44 -04:00
clementdelestre
21231d53a5
feat(mobile): add i18n in multiselect-grid and update translation (en and fr) (#8993)
* add i18n in multiselect grid (en-fr)

* add FR translations from (haptic feedback)

* revert settings
2024-04-21 13:26:19 -05:00
shenlong
776023b149
dep(mobile): upgrade gradle (#8409)
* dep(mobile): upgrade gradle

* chore(deps): update kotlin & guava

* build: change java version and flutter test version

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-04-20 23:07:32 -05:00
Alex
cef84f6ced
chore(mobile): override appbundle on PlayStore before getting released (#8960) 2024-04-20 19:56:03 -05:00
Alex The Bot
a2180a467d Version v1.102.3 2024-04-20 20:17:39 +00:00
Alex
2dd7c13b88
Revert "feat(android) Check server is reachable before starting background backup (#8594)" (#8958)
This reverts commit 71b6d8b569.
2024-04-20 12:15:26 -05:00
Alex
40931b5668
chore: post release tasks 2024-04-20 11:15:41 -05:00
Alex The Bot
25549b87c9 Version v1.102.2 2024-04-20 15:55:32 +00:00
Alex
7ec62f12b5
Revert "fix(mobile): random logout (#8739)" (#8954)
This reverts commit 97c099e26d.
2024-04-20 10:53:52 -05:00
Alex
c858b43717
chore: post release tasks 2024-04-20 09:12:11 -05:00
Alex The Bot
6eb1b82541 Version v1.102.1 2024-04-20 13:43:46 +00:00
devjn
71b6d8b569
feat(android) Check server is reachable before starting background backup (#8594)
* Bump androidx work version to 2.9.0

* Check that server is reachable before starting backup work

* Dart format

* Cleanup debug logs

* Fix analysis
2024-04-20 08:39:04 -05:00
Jason Rasmussen
171b6bb0a6
refactor: system metadata (#8923)
refactor(server): system metadata
2024-04-19 20:36:15 -04:00
Daniel Dietzler
78c7ff855d
refactor(server): move file file report endpoints to their own controller (#8925)
* move file report to its own controller

* chore: open api
2024-04-19 20:35:54 -04:00
Alex
57be9182d4
chore: post release tasks 2024-04-19 15:32:45 -05:00
Alex The Bot
886e07604e Version v1.102.0 2024-04-19 20:08:02 +00:00
Mert
431ffebddd
feat(server): use embedded preview from raw images (#8773)
* extract embedded

* update api

* add tests

* move temp file logic outside of media repo

* formatting

* revert `toSorted`

* disable by default

* clarify setting description

* wording

* wording

* update docs

* check extracted image dimensions

* test that it unlinks

* formatting

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-19 10:50:13 -05:00
Jason Rasmussen
4478e524f8
refactor(server): sessions (#8915)
* refactor: auth device => sessions

* chore: open api
2024-04-19 06:47:29 -04:00
martyfuhry
b74f8273c2
fix:(mobile): Updates old IMMICH text from the mobile settings modal (#8906)
* fix: Removes old IMMICH text from the mobile settings modal

Removed old Snowburst One font from the pubspec

Removes SnowburstOne.ttf file

* Uses immich text now
2024-04-18 14:11:00 -05:00
Alex
1aa8707b8a
chore(mobile): full width language change dropdown (#8806)
* chore(mobile): full width language change dropdown

* linting
2024-04-16 08:53:20 +02:00
Fynn Petersen-Frey
103cb60a57
feat(server): efficient full app sync (#8755)
* feat(server): efficient full app sync

* add SQL, fix test compile issues

* fix linter warning

* new sync controller+service, add tests

* enable new sync controller+service

* Update server/src/services/sync.service.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-04-16 07:26:37 +02:00
Ben McCann
28f591d01b
chore(mobile): update TODO comment (#8826) 2024-04-16 07:05:50 +02:00
Alex
3c7f70ec30
feat(mobile): haptic feedback setting (#8723)
* feat(mobile): haptic feedback testing

* linting
2024-04-15 07:50:47 +02:00
Alex
97c099e26d
fix(mobile): random logout (#8739) 2024-04-12 07:33:26 +02:00
shenlong
605da89425
fix(mobile): show error details in the log when available (#8729) 2024-04-12 03:16:40 +02:00
Alex
a4267ed60f
chore(mobile): move language setting to another file (#8726) 2024-04-11 14:26:37 +00:00
N00MKRAD
f1ca1794a1
Add AV1 transcoding support (#8491)
* Add AV1 transcoding support

- AV1 encoding on CPU via SVT-AV1 (libsvtav1 in ffmpeg)
- Supports CRF and optionally capped CRF (max bitrate)
- Tested playback successfully in Chrome Win+Android, Firefox Win+Linux, Android app

* AV1: Add support for encoding threads option

* Revert previous commit; specifying params multiple times is bad

We need to specify all svtav1-params at once, so putting the thread option into getThreadOptions is not possible.

* AV1: Override VAAPI getSupportedCodecs as it does not yet support AV1 unlike nvenc, qsv, amf

* Change BaseHWConfig supported codecs to only H264/HEVC

Configs that support VP9 and/or AV1 need to override getSupportedCodecs()

* Set SVT-AV1 threads with svtav1-params, remove duplicate block in NVENCConfig

* AV1Config: Fix empty svtav1-params array being added to options

* add tests

* update api

* allow crf-based two-pass mode

* formatting

* suggest 35

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-04-11 05:26:27 +00:00
akoscomp
b1bcd67f5a
add longer expirity for share link (#8617)
* add longer expirity for share link

* add longer expirity for web UI, add months and year option, add translation

* dart format

---------

Co-authored-by: NAGY Akos (external) <akos.nagy@frequentis.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-04-10 02:54:00 +00:00
Daniel Dietzler
7b1562c050
fix(server): remove isWatched from DTO (#8598)
* fix: remove isWatched

* chore: open api
2024-04-08 16:00:08 -04:00
Alex
4b622e6cfa
Localizely: Translations update (#8584)
chore(mobile): translation update
2024-04-06 22:01:11 -05:00
Alex
82aeb3292a
feat(mobile): in app language selector (#8574)
* feat(mobile): select locale in the mobile app

* add additional locale

* use the same locale variable across the app

* using different data structure

* drop down with button

* update pull locales

* open app ios

* remove dependency

* format fix
2024-04-06 21:58:35 -05:00
Witaut Bajaryn
527fd7d472
Fix typos: immcih -> immich (#8568) 2024-04-06 21:14:50 +00:00
Alex
7e611fa99c
format fix 2024-04-06 16:02:56 -05:00
Stefan H
ab97f03cb5
feat(mobile): include partner's photos on map (#8553)
* add option for showing partner images on the map

* renaming of iswithPartners variable
2024-04-06 14:04:40 +00:00
Michel Heusschen
7aaf48cb0c
feat(mobile): add missing translations (#8537)
* feat(mobile): add missing translations

* fix formatting
2024-04-05 09:45:37 -05:00
Alex
e5fe68cbf6
chore: post release tasks 2024-04-04 22:05:56 -05:00
Alex The Bot
3b0fff3b3d Version v1.101.0 2024-04-05 02:39:51 +00:00
Alex
ec7015be88
chore(mobile): add log to get file name for corrupted asset (#8527)
* chore(mobile): add log to get file name for corrupted asset

* add date
2024-04-04 21:28:05 -05:00
Alex
19fafd8c10
Localizely: Translations update (#8517)
chore(mobile): translation update
2024-04-04 18:48:17 -05:00
Alex
8337da183c
chore: update openapi (#8470) 2024-04-02 14:21:58 -05:00
Jason Rasmussen
cd0e537e3e
feat: persistent memories (#8330)
* feat: persistent memories

* refactor: use new add/remove asset utility
2024-04-02 10:23:17 -04:00
Fynn Petersen-Frey
4ab4a35eba
fix(mobile): sync all album properties (#8332) 2024-04-02 00:22:15 -05:00
Mert
8edc2fb46f
refactor(server): decouple generated images from image formats (#8246)
* rename

thumbnail config

update target paths, fix tests

rename to image settings

replace legacy enum

better typing

update sql

update api

remove config option

fix

* update docs

* update other thumbnail configs in migration

* keep legacy enum for now

* fix jumbled job names

* fix jumbled job names in tests

* rename thumbhash job

* rename dto

* fix tests

* preserve order

* remove unused import

* keep old fields in dto, marked deprecated

* update sql

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-02 04:56:56 +00:00
Alex
27be813011
feat(mobile): search enhancement (#8392) 2024-04-01 09:45:11 -05:00
Fynn Petersen-Frey
861b72ef04
fix(mobile): update album date range on add/remove (#8324) 2024-03-31 23:14:35 -05:00
waclaw66
34cbb18ecd
fix(mobile): memories translation (#8316) 2024-03-31 06:59:11 +00:00
Jason Rasmussen
25c9b779e4
fix: map theme auth in shared links (#8359)
fix: map theme auth
2024-03-29 09:43:30 -05:00
Daniel Dietzler
b8c5363a15
refactor(server): move timeline operations to their own controller/service (#8325)
* move timeline operations to their own controller/service

* chore: open api

* move e2e tests
2024-03-28 23:20:40 -04:00
Alex
3f61019ca1
chore: post release tasks 2024-03-28 13:49:18 -05:00
Alex The Bot
16513b4a6e Version v1.100.0 2024-03-28 18:36:38 +00:00
Alex
9b705e4450
chore(server): open-api memory lane number generation (#8314)
chore(server): openaapi memory lane number generation
2024-03-27 22:27:26 -05:00
Jason Rasmussen
9fe80c25eb
fix: memory lane assets in ascending order (#8309)
* fix: memory lane asset order

* chore: deprecate title

* chore: open-api

* chore: rename years => yearsAgo
2024-03-27 16:14:29 -04:00
Alex
a56cf35d8c
fix(mobile): recently add view show other user assets (#8184) 2024-03-22 08:41:55 -05:00
Eliezer Graber
827014fa4b
fix(mobile): android adaptive icon new logo (#8180)
* Use new logo for Android monochrome adaptive icon

* Use new logo for Android adaptive icon

* Add Android monochrome adaptive icon

* Remove ic_launch_foreground.png from drawable res

  - The mipmap res directories have an ic_launcher.png file that will be used on versions lower than 26
   - The adaptive icon will be used over versions 26 and above
2024-03-21 21:59:49 -05:00
Alex
944b33983c
fix(mobile): scroll stickiness (#8166) 2024-03-21 21:58:40 -05:00
Fynn Petersen-Frey
1abb0bdae8
feat(mobile): faster image loader (#8140)
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-21 11:51:03 -05:00
martyfuhry
5ef6215546
chore(mobile): Bump to Flutter 3.19.0 (#7167)
* Bump to Flutter 3.19.0

* Ran pub upgrade --major-versions and removed isar_version alias

Wrong http version

* Updated share_plus to fix android build

* Updates github actions to 3.19.0

* upgrade to 3.19.3

* upgrade to 3.19.3

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-21 11:31:18 -05:00
waclaw66
95fb9c4365
fix(mobile): spacing fixes of #8087 (#8163)
fix(mobile): spacing fix of https://github.com/immich-app/immich/pull/8087
2024-03-21 11:23:06 -05:00
Alex
591a641d8d
chore: post release tasks 2024-03-20 10:00:35 -05:00
Alex The Bot
5b314ffd46 Version v1.99.0 2024-03-20 14:50:57 +00:00
waclaw66
5e090646ba
fix(mobile): missing "Add name" translation (#8087)
fix(mobile): missing "Add name" translation, positioning
2024-03-20 14:26:09 +00:00
Alex
63b4fc6f65
chore(mobile): svg logo (#8074)
* chore(mobile): anti-aliasing logo

* use svg

* adjust height

* better sizing
2024-03-19 23:07:26 -05:00
Mert
f392fe7702
fix(server): "view all" for cities only showing 12 cities (#8035)
* view all cities

* increase limit

* rename endpoint

* optimize query

* remove pagination

* update sql

* linting

* revert sort by count in explore page for now

* fix query

* fix

* update sql

* move to search, add partner support

* update sql

* pr feedback

* euphemism

* parameters as separate variable

* move comment

* update sql

* linting
2024-03-20 03:23:57 +00:00
shenlong
9e4bab7494
feat(mobile): drag to select assets (#8004)
fear(mobile): drag to select assets

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-03-19 14:31:56 +00:00
waclaw66
9274c0701b
fix(mobile): do not show hidden people (#8072)
* fix(mobile): do not show hidden people

* dart format fix
2024-03-19 09:22:44 -05:00
Alex
0bc773fd00
refactor(mobile): backup album selection (#8053)
* feat(mobile): include album with 0 assets as album option for backup

* Show icon instead of thumbnail

* Handle backupProgress state transition correctly to always load the backup info

* remove todo comment
2024-03-19 08:40:14 -05:00
renovate[bot]
50924f0b3d
chore(deps): update dependency @types/node to v20.11.27 (#8012)
* chore(deps): update dependency @types/node to v20.11.27

* fixes

* fixes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Marty Fuhry <martyfuhry@gmail.com>
2024-03-18 19:49:31 -04:00
Jason Rasmussen
40262c30cb
refactor(server): library service (#8050)
* refactor: library service

* chore: open api

* fix: checks
2024-03-18 16:59:53 -04:00
Aegeontis
54fdf33fd9
Make mobile app a "media management app" to get rid of android prompt (#7851)
Make mobile app a "media management app"
2024-03-15 15:11:28 -05:00
martyfuhry
582cdcab82
feat(mobile): Remote thumbnails and images use an on-disk image cache (#7929)
* Fixes remote full / thumbnail provider

* Adds image cache manager to both remote image providers

format

format

Fix typo in equals

remove unused import

renames image loader

* Adds height and width to the image cache for thumbs

format

* Uses a separate remote and thumbnail cache

format

* Fixes key name

* Changes uri to string, fixes comment

* Chunk events are optional and remote thumbnails don't report chunk events

* better exception handling

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-14 15:29:09 -05:00
Ben
9bd79ffc00
feat(mobile): Adds file upload progress stats (#7760)
* feat(mobile): Adds file upload progress stats: current upload file size uploaded, current file size and formatted bytes per second upload speed. Closes #7379

* chore(mobile): Fix stan issues

* chore(mobile): Remove non-'en-US' translations, as I saw on another PR review (just looking around) that localisation is done via Localizely and this was the instruction (to only provide the en-US localisation).

* fix(mobile): Provide boundary checks to ensure overflow issues are accounted for on erroneous upload speed calculation, sometimes the numbers received back from the upload handler can be a bit wild.

* fix(mobile): Some heuristic bug fixing. Whilst thinking what could trigger overflow issues or 'zero' readouts, left over values from the previous file may do that. So adding the last upload sent bytes to the values to be reset may help! The time isn't necessary, as the period/cycle is inconsequential in this circumstance, well it should be anyway.

* fix(mobile): Actually, in combination to the last commit, some more heuristic bug fixing. I was thinking it would be advantageous not to reset the update time, as it would trigger a quicker first upload speed calculation. However, I realised that could also cause the calculation to be incorrect on the first cycle as the period wouldn't align. Not really sure if it would be a big deal, but I'm taking wild guesses in the dark here. Again, some purely heuristic debugging as I can't re-produce the underlying issue. This is mainly just ensuring that the state is fully reset and is a known state at the beginning of each file as a common strategy to reduce issues.

* refactor(mobile): Move the UI for the file progress to underneath the progress bar, it makes more sense there than in the file information table which contains only static information pertaining to the file itself. Switching to a monospace font to keep the UI from jumping around as the numbers change.

* refactor(mobile): In order to have the UI always present an 'active' upload speed (as per the discussion on PR #7760), this stores the 'upload speeds' (capped at the latest 10) in a list and calculates the current upload speed as the average over them. This way the UI can always display a 'constant' upload speed during uploading, instead of starting a fresh when each file starts uploading. Limiting it to the 10 latest keeps the average somewhat recent and ensures some level of sensible memory allocation.
2024-03-14 15:15:22 -05:00
martin
31f7e1aca3
feat(server, web): album orders (#7819)
* feat: album orders

* fix: tests

* pr feedback

* pr feedback

* pr feedback

* fix: tests

* add comment

* pr feedback

* fix: rendering issue

* wording

* fix: order value doesn't change

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-14 11:45:03 -05:00
thielepaul
428b7b0c4e
fix(mobile): make elements scrollable to avoid overflow in landscale (#7933)
fix(mobile): make elements scrollable to avoid overflow in landscape
2024-03-14 12:28:18 +00:00
Alex
76432341ed
feat(mobile): update logo (#7919)
* App Icon

* In App Icon

* runner

* ios icon

* ios is done

* splash

* Notification Icon

* Immich text

* Immich text

* actually update andoir icon

* adaptive icon

* adaptive icon
2024-03-13 12:14:59 -05:00
martyfuhry
08d64f1c25
chore(mobile): Removes analysis options for openapi directory (#7309)
* Removes analysis options for openapi directory

* Updates the generate open api script to remove the analysis_options.yaml file from the mobile/openapi directory
2024-03-13 09:27:52 -04:00
Ben Basten
727a8cd715
feat(mobile): add labels to app bar buttons (#7865) 2024-03-12 10:12:11 -05:00
shenlong
7489db9481
refactor(mobile): app settings (#7749)
* refactor(mobile): app settings

* Font size

* refactor(mobile): backup settings ui (#7771)

* refactor: SettingsButtonListTile

* refactor: Backup settings to App settings

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>

* fix: invalidate appsettingsprovider on timeline setting change

* styling

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-12 14:56:08 +00:00
Nicholas Flamy
7b5ff397b3
Fix trash permanent delete dialog (#7805)
* Fix Outdated Info for Deletion

* Undo Flutter Updating Dependencies
2024-03-11 22:25:55 -05:00
martyfuhry
a1130b3e27
fix(mobile): Fixes local thumbnail image provider key (#7766)
* Fixes large and small image cache

* Fixes local thumb provider key

format

* format

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-12 03:04:52 +00:00
martyfuhry
de28f83d0d
fix(mobile): Fixes immersive mode not ending for memory lane (#7767)
Fixes immersive mode not ending for memory lane
2024-03-11 22:02:28 -05:00
Alex
ae34e4f59f
chore: post release tasks 2024-03-11 09:48:25 -05:00
Alex The Bot
4027cba4eb Version v1.98.2 2024-03-11 14:17:12 +00:00
Ghazi Tounsi
49d9051879
fix(mobile): archive desc sorting (#7822)
desc sort
2024-03-10 21:15:34 -05:00
Alex
4fdb0835c9
chore: post release tasks 2024-03-08 19:08:33 -06:00
Alex The Bot
430561d692 Version v1.98.1 2024-03-08 23:44:13 +00:00
Sam Holton
7a4ae7d142
feat(server,web): add force delete to immediately remove user (#7681)
* feat(server,web): add force delete to immediately remove user

* update wording on force delete confirmation

* fix force delete css

* PR feedback

* cleanup user service delete for force

* adding user status column

* some cleanup and tests

* more test fixes

* run npm run sql:generate

* chore: cleanup and websocket

* chore: linting

* userRepository.restore

* removed bad color class from delete-confirm-dialoge

* additional confirmation for user force delete

* shorten confirmation message

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-03-08 17:49:39 -05:00
Jason Rasmussen
a50f125dd1
refactor: api validators (boolean and date) (#7709)
* refactor: api validators (boolean and date)

* chore: open api

* revert: time bucket change
2024-03-07 22:59:02 -05:00
Alex
753842745d
Localizely: Translations update (#7715)
chore(mobile): translation update
2024-03-07 20:56:05 -06:00
martyfuhry
21caa06fa2
fix(mobile): Fixes large and small image cache (#7726)
Fixes large and small image cache
2024-03-07 20:55:50 -06:00
Jason Rasmussen
661409bac7
feat(server): create a person with optional values (#7706)
* feat: create person dto

* chore: open api

* fix: e2e

* fix: web usage
2024-03-07 15:34:57 -05:00
Alex The Bot
7dc5e0cc4f Version v1.98.0 2024-03-07 19:22:14 +00:00
Alex Tran
ba5d5256b1 Revert "Version v1.98.0"
This reverts commit 9b1a379fa6.
2024-03-07 12:04:54 -06:00
Alex The Bot
9b1a379fa6 Version v1.98.0 2024-03-07 17:40:40 +00:00
Alex
cd058fdafa
chore(mobile,web): use originalFilename (#7692)
* chore(mobile,web): use originalFilename

* web

* remove unused code
2024-03-06 23:20:04 -05:00
martyfuhry
4323d18387
fix(mobile): Refactors exif bottom sheet to use widgets and fixes slow sliding up exif bottom sheet (#7671)
* Refactors exif bottom sheet to use widgets and fixes slow sliding up experience

format

* Refactors exif bottom sheet to use widgets and fixes slow sliding up experience

format

* Fixes people

* removes wrong exif bottom sheet

format

format

* Moved more widgets out of exit bottom sheet

format

* small styling

---------

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-07 03:27:33 +00:00
Emanuel Bennici
ba12d92af3
feat(mobile): Add people list to exit bottom sheet (#6717)
* feat(mobile): Define constants as 'const'

* feat(mobile): Add people list to asset bottom sheet

Add a list of people per asset in the exif bottom sheet, like on the
web.

Currently the list of people is loaded by making a request each time to
the server. This is the MVP approach.
In the future, the people information can be synced like we're doing
with the assets.

* styling

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-06 11:15:54 -05:00
Sam Holton
9125999d1a
feat(server,web): make user deletion delay configurable (#7663)
* feat(server,web): make user deletion delay configurable

* alphabetical order

* add min for user.deleteDelay in SettingInputField

* make config.user.deleteDelay SettingInputField min consistent format

* fix e2e test

* update description on user delete delay
2024-03-05 23:45:40 -06:00
Alex
52dfe5fc92
fix(server): stack info in asset response for mobile (#7346)
* fix(server): stack info in asset response for mobile

* fix(server): getAllAssets - do not filter by stack ID

* tet(server): GET /assets stack e2e

* chore(server): fix checks

* stack asset height

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-03-06 05:44:56 +00:00
martyfuhry
4ef4cc8016
refactor(mobile): Refactor video player page and gallery bottom app bar (#7625)
* Fixes double video auto initialize issue and placeholder for video controller

* WIP unravel stack index

* Refactors video player controller

format

fixing video

format

Working

format

* Fixes hide on pause

* Got hiding when tapped working

* Hides controls when video starts and fixes placeholder for memory card

Remove prints

* Fixes show controls with microtask

* fix LivePhotos not playing

* removes unused function callbacks and moves wakelock

* Update motion video

* Fixing motion photo playing

* Renames to isPlayingVideo

* Fixes playing video on change

* pause on dispose

* fixing issues with sync between controls

* Adds gallery app bar

* Switches to memoized

* Fixes pause

* Revert "Switches to memoized"

This reverts commit 234e6741de.

* uses stateful widget

* Fixes double video play by using provider and new chewie video player

wip

format

Fixes motion photos

format

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-03-05 21:42:22 -06:00
Sam Holton
7ef202c8b2
feat(server, web): add checkbox to create user screen for shouldChang… (#7598)
feat(server, web): add checkbox to create user screen for shouldChangePassword
2024-03-03 23:40:03 -06:00
Mert
2fa10a254c
feat(web): improve alt text (#7596)
* alt text

* memory lane alt text

* revert sql generator change

* use getAltText

* oops

* handle large number of people in asset

* nit

* add aria-label to search button

* update api

* fixed tests

* fixed typing

* fixed spacing

* fix displaying null
2024-03-03 16:42:17 -05:00
Sam Holton
7303fab9d9
feat(server/web): add oauth defaultStorageQuota and storageQuotaClaim (#7548)
* feat(server/web): add oauth defaultStorageQuota and storageQuotaClaim

* feat(server/web): fix format and use domain.util constants

* address some pr feedback

* simplify oauth storage quota logic

* adding tests and pr feedback

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-03-01 19:46:07 -05:00
waclaw66
670a3838a3
fix(mobile): bottom bar Upload translation (#7553)
Co-authored-by: Václav Nováček <waclaw@waclaw.cz>
2024-03-01 11:24:55 -06:00
Michel Heusschen
c89d91e006
feat: filter people when using smart search (#7521) 2024-02-29 16:14:48 -05:00
Jason Rasmussen
15a4a4aaaa
chore: remove unused upload property (#7535)
* chore: remove isExternal

* chore: open-api
2024-02-29 16:02:08 -05:00
Jonathan Jogenfors
efa6efd200
feat(server,web): remove external path nonsense and make libraries admin-only (#7237)
* remove external path

* open-api

* make sql

* move library settings to admin panel

* Add documentation

* show external libraries only

* fix library list

* make user library settings look good

* fix test

* fix tests

* fix tests

* can pick user for library

* fix tests

* fix e2e

* chore: make sql

* Use unauth exception

* delete user library list

* cleanup

* fix e2e

* fix await lint

* chore: remove unused code

* chore: cleanup

* revert docs

* fix: is admin stuff

* table alignment

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-29 12:35:37 -06:00
Alex
2e56e777ce
chore: post release tasks 2024-02-28 16:49:02 -06:00
Alex The Bot
6f53e83d49 Version v1.97.0 2024-02-28 22:34:00 +00:00
martyfuhry
b1a896ba61
feat(mobile): Adds better precaching for assets in gallery view and memory lane (#7486)
Adds better precaching for assets in gallery view and memory lane
2024-02-28 16:13:15 -06:00
martyfuhry
d28abaad7b
fix(mobile): Fixes prefer remote assets in thumbnail provider (#7485)
Fixes prefer remote assets in thumbnail provider

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-02-28 21:55:29 +00:00
martyfuhry
79442fc8a1
fix(mobile): Fixes thumbnail size with blur and alignment in video player (#7483)
* Clip the edges of the image filter

* Fixes thumbnail blur effect expanding outside of the image

* Fixes thumbs with video player and delayed loader
2024-02-28 15:48:59 -06:00
Jonathan Jogenfors
e4f32a045d
chore: remove watcher polling option (#7480)
* remove watcher polling

* fix lint

* add db migration
2024-02-28 21:20:10 +01:00
Alex
e2c0945bc1
chore: post release tasks 2024-02-27 23:09:48 -06:00
Alex
a02a24f349
chore: post release tasks 2024-02-27 23:09:40 -06:00
Alex The Bot
6d91c23f65 Version v1.96.0 2024-02-27 20:14:58 +00:00
martyfuhry
b15eec7ca7
refactor(mobile): Uses blurhash for memory card instead of blurred thumbnail (#7469)
* Uses blurhash for memory card instead of blurred thumbnail

New blurred backdrop widget

Comments

* Fixes video placeholder image placement

* unused import
2024-02-27 12:38:14 -06:00
martyfuhry
d76baee50d
refactor(mobile): Use ImmichThumbnail and local thumbnail image provider (#7279)
* Refactor to use ImmichThumbnail and local thumbnail image provider

format

* dart format

linter errors

linter

* Adds blurhash

format

* Fixes image blur

* uses hook instead of stateful widget to be more consistent

* Uses blurhash hook state

* Uses blurhash ref instead of state

* Fixes fade in duration for fade in placeholder

* Fixes an issue where thumbnails fail to load if too many thumbnail requests are made simultaenously

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-27 09:51:19 -06:00
martyfuhry
d799bf7910
fix(mobile): Stop sending app to login page for unrelated auth errors (#7383)
Now we only validate access token when we have one in the store and only send you to the login page when the response from the server is a 401

linter

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-26 21:25:39 -06:00
Robert Vollmer
57758293e5
fix(mobile): remove log message counter (#6865)
* fix(mobile): remove log message counter

Previously, the items in the log page were numbered starting with `#0`
and increasing from top to bottom. Being new to the app, this confused
me because I would have expected that newer messages have a higher
number than older messages.

Removing the counter completely because it doesn't add any value -
log messages are identified by their timestamp, text and other details.

* Switch timestamp and context in log overview
2024-02-23 21:40:09 -06:00
Robert Vollmer
bc3979029d
refactor(mobile): move error details to separate DB column (#6898)
* Add "details" column to LoggerMessage

* Include error details in log details page

* Move error details out of log message

* Add error message to mixin

* Create extension for HTTP Response logging

* Fix analyze errors

* format

* fix analyze errors, format again
2024-02-23 21:38:57 -06:00
martin
a2934b8830
feat(server, web): search location (#7139)
* feat: search location

* fix: tests

* feat: outclick

* location search index

* update query

* fixed query

* updated sql

* update query

* Update search.dto.ts

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* coalesce

* fix: tests

* feat: add alternate names

* fix: generate sql files

* single table, add alternate names to query, cleanup

* merge main

* update sql

* pr feedback

* pr feedback

* chore: fix merge

---------

Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-02-23 19:42:37 -05:00
hrdl
cc6de7d1f1
fix(mobile): don't crop memories in landscape mode (#6907)
Don't crop memories in landscape mode unless aspect ratios are close

Co-authored-by: hrdl <7808331-hrdl@users.noreply.gitlab.com>
2024-02-23 17:05:36 +00:00
renovate[bot]
ee58569b42
fix(deps): update dependency flutter_udid to v3 (#7248)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-23 16:25:25 +00:00
renovate[bot]
07d747221e
fix(deps): update dependency geolocator to v11 (#7249)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-23 16:10:49 +00:00
martyfuhry
3cd3411c1f
refactor(mobile): Use hooks to manage Chewie controller for video (#7008)
* video loading delayed

* Chewie controller implemented in hook

* fixing look and feel

* Finalizing delay and animations

* Fixes issue with immersive mode showing immediately in videos

* format fix

* Fixes bug where video controls would hide immediately after showing while playing and reverts hide controls timer to 5 seconds

* Fixed rebase issues

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-22 23:18:02 -06:00
martin
5c0c98473d
fix(server, web): people page (#7319)
* fix: people page

* fix: use locale

* fix: e2e

* fix: remove useless w-full

* fix: don't count people without thumbnail

* fix: es6 template string

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-21 17:03:45 -05:00
Alex The Bot
7c34d0595e Version v1.95.1 2024-02-21 04:02:43 +00:00
Mert
eb73f6605b
fix(server): don't return archived assets by default (#7278)
* don't show archived results by default

* fix e2e

* generate sql

* set default in dto

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-21 03:59:26 +00:00
Alex
bb5236ae65
fix(server): not in album filter with context search (#7275) 2024-02-20 20:44:34 -06:00
martyfuhry
a22bf99206
fix(mobile): Uses immich thumbnail for background of memory picture (#7254)
unused imports
2024-02-20 13:58:41 -06:00
Alex
578b71b961
chore: post release tasks 2024-02-20 11:05:24 -06:00
Alex The Bot
302d98ebe1 Version v1.95.0 2024-02-20 16:52:23 +00:00
martyfuhry
e338e4def6
fix(mobile): Prefer sharing local assets to remote (#7245)
Prefer sharing local assets to remote
2024-02-20 10:03:24 -06:00
Jonathan Jogenfors
b3c7bebbd4
feat(server,web) Semantic import path validation (#7076)
* add library validation api

* chore: open api

* show warning i UI

* add flex row

* fix e2e

* tests

* fix tests

* enforce path validation

* enforce validation on refresh

* return 400 on bad import path

* add limits to import paths

* set response code to 200

* fix e2e

* fix lint

* fix test

* restore e2e folder

* fix import

* use startsWith

* icon color

* notify user of failed validation

* add parent div to validation

* add docs to the import validation

* improve library troubleshooting docs

* fix button alignment

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-20 09:53:12 -06:00
martyfuhry
59f8a886e7
fix(mobile): Fixes memory lane progress indicator color in dark mode (#7199)
* Fixes memory lane progress indicator color in dark mode

* Removed unused import
2024-02-19 09:13:28 -06:00
martyfuhry
dd53795953
chore(mobile): Adds dart format to static analysis (#7193)
Adds dart format to static analysis
2024-02-18 22:30:24 -06:00
Alex
9e7cb52413
chore(mobile): minor housekeeping 2024-02-18 22:17:20 -06:00
martin
ddae707ea9
fix: shell scripts (#7186)
* fix: bash scripts

* pr feedback

* wrong variable

* ci: add shellcheck workflow

* fix: missing scripts
2024-02-18 17:03:01 -06:00
Michel Heusschen
4b46bb49d7
fix(server): on_asset_update event sends varying data types (#7179) 2024-02-18 16:50:32 -06:00
Mert
857ec0451d
feat(server): optimize get asset query (#7176)
* faster query

* add index

* remove legacy code

* update mock

* remove unused imports

* add relations

* add stack

* formatting

* remove stack relation

* remove unused import

* increase chunk size

* generate sql

* linting

* fix typing

* formatting
2024-02-18 12:22:25 -06:00
martyfuhry
88214a485b
fix(mobile): Fixes bottom exif info sheet modal drag controls (#7165)
* WIPip

* Fixed show modal bottom sheet to use drag handle

* Fixes advanced bottom sheet scrolling

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-02-17 22:03:01 -06:00
martyfuhry
70e5febb72
refactor(mobile): Use widgets in Immich asset grid (#7140)
* Refactors to use widgets in immich asset grid

Adds comments

* Fixes asset thumbnail absoluteOffset

* feat(mobile): Uses gradient image placeholders in memory lane and in the asset grid (#7142)

* Uses gradient image placeholders in memory lane and in the asset grid

* Changes to create placeholders in immmich image.thumbnail

* removed unused import

* uses context.isDarkTheme and fixed function signature for allAssetsSelected
2024-02-17 21:31:34 -06:00
Alex
69983ff83a
feat: enhance search (#7127)
* feat: hybrid search

* fixing normal search

* building out the query

* okla

* filters

* date

* order by date

* Remove hybrid search endpoint

* remove search hybrid endpoint

* faces query

* search for person

* search and pagination

* with exif

* with exif

* justify gallery viewer

* memory view

* Fixed userId is null

* openapi and styling

* searchdto

* lint and format

* remove term

* generate sql

* fix test

* chips

* not showing true

* pr feedback

* pr feedback

* nit name

* linting

* pr feedback

* styling

* linting
2024-02-17 11:00:55 -06:00
waclaw66
0ca7adcdbf
fix(mobile): bottom app bar icons (#7147) 2024-02-16 07:54:17 -06:00
martyfuhry
31ae35e9a6
chore(mobile): Fixed exclude analyzer options (#7125)
Fixed exclude analyzer options
2024-02-15 01:28:45 +00:00
Torbjorn Tyridal
6adff50f0a
feat(server, web): Include partner's photos on map (#7065)
* feat(server): Include partner's photos on map - if included in timeline

* depend on query parameter withPartners

instead of partners.inTimeline

* web: map option to include partners images

* make open-api
2024-02-14 10:07:00 -05:00
ItsJustRuby
5fc1d43012
chore(web,mobile): Fix reoccurring typo (#7111) 2024-02-14 08:48:59 +00:00
Łukasz Wawrzyk
e9f3360f02
chore(mobile): Put the real delete button before other delete variants (#6895)
fix: put the real delete button before other delete variants
2024-02-13 20:17:21 -06:00
martyfuhry
9b4a770b9d
refactor(mobile): Immich image provider (#7016)
* Adds image provider

* uses image provider

* wip load preview

* wip everything but activity asset thumbnail needs some help with a remote id

* Immich provider used in gallery

* First draft of the immich image provider, working nicely!

* Removed OriginalImageProvider

* Fixes for thumbnails

* feat(mobile): thumbhash support (#7028)

* feat(mobile): thumbhash support

* perf(mobile): store bmp thumbhash bytes in Isar

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>

* Uses octoimage for fade in and placeholders

* fixes thumbnails, removes unused values, adds better thumbnail size

* removes thumbhash support for now

* Forgot one thumbhash removal

* Use big thumbnail for local image on ios

* fix(mobile): Multipart image loading for iOS double swipe (#7064)

* uses local thumb first

* Multipart thumbnail

* Clean up file delete

* await file delete

* Fynn's comments, made thumbnail smaller and doesn't crash on erroring out on thumbnail

* lint

---------

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
Co-authored-by: Alex <alex.tran1502@gmail.com>

* Moves http client to global private place for reuse

* Got rid of usePreview for local image providers since we always show a thumbnail anyway first

* linter

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Marty Fuhry <marty@fuhry.farm>
2024-02-13 15:30:32 -06:00
Alex
4b3f8d1946
feat: Search filtering logic (#6968)
* commit

* controller/service/repository logic

* use enum

* openapi

* suggest people

* suggest place/camera

* cursor hover

* refactor

* Add try catch

* Remove get people with name service

* Remove deadcode

* people selection

* People placement

* sort people

* Update server/src/domain/repositories/metadata.repository.ts

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>

* pr feedback

* styling

* done

* open api

* fix test

* use string type

* remmove bad merge

* use correct type

* fix test

* fix lint

* remove unused code

* remove unused code

* pr feedback

* pr feedback

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-13 19:54:58 +00:00
Mert
e334443919
feat(server, web): smart search filtering and pagination (#6525)
* initial pagination impl

* use limit + offset instead of take + skip

* wip web pagination

* working infinite scroll

* update api

* formatting

* fix rebase

* search refactor

* re-add runtime config for vector search

* fix rebase

* fixes

* useless omitBy

* unnecessary handling

* add sql decorator for `searchAssets`

* fixed search builder

* fixed sql

* remove mock method

* linting

* fixed pagination

* fixed unit tests

* formatting

* fix e2e tests

* re-flatten search builder

* refactor endpoints

* clean up dto

* refinements

* don't break everything just yet

* update openapi spec & sql

* update api

* linting

* update sql

* fixes

* optimize web code

* fix typing

* add page limit

* make limit based on asset count

* increase limit

* simpler import
2024-02-12 20:50:47 -05:00
shenlong
ec5e4dbcc2
fix(mobile): stack entity handling (#6980)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-02-09 21:09:43 -06:00
martyfuhry
fb8be51ff2
fix(mobile): Stop advancing to next memory on video ended (#7007)
Stop advancing to next asset on video ended
2024-02-09 20:29:57 -06:00
Jason Rasmussen
90a7f16817
chore(server): remove deprecated endpoints (#6984)
* chore: remove deprecated endpoints

* chore: open api
2024-02-08 16:57:54 -05:00
martyfuhry
69091e5309
feat(mobile): Videos play in memories now (#6940)
* Videos play in memories now

Remove auto video advance

* to next asset after video is done playing

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-08 04:07:50 +00:00
martyfuhry
0d876a470f
feat(mobile): Adds WiFi only backup option to iOS (#6724)
Adds WiFi only backup option to iOS

Co-authored-by: Marty Fuhry <marty@fuhry.farm>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-07 21:54:54 -06:00
shenlong
e0864768c2
refactor(mobile): map heatmap color and location picker (#6553)
* refactor(mobile): make location picker scaffold primary

* chore(mobile): update map heatmap colors

* style(mobile): map bottomsheet - only use borders on top

* fix(mobile): location picker show buttons above navigation bar

* fix: crash on iOS due to heatmap invalid color format

* disable rotate

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-02-08 03:07:43 +00:00
martyfuhry
c29976cd6f
feat(mobile): Memories activity is now full screen, better image fit, adds progress indicator (#6793)
* Made memories full screen

* Uses linear bar and fits the card better for memories

* Fixes pageview close button moving with pages

* Uses hooks instead of stateful components

* Adds ticks to the progress indicator

* Rounds the edges of the progress bar

* Fixes trailing comma analyze error

* Adds padding and hero to memories

* Fixes an issue with initial index set and adds hero / proper padding

* Fixes aspect ratio calculation

* Color

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-02-05 19:12:33 +00:00
martyfuhry
f6b4024a21
feat(mobile): Adds show password field to login (#6918)
Adds show password field to login
2024-02-05 09:11:30 -06:00
shenlong
1d93889920
fix(mobile): debounce map layer update (#6861)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-02-04 21:07:08 -06:00
Emanuel Bennici
f4ab5d3ff7
feat(mobile): Add haptic feedback to asset grid (#5344)
Add a haptic feedback when jumping from one month to another in the
asset grid view.
The feedback is similar to the one implemented in the Google Photos app.
2024-02-04 21:02:51 -06:00
rovo89
5061c35c8d
feat(mobile): Add support for Basic Authentication (#6840) 2024-02-04 14:35:13 -06:00
Daniel Dietzler
d3404f927c
feat(server)!: oauth encryption algorithm setting (#6818)
* feat: add oauth signing algorithm setting

* chore: open api

* chore: change default to RS256

* feat: test and clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-02-02 00:27:54 -05:00
Alex
ada3eeb777
chore: post release tasks 2024-01-31 16:52:48 -06:00
Alex
7a6ec8b0b5
fix(mobile): video player shows black screen (#6819)
fix(mobile): video player show black screen
2024-01-31 16:38:32 -06:00
Alex The Bot
07466fa7b7 Version v1.94.1 2024-01-31 19:21:00 +00:00
Alex
d2c2db2595
chore: post release tasks 2024-01-31 12:53:56 -06:00
Alex The Bot
a7ed2b7132 Version v1.94.0 2024-01-31 15:41:53 +00:00
Jonathan Jogenfors
068e703e88
feat(server): Automatic watching of library folders (#6192)
* feat: initial watch support

* allow offline files

* chore: ignore query errors when resetting e2e db

* revert db query

* add savepoint

* guard the user query

* chore: openapi and db migration

* wip

* support multiple libraries

* fix tests

* wip

* can now cleanup chokidar watchers

* fix unit tests

* add library watch queue

* add missing init from merge

* wip

* can now filter file extensions

* remove watch api from non job client

* Fix e2e test

* watch library with updated import path and exclusion pattern

* add library watch frontend ui

* case sensitive watching extensions

* can auto watch libraries

* move watcher e2e tests to separate file

* don't watch libraries from a queue

* use event emitters

* shorten e2e test timeout

* refactor chokidar code to filesystem provider

* expose chokidar parameters to config file

* fix storage mock

* set default config for library watching

* add fs provider mocks

* cleanup

* add more unit tests for watcher

* chore: fix format + sql

* add more tests

* move unwatch feature back to library service

* add file event unit tests

* chore: formatting

* add documentation

* fix e2e tests

* chore: fix e2e tests

* fix library updating

* test cleanup

* fix typo

* cleanup

* fixing as per pr comments

* reduce library watch config file

* update storage config and mocks

* move negative event tests to unit tests

* fix library watcher e2e

* make watch configuration global

* remove the feature flag

* refactor watcher teardown

* fix microservices init

* centralize asset scan job queue

* improve docs

* add more tests

* chore: open api

* initialize app service

* fix docs

* fix library watch feature flag

* Update docs/docs/features/libraries.md

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

* fix: import right app service

* don't be truthy

* fix test speling

* stricter library update tests

* move fs watcher mock to external file

* subscribe to config changes

* docker does not need polling

* make library watch() private

* feat: add configuration ui

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-31 08:15:54 +00:00
Markus
87c38d1832
feat(server, web): Added TranscodePolicy "Bitrate higher than max bitrate or not in accepted format" (#6479)
* chore: rebase

* chore: open api

* Add Database-Migration for setting targetCodec as acceptedCodec if it was set by admin

* Add TranscodePolicy setting, to only transcode files with a bitrate higher than set max bitrate

* Rename enum value of TranscodePolicy

* calculate max_bitrate according to "k" and "m" suffix for comparison

* remove migration

* minor changes

* UnitTest for Bitrate Policy

* Fix UnitTest

* Add missing output options

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-01-30 20:25:07 -05:00
martyfuhry
149bc71eba
feat(mobile): Add end page to the end to memories (#6780)
* Adding memory epilogue card

* Adds epilogue page to memories

* Fixes a next / back issue

* color

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-01-30 17:47:47 -06:00
Alex
33bf7d5d8b
Localizely: Translations update (#6772)
chore(mobile): translation update
2024-01-30 13:29:12 -06:00
martyfuhry
8864d07782
chore(mobile): Corrects FVM gitignore and sets Flutter version to 3.16.9 (#6775)
Corrects FVM gitignore and sets Flutter version to 3.16.9
2024-01-30 13:28:55 -06:00
Alex
97cd91749c
fix(mobile): FR translation (#6771) 2024-01-30 12:01:03 -06:00
Alex
9e1d358168
fix(mobile): blurry memory photos (#6734)
* fix(mobile): blurry memory photos

* better naming and performance
2024-01-30 09:24:31 -06:00
t4keda
76f8d030ce
added a configuration option to select the dri node in transcoding (#6376)
* added a configuration option to select the dri node in transcoding

* chore: open api

* refactor: get hawrdware device

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-29 20:40:02 -05:00
Mert
ae7f174948
refactor: rename clip -> smart search (#6713) 2024-01-29 09:51:22 -05:00
martin
fa0913120d
feat(web,server): search people (#5703)
* feat: search peoples

* fix: responsive design

* use existing count

* generate sql file

* fix: tests

* remove visible people

* fix: merge, hide...

* use component

* fix: linter

* chore: regenerate api

* fix: change name when searching for a face

* save search

* remove duplicate

* use enums for query parameters

* fix: increase to 20 for the local search

* use constants

* simplify

* fix: number of people more visible

* fix: merge

* fix: search

* fix: loading spinner position

* pr feedback
2024-01-27 19:54:31 -05:00
Emanuel Bennici
9422359b51
fix(mobile): Fix single element archiving (#6668) 2024-01-27 18:57:51 +00:00
AxGD
64ab09bbb6
Update fr-FR.json (#6633)
* Update fr-FR.json

* Update fr-FR.json

commit after the feedback from @martabal

* Update fr-FR.json

some mistakes in the previous commit
2024-01-27 18:17:27 +00:00
shenlong
27488ceb67
deps(mobile): flutter 3.16 (#6677)
* dep(mobile): update flutter and deps

* chore: dart analyzer

* chore: update flutter workflow version

* chore: dart format

* fix: gallery_viewer PopScope

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-27 10:14:32 -06:00
Markus
8aef92affc
feat(server, web): accepted codecs (#6460)
* chore: rebase

* chore: open api

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-26 12:02:56 -05:00
Jason Rasmussen
96b7885583
refactor(server): trash endpoints (#6652)
* refactor(server): trash endpoints

* chore: open api

* chore: fix wrong rename
2024-01-26 11:48:37 -05:00
Jason Rasmussen
2e39243670
deps: open-api generator (#6655)
* deps: open-api generator

* fix: unused sed/replace
2024-01-26 11:40:28 -05:00
Jason Rasmussen
7ea55c7236
refactor(server): download endpoints (#6653)
* refactor(server): download controller

* chore: open api

* chore: fix mobile references
2024-01-26 08:19:13 -06:00
Jason Rasmussen
b306cf564e
refactor(server): move asset detail endpoint to new controller (#6636)
* refactor(server): move asset by id to new controller

* chore: open api

* refactor: more consolidation

* refactor: asset service
2024-01-25 12:52:21 -05:00
Alex
64e299ba9b
fix(mobile): skip tests using mock http client to make actual network request (#6642) 2024-01-25 10:57:11 -06:00
shenlong
3ae10c75fb
fix(mobile): es-US pluralization (#6612)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-23 23:26:23 -06:00
Jason Rasmussen
a00768c9e5
chore(server): remove old device id endpoint (#6578)
* chore: remove old endpoint

* chore: open api

* chore: remove old tests
2024-01-22 20:54:53 -06:00
Jason Rasmussen
7b314f9435
chore(server): sort open api params (#6484)
* chore: sort spec

* chore: open api

* chore(mobile): sort auditDeletes params

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-22 11:49:51 -05:00
Alex
b34a808fbb
feat(mobile): Add Slovenian (#6558) 2024-01-21 16:27:54 -06:00
Alex The Bot
4ebb9974ff Version v1.93.3 2024-01-20 16:03:18 +00:00
Alex The Bot
3dddc6b449 Version v1.93.2 2024-01-19 18:29:04 +00:00
shenlong
f80f867976
fix(mobile): stack button not in bottom app bar (#6497)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-19 17:40:10 +00:00
Jason Rasmussen
df27460f1c
fix: open api pump (#6502) 2024-01-19 11:09:18 -06:00
Alex The Bot
d5af357992 Version v1.93.1 2024-01-19 15:01:17 +00:00
Alex Tran
20c284407c chore: post release openapi update 2024-01-18 21:21:28 -06:00
Alex
7e1b1eae41
chore: post release tasks 2024-01-18 21:15:58 -06:00
Alex The Bot
fa0b7c8563 Version v1.93.0 2024-01-19 02:14:46 +00:00
shenlong
f62678f58f
feat(mobile): long-press delete button to permanently delete asset (#6240)
* feat(mobile): delete assets from device only

* mobile: add backed up only toggle for delete device only

* remove toggle inside alert and show different content

* mobile: change content color for local only

* mobile: delete local only button to dialog

* style: display bottom action in two lines

* feat: separate delete buttons

* fix: incorrect error message for ownedRemoteSelection

* feat(mobile): long-press delete to permanently delete asset

* chore: add todo to handle long press to delete in gallery_viewer

* chore: rebase on deletion branch

* feat(mobile): long-press delete to permanently delete asset

* fix(mobile): update minChildSize of control bottom app bar

---------

Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-18 15:01:38 -06:00
shenlong
04c783f2f0
fix(mobile): asset state when delete from trash (#6476)
* fix(mobile): handle asset removal state from trash for merged assets

* fix(mobile): use appropriate text for trash / delete

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-18 14:55:19 -06:00
Mert
68f52818ae
feat(server): separate face clustering job (#5598)
* separate facial clustering job

* update api

* fixed some tests

* invert clustering

* hdbscan

* update api

* remove commented code

* wip dbscan

* cleanup

removed cluster endpoint

remove commented code

* fixes

updated tests

minor fixes and formatting

fixed queuing

refinements

* scale search range based on library size

* defer non-core faces

* optimizations

removed unused query option

* assign faces individually for correctness

fixed unit tests

remove unused method

* don't select face embedding

update sql

linting

fixed ml typing

* updated job mock

* paginate people query

* select face embeddings because typeorm

* fix setting face detection concurrency

* update sql

formatting

linting

* simplify logic

remove unused imports

* more specific delete signature

* more accurate typing for face stubs

* add migration

formatting

* chore: better typing

* don't select embedding by default

remove unused import

* updated sql

* use normal try/catch

* stricter concurrency typing and enforcement

* update api

* update job concurrency panel to show disabled queues

formatting

* check jobId in queueAll

fix tests

* remove outdated comment

* better facial recognition icon

* wording

wording

formatting

* fixed tests

* fix

* formatting & sql

* try to fix sql check

* more detailed description

* update sql

* formatting

* wording

* update `minFaces` description

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-18 00:08:48 -05:00
Steven Carter
d4146e3e6d
feat(server): provide the ability to search archived photos (#6332)
* Feat: provide the ability to search archived photos

Adds a query parameter (`searchArchived`) to the search URL parameters
to allow the results to contain archived photos.

* chore: rename includeArchived => withArchived

* chore: open api

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-18 02:08:00 +00:00
waclaw66
574aecc1e2
fix(mobile): add to album - list thumbnails (#6444)
fix(mobile): add to album thumbnails
2024-01-17 14:27:55 -06:00
shenlong
4c2befc68c
feat(mobile): separate delete buttons (#4505)
* feat(mobile): delete assets from device only

* mobile: add backed up only toggle for delete device only

* remove toggle inside alert and show different content

* mobile: change content color for local only

* mobile: delete local only button to dialog

* style: display bottom action in two lines

* feat: separate delete buttons

* fix: incorrect error message for ownedRemoteSelection

* fix: handle remoteOnly from delete everywhere

* request confirmation for local only only when non-backed assets are in selection

---------

Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-16 21:28:23 -06:00
Alex
78de4f1312
feat(mobile): quota (#6409)
* feat(mobile): quota

* openapi

* user entity update

* Render quota

* refresh usage upon opening the app bar

* stop backup when quota exceed
2024-01-16 20:08:31 -06:00
Alex
76bad762d7
fix(mobile): null check on null value on top app bar (#6406)
Fixed issue with null check on null value causing the top app bar render
a gray overlay when open an asset in Album On Device section in Library
page
2024-01-16 00:25:59 +00:00
renovate[bot]
f160969894
fix(deps): update dependency com.google.guava:guava to v33 (#5390)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.guava:guava](https://togithub.com/google/guava) |
`31.0.1-android` -> `33.0.0-android` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.guava:guava/33.0.0-android?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.guava:guava/33.0.0-android?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.guava:guava/31.0.1-android/33.0.0-android?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.guava:guava/31.0.1-android/33.0.0-android?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>google/guava (com.google.guava:guava)</summary>

### [`v32.1.3`](https://togithub.com/google/guava/releases/tag/v32.1.3):
32.1.3

[Compare
Source](https://togithub.com/google/guava/compare/v32.1.2...v32.1.3)

##### Maven

```xml
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.1.3-jre</version>
  <!-- or, for Android: -->
  <version>32.1.3-android</version>
</dependency>
```

##### Jar files

-
[32.1.3-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.3-jre/guava-32.1.3-jre.jar)
-
[32.1.3-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.3-android/guava-32.1.3-android.jar)

Guava requires [one runtime
dependency](https://togithub.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies),
which you can download here:

-
[failureaccess-1.0.1.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar)

##### Javadoc

-   [32.1.3-jre](http://guava.dev/releases/32.1.3-jre/api/docs/)
-   [32.1.3-android](http://guava.dev/releases/32.1.3-android/api/docs/)

##### JDiff

- [32.1.3-jre vs.
32.1.2-jre](http://guava.dev/releases/32.1.3-jre/api/diffs/)
- [32.1.3-android vs.
32.1.2-android](http://guava.dev/releases/32.1.3-android/api/diffs/)
- [32.1.3-android vs.
32.1.3-jre](http://guava.dev/releases/32.1.3-android/api/androiddiffs/)

##### Changelog

- Changed Gradle Metadata to include dependency versions directly. This
may address ["Could not find `some-dependency`"
errors](https://togithub.com/google/guava/issues/6657) that some users
have reported (which might be a result of users' excluding
`guava-parent`).
([`c6d35cf`](https://togithub.com/google/guava/commit/c6d35cf1a5))
- `collect`: Changed
`Multisets.unmodifiableMultiset(set).removeIf(predicate)` to throw an
exception always, even if nothing matches `predicate`.
([`61dbccf`](https://togithub.com/google/guava/commit/61dbccfda3))
- `graph`: Fixed the behavior of `Graph`/`ValueGraph` views for a node
when that node is removed from the graph.
([`9507996`](https://togithub.com/google/guava/commit/950799691c))
- `io`: Fixed `Files.createTempDir` and `FileBackedOutputStream` under
[Windows *services*, a rare use
case](https://togithub.com/google/guava/issues/6634). (The fix actually
covers only Java 9+ because Java 8 would require an additional approach.
Let us know if you need support under Java 8.)
([`f87f68c`](https://togithub.com/google/guava/commit/f87f68cd3e))
- `net`: Made `MediaType.parse` allow and skip over whitespace around
the `/` and `=` separator tokens in addition to the `;` separator, for
which it was already being allowed.
([`2786f83`](https://togithub.com/google/guava/commit/2786f83291))
- `util.concurrent`: Tweaked `Futures.getChecked` constructor-selection
behavior: The method continues to prefer to call constructors with a
`String` parameter, but now it breaks ties based on whether the
constructor has a `Throwable` parameter. Beyond that, the choice of
constructor remains undefined. (For this and other reasons, we
discourage the use of `getChecked`.)
([`59cfb22`](https://togithub.com/google/guava/commit/59cfb2267a))

### [`v32.1.2`](https://togithub.com/google/guava/releases/tag/v32.1.2):
32.1.2

[Compare
Source](https://togithub.com/google/guava/compare/v32.1.1...v32.1.2)

##### Maven

```xml
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.1.2-jre</version>
  <!-- or, for Android: -->
  <version>32.1.2-android</version>
</dependency>
```

##### Jar files

-
[32.1.2-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.2-jre/guava-32.1.2-jre.jar)
-
[32.1.2-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.2-android/guava-32.1.2-android.jar)

Guava requires [one runtime
dependency](https://togithub.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies),
which you can download here:

-
[failureaccess-1.0.1.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar)

##### Javadoc

-   [32.1.2-jre](http://guava.dev/releases/32.1.2-jre/api/docs/)
-   [32.1.2-android](http://guava.dev/releases/32.1.2-android/api/docs/)

##### JDiff

- [32.1.2-jre vs.
32.1.1-jre](http://guava.dev/releases/32.1.2-jre/api/diffs/)
- [32.1.2-android vs.
32.1.1-android](http://guava.dev/releases/32.1.2-android/api/diffs/)
- [32.1.2-android vs.
32.1.2-jre](http://guava.dev/releases/32.1.2-android/api/androiddiffs/)

##### Changelog

-
[Removed](https://togithub.com/google/guava/issues/6642#issuecomment-1656201382)
the section of our Gradle metadata that caused Gradle to report
conflicts with `listenablefuture`.
([`9ed0fa6`](https://togithub.com/google/guava/commit/9ed0fa65ab))
- Changed our Maven project to avoid [affecting which version of Mockito
our Gradle users see](https://togithub.com/google/guava/issues/6654).
([`71a16d5`](https://togithub.com/google/guava/commit/71a16d5a74))
- `collect`: Under J2CL, exposed `ImmutableList` and `ImmutableSet`
methods `copyOf` and `of` for JavaScript usage.
([`b41968f`](https://togithub.com/google/guava/commit/b41968f5f2))
- `net`: Optimized `InternetDomainName` construction.
([`3a1d18f`](3a1d18fbef),
[`eaa62eb`](eaa62eb095))

### [`v32.1.1`](https://togithub.com/google/guava/releases/tag/v32.1.1):
32.1.1

[Compare
Source](https://togithub.com/google/guava/compare/v32.1.0...v32.1.1)

##### Maven

```xml
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.1.1-jre</version>
  <!-- or, for Android: -->
  <version>32.1.1-android</version>
</dependency>
```

##### Jar files

-
[32.1.1-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.1-jre/guava-32.1.1-jre.jar)
-
[32.1.1-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.1-android/guava-32.1.1-android.jar)

Guava requires [one runtime
dependency](https://togithub.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies),
which you can download here:

-
[failureaccess-1.0.1.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar)

##### Javadoc

-   [32.1.1-jre](http://guava.dev/releases/32.1.1-jre/api/docs/)
-   [32.1.1-android](http://guava.dev/releases/32.1.1-android/api/docs/)

##### JDiff

- [32.1.1-jre vs.
32.1.0-jre](http://guava.dev/releases/32.1.1-jre/api/diffs/)
- [32.1.1-android vs.
32.1.0-android](http://guava.dev/releases/32.1.1-android/api/diffs/)
- [32.1.1-android vs.
32.1.1-jre](http://guava.dev/releases/32.1.1-android/api/androiddiffs/)

##### Changelog

- Fixed our broken Gradle metadata from
[32.1.0](https://togithub.com/google/guava/releases/tag/v32.1.0). Sorry
again for the trouble. If you use Gradle, please still read [the release
notes from that
version](https://togithub.com/google/guava/releases/tag/v32.1.0): You
may still see errors from the new checking that the metadata enables,
and the release notes discuss how to fix those errors.

### [`v32.1.0`](https://togithub.com/google/guava/releases/tag/v32.1.0):
32.1.0

[Compare
Source](https://togithub.com/google/guava/compare/v32.0.1...v32.1.0)

##### Warning: Our Gradle-metadata version numbers are broken. Read
these notes, but upgrade straight to
[32.1.2](https://togithub.com/google/guava/releases/tag/v32.1.2).

We made a mistake in our release script, so the new Gradle metadata
(discussed below) has [broken version
numbers](https://togithub.com/google/guava/issues/6612) in 32.1.0. Sorry
for the trouble and for the need for another quick patch release. We
recommend upgrading straight to release
[32.1.2](https://togithub.com/google/guava/releases/tag/v32.1.2),
especially if you use Gradle or if you publish a library whose users
might use Gradle. Still, read the release notes below if you use Gradle,
since the fixed Gradle metadata in 32.1.2 may still require action on
your part.

##### Maven

```xml
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.1.0-jre</version>
  <!-- or, for Android: -->
  <version>32.1.0-android</version>
</dependency>
```

##### Jar files

-
[32.1.0-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.0-jre/guava-32.1.0-jre.jar)
-
[32.1.0-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.1.0-android/guava-32.1.0-android.jar)

Guava requires [one runtime
dependency](https://togithub.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies),
which you can download here:

-
[failureaccess-1.0.1.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar)

##### Javadoc

-   [32.1.0-jre](http://guava.dev/releases/32.1.0-jre/api/docs/)
-   [32.1.0-android](http://guava.dev/releases/32.1.0-android/api/docs/)

##### JDiff

- [32.1.0-jre vs.
32.0.1-jre](http://guava.dev/releases/32.1.0-jre/api/diffs/)
- [32.1.0-android vs.
32.0.1-android](http://guava.dev/releases/32.1.0-android/api/diffs/)
- [32.1.0-android vs.
32.1.0-jre](http://guava.dev/releases/32.1.0-android/api/androiddiffs/)

##### Changelog

##### [Gradle Module
Metadata](https://docs.gradle.org/current/userguide/publishing_gradle_module_metadata.html)

**Warning:** We made a mistake in our release script, so this is
[broken](https://togithub.com/google/guava/issues/6612) in 32.1.0. We
recommend upgrading straight to release
[32.1.2](https://togithub.com/google/guava/releases/tag/v32.1.2),
especially if you use Gradle or if you publish a library whose users
might use Gradle. Still, read the release notes below if you use Gradle,
since the fixed Gradle metadata in 32.1.2 may still require action on
your part.

The Gradle team has contributed a metadata file for Guava. If you use
Gradle 6 or higher, you will see better handling of two kinds of
dependency conflicts, plus another small feature related to our
dependencies. As a result of this change, you may see errors, which you
can resolve as documented below. If you encounter a problem that isn't
documented below, or if the documentation is unclear, please [let us
know](https://togithub.com/google/guava/issues/new).

##### If you use Gradle 6 (not 5, not 7+)<a name="gradle-6"></a>

You may see [an error like this
one](https://togithub.com/google/guava/issues/6612#issuecomment-1614897285):

    > Could not resolve all artifacts for configuration ':classpath'.
       > Could not resolve com.google.guava:guava:30.1-jre.
         Required by:
project : >
com.google.cloud.tools.jib:com.google.cloud.tools.jib.gradle.plugin:2.8.0
> gradle.plugin.com.google.cloud.tools:jib-gradle-plugin:2.8.0
> The consumer was configured to find a runtime of a library compatible
with Java 15, packaged as a jar, and its dependencies declared
externally. However we cannot choose between the following variants of
com.google.guava:guava:32.1.1-jre:
              - androidRuntimeElements
              - jreRuntimeElements
            All of them match the consumer attributes:
- Variant 'androidRuntimeElements' capabilities
com.google.collections:google-collections:32.1.1-jre and
com.google.guava:guava:32.1.1-jre and
com.google.guava:listenablefuture:1.0 declares a runtime of a library
compatible with Java 8, packaged as a jar, and its dependencies declared
externally:

If you do, you'll need to add [something like
this](https://togithub.com/google/guava/issues/6612#issuecomment-1614992368)
to a place where you configure the Java plugins:

```kotlin
sourceSets.all {
  configurations.getByName(runtimeClasspathConfigurationName) {
    attributes.attribute(Attribute.of("org.gradle.jvm.environment", String), "standard-jvm")
  }
  configurations.getByName(compileClasspathConfigurationName) {
    attributes.attribute(Attribute.of("org.gradle.jvm.environment", String), "standard-jvm")
  }
}
```

##### If you see an error about a duplicate `ListenableFuture` class<a
name="duplicate-ListenableFuture"></a>

For example:

    Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing
com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class com.google.common.util.concurrent.ListenableFuture
found in modules jetified-guava-32.1.1-android
(com.google.guava:guava:32.1.1-android) and
jetified-listenablefuture-1.0 (com.google.guava:listenablefuture:1.0)

This [appears to be a Gradle
bug](https://togithub.com/gradle/gradle/issues/22326#issuecomment-1617422240).

[@&#8203;mathisdt](https://togithub.com/mathisdt) has provided [a
workaround](https://togithub.com/google/guava/issues/6618):

    dependencies {
    ### dependency definitions here ...
      modules {
        module("com.google.guava:listenablefuture") {
replacedBy("com.google.guava:guava", "listenablefuture is part of
guava")
        }
      }
    }

##### Selecting the appropriate flavor<a name="selecting-flavor"></a>

When Gradle automatically selects the newest version of Guava in your
dependency graph, it will now also select the appropriate flavor
(`-android` or `-jre`) based on whether you project targets Android or
not. For example, if you depend on 32.1.0-android and 30.0-jre, Gradle
will select 32.1.0-jre. This is the version most likely to be compatible
with all your dependencies.

In the unusual event that you need to override Gradle's choice of
flavor, you can do so as follows:

```kotlin
dependencies.constraints {
  implementation("com.google.guava:guava") {
    attributes {
      attribute(
        TargetJvmEnvironment.TARGET_JVM_ENVIRONMENT_ATTRIBUTE, 
        objects.named(TargetJvmEnvironment, TargetJvmEnvironment.ANDROID))
    }
  }
}

// If the above leads to a conflict error because there are additional transitive dependencies to Guava, then use:
configurations.all {
  resolutionStrategy.capabilitiesResolution.withCapability("com.google.guava:guava") {
    select(candidates.find { it.variantName.contains("android") })
  }
}
```

##### Reporting dependencies that overlap with Guava<a
name="overlap"></a>

If your dependency graph contains the very old `google-collections` or
the [hacky](https://groups.google.com/g/guava-announce/c/Km82fZG68Sw)
`listenablefuture`, Gradle will now report that those libraries contain
duplicates of Guava classes. When this happens, you'll need to tell
Gradle to
[select](https://docs.gradle.org/current/userguide/dependency_capability_conflict.html#sub:selecting-between-candidates)
Guava:

```kotlin
configurations.all {
  resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") {
    select("com.google.guava:guava:0")
  }
  // and/or
  resolutionStrategy.capabilitiesResolution.withCapability("com.google.guava:listenablefuture") {
    select("com.google.guava:guava:0")
  }
}
```

If that doesn't work, please let us know. And let us know whether [our
`replacedBy` workaround](#user-content-duplicate-ListenableFuture) or
[these other
workarounds](https://togithub.com/googleapis/sdk-platform-java/pull/1832#issuecomment-1624315236)
work instead.

##### Omitting annotations at runtime

One dependency of Guava that is not needed at runtime
(`j2objc-annotations`) is now omitted from the runtime classpath. (We
may omit others in the future. See
[#&#8203;6606](https://togithub.com/google/guava/issues/6606).)

##### Other changes

- `collect`: Tweaked more nullness annotations.
([`501a016`](501a01631f),
[`5c23590`](5c2359087a))
- `hash`: Enhanced `crc32c()` to use Java's hardware-accelerated
implementation where available.
([`65c7f10`](https://togithub.com/google/guava/commit/65c7f10ff0))
- `util.concurrent`: Added `Duration`-based `default` methods to
`ListeningExecutorService`.
([`e7714b0`](https://togithub.com/google/guava/commit/e7714b0b8b))
- Began updating [Javadoc](https://guava.dev/api) to focus less on APIs
that have been superseded by additions to the JDK. We're also looking to
add more documentation that directs users to JDK equivalents for our
APIs. Further PRs welcome!
([`c9efc47`](c9efc47995),
[`01dcc2e`](01dcc2e610))
- Fixed some problems with [using Guava from a Java
Agent](https://togithub.com/google/guava/issues/6566). (But we don't
test that configuration, and we don't know how well we'll be able to
keep it working.)
([`e42d4e8`](https://togithub.com/google/guava/commit/e42d4e863b),
[`de62703`](https://togithub.com/google/guava/commit/de62703987))
- Fixed `BootstrapMethodError` when [using `CacheBuilder` from a custom
system class loader](https://togithub.com/google/guava/issues/6565). (As
with the previous item, we're not sure how well we'll be able to keep
this use case working.)
([`a667c38`](https://togithub.com/google/guava/commit/a667c38772))
- Suppressed [a harmless `unusable-by-js`
warning](https://togithub.com/google/guava/issues/6602) seen by users of
`guava-gwt`.

### [`v32.0.1`](https://togithub.com/google/guava/releases/tag/v32.0.1):
32.0.1

[Compare
Source](https://togithub.com/google/guava/compare/v32.0.0...v32.0.1)

##### Maven

```xml
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.0.1-jre</version>
  <!-- or, for Android: -->
  <version>32.0.1-android</version>
</dependency>
```

##### Jar files

-
[32.0.1-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.0.1-jre/guava-32.0.1-jre.jar)
-
[32.0.1-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.0.1-android/guava-32.0.1-android.jar)

Guava requires [one runtime
dependency](https://togithub.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies),
which you can download here:

-
[failureaccess-1.0.1.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar)

##### Javadoc

-   [32.0.1-jre](http://guava.dev/releases/32.0.1-jre/api/docs/)
-   [32.0.1-android](http://guava.dev/releases/32.0.1-android/api/docs/)

##### JDiff

- [32.0.1-jre vs.
32.0.0-jre](http://guava.dev/releases/32.0.1-jre/api/diffs/)
- [32.0.1-android vs.
32.0.0-android](http://guava.dev/releases/32.0.1-android/api/diffs/)
- [32.0.1-android vs.
32.0.1-jre](http://guava.dev/releases/32.0.1-android/api/androiddiffs/)

##### Changelog

- `io`: Fixed `Files.createTempDir` and `FileBackedOutputStream` under
Windows, which broke as part of the security fix in release 32.0.0.
Sorry for the trouble.
([`fdbf77d`](https://togithub.com/google/guava/commit/fdbf77d3f2))

### [`v32.0.0`](https://togithub.com/google/guava/releases/tag/v32.0.0):
32.0.0

[Compare
Source](https://togithub.com/google/guava/compare/v31.0.1...v32.0.0)

##### Maven

```xml
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>32.0.0-jre</version>
  <!-- or, for Android: -->
  <version>32.0.0-android</version>
</dependency>
```

##### Jar files

-
[32.0.0-jre.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.0.0-jre/guava-32.0.0-jre.jar)
-
[32.0.0-android.jar](https://repo1.maven.org/maven2/com/google/guava/guava/32.0.0-android/guava-32.0.0-android.jar)

Guava requires [one runtime
dependency](https://togithub.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies),
which you can download here:

-
[failureaccess-1.0.1.jar](https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar)

##### Javadoc

-   [32.0.0-jre](http://guava.dev/releases/32.0.0-jre/api/docs/)
-   [32.0.0-android](http://guava.dev/releases/32.0.0-android/api/docs/)

##### JDiff

- [32.0.0-jre vs.
31.1-jre](http://guava.dev/releases/32.0.0-jre/api/diffs/)
- [32.0.0-android vs.
31.1-android](http://guava.dev/releases/32.0.0-android/api/diffs/)
- [32.0.0-android vs.
32.0.0-jre](http://guava.dev/releases/32.0.0-android/api/androiddiffs/)

##### Changelog

##### Security fixes

- Reimplemented `Files.createTempDir` and `FileBackedOutputStream` to
further address CVE-2020-8908
([#&#8203;4011](https://togithub.com/google/guava/issues/4011)) and
CVE-2023-2976
([#&#8203;2575](https://togithub.com/google/guava/issues/2575)).
([`feb83a1`](https://togithub.com/google/guava/commit/feb83a1c8f))

While CVE-2020-8908 was officially closed when we deprecated
`Files.createTempDir` in [Guava
30.0](https://togithub.com/google/guava/releases/tag/v30.0), we've heard
from users that even recent versions of Guava have been listed as
vulnerable in *other* databases of security vulnerabilities. In
response, we've reimplemented the method (and the very rarely used
`FileBackedOutputStream` class, which had a similar issue) to eliminate
the insecure behavior entirely. This change could technically affect
users in a number of different ways (discussed under "Incompatible
changes" below), but in practice, the only problem users are likely to
encounter is with Windows. If you are using those APIs under Windows,
you should skip 32.0.0 and go straight to
[32.0.1](https://togithub.com/google/guava/releases/tag/v32.0.1) which
fixes the problem. (Unfortunately, we didn't think of the Windows
problem until after the release. And while we [warn that `common.io` in
particular may not work under
Windows](https://togithub.com/google/guava#important-warnings), we
didn't intend to regress support.) Sorry for the trouble.

##### Incompatible changes

Although this release bumps Guava's major version number, it makes **no
binary-incompatible changes to the `guava` artifact**.

One change could cause issues for Widows users, and a few other changes
could cause issues for users in more usual situations:

- **The new implementations of `Files.createTempDir` and
`FileBackedOutputStream` [throw an exception under
Windows](https://togithub.com/google/guava/issues/6535).** This is fixed
in [32.0.1](https://togithub.com/google/guava/releases/tag/v32.0.1).
Sorry for the trouble.
- `guava-gwt` now
[requires](https://togithub.com/google/guava/issues/6627) GWT
[2.10.0](https://togithub.com/gwtproject/gwt/releases/tag/2.10.0).
- This release makes a binary-incompatible change to a `@Beta` API in
the **separate artifact** `guava-testlib`. Specifically, we changed the
return type of `TestingExecutors.sameThreadScheduledExecutor` to
`ListeningScheduledExecutorService`. The old return type was a
package-private class, which caused the Kotlin compiler to produce
warnings.
([`dafaa3e`](https://togithub.com/google/guava/commit/dafaa3e435))
- This release *adds* two methods to the Android flavor of Guava:
`Invokable.getAnnotatedReturnType()` and `Parameter.getAnnotatedType()`.
Those methods do not work under an Android VM; we added them only to
help our tests of the Android flavor (since we also run those tests
under a JRE). Android VMs tolerate such methods as long as the app does
not call them or perform reflection on them, and builds tolerate them
because of our new Proguard configurations (discussed below). Thus, we
expect no impact to most users. However, we could imagine build problems
for users who have set up their own build system for the Android flavor
of Guava. Please report any problems so that we can judge how safely we
might be able to add other methods to the Android flavor in the future,
such as APIs that use Java 8 classes like `Stream`.
([`b30e73c`](b30e73cfa8))
- This release removes various APIs from the `guava-gwt`. This affects
only users of [GWT](https://www.gwtproject.org/). The APIs we removed
are `Enums`, `Sets.complementOf`, and the `Enum*BiMap` classes'
`keyType()` and `valueType()` methods. These changes prepare for the
removal of reflective enum-related APIs from
[J2CL](https://togithub.com/google/j2cl). If one of these changes causes
you problems as a GWT user, let us know.
([`c3a155d`](https://togithub.com/google/guava/commit/c3a155dc85),
[`09db2c2`](https://togithub.com/google/guava/commit/09db2c29ae),
[`3de12be`](https://togithub.com/google/guava/commit/3de12be516))
- The new implementations of `Files.createTempDir` and
`FileBackedOutputStream` are annotated as `@J2ObjCIncompatible`. If you
need to use them under J2ObjC, contact us.
([`56dc928`](https://togithub.com/google/guava/commit/56dc928a25))
- Because the new version of `Files.createTempDir` restricts permissions
to the current user, it could break any caller that relies on letting
other users access the directory.
- The new versions of `Files.createTempDir` and `FileBackedOutputStream`
throw an exception if they can't create the directory or file securely.
Aside from the accidental Windows bug discussed above, this is possible
only under Android Ice Cream Sandwich, a [very
old](https://en.wikipedia.org/wiki/Android_Ice_Cream_Sandwich) version
of Android that is [the oldest one we test Guava
with](https://togithub.com/google/guava#important-warnings).

##### Other changes

- Removed `@Beta` from almost all APIs. For details, see the bottom of
the release notes. At this point, it's probably simpler to look at a
list of APIs that still *are* `@Beta`, such as [this list for
`guava-jre`](https://guava.dev/releases/32.0.0-jre/api/docs/com/google/common/annotations/class-use/Beta.html).
Most of the remaining `@Beta` APIs are in `graph` and `hash`.
- Enhanced the Guava jar to include Proguard configurations that are
picked up automatically by the Android Gradle Plugin. This should help
with warnings that were promoted to errors in Android Gradle Plugin 8.x.
([`aeba1e1`](https://togithub.com/google/guava/commit/aeba1e1b2d))
- Enhanced the Guava jar to include information about method parameters
in its class files. If you use static analyzers that look at
method-parameter names, you may see new warnings or errors if they are
now able to detect mismatches. But mostly, you may see better tooltips
and autocompletion in IDEs.
([`59d174c`](https://togithub.com/google/guava/commit/59d174cfbe))
- Improved nullness annotations on [a few
classes](https://togithub.com/google/guava/issues/6510).
- Modified classes with "serial proxies" to declare exception-throwing
`readObject` methods, in accordance with best practice.
([`e62d6a0`](https://togithub.com/google/guava/commit/e62d6a0456))
- `collect`: Fixed `Maps.newHashMapWithExpectedSize` to stop allocating
maps that were larger than they needed to be.
([`6ad621e`](https://togithub.com/google/guava/commit/6ad621e76d))
- `collect`: Made various APIs work J2CL:
`Maps.immutableEnumMap`+`toImmutableEnumMap`, `EnumMultiset`,
`CollectorTester`. Previously, the APIs were present but failed at
runtime.
([`b62c88e`](https://togithub.com/google/guava/commit/b62c88e630),
[`23ff918`](https://togithub.com/google/guava/commit/23ff91848f),
[`852a7d3`](https://togithub.com/google/guava/commit/852a7d3fe9))
- `collect`: Optimized memory usage for `Interner` and `MapMaker`.
([`a2e8f3c`](https://togithub.com/google/guava/commit/a2e8f3c7ce))
- `graph`: Changed directed graphs to [reject attempts to add undirected
edges](https://togithub.com/google/guava/issues/5843#issuecomment-1136678073).
([`76260d9`](https://togithub.com/google/guava/commit/76260d9b3c))
- `io`: Added `BaseEncoding.ignoreCase()` to support case-insensitive
decoding.
([`9c1e5de`](https://togithub.com/google/guava/commit/9c1e5dea4b))
-   `net`: Added `HttpHeaders` constants:
- `No-Vary-Search`
([`688b9c2`](https://togithub.com/google/guava/commit/688b9c2cfa))
- `Sec-CH-DPR`
([`75a3d4d`](https://togithub.com/google/guava/commit/75a3d4dd36))
- `Sec-CH-UA-Wow64`
([`49e6b9c`](https://togithub.com/google/guava/commit/49e6b9c4a1))
- `Sec-CH-Viewport-Width` and `Sec-CH-Viewport-Height`
([`44df85a`](https://togithub.com/google/guava/commit/44df85a829))
- `Supports-Loading-Mode`
([`0d5c16f`](https://togithub.com/google/guava/commit/0d5c16fc6b))
- `net`: Added the `MediaType` constant for JWT.
([`f942fd2`](https://togithub.com/google/guava/commit/f942fd2c0e))
- `primitives`: Added `rotate()` for arrays of all primitive types.
([`cd338fa`](https://togithub.com/google/guava/commit/cd338fa2bc),
[`6e9057d`](https://togithub.com/google/guava/commit/6e9057d0f2))
- `util.concurrent`: Changed `AbstractFuture` to run `interruptTask()`
just before `afterDone()`. Until this change, it ran slightly earlier
than that: We used to run it before unblocking any pending `get()`
calls, and now we run it after.
([`b337be6`](https://togithub.com/google/guava/commit/b337be6089))
- `util.concurrent`: Fixed some cases in which we could catch
`InterruptedException` but fail to restore the interrupt bit.
([`8f0350a`](https://togithub.com/google/guava/commit/8f0350a21a))

##### `@Beta` removal list

- `base`: `Utf8`
([`211907c`](https://togithub.com/google/guava/commit/211907cb8b))
- `base`: more APIs
([`b0cc461`](https://togithub.com/google/guava/commit/b0cc461da5))
- `collect`: `Multimaps.asMap(...)`
([`df0081f`](https://togithub.com/google/guava/commit/df0081f28f))
- `collect`: `FluentIterable` APIs
([`73b2f7b`](https://togithub.com/google/guava/commit/73b2f7bee0))
- `collect`: `Forwarding[Foo]` APIs
([`9760dbc`](https://togithub.com/google/guava/commit/9760dbcd4c))
- `collect`: `ImmutableFoo.Builder.builderWithExpectedSize(...)`,
`orderEntriesByValue(...)`, and `Entry`-related APIs
([`61be35c`](https://togithub.com/google/guava/commit/61be35ce49))
- `collect`: `RangeMap`, `RangeSet`, and friends
([`fe12c81`](https://togithub.com/google/guava/commit/fe12c81e79))
- `collect`: more APIs
([`98820c7`](https://togithub.com/google/guava/commit/98820c77f9),
[`e5e0f66`](https://togithub.com/google/guava/commit/e5e0f660cc))
- `io`: `ByteStreams`
([`4897930`](https://togithub.com/google/guava/commit/48979309a5))
- `io`: more APIs
([`a589256`](https://togithub.com/google/guava/commit/a5892560de))
- `math`: various APIs
([`912815e`](https://togithub.com/google/guava/commit/912815e4e2))
- `primitives`: `Longs.tryParse(...)` and friends
([`b3d4856`](https://togithub.com/google/guava/commit/b3d48564c6))
- `primitives`: `UnsignedLongs`
([`b240e8c`](https://togithub.com/google/guava/commit/b240e8ce14))
- `primitives`: more APIs
([`fcec25f`](https://togithub.com/google/guava/commit/fcec25f45e),
[`ab4302a`](https://togithub.com/google/guava/commit/ab4302aa53))
- `reflect`: `Invokable` and some methods in `TypeToken`
([`a195f7d`](https://togithub.com/google/guava/commit/a195f7d604))
- `reflect`: `Parameter` (except `getAnnotatedType()` in
`guava-android`)
([`b561eb1`](https://togithub.com/google/guava/commit/b561eb14c2))
- `testing`: various APIs
([`b331769`](https://togithub.com/google/guava/commit/b331769af3),
[`74ad9b8`](https://togithub.com/google/guava/commit/74ad9b8a1f))
- `util.concurrent`: `FluentFuture`
([`b9a2d58`](https://togithub.com/google/guava/commit/b9a2d58503))
- `util.concurrent`: `Futures`
([`15a0c9f`](https://togithub.com/google/guava/commit/15a0c9fd57))
- `util.concurrent`: `Striped`
([`ba8ad69`](https://togithub.com/google/guava/commit/ba8ad69d03))
- `util.concurrent`: various `MoreExecutors` APIs
([`a3571b4`](https://togithub.com/google/guava/commit/a3571b408f))
- `util.concurrent`: more APIs
([`bbaf76a`](https://togithub.com/google/guava/commit/bbaf76a199))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/immich-app/immich).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuMTI3LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 18:29:18 +00:00
shenlong
ba5cca9348
chore(dep): update auto_route (#6390)
* chore(dep): update auto_route

* chore: rebase main

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-15 16:50:33 +00:00
shenlong
e6c0f0e3aa
refactor(mobile): maplibre (#6087)
* chore: maplibre gl pubspec

* refactor(wip): maplibre for maps

* refactor(wip): dual pane + location button

* chore: remove flutter_map and deps

* refactor(wip): map zoom to location

* refactor: location picker

* open gallery_viewer on marker tap

* remove detectScaleGesture param

* test: debounce and throttle

* chore: rename get location method

* feat(mobile): Adds gps locator to map prompt for easy geolocation (#6282)

* Refactored get gps coords

* Use var for linter's sake, should handle errors better

* Cleanup

* Fix linter issues

* chore(dep): update maplibre to official lib

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Joshua Herrera <joshua.herrera227@gmail.com>
2024-01-15 09:26:13 -06:00
Justin van der Krieken
aa8c54e248
feat(mobile): Focus search on doubletap nav button (#6048)
* feat(mobile): Focus search on doubletap nav button

* Update mobile/lib/modules/search/ui/immich_search_bar.dart

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>

* Move search notifier inside search bar file

And fix naming to better represent type.

* Remove onSearchFocusRequest and call focusSearch directly

* Fix compilation error after file autosave

---------

Co-authored-by: Justin van der Krieken <justin@vdkrieken.com>
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2024-01-15 09:25:56 -06:00
shenlong
6ee9c8277f
chore(dep): remove unused badges dep (#6384)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-15 00:02:11 -06:00
cfitzw
deb1f970a8
feat(server, web): quotas (#4471)
* feat: quotas

* chore: open api

* chore: update status box and upload error message

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-01-12 19:43:36 -05:00
shenlong
4f942bc182
fix(mobile): copy shared link (#6310)
* fix(mobile): copy shared link

* fix: handle trailing slash

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-10 09:32:09 -06:00
shenlong
0e0a472de1
fix(mobile): ensure notifier is mounted before updating state (#6308)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-10 09:31:54 -06:00
Alex The Bot
df59b2099f Version v1.92.1 2024-01-08 15:24:38 +00:00
Alex The Bot
319ddfda53 Version v1.92.0 2024-01-08 05:19:11 +00:00
Alex
d095382b14
chore(mobile): translation update (#6242) 2024-01-07 23:17:35 -06:00
shenlong
a233e176e5
fix(mobile): handle readonly and offline assets (#5565)
* feat: add isReadOnly and isOffline fields to Asset collection

* refactor: move asset iterable filters to extension

* hide asset actions based on offline and readOnly fields

* pr changes

* chore: doc comments

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-05 21:02:16 -06:00
Fynn Petersen-Frey
56cde0438c
feat(mobile): multiselect for search & person page (#6016)
* feat(mobile): multiselect for search & person page

* merge main

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-05 21:23:58 +00:00
shenlong
d3af2b1f69
(mobile): ios - calculate hash using CryptoKit (#5976)
* ios: calculate hash using CryptoKit

* chore: remove unused crypto dep

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-01-05 10:49:43 -06:00
shenlong
af32183728
refactor(mobile): Activities (#5990)
* refactor: autoroutex pushroute

* refactor: autoroutex popRoute

* refactor: autoroutex navigate and replace

* chore: add doc comments for extension methods

* refactor: Add LoggerMixin and refactor Album activities to use mixin

* refactor: Activity page

* chore: activity user from user constructor

* fix: update current asset after build method

* refactor: tests with similar structure as lib

* chore: remove avoid-declaring-call-method rule from dcm analysis

* test: fix proper expect order

* test: activity_statistics_provider_test

* test: activity_provider_test

* test: use proper matchers

* test: activity_text_field_test & dismissible_activity_test added

* test: add http mock to return transparent image

* test: download isar core libs during test

* test: add widget tags to widget test cases

* test: activity_tile_test

* build: currentAlbumProvider to generator

* movie add / remove like to activity input tile

* test: activities_page_test.dart

* chore: better error logs

* chore: dismissibleactivity as statelesswidget

---------

Co-authored-by: shalong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-04 23:20:55 -06:00
shenlong
2aaf941dda
refactor(mobile): use startOAuth and server features flags (#6155)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-04 14:44:40 -06:00
Alex
18f59f78e3
feat(web): onboarding (#6066)
* feat(web): onboarding

* feat: openapi

* feat: modulization

* feat: page advancing

* Animation

* Add storage templaete settings

* sql

* more style

* Theme

* information and styling

* hide/show table

* Styling

* Update user property

* fix test

* fix test:

* fix e2e

* test

* Update web/src/lib/components/onboarding-page/onboarding-hello.svelte

Co-authored-by: bo0tzz <git@bo0tzz.me>

* naming

* use System Metadata

* better return type

* onboarding using server metadata

* revert previous changes in user entity

* sql

* test web

* fix test server

* server/web test

* more test

* consolidate color theme change logic

* consolidate save button to storage template

* merge main

* fix web

---------

Co-authored-by: bo0tzz <git@bo0tzz.me>
2024-01-04 05:28:32 +00:00
Jason Rasmussen
f8d64be13c
feat(server)!: move welcome message to settings (#6157)
* feat(server): move welcome message to settings

* chore: open api
2024-01-04 05:00:17 +00:00
Jason Rasmussen
317adc5c28
feat(web,server): external domain setting (#6146)
* feat: external domain setting

* chore: open api

* mobile: handle serverconfig-externalDomain

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2024-01-03 21:54:48 -05:00
Jason Rasmussen
9a04014f98
feat(mobile): use new endpoint (#6108) 2024-01-01 19:02:30 -05:00
Opbod
a5a71e6b5c
Update en-US.json - spelling changes (#5868) 2024-01-01 19:27:45 +00:00
Zack Pollard
2e38fa73bf
feat: storage template file move hardening (#5917)
* fix: pgvecto.rs extension breaks typeorm schema:drop command

* fix: parse postgres bigints to javascript number types when selecting data

* feat: verify file size is the same as original asset after copying file for storage template job

* feat: allow disabling of storage template job, defaults to disabled for new instances

* fix: don't allow setting concurrency for storage template migration, can cause race conditions above 1

* feat: add checksum verification when file is copied for storage template job

* fix: extract metadata for assets that aren't visible on timeline
2023-12-29 18:41:33 +00:00
Emanuel Bennici
fd3a1a4da8
fix(mobile): Fix "Live Images" and "Recently added" page (#6030)
* fix(mobile): Load assets on "Live-Images" page

Instead of requesting the server for the relevant entries, we can use
the local DB.

This change fixes loading errors when going to the "Live-Images" page.
It is similar to the work done with #5971.

* fix(mobile): Fix Recently added page
2023-12-27 23:33:37 -06:00
Fynn Petersen-Frey
733fa28aa2
feat(mobile): load search result assets from local DB (#5971) 2023-12-26 15:41:51 -06:00
Alex
dea1063b17
chore(mobile): translation update (#5960) 2023-12-24 10:29:53 -06:00
Alex
17ef411b0a
Localizely: Translations update (#5902)
* chore(mobile): translation update

* fix localizely plurals form

* more fix
2023-12-24 10:20:34 -06:00
Mert
092a23fd7f
feat(server,ml): remove image tagging (#5903)
* remove image tagging

* updated lock

* fixed tests, improved logging

* be nice

* fixed tests
2023-12-20 20:47:56 -05:00
shenlong
154292242f
fix(mobile): use proper id for gellery_viewer hero attribute (#5894)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2023-12-20 11:23:17 -06:00
André Pinto
4505ebc315
fix(mobile): Fix pt-PT locale. Add missing pt-PT localizely entry (#5892) 2023-12-20 09:46:20 -06:00
Alex
cabc2d57dd
Revert "chore(mobile): translation update (#5867)" (#5871)
This reverts commit 4e06ccd052.
2023-12-19 13:17:20 -06:00
Alex
4e06ccd052
chore(mobile): translation update (#5867) 2023-12-19 10:45:11 -06:00
Alex The Bot
b40859551b Version v1.91.4 2023-12-19 03:34:19 +00:00
shenlong
085dc6cd93
fix(mobile): use safe area for gallery_viewer bottom sheet (#5831)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2023-12-18 11:22:06 -06:00
Alex
ffc31f034c
chore(mobile): handle delete file error (#5827) 2023-12-18 09:54:42 -06:00
Quek
27f8dd6040
doc: documentation of the Immich Flutter Architectural Pattern (#5748)
* Added Documentation of the Immich Flutter Architectural Pattern

* Update README.md

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2023-12-17 17:51:03 +00:00
Alex The Bot
08f66c2ae5 Version v1.91.3 2023-12-17 16:57:16 +00:00