upgraded flutter to v2.8.0

This commit is contained in:
Thibault Deckers 2021-12-09 14:56:15 +09:00
parent eee3452e3e
commit 6e3b0227c2
57 changed files with 110 additions and 189 deletions

View file

@ -15,7 +15,7 @@ jobs:
- uses: subosito/flutter-action@v1
with:
channel: stable
flutter-version: '2.5.3'
flutter-version: '2.8.0'
- 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.3'
flutter-version: '2.8.0'
# 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.5.3.sksl.json
flutter build appbundle -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_2.8.0.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.5.3.sksl.json
flutter build apk -t lib/main_play.dart --flavor play --bundle-sksl-path shaders_2.8.0.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.5.3.sksl.json
flutter build apk -t lib/main_izzy.dart --flavor izzy --split-per-abi --bundle-sksl-path shaders_2.8.0.sksl.json
cp build/app/outputs/apk/izzy/release/*.apk outputs
rm $AVES_STORE_FILE
env:

View file

@ -2,7 +2,15 @@
All notable changes to this project will be documented in this file.
## [Unreleased]
## <a id="unreleased"></a>[Unreleased]
### Added
- moving or deleting multiple items can be cancelled
### Changed
- upgraded Flutter to stable v2.8.0
## <a id="v1.5.7"></a>[v1.5.7] - 2021-12-01

View file

@ -6,11 +6,11 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.0.3'
classpath 'com.android.tools.build:gradle:7.0.4'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// GMS & Firebase Crashlytics are not actually used by all flavors
classpath 'com.google.gms:google-services:4.3.10'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.0'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
}
}

View file

@ -3,7 +3,6 @@ import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/durations.dart';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:github/github.dart';
import 'package:google_api_availability/google_api_availability.dart';
import 'package:package_info_plus/package_info_plus.dart';

View file

@ -1,5 +1,4 @@
import 'dart:math';
import 'dart:ui';
import 'package:aves/image_providers/region_provider.dart';
import 'package:aves/image_providers/thumbnail_provider.dart';

View file

@ -3,7 +3,6 @@ import 'package:aves/theme/icons.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class FavouriteFilter extends CollectionFilter {
static const type = 'favourite';

View file

@ -1,13 +1,11 @@
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
// names should match possible values on platform
enum NameConflictStrategy { rename, replace, skip }
extension ExtraNameConflictStrategy on NameConflictStrategy {
// TODO TLAD [dart 2.15] replace `describeEnum()` by `enum.name`
String toPlatform() => describeEnum(this);
String toPlatform() => name;
String getName(BuildContext context) {
switch (this) {

View file

@ -4,7 +4,6 @@ import 'package:aves/model/entry.dart';
import 'package:aves/services/common/services.dart';
import 'package:aves/utils/string_utils.dart';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:xml/xml.dart';

View file

@ -1,7 +1,6 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
class Themes {
static const _accentColor = Colors.indigoAccent;

View file

@ -2,7 +2,6 @@ import 'dart:ui';
import 'package:aves/app_flavor.dart';
import 'package:flutter/material.dart';
import 'package:flutter/painting.dart';
import 'package:latlong2/latlong.dart';
class Constants {

View file

@ -1,5 +1,3 @@
import 'dart:ui';
import 'package:aves/utils/constants.dart';
import 'package:aves/widgets/common/basic/link_chip.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';

View file

@ -284,8 +284,7 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
}
// key is expected by test driver (e.g. 'menu-sort', 'menu-group', 'menu-map')
// TODO TLAD [dart 2.15] replace `describeEnum()` by `enum.name`
Key _getActionKey(EntrySetAction action) => Key('menu-${describeEnum(action)}');
Key _getActionKey(EntrySetAction action) => Key('menu-${action.name}');
Widget _toActionButton(EntrySetAction action, {required bool enabled}) {
final onPressed = enabled ? () => _onActionSelected(action) : null;

View file

@ -36,7 +36,6 @@ import 'package:aves/widgets/search/search_delegate.dart';
import 'package:aves/widgets/stats/stats_page.dart';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:provider/provider.dart';
import 'package:tuple/tuple.dart';

View file

@ -8,7 +8,6 @@ import 'package:aves/services/accessibility_service.dart';
import 'package:aves/theme/durations.dart';
import 'package:aves/theme/icons.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:percent_indicator/circular_percent_indicator.dart';

View file

@ -11,7 +11,6 @@ import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/dialogs/aves_dialog.dart';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
mixin SizeAwareMixin {
Future<bool> checkFreeSpaceForMove(

View file

@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:highlight/highlight.dart' show highlight, Node;
// adapted from package `flutter_highlight` v0.7.0 `HighlightView`

View file

@ -1,6 +1,5 @@
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
/*

View file

@ -1,4 +1,3 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:url_launcher/url_launcher.dart';

View file

@ -2,9 +2,7 @@ import 'package:aves/theme/durations.dart';
import 'package:aves/theme/icons.dart';
import 'package:aves/utils/debouncer.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class QueryBar extends StatefulWidget {
final ValueNotifier<String> queryNotifier;

View file

@ -132,18 +132,20 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
Matrix4? _lastTransform;
late Offset _initialFocalPoint;
late Offset _currentFocalPoint;
Offset? _currentFocalPoint;
late double _initialSpan;
late double _currentSpan;
late double _initialHorizontalSpan;
late double _currentHorizontalSpan;
late double _initialVerticalSpan;
late double _currentVerticalSpan;
late Offset _localFocalPoint;
_LineBetweenPointers? _initialLine;
_LineBetweenPointers? _currentLine;
late Map<int, Offset> _pointerLocations;
late List<int> _pointerQueue; // A queue to sort pointers in order of entrance
final Map<int, VelocityTracker> _velocityTrackers = <int, VelocityTracker>{};
late Offset _delta;
double get _scaleFactor => _initialSpan > 0.0 ? _currentSpan / _initialSpan : 1.0;
@ -222,11 +224,28 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
void _update() {
final int count = _pointerLocations.keys.length;
final Offset? previousFocalPoint = _currentFocalPoint;
// Compute the focal point
Offset focalPoint = Offset.zero;
for (final int pointer in _pointerLocations.keys) focalPoint += _pointerLocations[pointer]!;
_currentFocalPoint = count > 0 ? focalPoint / count.toDouble() : Offset.zero;
if (previousFocalPoint == null) {
_localFocalPoint = PointerEvent.transformPosition(
_lastTransform,
_currentFocalPoint!,
);
_delta = Offset.zero;
} else {
final Offset localPreviousFocalPoint = _localFocalPoint;
_localFocalPoint = PointerEvent.transformPosition(
_lastTransform,
_currentFocalPoint!,
);
_delta = _localFocalPoint - localPreviousFocalPoint;
}
// Span is the average deviation from focal point. Horizontal and vertical
// spans are the average deviations from the focal point's horizontal and
// vertical coordinates, respectively.
@ -234,9 +253,9 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
double totalHorizontalDeviation = 0.0;
double totalVerticalDeviation = 0.0;
for (final int pointer in _pointerLocations.keys) {
totalDeviation += (_currentFocalPoint - _pointerLocations[pointer]!).distance;
totalHorizontalDeviation += (_currentFocalPoint.dx - _pointerLocations[pointer]!.dx).abs();
totalVerticalDeviation += (_currentFocalPoint.dy - _pointerLocations[pointer]!.dy).abs();
totalDeviation += (_currentFocalPoint! - _pointerLocations[pointer]!).distance;
totalHorizontalDeviation += (_currentFocalPoint!.dx - _pointerLocations[pointer]!.dx).abs();
totalVerticalDeviation += (_currentFocalPoint!.dy - _pointerLocations[pointer]!.dy).abs();
}
_currentSpan = count > 0 ? totalDeviation / count : 0.0;
_currentHorizontalSpan = count > 0 ? totalHorizontalDeviation / count : 0.0;
@ -273,7 +292,7 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
}
bool _reconfigure(int pointer) {
_initialFocalPoint = _currentFocalPoint;
_initialFocalPoint = _currentFocalPoint!;
_initialSpan = _currentSpan;
_initialLine = _currentLine;
_initialHorizontalSpan = _currentHorizontalSpan;
@ -288,7 +307,7 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
if (pixelsPerSecond.distanceSquared > kMaxFlingVelocity * kMaxFlingVelocity) velocity = Velocity(pixelsPerSecond: (pixelsPerSecond / pixelsPerSecond.distance) * kMaxFlingVelocity);
invokeCallback<void>('onEnd', () => onEnd!(ScaleEndDetails(velocity: velocity, pointerCount: _pointerQueue.length)));
} else {
invokeCallback<void>('onEnd', () => onEnd!(ScaleEndDetails(velocity: Velocity.zero, pointerCount: _pointerQueue.length)));
invokeCallback<void>('onEnd', () => onEnd!(ScaleEndDetails(pointerCount: _pointerQueue.length)));
}
}
_state = _ScaleState.accepted;
@ -308,8 +327,8 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
if (_state == _ScaleState.possible) {
final double spanDelta = (_currentSpan - _initialSpan).abs();
final double focalPointDelta = (_currentFocalPoint - _initialFocalPoint).distance;
if (spanDelta > computeScaleSlop(pointerDeviceKind) || focalPointDelta > computePanSlop(pointerDeviceKind)) resolve(GestureDisposition.accepted);
final double focalPointDelta = (_currentFocalPoint! - _initialFocalPoint).distance;
if (spanDelta > computeScaleSlop(pointerDeviceKind) || focalPointDelta > computePanSlop(pointerDeviceKind, gestureSettings)) resolve(GestureDisposition.accepted);
} else if (_state.index >= _ScaleState.accepted.index) {
resolve(GestureDisposition.accepted);
}
@ -325,11 +344,11 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
scale: _scaleFactor,
horizontalScale: _horizontalScaleFactor,
verticalScale: _verticalScaleFactor,
focalPoint: _currentFocalPoint,
localFocalPoint: PointerEvent.transformPosition(_lastTransform, _currentFocalPoint),
focalPoint: _currentFocalPoint!,
localFocalPoint: _localFocalPoint,
rotation: _computeRotationFactor(),
pointerCount: _pointerQueue.length,
delta: _currentFocalPoint - _initialFocalPoint,
focalPointDelta: _delta,
));
});
}
@ -339,8 +358,8 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
if (onStart != null)
invokeCallback<void>('onStart', () {
onStart!(ScaleStartDetails(
focalPoint: _currentFocalPoint,
localFocalPoint: PointerEvent.transformPosition(_lastTransform, _currentFocalPoint),
focalPoint: _currentFocalPoint!,
localFocalPoint: _localFocalPoint,
pointerCount: _pointerQueue.length,
));
});
@ -352,7 +371,7 @@ class EagerScaleGestureRecognizer extends OneSequenceGestureRecognizer {
_state = _ScaleState.started;
_dispatchOnStartCallbackIfNeeded();
if (dragStartBehavior == DragStartBehavior.start) {
_initialFocalPoint = _currentFocalPoint;
_initialFocalPoint = _currentFocalPoint!;
_initialSpan = _currentSpan;
_initialLine = _currentLine;
_initialHorizontalSpan = _currentHorizontalSpan;

View file

@ -5,7 +5,6 @@ import 'package:aves/model/highlight.dart';
import 'package:aves/theme/durations.dart';
import 'package:aves/widgets/common/grid/section_layout.dart';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

View file

@ -6,7 +6,6 @@ import 'package:aves/utils/math_utils.dart';
import 'package:aves/widgets/common/extensions/media_query.dart';
import 'package:aves/widgets/common/grid/section_layout.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:provider/provider.dart';
class GridSelectionGestureDetector<T> extends StatefulWidget {

View file

@ -1,5 +1,3 @@
import 'dart:ui';
import 'package:aves/image_providers/app_icon_image_provider.dart';
import 'package:aves/model/entry.dart';
import 'package:aves/theme/icons.dart';

View file

@ -1,5 +1,4 @@
import 'dart:async';
import 'dart:ui';
import 'package:aves/widgets/common/magnifier/controller/controller.dart';
import 'package:aves/widgets/common/magnifier/controller/state.dart';

View file

@ -1,8 +1,5 @@
import 'dart:ui';
import 'package:aves/widgets/common/magnifier/controller/state.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
@immutable

View file

@ -22,7 +22,6 @@ import 'package:aves/widgets/common/map/zoomed_bounds.dart';
import 'package:collection/collection.dart';
import 'package:equatable/equatable.dart';
import 'package:fluster/fluster.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

View file

@ -2,7 +2,6 @@ import 'package:aves/model/settings/enums.dart';
import 'package:aves/widgets/common/basic/outlined_text.dart';
import 'package:aves/widgets/common/map/leaflet/scalebar_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:flutter_map/plugin_api.dart';
class ScaleLayerOptions extends LayerOptions {

View file

@ -2,7 +2,6 @@ import 'package:aves/model/entry.dart';
import 'package:aves/widgets/common/thumbnail/image.dart';
import 'package:custom_rounded_rectangle_border/custom_rounded_rectangle_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
class ImageMarker extends StatelessWidget {
final AvesEntry? entry;

View file

@ -4,7 +4,6 @@ import 'package:aves/model/entry.dart';
import 'package:aves/theme/durations.dart';
import 'package:aves/widgets/common/grid/theme.dart';
import 'package:aves/widgets/common/thumbnail/decorated.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class ThumbnailScroller extends StatefulWidget {

View file

@ -2,7 +2,6 @@ import 'dart:ui';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class AvesDialog extends AlertDialog {
static const double defaultHorizontalContentPadding = 24;

View file

@ -1,6 +1,5 @@
import 'package:aves/widgets/common/basic/reselectable_radio_list_tile.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'aves_dialog.dart';

View file

@ -6,7 +6,6 @@ import 'package:aves/utils/android_file_utils.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import '../aves_dialog.dart';

View file

@ -1,6 +1,5 @@
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/drawer/tile.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class PageNavTile extends StatelessWidget {

View file

@ -1,5 +1,3 @@
import 'dart:ui';
import 'package:aves/app_mode.dart';
import 'package:aves/model/actions/chip_set_actions.dart';
import 'package:aves/model/filters/filters.dart';
@ -12,7 +10,6 @@ import 'package:aves/widgets/common/basic/menu.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/filter_grids/common/action_delegates/chip_set.dart';
import 'package:aves/widgets/search/search_delegate.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:provider/provider.dart';

View file

@ -1,5 +1,3 @@
import 'dart:ui';
import 'package:aves/app_mode.dart';
import 'package:aves/model/covers.dart';
import 'package:aves/model/filters/filters.dart';

View file

@ -9,7 +9,6 @@ import 'package:aves/widgets/filter_grids/common/action_delegates/chip_set.dart'
import 'package:aves/widgets/filter_grids/common/app_bar.dart';
import 'package:aves/widgets/filter_grids/common/filter_grid_page.dart';
import 'package:aves/widgets/filter_grids/common/section_keys.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class FilterNavigationPage<T extends CollectionFilter> extends StatelessWidget {

View file

@ -2,7 +2,6 @@ import 'package:aves/theme/durations.dart';
import 'package:aves/utils/debouncer.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/search/search_delegate.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class SearchPage extends StatefulWidget {

View file

@ -1,6 +1,5 @@
import 'package:aves/theme/icons.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class DrawerEditorBanner extends StatelessWidget {

View file

@ -6,7 +6,6 @@ import 'package:aves/widgets/common/identity/buttons.dart';
import 'package:aves/widgets/drawer/tile.dart';
import 'package:aves/widgets/filter_grids/album_pick.dart';
import 'package:aves/widgets/settings/navigation/drawer_editor_banner.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

View file

@ -1,7 +1,6 @@
import 'package:aves/theme/icons.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/settings/navigation/drawer_editor_banner.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
typedef ItemWidgetBuilder<T> = Widget Function(T item);

View file

@ -22,7 +22,6 @@ import 'package:charts_flutter/flutter.dart' as charts;
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:intl/intl.dart';
import 'package:percent_indicator/linear_percent_indicator.dart';
import 'package:provider/provider.dart';

View file

@ -9,7 +9,6 @@ import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/dialogs/aves_dialog.dart';
import 'package:aves/widgets/viewer/embedded/notifications.dart';
import 'package:aves/widgets/viewer/entry_viewer_page.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class EmbeddedDataOpener extends StatelessWidget with FeedbackMixin {

View file

@ -10,9 +10,7 @@ import 'package:aves/widgets/common/magnifier/pan/scroll_physics.dart';
import 'package:aves/widgets/viewer/entry_horizontal_pager.dart';
import 'package:aves/widgets/viewer/info/info_page.dart';
import 'package:aves/widgets/viewer/info/notifications.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:screen_brightness/screen_brightness.dart';
class ViewerVerticalPageView extends StatefulWidget {

View file

@ -16,7 +16,6 @@ import 'package:aves/widgets/viewer/info/common.dart';
import 'package:aves/widgets/viewer/info/entry_info_action_delegate.dart';
import 'package:aves/widgets/viewer/info/owner.dart';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

View file

@ -13,7 +13,6 @@ import 'package:aves/utils/color_utils.dart';
import 'package:aves/widgets/viewer/info/common.dart';
import 'package:aves/widgets/viewer/info/metadata/metadata_dir_tile.dart';
import 'package:collection/collection.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter_staggered_animations/flutter_staggered_animations.dart';

View file

@ -3,7 +3,6 @@ import 'dart:async';
import 'package:aves/model/entry.dart';
import 'package:aves/model/multipage.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class MultiPageController {
final AvesEntry entry;

View file

@ -1,7 +1,6 @@
import 'dart:async';
import 'dart:math';
import 'dart:typed_data';
import 'dart:ui';
import 'package:aves/model/entry.dart';
import 'package:aves/model/settings/settings.dart';
@ -12,7 +11,6 @@ import 'package:aves/utils/change_notifier.dart';
import 'package:aves/widgets/viewer/video/controller.dart';
import 'package:collection/collection.dart';
import 'package:fijkplayer/fijkplayer.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
class IjkPlayerAvesVideoController extends AvesVideoController {

View file

@ -8,7 +8,6 @@ import 'package:aves/widgets/common/identity/aves_logo.dart';
import 'package:aves/widgets/common/identity/buttons.dart';
import 'package:aves/widgets/common/providers/media_query_data_provider.dart';
import 'package:aves/widgets/home_page.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';
import 'package:flutter/services.dart';
@ -139,6 +138,7 @@ class _WelcomePageState extends State<WelcomePage> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SwitchListTile(
key: const Key('apps-checkbox'),
value: settings.isInstalledAppAccessAllowed,
onChanged: (v) => setState(() => settings.isInstalledAppAccessAllowed = v),
title: Text(l10n.settingsAllowInstalledAppAccess),
@ -155,7 +155,7 @@ class _WelcomePageState extends State<WelcomePage> {
),
SwitchListTile(
// key is expected by test driver
key: const Key('agree-checkbox'),
key: const Key('terms-checkbox'),
value: _hasAcceptedTerms,
onChanged: (v) => setState(() => _hasAcceptedTerms = v),
title: Text(l10n.welcomeTermsToggle),

View file

@ -7,7 +7,7 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.2.0"
collection:
dependency: transitive
description:
@ -59,7 +59,7 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.1.1"
sdks:
dart: ">=2.12.0 <3.0.0"
dart: ">=2.14.0 <3.0.0"
flutter: ">=1.20.0"

View file

@ -14,7 +14,7 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.2.0"
collection:
dependency: transitive
description:
@ -22,41 +22,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.15.0"
firebase_core:
dependency: transitive
description:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.1"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
firebase_crashlytics:
dependency: transitive
description:
name: firebase_crashlytics
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.4"
firebase_crashlytics_platform_interface:
dependency: transitive
description:
name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.4"
flutter:
dependency: "direct main"
description: flutter
@ -69,18 +34,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.4"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.3"
lints:
dependency: transitive
description:
@ -95,32 +48,11 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.7.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
sky_engine:
dependency: transitive
description: flutter
source: sdk
version: "0.0.99"
stack_trace:
dependency: transitive
description:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0"
typed_data:
dependency: transitive
description:
@ -134,7 +66,7 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.1.1"
sdks:
dart: ">=2.12.0 <3.0.0"
dart: ">=2.14.0 <3.0.0"
flutter: ">=1.20.0"

View file

@ -14,7 +14,7 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.2.0"
collection:
dependency: transitive
description:
@ -28,35 +28,35 @@ packages:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0"
version: "1.10.5"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "4.0.1"
version: "4.2.2"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.5.2"
firebase_crashlytics:
dependency: "direct main"
description:
name: firebase_crashlytics
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.4"
version: "2.4.3"
firebase_crashlytics_platform_interface:
dependency: transitive
description:
name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.4"
version: "3.1.10"
flutter:
dependency: "direct main"
description: flutter
@ -134,7 +134,7 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.1.1"
sdks:
dart: ">=2.12.0 <3.0.0"
dart: ">=2.14.0 <3.0.0"
flutter: ">=1.20.0"

View file

@ -21,7 +21,7 @@ packages:
name: archive
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.2"
version: "3.1.6"
args:
dependency: transitive
description:
@ -35,7 +35,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.8.1"
version: "2.8.2"
aves_report:
dependency: "direct main"
description:
@ -56,7 +56,7 @@ packages:
name: barcode
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.2.0"
boolean_selector:
dependency: transitive
description:
@ -70,7 +70,7 @@ packages:
name: characters
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.0"
version: "1.2.0"
charcode:
dependency: transitive
description:
@ -305,35 +305,35 @@ packages:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.10.0"
version: "1.10.5"
firebase_core_platform_interface:
dependency: transitive
description:
name: firebase_core_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "4.1.0"
version: "4.2.2"
firebase_core_web:
dependency: transitive
description:
name: firebase_core_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "1.5.2"
firebase_crashlytics:
dependency: transitive
description:
name: firebase_crashlytics
url: "https://pub.dartlang.org"
source: hosted
version: "2.3.0"
version: "2.4.3"
firebase_crashlytics_platform_interface:
dependency: transitive
description:
name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.6"
version: "3.1.10"
flex_color_picker:
dependency: "direct main"
description:
@ -580,14 +580,14 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
version: "0.12.10"
version: "0.12.11"
material_design_icons_flutter:
dependency: "direct main"
description:
name: material_design_icons_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.6295"
version: "5.0.6595"
meta:
dependency: transitive
description:
@ -720,7 +720,7 @@ packages:
name: path_parsing
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.1"
version: "1.0.0"
path_provider_linux:
dependency: transitive
description:
@ -748,7 +748,7 @@ packages:
name: pdf
url: "https://pub.dartlang.org"
source: hosted
version: "3.6.3"
version: "3.6.5"
pedantic:
dependency: transitive
description:
@ -790,7 +790,7 @@ packages:
name: platform
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
version: "3.0.2"
plugin_platform_interface:
dependency: transitive
description:
@ -818,14 +818,14 @@ packages:
name: printing
url: "https://pub.dartlang.org"
source: hosted
version: "5.6.3"
version: "5.6.6"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.3"
version: "4.2.4"
proj4dart:
dependency: transitive
description:
@ -853,7 +853,7 @@ packages:
name: qr
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "3.0.0"
quiver:
dependency: transitive
description:
@ -867,7 +867,21 @@ packages:
name: screen_brightness
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.1"
version: "0.1.2+2"
screen_brightness_android:
dependency: transitive
description:
name: screen_brightness_android
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.1"
screen_brightness_ios:
dependency: transitive
description:
name: screen_brightness_ios
url: "https://pub.dartlang.org"
source: hosted
version: "0.0.2"
screen_brightness_platform_interface:
dependency: transitive
description:
@ -991,7 +1005,7 @@ packages:
name: sqflite
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0+4"
version: "2.0.1"
sqflite_common:
dependency: transitive
description:
@ -1063,21 +1077,21 @@ packages:
name: test
url: "https://pub.dartlang.org"
source: hosted
version: "1.17.10"
version: "1.17.12"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.2"
version: "0.4.3"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.0"
version: "0.4.2"
transparent_image:
dependency: "direct main"
description:
@ -1168,7 +1182,7 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
version: "2.1.1"
version:
dependency: "direct main"
description:
@ -1182,7 +1196,7 @@ packages:
name: vm_service
url: "https://pub.dartlang.org"
source: hosted
version: "7.1.1"
version: "7.3.0"
watcher:
dependency: transitive
description:

File diff suppressed because one or more lines are too long

1
shaders_2.8.0.sksl.json Normal file

File diff suppressed because one or more lines are too long

View file

@ -33,6 +33,7 @@ Future<void> configureAndLaunch() async {
..isErrorReportingAllowed = false
..locale = const Locale('en')
..homePage = HomePageSetting.collection
..infoMapStyle = EntryMapStyle.googleNormal
..imageBackground = EntryBackground.checkered;
app.main();

View file

@ -57,7 +57,8 @@ void agreeToTerms() {
await driver.scroll(find.text('Terms of Service'), 0, -300, const Duration(milliseconds: 500));
await driver.tap(find.byValueKey('agree-checkbox'));
await driver.tap(find.byValueKey('apps-checkbox'));
await driver.tap(find.byValueKey('terms-checkbox'));
await Future.delayed(const Duration(seconds: 1));
await driver.tap(find.byValueKey('continue-button'));
@ -169,7 +170,7 @@ void selectFirstAlbum() {
void searchAlbum() {
test('[collection] search album', () async {
await driver.tap(find.byValueKey('menu-search'));
await driver.tap(find.byValueKey('menu-searchCollection'));
await driver.waitUntilNoTransientCallbacks();
const albumPath = targetPicturesDirEmulated;