upgraded flutter to v2.8.1
This commit is contained in:
parent
5198f07e3d
commit
cd8ffb63bc
10 changed files with 56 additions and 66 deletions
2
.github/workflows/check.yml
vendored
2
.github/workflows/check.yml
vendored
|
@ -15,7 +15,7 @@ jobs:
|
|||
- uses: subosito/flutter-action@v1
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: '2.8.0'
|
||||
flutter-version: '2.8.1'
|
||||
|
||||
- name: Clone the repository.
|
||||
uses: actions/checkout@v2
|
||||
|
|
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
|
@ -17,7 +17,7 @@ jobs:
|
|||
- uses: subosito/flutter-action@v1
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: '2.8.0'
|
||||
flutter-version: '2.8.1'
|
||||
|
||||
# Workaround for this Android Gradle Plugin issue (supposedly fixed in AGP 4.1):
|
||||
# https://issuetracker.google.com/issues/144111441
|
||||
|
@ -52,12 +52,12 @@ jobs:
|
|||
rm release.keystore.asc
|
||||
mkdir outputs
|
||||
(cd scripts/; ./apply_flavor_play.sh)
|
||||
flutter build appbundle -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_2.8.0.sksl.json
|
||||
flutter build appbundle -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_2.8.1.sksl.json
|
||||
cp build/app/outputs/bundle/playRelease/*.aab outputs
|
||||
flutter build apk -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_2.8.0.sksl.json
|
||||
flutter build apk -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_2.8.1.sksl.json
|
||||
cp build/app/outputs/apk/play/release/*.apk outputs
|
||||
(cd scripts/; ./apply_flavor_izzy.sh)
|
||||
flutter build apk -t lib/main_izzy.dart --flavor izzy --split-per-abi --bundle-sksl-path shaders_2.8.0.sksl.json
|
||||
flutter build apk -t lib/main_izzy.dart --flavor izzy --split-per-abi --bundle-sksl-path shaders_2.8.1.sksl.json
|
||||
cp build/app/outputs/apk/izzy/release/*.apk outputs
|
||||
rm $AVES_STORE_FILE
|
||||
env:
|
||||
|
|
|
@ -10,7 +10,7 @@ All notable changes to this project will be documented in this file.
|
|||
|
||||
### Changed
|
||||
|
||||
- upgraded Flutter to stable v2.8.0
|
||||
- upgraded Flutter to stable v2.8.1
|
||||
|
||||
## <a id="v1.5.7"></a>[v1.5.7] - 2021-12-01
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.6.0'
|
||||
ext.kotlin_version = '1.6.10'
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
|
|
|
@ -283,7 +283,7 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
|
|||
];
|
||||
}
|
||||
|
||||
// key is expected by test driver (e.g. 'menu-sort', 'menu-group', 'menu-map')
|
||||
// key is expected by test driver (e.g. 'menu-configureView', 'menu-map')
|
||||
Key _getActionKey(EntrySetAction action) => Key('menu-${action.name}');
|
||||
|
||||
Widget _toActionButton(EntrySetAction action, {required bool enabled}) {
|
||||
|
|
|
@ -78,7 +78,7 @@ class _TileViewDialogState<S, G, L> extends State<TileViewDialog<S, G, L>> with
|
|||
final tabs = <Tuple2<Tab, Widget>>[
|
||||
if (sortOptions.isNotEmpty)
|
||||
Tuple2(
|
||||
_buildTab(context, AIcons.sort, l10n.viewDialogTabSort),
|
||||
_buildTab(context, const Key('tab-sort'), AIcons.sort, l10n.viewDialogTabSort),
|
||||
Column(
|
||||
children: sortOptions.entries
|
||||
.map((kv) => _buildRadioListTile<S>(
|
||||
|
@ -92,7 +92,7 @@ class _TileViewDialogState<S, G, L> extends State<TileViewDialog<S, G, L>> with
|
|||
),
|
||||
if (groupOptions.isNotEmpty)
|
||||
Tuple2(
|
||||
_buildTab(context, AIcons.group, l10n.viewDialogTabGroup, color: canGroup ? null : Theme.of(context).disabledColor),
|
||||
_buildTab(context, const Key('tab-group'), AIcons.group, l10n.viewDialogTabGroup, color: canGroup ? null : Theme.of(context).disabledColor),
|
||||
Column(
|
||||
children: groupOptions.entries
|
||||
.map((kv) => _buildRadioListTile<G>(
|
||||
|
@ -106,7 +106,7 @@ class _TileViewDialogState<S, G, L> extends State<TileViewDialog<S, G, L>> with
|
|||
),
|
||||
if (layoutOptions.isNotEmpty)
|
||||
Tuple2(
|
||||
_buildTab(context, AIcons.layout, l10n.viewDialogTabLayout),
|
||||
_buildTab(context, const Key('tab-layout'), AIcons.layout, l10n.viewDialogTabLayout),
|
||||
Column(
|
||||
children: layoutOptions.entries
|
||||
.map((kv) => _buildRadioListTile<L>(
|
||||
|
@ -176,6 +176,7 @@ class _TileViewDialogState<S, G, L> extends State<TileViewDialog<S, G, L>> with
|
|||
child: Text(MaterialLocalizations.of(context).cancelButtonLabel),
|
||||
),
|
||||
TextButton(
|
||||
key: const Key('button-apply'),
|
||||
onPressed: () => Navigator.pop(context, Tuple3(_selectedSort, _selectedGroup, _selectedLayout)),
|
||||
child: Text(l10n.applyButtonLabel),
|
||||
)
|
||||
|
@ -209,12 +210,13 @@ class _TileViewDialogState<S, G, L> extends State<TileViewDialog<S, G, L>> with
|
|||
);
|
||||
}
|
||||
|
||||
Tab _buildTab(BuildContext context, IconData icon, String text, {Color? color}) {
|
||||
Tab _buildTab(BuildContext context, Key key, IconData icon, String text, {Color? color}) {
|
||||
// cannot use `IconTheme` over `TabBar` to change size,
|
||||
// because `TabBar` does so internally
|
||||
final textScaleFactor = MediaQuery.textScaleFactorOf(context);
|
||||
final iconSize = IconTheme.of(context).size! * textScaleFactor;
|
||||
return Tab(
|
||||
key: key,
|
||||
height: tabBarHeight(context),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
|
|
28
pubspec.lock
28
pubspec.lock
|
@ -210,7 +210,7 @@ packages:
|
|||
name: device_info_plus
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.1.1"
|
||||
version: "3.2.0"
|
||||
device_info_plus_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -231,7 +231,7 @@ packages:
|
|||
name: device_info_plus_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "2.3.0"
|
||||
device_info_plus_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -305,35 +305,35 @@ packages:
|
|||
name: firebase_core
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.10.5"
|
||||
version: "1.10.6"
|
||||
firebase_core_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: firebase_core_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.2.2"
|
||||
version: "4.2.3"
|
||||
firebase_core_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: firebase_core_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.5.2"
|
||||
version: "1.5.3"
|
||||
firebase_crashlytics:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: firebase_crashlytics
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.4.3"
|
||||
version: "2.4.4"
|
||||
firebase_crashlytics_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: firebase_crashlytics_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.1.10"
|
||||
version: "3.1.11"
|
||||
flex_color_picker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -397,7 +397,7 @@ packages:
|
|||
name: flutter_markdown
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.8"
|
||||
version: "0.6.9"
|
||||
flutter_plugin_android_lifecycle:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -447,7 +447,7 @@ packages:
|
|||
name: github
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "8.2.5"
|
||||
version: "8.3.0"
|
||||
glob:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -629,7 +629,7 @@ packages:
|
|||
name: nm
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.1"
|
||||
version: "0.4.2"
|
||||
node_preamble:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -727,7 +727,7 @@ packages:
|
|||
name: path_provider_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.4"
|
||||
path_provider_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -895,7 +895,7 @@ packages:
|
|||
name: shared_preferences
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.9"
|
||||
version: "2.0.11"
|
||||
shared_preferences_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1012,7 +1012,7 @@ packages:
|
|||
name: sqflite_common
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1+1"
|
||||
version: "2.1.0"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1261,5 +1261,5 @@ packages:
|
|||
source: hosted
|
||||
version: "3.1.0"
|
||||
sdks:
|
||||
dart: ">=2.14.0 <3.0.0"
|
||||
dart: ">=2.15.0 <3.0.0"
|
||||
flutter: ">=2.5.0"
|
||||
|
|
File diff suppressed because one or more lines are too long
1
shaders_2.8.1.sksl.json
Normal file
1
shaders_2.8.1.sksl.json
Normal file
File diff suppressed because one or more lines are too long
|
@ -12,6 +12,13 @@ import 'utils/driver_extension.dart';
|
|||
|
||||
late FlutterDriver driver;
|
||||
|
||||
extension ExtraFlutterDriver on FlutterDriver {
|
||||
Future<void> tapKeyAndWait(String key) async {
|
||||
await driver.tap(find.byValueKey(key));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
}
|
||||
}
|
||||
|
||||
void main() {
|
||||
group('[Aves app]', () {
|
||||
setUpAll(() async {
|
||||
|
@ -61,8 +68,7 @@ void agreeToTerms() {
|
|||
await driver.tap(find.byValueKey('terms-checkbox'));
|
||||
await Future.delayed(const Duration(seconds: 1));
|
||||
|
||||
await driver.tap(find.byValueKey('continue-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('continue-button');
|
||||
|
||||
// wait for collection loading
|
||||
await driver.waitForCondition(const NoPendingPlatformMessages());
|
||||
|
@ -71,11 +77,8 @@ void agreeToTerms() {
|
|||
|
||||
void visitAbout() {
|
||||
test('[collection] visit about page', () async {
|
||||
await driver.tap(find.byValueKey('appbar-leading-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey('drawer-about-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('appbar-leading-button');
|
||||
await driver.tapKeyAndWait('drawer-about-button');
|
||||
|
||||
await pressDeviceBackButton();
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
@ -84,11 +87,8 @@ void visitAbout() {
|
|||
|
||||
void visitSettings() {
|
||||
test('[collection] visit settings page', () async {
|
||||
await driver.tap(find.byValueKey('appbar-leading-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey('drawer-settings-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('appbar-leading-button');
|
||||
await driver.tapKeyAndWait('drawer-settings-button');
|
||||
|
||||
await pressDeviceBackButton();
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
@ -97,34 +97,27 @@ void visitSettings() {
|
|||
|
||||
void sortCollection() {
|
||||
test('[collection] sort', () async {
|
||||
await driver.tap(find.byValueKey('appbar-menu-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey('menu-sort'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey(EntrySortFactor.date.toString()));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('appbar-menu-button');
|
||||
await driver.tapKeyAndWait('menu-configureView');
|
||||
await driver.tapKeyAndWait('tab-sort');
|
||||
await driver.tapKeyAndWait(EntrySortFactor.date.toString());
|
||||
await driver.tapKeyAndWait('button-apply');
|
||||
});
|
||||
}
|
||||
|
||||
void groupCollection() {
|
||||
test('[collection] group', () async {
|
||||
await driver.tap(find.byValueKey('appbar-menu-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey('menu-group'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey(EntryGroupFactor.album.toString()));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('appbar-menu-button');
|
||||
await driver.tapKeyAndWait('menu-configureView');
|
||||
await driver.tapKeyAndWait('tab-group');
|
||||
await driver.tapKeyAndWait(EntryGroupFactor.album.toString());
|
||||
await driver.tapKeyAndWait('button-apply');
|
||||
});
|
||||
}
|
||||
|
||||
void visitMap() {
|
||||
test('[collection] visit map', () async {
|
||||
await driver.tap(find.byValueKey('appbar-menu-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('appbar-menu-button');
|
||||
|
||||
await driver.tap(find.byValueKey('menu-map'));
|
||||
// wait for heavy Google map initialization
|
||||
|
@ -147,12 +140,9 @@ void visitMap() {
|
|||
|
||||
void selectFirstAlbum() {
|
||||
test('[collection] select first album', () async {
|
||||
await driver.tap(find.byValueKey('appbar-leading-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tapKeyAndWait('appbar-leading-button');
|
||||
// prefix must match `AlbumListPage.routeName`
|
||||
await driver.tap(find.byValueKey('/albums-tile'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('/albums-tile');
|
||||
|
||||
// wait for collection loading
|
||||
await driver.waitForCondition(const NoPendingPlatformMessages());
|
||||
|
@ -170,8 +160,7 @@ void selectFirstAlbum() {
|
|||
|
||||
void searchAlbum() {
|
||||
test('[collection] search album', () async {
|
||||
await driver.tap(find.byValueKey('menu-searchCollection'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('menu-searchCollection');
|
||||
|
||||
const albumPath = targetPicturesDirEmulated;
|
||||
final albumDisplayName = p.split(albumPath).last;
|
||||
|
@ -263,8 +252,7 @@ void showInfoMetadata() {
|
|||
await Future.delayed(const Duration(seconds: 1));
|
||||
|
||||
print('* back to image');
|
||||
await driver.tap(find.byValueKey('back-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
await driver.tapKeyAndWait('back-button');
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue