upgraded flutter to v2.5.2

This commit is contained in:
Thibault Deckers 2021-10-01 11:16:24 +09:00
parent bfdbd22bc8
commit ff92100dcf
10 changed files with 154 additions and 41 deletions

View file

@ -15,7 +15,7 @@ jobs:
- uses: subosito/flutter-action@v1
with:
channel: stable
flutter-version: '2.5.1'
flutter-version: '2.5.2'
- name: Clone the repository.
uses: actions/checkout@v2

View file

@ -17,7 +17,7 @@ jobs:
- uses: subosito/flutter-action@v1
with:
channel: stable
flutter-version: '2.5.1'
flutter-version: '2.5.2'
# Workaround for this Android Gradle Plugin issue (supposedly fixed in AGP 4.1):
# https://issuetracker.google.com/issues/144111441
@ -50,8 +50,8 @@ jobs:
echo "${{ secrets.KEY_JKS }}" > release.keystore.asc
gpg -d --passphrase "${{ secrets.KEY_JKS_PASSPHRASE }}" --batch release.keystore.asc > $AVES_STORE_FILE
rm release.keystore.asc
flutter build apk --bundle-sksl-path shaders_2.5.1.sksl.json
flutter build appbundle --bundle-sksl-path shaders_2.5.1.sksl.json
flutter build apk --bundle-sksl-path shaders_2.5.2.sksl.json
flutter build appbundle --bundle-sksl-path shaders_2.5.2.sksl.json
rm $AVES_STORE_FILE
env:
AVES_STORE_FILE: ${{ github.workspace }}/key.jks

View file

@ -1,50 +1,69 @@
# Changelog
All notable changes to this project will be documented in this file.
## [Unreleased]
### Changed
- upgraded Flutter to stable v2.5.2
## [v1.5.3] - 2021-09-30
### Added
- Map: show items for bounds, open items in viewer, tap gesture to toggle fullscreen
- Info: remove metadata (Exif, XMP, etc.)
- Accessibility: support "time to take action" and "remove animations" settings
### Changed
- upgraded Flutter to stable v2.5.1
- faster collection loading when launching the app
- Collection: changed color & scale of thumbnail icons to match text
- Albums / Countries / Tags: changed layout, with label below cover
### Fixed
- album bookmarks & pins were reset when rescanning items
## [v1.5.2] - 2021-09-29 [YANKED]
## [v1.5.1] - 2021-09-08
### Added
- About: bug reporting instructions
### Changed
- Collection: improved video date detection
### Fixed
- fixed hanging app when loading thumbnails for some video formats on some devices
## [v1.5.0] - 2021-09-02
### Added
- Info: edit Exif dates (setting, shifting, deleting)
- Collection: custom quick actions for item selection
- Collection: video date detection for more formats
### Changed
- faster collection loading when launching the app
### Fixed
- app launching on some devices
- corrupting motion photo exif editing (e.g. rotation)
## [v1.4.9] - 2021-08-20
### Added
- Map & Stats from selection
- Map: item browsing, rotation control
- Navigation menu customization
@ -52,19 +71,24 @@ All notable changes to this project will be documented in this file.
- support Android 12/S (API 31)
## [v1.4.8] - 2021-08-08
### Added
- Map
- Viewer: action to copy to clipboard
- integration with Android global search (Samsung Finder etc.)
### Fixed
- auto album identification and naming
- opening HEIC images from downloads content URI on Android R+
## [v1.4.7] - 2021-08-06 [YANKED]
## [v1.4.6] - 2021-07-22
### Added
- Albums / Countries / Tags: multiple selection
- Albums: action to create empty albums
- Collection: burst shot grouping (Samsung naming pattern)
@ -74,18 +98,23 @@ All notable changes to this project will be documented in this file.
- Settings: option to exclude cutout area in viewer
### Changed
- Video: restored overlay hiding when pressing play button
### Fixed
- Viewer: fixed manual screen rotation to follow sensor
## [v1.4.5] - 2021-07-08
### Added
- Video: added OGV/Theora/Vorbis support
- Viewer: action to rotate screen when device has locked rotation
- Settings: import/export
### Changed
- improved SVG support with a different rendering engine
- changed logo
- upgraded Flutter to stable v2.2.3
@ -93,76 +122,97 @@ All notable changes to this project will be documented in this file.
- viewer: parallax effect when scrolling
### Removed
- Analytics: removed Firebase Analytics (kept Firebase Crashlytics)
## [v1.4.4] - 2021-06-25
### Added
- Video: speed control, track selection, frame capture
- Video: embedded subtitle support
- Settings: custom video quick actions
- Settings: subtitle theme
### Changed
- upgraded Flutter to stable v2.2.2
### Fixed
- fixed opening SVGs from other apps
- stop video playback when leaving the app in some cases
- fixed crash when ACCESS_MEDIA_LOCATION permission is revoked
## [v1.4.3] - 2021-06-12
### Added
- Collection: snack bar action to show moved/copied/exported entries
- Collection / Albums / Countries / Tags: when switching device orientation, keep items in view
- Collection: when leaving entry from Viewer, make entry visible in collection
- Viewer: fixed layout & minimap for videos with non-square pixels
### Changed
- upgraded Flutter to stable v2.2.1
- migrated to unsound null safety
- Collection / Viewer: improved performance, memory usage
- Collection: thumbnail layout change
### Removed
- no support for Android KitKat (API 19), unsupported by Google Maps package
### Fixed
- fixed opening files shared via content URI with incorrect MIME type
- refresh collection when entries modified in Viewer no longer match collection filters
## [v1.4.2] - 2021-06-10 [YANKED]
## [v1.4.1] - 2021-04-29
### Added
- Motion photo support
- Viewer: play videos in multi-track HEIC
- Handle share intent
### Changed
- Upgraded Flutter to beta v2.2.0-10.1.pre
### Fixed
- fixed crash when cataloguing large MP4/PSD
- prevent videos playing in the background when quickly switching entries
## [v1.4.0] - 2021-04-16
### Added
- Viewer: support for videos with EAC3/FLAC/OPUS audio
- Info: more consistent and comprehensive info for videos and streams
- Settings: more video options (auto play, loop, hardware acceleration)
### Changed
- Info: present video cover like XMP embedded images
### Removed
- locale name package (-3 MB)
### Fixed
- Albums: auto naming for folders on SD card
- Viewer: display of videos with unusual SAR
## [v1.3.7] - 2021-04-02
### Added
- Collection / Albums / Countries / Tags: added label when dragging scrollbar thumb
- Albums: localized common album names
- Collection: select shortcut icon image
@ -170,165 +220,209 @@ All notable changes to this project will be documented in this file.
- Settings: option to hide videos from collection
### Changed
- Upgraded Flutter to beta v2.1.0-12.2.pre
### Fixed
- opening media shared by other apps as file media content
- navigation stack when opening media shared by other apps
## [v1.3.6] - 2021-03-18
### Added
- Korean translation
- cover selection for albums / countries / tags
### Changed
- Upgraded Flutter to dev v2.1.0-12.1.pre
### Fixed
- various TIFF decoding fixes
## [v1.3.5] - 2021-02-26
### Added
- support Android KitKat, Lollipop & Marshmallow (API 19 ~ 23)
- quick country reverse geocoding without Play Services
- menu option to hide any filter
- menu option to navigate to the album / country / tag page from filter
### Changed
- analytics are opt-in
### Removed
- removed custom font used in titles and info page
## [v1.3.4] - 2021-02-10
### Added
- hide album / country / tag from collection
- new version check
### Changed
- Viewer: improved multipage item overlay and thumbnail loading
- deactivate geocoding and Google maps when Play Services are unavailable
### Fixed
- refreshing items externally added/moved/removed
- loading items at the root of volumes
- loading items when opening a shortcut with a location filter
- various thumbnail hero animation fixes
## [v1.3.3] - 2021-01-31
### Added
- Viewer: support for multi-track HEIF
- Viewer: export image (including multipage TIFF/HEIF and images embedded in XMP)
- Info: show owner app (Android Q and up)
- listen to Media Store changes
### Changed
- upgraded Flutter to stable v1.22.6
- check connectivity before using features that need it
### Fixed
- checkerboard background performance
- deleting files that no longer exist but are still registered in the Media Store
- insets handling on Android 11
## [v1.3.2] - 2021-01-17
### Added
Collection: identify multipage TIFF & multitrack HEIC/HEIF
Viewer: support for multipage TIFF
Viewer: support for cropped panoramas
Albums: grouping options
Collection: identify multipage TIFF & multitrack HEIC/HEIF Viewer: support for multipage TIFF
Viewer: support for cropped panoramas Albums: grouping options
### Changed
upgraded libtiff to 4.2.0 for TIFF decoding
### Fixed
- prevent scrolling when using Android Q style gesture navigation
## [v1.3.1] - 2021-01-04
### Added
- Collection: long press and move to select/deselect multiple items
- Info: show Spherical Video V1 metadata
- Info: metadata search
### Fixed
- Viewer: fixed panning inertia following double-tap scaling
- Collection: fixed crash when loading TIFF files on Android 11
## [v1.3.0] - 2020-12-26
### Added
- Viewer: quick scale (aka one finger zoom)
- Viewer: optional checkered background for transparent images
### Changed
- Viewer: changed panning inertia
### Fixed
- Viewer: fixed scaling focus when zooming by double-tap or pinch
- Viewer: fixed panning during scaling
## [v1.2.9] - 2020-12-12
### Added
- Collection: identify 360 photos/videos, GeoTIFF
- Viewer: open panoramas (360 photos)
- Info: open GImage/GAudio/GDepth media and thumbnails embedded in XMP
- Info: SVG metadata
### Changed
- Upgraded Flutter to stable v1.22.5
- Viewer: TIFF subsampling & tiling
- Info: improved XMP layout
### Fixed
- Fixed large TIFF handling
## [v1.2.8] - 2020-11-27
### Added
- Albums / Countries / Tags: pinch to change tile size
- Album picker: added a field to filter by name
- check free space before moving items
- SVG source viewer
### Changed
- Navigation: changed page history handling
- Info: improved layout, especially for XMP
- About: improved layout
- faster locating of new items
## [v1.2.7] - 2020-11-15
### Added
- Support for TIFF images (single page)
- Viewer overlay: minimap (optional)
### Changed
- Upgraded Flutter to stable v1.22.4
- Viewer: use subsampling and tiling to display large images
### Fixed
- Fixed finding dimensions of items with incorrect EXIF
## [v1.2.6] - 2020-11-15 [YANKED]
## [v1.2.5] - 2020-11-01
### Added
- Search: show recently used filters (optional)
- Search: show filter for items with no XMP tags
- Search: show filter for items with no location information
- Analytics: use Firebase Analytics (along Firebase Crashlytics)
### Changed
- Upgraded Flutter to stable v1.22.3
- Viewer overlay: showing shooting details is now optional
### Fixed
- Viewer: leave when the loaded item is deleted and it is the last one
- Viewer: refresh the viewer overlay and info page when the loaded image is modified
- Info: prevent reporting a "Media" section for images other than HEIC/HEIF
- Fixed opening items shared via a "file" media content URI
### Removed
- Dependencies: removed Guava as a direct dependency in Android
## [v1.2.4] - 2020-11-01 [YANKED]
## [v1.2.3] - 2020-10-22
...

View file

@ -200,17 +200,8 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
final otherViewEnabled = (!isSelecting && hasItems) || (isSelecting && hasSelection);
return [
_toMenuItem(
EntrySetAction.sort,
// key is expected by test driver
key: const Key('menu-sort'),
),
if (groupable)
_toMenuItem(
EntrySetAction.group,
// key is expected by test driver
key: const Key('menu-group'),
),
_toMenuItem(EntrySetAction.sort),
if (groupable) _toMenuItem(EntrySetAction.group),
if (appMode == AppMode.main) ...[
if (!isSelecting)
_toMenuItem(
@ -254,9 +245,10 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
];
}
PopupMenuItem<EntrySetAction> _toMenuItem(EntrySetAction action, {Key? key, bool enabled = true}) {
PopupMenuItem<EntrySetAction> _toMenuItem(EntrySetAction action, {bool enabled = true}) {
return PopupMenuItem(
key: key,
// key is expected by test driver (e.g. 'menu-sort', 'menu-group', 'menu-map')
key: Key('menu-${action.toString().substring('EntrySetAction.'.length)}'),
value: action,
enabled: enabled,
child: MenuRow(text: action.getText(context), icon: action.getIcon()),

View file

@ -207,6 +207,8 @@ class _MapPageContentState extends State<MapPageContent> with SingleTickerProvid
navigationButton: MapNavigationButton.back,
scale: _overlayScale,
child: GeoMap(
// key is expected by test driver
key: const Key('map_view'),
controller: _mapController,
entries: entries,
initialEntry: widget.initialEntry,

View file

@ -83,7 +83,7 @@ class _MultiEntryScrollerState extends State<MultiEntryScroller> with AutomaticK
Widget _buildViewer(AvesEntry mainEntry, {AvesEntry? pageEntry}) {
return EntryPageView(
// key is expected by test driver
key: const Key('imageview'),
key: const Key('image_view'),
mainEntry: mainEntry,
pageEntry: pageEntry ?? mainEntry,
onDisposed: () => widget.onViewDisposed(mainEntry, pageEntry),

View file

@ -86,7 +86,7 @@ packages:
name: cli_util
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.3"
version: "0.3.4"
clock:
dependency: transitive
description:
@ -293,7 +293,7 @@ packages:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.6.0"
version: "1.7.0"
firebase_core_platform_interface:
dependency: transitive
description:
@ -314,14 +314,14 @@ packages:
name: firebase_crashlytics
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.1"
version: "2.2.2"
firebase_crashlytics_platform_interface:
dependency: transitive
description:
name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.2"
version: "3.1.3"
flex_color_picker:
dependency: "direct main"
description:
@ -435,14 +435,14 @@ packages:
name: github
url: "https://pub.dartlang.org"
source: hosted
version: "8.1.1"
version: "8.1.2"
glob:
dependency: transitive
description:
name: glob
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
google_api_availability:
dependency: "direct main"
description:
@ -456,14 +456,14 @@ packages:
name: google_maps_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.10"
version: "2.0.11"
google_maps_flutter_platform_interface:
dependency: transitive
description:
name: google_maps_flutter_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.1"
version: "2.1.2"
highlight:
dependency: transitive
description:
@ -498,7 +498,7 @@ packages:
name: image
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.5"
version: "3.0.7"
intl:
dependency: "direct main"
description:
@ -533,7 +533,7 @@ packages:
name: latlong2
url: "https://pub.dartlang.org"
source: hosted
version: "0.8.0"
version: "0.8.1"
lints:
dependency: transitive
description:
@ -764,7 +764,7 @@ packages:
name: permission_handler_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.6.1"
version: "3.6.2"
petitparser:
dependency: transitive
description:
@ -785,7 +785,7 @@ packages:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "2.0.2"
pool:
dependency: transitive
description:
@ -827,7 +827,7 @@ packages:
name: provider
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.0"
version: "6.0.1"
pub_semver:
dependency: transitive
description:
@ -1072,7 +1072,7 @@ packages:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.11"
version: "6.0.12"
url_launcher_linux:
dependency: transitive
description:
@ -1135,7 +1135,7 @@ packages:
name: watcher
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
version: "1.0.1"
web_socket_channel:
dependency: transitive
description:

File diff suppressed because one or more lines are too long

1
shaders_2.5.2.sksl.json Normal file

File diff suppressed because one or more lines are too long

View file

@ -34,6 +34,7 @@ void main() {
visitSettings();
sortCollection();
groupCollection();
visitMap();
selectFirstAlbum();
searchAlbum();
showViewer();
@ -119,6 +120,30 @@ void groupCollection() {
});
}
void visitMap() {
test('[collection] visit map', () async {
await driver.tap(find.byValueKey('appbar-menu-button'));
await driver.waitUntilNoTransientCallbacks();
await driver.tap(find.byValueKey('menu-map'));
// wait for heavy Google map initialization
await Future.delayed(const Duration(seconds: 3));
final mapView = find.byValueKey('map_view');
print('* hide overlay');
await driver.tap(mapView);
await Future.delayed(const Duration(seconds: 2));
print('* show overlay');
await driver.tap(mapView);
await Future.delayed(const Duration(seconds: 2));
await pressDeviceBackButton();
await driver.waitUntilNoTransientCallbacks();
});
}
void selectFirstAlbum() {
test('[collection] select first album', () async {
await driver.tap(find.byValueKey('appbar-leading-button'));
@ -183,7 +208,7 @@ void goToNextImage() {
void toggleOverlay() {
test('[viewer] toggle overlay', () async {
final imageView = find.byValueKey('imageview');
final imageView = find.byValueKey('image_view');
print('* hide overlay');
await driver.tap(imageView);
@ -197,7 +222,7 @@ void toggleOverlay() {
void zoom() {
test('[viewer] zoom cycle', () async {
final imageView = find.byValueKey('imageview');
final imageView = find.byValueKey('image_view');
await driver.doubleTap(imageView);
await Future.delayed(const Duration(seconds: 1));
@ -244,7 +269,7 @@ void showInfoMetadata() {
void scrollOffImage() {
test('[viewer] scroll off', () async {
await driver.scroll(find.byValueKey('imageview'), 0, 800, const Duration(milliseconds: 600));
await driver.scroll(find.byValueKey('image_view'), 0, 800, const Duration(milliseconds: 600));
await Future.delayed(const Duration(seconds: 1));
});
}