upgraded flutter to stable v2.0.1 + packages upgrade
This commit is contained in:
parent
a06013bbf7
commit
abd76511fc
35 changed files with 213 additions and 214 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: '1.22.6'
|
||||
flutter-version: '2.0.1'
|
||||
|
||||
- name: Clone the repository.
|
||||
uses: actions/checkout@v2
|
||||
|
|
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
|
@ -17,7 +17,7 @@ jobs:
|
|||
- uses: subosito/flutter-action@v1
|
||||
with:
|
||||
channel: stable
|
||||
flutter-version: '1.22.6'
|
||||
flutter-version: '2.0.1'
|
||||
|
||||
# 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_1.22.6.sksl.json
|
||||
flutter build appbundle --bundle-sksl-path shaders_1.22.6.sksl.json
|
||||
flutter build apk --bundle-sksl-path shaders_2.0.1.sksl.json
|
||||
flutter build appbundle --bundle-sksl-path shaders_2.0.1.sksl.json
|
||||
rm $AVES_STORE_FILE
|
||||
env:
|
||||
AVES_STORE_FILE: ${{ github.workspace }}/key.jks
|
||||
|
|
|
@ -2,6 +2,12 @@
|
|||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- Korean translation
|
||||
|
||||
### Changed
|
||||
- Upgraded Flutter to stable v2.0.1
|
||||
|
||||
### Fixed
|
||||
- various TIFF decoding fixes
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ repositories {
|
|||
|
||||
dependencies {
|
||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
|
||||
implementation 'androidx.core:core-ktx:1.5.0-beta01' // v1.5.0-alpha02+ for ShortcutManagerCompat.setDynamicShortcuts
|
||||
implementation 'androidx.core:core-ktx:1.5.0-beta02' // v1.5.0-alpha02+ for ShortcutManagerCompat.setDynamicShortcuts
|
||||
implementation 'androidx.exifinterface:exifinterface:1.3.2'
|
||||
implementation 'com.commonsware.cwac:document:0.4.1'
|
||||
implementation 'com.drewnoakes:metadata-extractor:2.15.0'
|
||||
|
|
|
@ -8,11 +8,10 @@ buildscript {
|
|||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
// TODO TLAD upgrade AGP to 4+ when this lands on stable: https://github.com/flutter/flutter/commit/8dd0de7f580972079f610a56a689b0a9c414f81e
|
||||
classpath 'com.android.tools.build:gradle:3.6.4'
|
||||
classpath 'com.android.tools.build:gradle:4.1.2'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath 'com.google.gms:google-services:4.3.5'
|
||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.0'
|
||||
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.1'
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -15,4 +15,3 @@ android.useAndroidX=true
|
|||
android.enableJetifier=true
|
||||
# Kotlin code style for this project: "official" or "obsolete":
|
||||
kotlin.code.style=official
|
||||
android.enableR8=true
|
||||
|
|
|
@ -8,13 +8,12 @@ class UriPicture extends PictureProvider<UriPicture> {
|
|||
const UriPicture({
|
||||
@required this.uri,
|
||||
@required this.mimeType,
|
||||
this.colorFilter,
|
||||
}) : assert(uri != null);
|
||||
ColorFilter colorFilter,
|
||||
}) : assert(uri != null),
|
||||
super(colorFilter);
|
||||
|
||||
final String uri, mimeType;
|
||||
|
||||
final ColorFilter colorFilter;
|
||||
|
||||
@override
|
||||
Future<UriPicture> obtainKey(PictureConfiguration configuration) {
|
||||
return SynchronousFuture<UriPicture>(this);
|
||||
|
|
|
@ -625,7 +625,7 @@ class AvesEntry {
|
|||
}
|
||||
|
||||
// when the entry image itself changed (e.g. after rotation)
|
||||
void _onImageChanged(int oldDateModifiedSecs, int oldRotationDegrees, bool oldIsFlipped) async {
|
||||
Future<void> _onImageChanged(int oldDateModifiedSecs, int oldRotationDegrees, bool oldIsFlipped) async {
|
||||
if (oldDateModifiedSecs != dateModifiedSecs || oldRotationDegrees != rotationDegrees || oldIsFlipped != isFlipped) {
|
||||
await EntryCache.evict(uri, mimeType, oldDateModifiedSecs, oldRotationDegrees, oldIsFlipped);
|
||||
imageChangeNotifier.notifyListeners();
|
||||
|
|
|
@ -76,6 +76,7 @@ class AlbumFilter extends CollectionFilter {
|
|||
@override
|
||||
String get category => type;
|
||||
|
||||
// key `album-{path}` is expected by test driver
|
||||
@override
|
||||
String get key => '$type-$album';
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ abstract class CollectionSource with SourceBase, AlbumMixin, LocationMixin, TagM
|
|||
}
|
||||
}
|
||||
|
||||
void updateAfterMove({
|
||||
Future<void> updateAfterMove({
|
||||
@required Set<AvesEntry> todoEntries,
|
||||
@required Set<AvesEntry> favouriteEntries,
|
||||
@required bool copy,
|
||||
|
|
|
@ -141,10 +141,7 @@ class _CollectionAppBarState extends State<CollectionAppBar> with SingleTickerPr
|
|||
|
||||
Widget _buildAppBarTitle() {
|
||||
if (collection.isBrowsing) {
|
||||
Widget title = Text(
|
||||
AvesApp.mode == AppMode.pick ? context.l10n.collectionPickPageTitle : context.l10n.collectionPageTitle,
|
||||
key: Key('appbar-title'),
|
||||
);
|
||||
Widget title = Text(AvesApp.mode == AppMode.pick ? context.l10n.collectionPickPageTitle : context.l10n.collectionPageTitle);
|
||||
if (AvesApp.mode == AppMode.main) {
|
||||
title = SourceStateAwareAppBarTitle(
|
||||
title: title,
|
||||
|
|
|
@ -221,8 +221,8 @@ class _CollectionScrollViewState extends State<CollectionScrollView> {
|
|||
appBar,
|
||||
collection.isEmpty
|
||||
? SliverFillRemaining(
|
||||
child: _buildEmptyCollectionPlaceholder(collection),
|
||||
hasScrollBody: false,
|
||||
child: _buildEmptyCollectionPlaceholder(collection),
|
||||
)
|
||||
: SectionedListSliver<AvesEntry>(),
|
||||
BottomPaddingSliver(),
|
||||
|
|
|
@ -88,8 +88,8 @@ class DraggableScrollbar extends StatefulWidget {
|
|||
children: [
|
||||
ScrollLabel(
|
||||
animation: labelAnimation,
|
||||
child: labelText,
|
||||
backgroundColor: backgroundColor,
|
||||
child: labelText,
|
||||
),
|
||||
scrollThumb,
|
||||
],
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:math';
|
|||
import 'package:aves/theme/durations.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:pedantic/pedantic.dart';
|
||||
|
||||
class Sweeper extends StatefulWidget {
|
||||
final WidgetBuilder builder;
|
||||
|
@ -89,11 +90,11 @@ class _SweeperState extends State<Sweeper> with SingleTickerProviderStateMixin {
|
|||
valueListenable: _angleAnimationController,
|
||||
builder: (context, value, child) {
|
||||
return ClipPath(
|
||||
child: widget.builder(context),
|
||||
clipper: _SweepClipPath(
|
||||
startAngle: _angle.value,
|
||||
sweepAngle: widget.sweepAngle,
|
||||
),
|
||||
child: widget.builder(context),
|
||||
);
|
||||
}),
|
||||
),
|
||||
|
@ -115,7 +116,7 @@ class _SweeperState extends State<Sweeper> with SingleTickerProviderStateMixin {
|
|||
_isAppearing = false;
|
||||
if (mounted) {
|
||||
_angleAnimationController.reset();
|
||||
_angleAnimationController.forward();
|
||||
unawaited(_angleAnimationController.forward());
|
||||
}
|
||||
}
|
||||
if (mounted) {
|
||||
|
|
|
@ -66,7 +66,6 @@ class AvesFilterChip extends StatefulWidget {
|
|||
|
||||
final RenderBox overlay = Overlay.of(context).context.findRenderObject();
|
||||
final touchArea = Size(40, 40);
|
||||
// TODO TLAD check menu is within safe area, when this lands on stable: https://github.com/flutter/flutter/commit/cfc8ec23b633da1001359e384435e8333c9d3733
|
||||
final selectedAction = await showMenu<ChipAction>(
|
||||
context: context,
|
||||
position: RelativeRect.fromRect(tapPosition & touchArea, Offset.zero & overlay.size),
|
||||
|
|
|
@ -18,6 +18,7 @@ ScrollThumbBuilder avesScrollThumbBuilder({
|
|||
margin: EdgeInsets.only(right: .5),
|
||||
padding: EdgeInsets.all(2),
|
||||
child: ClipPath(
|
||||
clipper: ArrowClipper(),
|
||||
child: Container(
|
||||
width: 20.0,
|
||||
decoration: BoxDecoration(
|
||||
|
@ -25,7 +26,6 @@ ScrollThumbBuilder avesScrollThumbBuilder({
|
|||
borderRadius: BorderRadius.circular(12.0),
|
||||
),
|
||||
),
|
||||
clipper: ArrowClipper(),
|
||||
),
|
||||
);
|
||||
return (backgroundColor, thumbAnimation, labelAnimation, height, {labelText}) {
|
||||
|
|
|
@ -264,13 +264,13 @@ class _MagnifierCoreState extends State<MagnifierCore> with TickerProviderStateM
|
|||
);
|
||||
|
||||
return MagnifierGestureDetector(
|
||||
child: child,
|
||||
onDoubleTap: onDoubleTap,
|
||||
onScaleStart: onScaleStart,
|
||||
onScaleUpdate: onScaleUpdate,
|
||||
onScaleEnd: onScaleEnd,
|
||||
hitDetector: this,
|
||||
onTapUp: widget.onTap == null ? null : onTap,
|
||||
child: child,
|
||||
);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -86,9 +86,9 @@ class _MagnifierGestureDetectorState extends State<MagnifierGestureDetector> {
|
|||
);
|
||||
|
||||
return RawGestureDetector(
|
||||
child: widget.child,
|
||||
gestures: gestures,
|
||||
behavior: widget.behavior ?? HitTestBehavior.translucent,
|
||||
child: widget.child,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,11 +71,11 @@ class Magnifier extends StatelessWidget {
|
|||
));
|
||||
|
||||
return MagnifierCore(
|
||||
child: child,
|
||||
controller: controller,
|
||||
scaleStateCycle: scaleStateCycle,
|
||||
onTap: onTap,
|
||||
applyScale: applyScale,
|
||||
child: child,
|
||||
);
|
||||
},
|
||||
);
|
||||
|
|
|
@ -134,13 +134,13 @@ class DecoratedFilterChip extends StatelessWidget {
|
|||
if (pinned)
|
||||
AnimatedPadding(
|
||||
padding: EdgeInsets.only(right: padding),
|
||||
duration: Durations.chipDecorationAnimation,
|
||||
child: DecoratedIcon(
|
||||
AIcons.pin,
|
||||
color: FilterGridPage.detailColor,
|
||||
shadows: [Constants.embossShadow],
|
||||
size: iconSize,
|
||||
),
|
||||
duration: Durations.chipDecorationAnimation,
|
||||
),
|
||||
if (filter is AlbumFilter && androidFileUtils.isOnRemovableStorage(filter.album))
|
||||
AnimatedPadding(
|
||||
|
|
|
@ -292,6 +292,7 @@ class _SectionedContentState<T extends CollectionFilter> extends State<_Sectione
|
|||
Widget content;
|
||||
if (empty) {
|
||||
content = SliverFillRemaining(
|
||||
hasScrollBody: false,
|
||||
child: Selector<MediaQueryData, double>(
|
||||
selector: (context, mq) => mq.effectiveBottomPadding,
|
||||
builder: (context, mqPaddingBottom, child) {
|
||||
|
@ -301,7 +302,6 @@ class _SectionedContentState<T extends CollectionFilter> extends State<_Sectione
|
|||
);
|
||||
},
|
||||
),
|
||||
hasScrollBody: false,
|
||||
);
|
||||
} else {
|
||||
content = SectionedListSliver<FilterGridItem<T>>();
|
||||
|
|
|
@ -87,7 +87,6 @@ class FilterNavigationPage<T extends CollectionFilter> extends StatelessWidget {
|
|||
void _showMenu(BuildContext context, T filter, Offset tapPosition) async {
|
||||
final RenderBox overlay = Overlay.of(context).context.findRenderObject();
|
||||
final touchArea = Size(40, 40);
|
||||
// TODO TLAD check menu is within safe area, when this lands on stable: https://github.com/flutter/flutter/commit/cfc8ec23b633da1001359e384435e8333c9d3733
|
||||
final selectedAction = await showMenu<ChipAction>(
|
||||
context: context,
|
||||
position: RelativeRect.fromRect(tapPosition & touchArea, Offset.zero & overlay.size),
|
||||
|
|
|
@ -90,13 +90,13 @@ class ExpandableFilterRow extends StatelessWidget {
|
|||
titleRow,
|
||||
AnimatedSwitcher(
|
||||
duration: Durations.filterRowExpandAnimation,
|
||||
child: filterChips,
|
||||
layoutBuilder: (currentChild, previousChildren) => Stack(
|
||||
children: [
|
||||
...previousChildren,
|
||||
if (currentChild != null) currentChild,
|
||||
],
|
||||
),
|
||||
child: filterChips,
|
||||
),
|
||||
],
|
||||
)
|
||||
|
@ -105,7 +105,7 @@ class ExpandableFilterRow extends StatelessWidget {
|
|||
|
||||
Widget _buildFilterChip(CollectionFilter filter) {
|
||||
return AvesFilterChip(
|
||||
// key `album-...` is expected by test driver
|
||||
// key `album-{path}` is expected by test driver
|
||||
key: Key(filter.key),
|
||||
filter: filter,
|
||||
heroType: heroTypeBuilder?.call(filter) ?? HeroType.onTap,
|
||||
|
|
|
@ -172,8 +172,7 @@ class _EntryViewerStackState extends State<EntryViewerStack> with SingleTickerPr
|
|||
},
|
||||
child: ValueListenableProvider<HeroInfo>.value(
|
||||
value: _heroInfoNotifier,
|
||||
builder: (context, snapshot) {
|
||||
return NotificationListener(
|
||||
child: NotificationListener(
|
||||
onNotification: (notification) {
|
||||
if (notification is FilterNotification) {
|
||||
_goToCollection(notification.filter);
|
||||
|
@ -204,8 +203,8 @@ class _EntryViewerStackState extends State<EntryViewerStack> with SingleTickerPr
|
|||
BottomGestureAreaProtector(),
|
||||
],
|
||||
),
|
||||
);
|
||||
}),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -315,9 +314,7 @@ class _EntryViewerStackState extends State<EntryViewerStack> with SingleTickerPr
|
|||
return AnimatedBuilder(
|
||||
animation: _verticalScrollNotifier,
|
||||
builder: (context, child) => Positioned(
|
||||
// TODO TLAD replace when using Flutter version adapted for null safety
|
||||
// bottom: (_verticalPager.position.hasPixels ? _verticalPager.offset : 0) - mqHeight,
|
||||
bottom: (_verticalPager.offset ?? 0) - mqHeight,
|
||||
bottom: (_verticalPager.position.hasPixels ? _verticalPager.offset : 0) - mqHeight,
|
||||
child: child,
|
||||
),
|
||||
child: child,
|
||||
|
@ -462,7 +459,7 @@ class _EntryViewerStackState extends State<EntryViewerStack> with SingleTickerPr
|
|||
if (_overlayVisible.value) {
|
||||
_showSystemUI();
|
||||
if (animate) {
|
||||
_overlayAnimationController.forward();
|
||||
await _overlayAnimationController.forward();
|
||||
} else {
|
||||
_overlayAnimationController.value = _overlayAnimationController.upperBound;
|
||||
}
|
||||
|
|
|
@ -186,7 +186,9 @@ class _OwnerPropState extends State<OwnerProp> {
|
|||
text: context.l10n.viewerInfoLabelOwner,
|
||||
style: InfoRowGroup.keyStyle,
|
||||
),
|
||||
WidgetSpan(
|
||||
// `com.android.shell` is the package reported
|
||||
// for images copied to the device by ADB for Test Driver
|
||||
if (_ownerPackage != 'com.android.shell') WidgetSpan(
|
||||
alignment: PlaceholderAlignment.middle,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(horizontal: 4),
|
||||
|
|
|
@ -72,6 +72,7 @@ class _EntryLeafletMapState extends State<EntryLeafletMap> with AutomaticKeepAli
|
|||
zoom: widget.initialZoom,
|
||||
interactive: false,
|
||||
),
|
||||
mapController: _mapController,
|
||||
children: [
|
||||
_buildMapLayer(),
|
||||
ScaleLayerWidget(
|
||||
|
@ -91,7 +92,6 @@ class _EntryLeafletMapState extends State<EntryLeafletMap> with AutomaticKeepAli
|
|||
),
|
||||
),
|
||||
],
|
||||
mapController: _mapController,
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -111,7 +111,6 @@ class _WelcomePageState extends State<WelcomePage> {
|
|||
|
||||
final button = ElevatedButton(
|
||||
key: Key('continue-button'),
|
||||
child: Text(context.l10n.continueButtonLabel),
|
||||
onPressed: _hasAcceptedTerms
|
||||
? () {
|
||||
settings.hasAcceptedTerms = true;
|
||||
|
@ -124,6 +123,7 @@ class _WelcomePageState extends State<WelcomePage> {
|
|||
);
|
||||
}
|
||||
: null,
|
||||
child: Text(context.l10n.continueButtonLabel),
|
||||
);
|
||||
|
||||
return MediaQuery.of(context).orientation == Orientation.portrait
|
||||
|
|
205
pubspec.lock
205
pubspec.lock
|
@ -7,14 +7,14 @@ packages:
|
|||
name: _fe_analyzer_shared
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "12.0.0"
|
||||
version: "14.0.0"
|
||||
analyzer:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: analyzer
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.40.6"
|
||||
version: "0.41.2"
|
||||
ansicolor:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -42,7 +42,7 @@ packages:
|
|||
name: async
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.5.0-nullsafety.1"
|
||||
version: "2.5.0"
|
||||
barcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -56,21 +56,21 @@ packages:
|
|||
name: boolean_selector
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0-nullsafety.1"
|
||||
version: "2.1.0"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: characters
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0-nullsafety.3"
|
||||
version: "1.1.0"
|
||||
charcode:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: charcode
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0-nullsafety.1"
|
||||
version: "1.2.0"
|
||||
charts_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -91,49 +91,42 @@ packages:
|
|||
name: cli_util
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
version: "0.3.0"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: clock
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0-nullsafety.1"
|
||||
version: "1.1.0"
|
||||
collection:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: collection
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.15.0-nullsafety.3"
|
||||
version: "1.15.0"
|
||||
connectivity:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: connectivity
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.2"
|
||||
connectivity_for_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: connectivity_for_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.3.1+4"
|
||||
version: "3.0.2"
|
||||
connectivity_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: connectivity_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.0+7"
|
||||
version: "0.2.0"
|
||||
connectivity_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: connectivity_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.6"
|
||||
version: "2.0.0"
|
||||
console_log_handler:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -161,7 +154,7 @@ packages:
|
|||
name: coverage
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.14.2"
|
||||
version: "0.15.2"
|
||||
crypto:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -182,7 +175,7 @@ packages:
|
|||
name: event_bus
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "2.0.0"
|
||||
expansion_tile_card:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -198,21 +191,21 @@ packages:
|
|||
name: fake_async
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0-nullsafety.1"
|
||||
version: "1.2.0"
|
||||
ffi:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.3"
|
||||
version: "1.0.0"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.0-nullsafety.2"
|
||||
version: "6.0.0"
|
||||
firebase:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -233,7 +226,7 @@ packages:
|
|||
name: firebase_analytics_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.3"
|
||||
version: "1.1.0"
|
||||
firebase_analytics_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -306,13 +299,13 @@ packages:
|
|||
name: flutter_highlight
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.0"
|
||||
version: "0.7.0"
|
||||
flutter_ijkplayer:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: HEAD
|
||||
resolved-ref: c1b7f25e2a3bc67ab7b30561af49a62ae9a8c409
|
||||
resolved-ref: d4e079404ba8e4f82a7e053ffdc47af787a61c3b
|
||||
url: "git://github.com/deckerst/flutter_ijkplayer.git"
|
||||
source: git
|
||||
version: "0.3.7"
|
||||
|
@ -334,7 +327,7 @@ packages:
|
|||
name: flutter_localized_locales
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.2"
|
||||
version: "2.0.1"
|
||||
flutter_map:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -355,21 +348,21 @@ packages:
|
|||
name: flutter_plugin_android_lifecycle
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.11"
|
||||
version: "2.0.0"
|
||||
flutter_staggered_animations:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_staggered_animations
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.2"
|
||||
version: "1.0.0"
|
||||
flutter_svg:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_svg
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.19.1"
|
||||
version: "0.19.3"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
|
@ -405,35 +398,35 @@ packages:
|
|||
name: glob
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "2.0.0"
|
||||
google_api_availability:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: google_api_availability
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.4"
|
||||
version: "3.0.0"
|
||||
google_maps_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: google_maps_flutter
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "2.0.1"
|
||||
google_maps_flutter_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: google_maps_flutter_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "2.0.0"
|
||||
highlight:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: highlight
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.0"
|
||||
version: "0.7.0"
|
||||
http:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -447,7 +440,7 @@ packages:
|
|||
name: http_multi_server
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.0"
|
||||
version: "3.0.0"
|
||||
http_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -468,21 +461,21 @@ packages:
|
|||
name: intl
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.16.1"
|
||||
version: "0.17.0"
|
||||
io:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: io
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.3.5"
|
||||
version: "1.0.0"
|
||||
js:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.3-nullsafety.2"
|
||||
version: "0.6.3"
|
||||
json_annotation:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -490,13 +483,6 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.1.1"
|
||||
json_rpc_2:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: json_rpc_2
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.2"
|
||||
latlong:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -531,21 +517,21 @@ packages:
|
|||
name: matcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.12.10-nullsafety.1"
|
||||
version: "0.12.10"
|
||||
material_design_icons_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: material_design_icons_flutter
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.0.5855"
|
||||
version: "4.0.5955"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0-nullsafety.3"
|
||||
version: "1.3.0"
|
||||
mgrs_dart:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -559,7 +545,7 @@ packages:
|
|||
name: mime
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.9.7"
|
||||
version: "1.0.0"
|
||||
motion_sensors:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -573,21 +559,7 @@ packages:
|
|||
name: nested
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.4"
|
||||
node_interop:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: node_interop
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
node_io:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: node_io
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.1"
|
||||
version: "1.0.0"
|
||||
node_preamble:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -601,7 +573,7 @@ packages:
|
|||
name: overlay_support
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.5"
|
||||
version: "1.2.0-nullsafety.0"
|
||||
package_config:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -615,7 +587,7 @@ packages:
|
|||
name: package_info
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.3+4"
|
||||
version: "2.0.0"
|
||||
palette_generator:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -636,7 +608,7 @@ packages:
|
|||
name: path
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.0-nullsafety.1"
|
||||
version: "1.8.0"
|
||||
path_drawing:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -657,21 +629,21 @@ packages:
|
|||
name: path_provider_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.1+2"
|
||||
version: "2.0.0"
|
||||
path_provider_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
version: "2.0.0"
|
||||
path_provider_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.4+3"
|
||||
version: "2.0.0"
|
||||
pdf:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -685,7 +657,7 @@ packages:
|
|||
name: pedantic
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.10.0-nullsafety.2"
|
||||
version: "1.11.0"
|
||||
percent_indicator:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -720,7 +692,7 @@ packages:
|
|||
name: platform
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0-nullsafety.2"
|
||||
version: "3.0.0"
|
||||
plugin_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -734,7 +706,7 @@ packages:
|
|||
name: pool
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.5.0-nullsafety.2"
|
||||
version: "1.5.0"
|
||||
positioned_tap_detector:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -755,7 +727,7 @@ packages:
|
|||
name: process
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.0.0-nullsafety.2"
|
||||
version: "4.0.0"
|
||||
proj4dart:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -769,14 +741,14 @@ packages:
|
|||
name: provider
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "4.3.3"
|
||||
version: "5.0.0"
|
||||
pub_semver:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: pub_semver
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.4.4"
|
||||
version: "2.0.0"
|
||||
qr:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -797,42 +769,42 @@ packages:
|
|||
name: shared_preferences
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.5.12+4"
|
||||
version: "2.0.3"
|
||||
shared_preferences_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.2+4"
|
||||
version: "2.0.0"
|
||||
shared_preferences_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.1+11"
|
||||
version: "2.0.0"
|
||||
shared_preferences_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
version: "2.0.0"
|
||||
shared_preferences_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.2+7"
|
||||
version: "2.0.0"
|
||||
shared_preferences_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.2+3"
|
||||
version: "2.0.0"
|
||||
shelf:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -872,56 +844,56 @@ packages:
|
|||
name: source_map_stack_trace
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0-nullsafety.3"
|
||||
version: "2.1.0"
|
||||
source_maps:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_maps
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.10.10-nullsafety.2"
|
||||
version: "0.10.10"
|
||||
source_span:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: source_span
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.8.0-nullsafety.2"
|
||||
version: "1.8.0"
|
||||
sqflite:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sqflite
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.2+3"
|
||||
version: "2.0.0+2"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.3+1"
|
||||
version: "2.0.0+1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stack_trace
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.10.0-nullsafety.1"
|
||||
version: "1.10.0"
|
||||
stream_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0-nullsafety.1"
|
||||
version: "2.1.0"
|
||||
stream_transform:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: stream_transform
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "2.0.0"
|
||||
streams_channel:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -935,7 +907,7 @@ packages:
|
|||
name: string_scanner
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0-nullsafety.1"
|
||||
version: "1.1.0"
|
||||
sync_http:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -949,35 +921,35 @@ packages:
|
|||
name: synchronized
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.0+2"
|
||||
version: "3.0.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: term_glyph
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.2.0-nullsafety.1"
|
||||
version: "1.2.0"
|
||||
test:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: test
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.16.0-nullsafety.5"
|
||||
version: "1.16.5"
|
||||
test_api:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.19-nullsafety.2"
|
||||
version: "0.2.19"
|
||||
test_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_core
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.3.12-nullsafety.5"
|
||||
version: "0.3.15"
|
||||
transparent_image:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -998,7 +970,7 @@ packages:
|
|||
name: typed_data
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.3.0-nullsafety.3"
|
||||
version: "1.3.0"
|
||||
unicode:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1012,42 +984,42 @@ packages:
|
|||
name: url_launcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.7.10"
|
||||
version: "6.0.2"
|
||||
url_launcher_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_linux
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.1+4"
|
||||
version: "2.0.0"
|
||||
url_launcher_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_macos
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.1+9"
|
||||
version: "2.0.0"
|
||||
url_launcher_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_platform_interface
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.9"
|
||||
version: "2.0.1"
|
||||
url_launcher_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_web
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.5+3"
|
||||
version: "2.0.0"
|
||||
url_launcher_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_windows
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.1+3"
|
||||
version: "2.0.0"
|
||||
validate:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1061,7 +1033,7 @@ packages:
|
|||
name: vector_math
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0-nullsafety.3"
|
||||
version: "2.1.0"
|
||||
version:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -1076,27 +1048,20 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.5.0"
|
||||
vm_service_client:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service_client
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.2.6+2"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: watcher
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.9.7+15"
|
||||
version: "1.0.0"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web_socket_channel
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
version: "1.2.0"
|
||||
webdriver:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1117,7 +1082,7 @@ packages:
|
|||
name: win32
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.7.4+1"
|
||||
version: "2.0.0"
|
||||
wkt_parser:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -1131,7 +1096,7 @@ packages:
|
|||
name: xdg_directories
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.2"
|
||||
version: "0.2.0"
|
||||
xml:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -1145,7 +1110,7 @@ packages:
|
|||
name: yaml
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "3.1.0"
|
||||
sdks:
|
||||
dart: ">=2.10.2 <2.11.0"
|
||||
flutter: ">=1.22.2 <2.0.0"
|
||||
dart: ">=2.12.0 <3.0.0"
|
||||
flutter: ">=1.24.0-10.1.pre"
|
||||
|
|
51
pubspec.yaml
51
pubspec.yaml
|
@ -4,18 +4,21 @@ repository: https://github.com/deckerst/aves
|
|||
version: 1.3.5+41
|
||||
|
||||
environment:
|
||||
sdk: ">=2.7.0 <3.0.0"
|
||||
sdk: '>=2.10.0 <3.0.0'
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
charts_flutter: # not null safe, as of 2021/03/09 - https://github.com/google/charts/issues/579
|
||||
# `charts_flutter` not null safe, as of 2021/03/09 - https://github.com/google/charts/issues/579
|
||||
charts_flutter:
|
||||
collection:
|
||||
connectivity:
|
||||
country_code: # not null safe, as of 2021/03/09 - unmaintained?
|
||||
decorated_icon: # not null safe, as of 2021/03/09 - https://github.com/benPesso/flutter_decorated_icon/issues/2
|
||||
# `country_code` not null safe, as of 2021/03/09 - unmaintained?
|
||||
country_code:
|
||||
# `decorated_icon` not null safe, as of 2021/03/09 - https://github.com/benPesso/flutter_decorated_icon/issues/2
|
||||
decorated_icon:
|
||||
event_bus:
|
||||
# TODO TLAD merge null safe `expansion_tile_card` to fork
|
||||
expansion_tile_card:
|
||||
|
@ -26,43 +29,63 @@ dependencies:
|
|||
firebase_analytics:
|
||||
firebase_crashlytics:
|
||||
# TODO TLAD migrate to basic SnackBar or `another_flushbar`
|
||||
flushbar: # not null safe, as of 2021/03/09 - discontinued
|
||||
# `flushbar` not null safe, as of 2021/03/09 - discontinued
|
||||
flushbar:
|
||||
flutter_highlight:
|
||||
flutter_ijkplayer: # not null safe, as of 2021/03/09 - unmaintained?
|
||||
# `flutter_ijkplayer` not null safe, as of 2021/03/09 - unmaintained?
|
||||
flutter_ijkplayer:
|
||||
# path: ../flutter_ijkplayer
|
||||
git:
|
||||
url: git://github.com/deckerst/flutter_ijkplayer.git
|
||||
flutter_localized_locales:
|
||||
flutter_map: # not null safe, as of 2021/03/09 - https://github.com/fleaflet/flutter_map/issues/829
|
||||
# `flutter_map` not null safe, as of 2021/03/09 - https://github.com/fleaflet/flutter_map/issues/829
|
||||
flutter_map:
|
||||
flutter_markdown:
|
||||
flutter_staggered_animations:
|
||||
flutter_svg:
|
||||
# TODO TLAD migrate to `geocoding` (or reimplement) - https://github.com/Baseflow/flutter-geocoding/issues/37
|
||||
geocoder: # not null safe, as of 2021/03/09 - unmaintained? - https://github.com/aloisdeniel/flutter_geocoder/issues/61
|
||||
# `geocoder` not null safe, as of 2021/03/09 - unmaintained? - https://github.com/aloisdeniel/flutter_geocoder/issues/61
|
||||
geocoder:
|
||||
github:
|
||||
google_api_availability:
|
||||
google_maps_flutter:
|
||||
intl:
|
||||
latlong: # not null safe, as of 2021/03/09 - archived - migrate to maps_toolkit? cf https://github.com/fleaflet/flutter_map/pull/750
|
||||
# `latlong` not null safe, as of 2021/03/09 - archived - migrate to maps_toolkit? cf https://github.com/fleaflet/flutter_map/pull/750
|
||||
latlong:
|
||||
material_design_icons_flutter:
|
||||
overlay_support:
|
||||
# as of 2021/03/09, stable version 1.0.5 uses deprecated `ancestorWidgetOfExactType`
|
||||
overlay_support: 1.2.0-nullsafety.0
|
||||
package_info:
|
||||
palette_generator: # not null safe, as of 2021/03/09 - https://github.com/flutter/packages/pull/287
|
||||
panorama: # not null safe, as of 2021/03/09 - no issue/PR
|
||||
# `palette_generator` not null safe, as of 2021/03/09 - https://github.com/flutter/packages/pull/287
|
||||
palette_generator:
|
||||
# `panorama` not null safe, as of 2021/03/09 - no issue/PR
|
||||
panorama:
|
||||
pdf:
|
||||
pedantic:
|
||||
percent_indicator:
|
||||
permission_handler:
|
||||
printing:
|
||||
# TODO TLAD upgrade printing to >=5 when `flutter_driver` dependency upgrade get on the right channel
|
||||
# https://github.com/flutter/flutter/pull/75370
|
||||
# https://github.com/flutter/flutter/blob/master/packages/flutter_driver/pubspec.yaml
|
||||
# otherwise, we get this conundrum:
|
||||
# every version of flutter_driver from sdk depends on crypto 2.1.5
|
||||
# pdf >=3.0.1 depends on crypto ^3.0.0
|
||||
# printing >=5.0.1 depends on pdf ^3.0.1
|
||||
printing: 4.1.0
|
||||
provider:
|
||||
shared_preferences:
|
||||
sqflite:
|
||||
streams_channel: # not null safe, as of 2021/03/09 - unmaintained? - no issue/PR
|
||||
# `streams_channel` not null safe, as of 2021/03/09 - unmaintained? - no issue/PR
|
||||
streams_channel:
|
||||
tuple:
|
||||
url_launcher:
|
||||
version:
|
||||
xml:
|
||||
|
||||
dependency_overrides:
|
||||
# because of `charts_flutter`
|
||||
intl: '>=0.17.0'
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
|
File diff suppressed because one or more lines are too long
1
shaders_2.0.1.sksl.json
Normal file
1
shaders_2.0.1.sksl.json
Normal file
File diff suppressed because one or more lines are too long
|
@ -1,3 +1,5 @@
|
|||
import 'dart:ui';
|
||||
|
||||
import 'package:aves/main.dart' as app;
|
||||
import 'package:aves/model/settings/enums.dart';
|
||||
import 'package:aves/model/settings/settings.dart';
|
||||
|
@ -22,6 +24,7 @@ Future<void> configureAndLaunch() async {
|
|||
await settings.init();
|
||||
settings.keepScreenOn = KeepScreenOn.always;
|
||||
settings.hasAcceptedTerms = false;
|
||||
settings.locale = Locale('en');
|
||||
|
||||
app.main();
|
||||
}
|
||||
|
|
|
@ -58,7 +58,8 @@ void agreeToTerms() {
|
|||
await driver.tap(find.byValueKey('continue-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
expect(await driver.getText(find.byValueKey('appbar-title')), 'Collection');
|
||||
// wait for collection loading
|
||||
await driver.waitForCondition(NoPendingPlatformMessages());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -71,6 +72,7 @@ void visitAbout() {
|
|||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await pressDeviceBackButton();
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -83,6 +85,7 @@ void visitSettings() {
|
|||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await pressDeviceBackButton();
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -95,6 +98,7 @@ void sortCollection() {
|
|||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey(EntrySortFactor.date.toString()));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -107,6 +111,7 @@ void groupCollection() {
|
|||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
await driver.tap(find.byValueKey(EntryGroupFactor.album.toString()));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -135,13 +140,15 @@ void searchAlbum() {
|
|||
await driver.tap(find.byValueKey('search-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
|
||||
final album = path.split(targetPicturesDir).last;
|
||||
final albumPath = targetPicturesDirEmulated;
|
||||
final albumUniqueName = path.split(albumPath).last;
|
||||
await driver.tap(find.byType('TextField'));
|
||||
await driver.enterText(album);
|
||||
await driver.enterText(albumUniqueName);
|
||||
|
||||
final albumChip = find.byValueKey('album-$album');
|
||||
final albumChip = find.byValueKey('album-$albumPath');
|
||||
await driver.waitFor(albumChip);
|
||||
await driver.tap(albumChip);
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -210,6 +217,7 @@ void showInfoMetadata() {
|
|||
|
||||
print('* back to image');
|
||||
await driver.tap(find.byValueKey('back-button'));
|
||||
await driver.waitUntilNoTransientCallbacks();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
const sourcePicturesDir = 'test_driver/assets/';
|
||||
const targetPicturesDir = '/sdcard/Pictures/Aves Test Driver/';
|
||||
const targetPicturesDirEmulated = '/storage/emulated/0/Pictures/Aves Test Driver';
|
|
@ -19,7 +19,7 @@ String get adb {
|
|||
const List<String> adbDeviceParam = []; // '[]', '[-d]', '[-e]', or '[-s, <serial_number>]'
|
||||
|
||||
Future<void> runAdb(List<String> args) async {
|
||||
await Process.runSync(adb, [...adbDeviceParam, ...args]);
|
||||
await Process.run(adb, [...adbDeviceParam, ...args]);
|
||||
}
|
||||
|
||||
Future<void> createDirectory(String dir) async {
|
||||
|
|
Loading…
Reference in a new issue