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 ).
[@​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
[#​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
([#​4011](https://togithub.com/google/guava/issues/4011 )) and
CVE-2023-2976
([#​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