upgraded flutter to stable v2.2.0, minSdk 19 -> 20, null safety streams_channel

This commit is contained in:
Thibault Deckers 2021-05-23 12:38:25 +09:00
parent 47b9c1f893
commit fa0782262d
27 changed files with 186 additions and 137 deletions

View file

@ -14,8 +14,8 @@ jobs:
steps:
- uses: subosito/flutter-action@v1
with:
channel: beta
flutter-version: '2.2.0-10.2.pre'
channel: stable
flutter-version: '2.2.0'
- name: Clone the repository.
uses: actions/checkout@v2

View file

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

6
.gitignore vendored
View file

@ -40,5 +40,7 @@ app.*.symbols
# Obfuscation related
app.*.map.json
# Exceptions to above rules.
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release

View file

@ -3,7 +3,10 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
### Changed
- Upgraded Flutter to beta v2.2.0-10.2.pre
- Upgraded Flutter to stable v2.2.0
### Removed
- no support for Android KitKat (API 19), unsupported by Google Maps package
## [v1.4.1] - 2021-04-29
### Added

View file

@ -21,7 +21,7 @@ Aves is a gallery and metadata explorer app. It is built for Android, with Flutt
- search and filter by country, place, XMP tag, type (animated, raster, vector…)
- favorites
- statistics
- support Android API 19 ~ 30 (KitKat ~ R)
- support Android API 20 ~ 30 (Lollipop ~ R)
- Android integration (app shortcuts, handle view/pick intents)
## Known Issues

View file

@ -53,8 +53,8 @@ android {
defaultConfig {
applicationId "deckers.thibault.aves"
minSdkVersion 19
targetSdkVersion 30 // same as compileSdkVersion
minSdkVersion 20
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
manifestPlaceholders = [googleApiKey: keystoreProperties['googleApiKey']]
@ -100,14 +100,14 @@ flutter {
repositories {
maven { url 'https://jitpack.io' }
maven { url "https://s3.amazonaws.com/repo.commonsware.com" }
maven { url 'https://s3.amazonaws.com/repo.commonsware.com' }
}
dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9'
implementation 'androidx.core:core-ktx:1.5.0-rc02' // v1.5.0-alpha02+ for ShortcutManagerCompat.setDynamicShortcuts
implementation 'androidx.core:core-ktx:1.5.0'
implementation 'androidx.exifinterface:exifinterface:1.3.2'
implementation "androidx.multidex:multidex:2.0.1"
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'com.commonsware.cwac:document:0.4.1'
implementation 'com.drewnoakes:metadata-extractor:2.16.0'
implementation 'com.github.deckerst:Android-TiffBitmapFactory:876e53870a' // forked, built by JitPack

View file

@ -6,11 +6,10 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0'
classpath 'com.android.tools.build:gradle:4.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// google-services:4.3.6 is broken, cf https://github.com/google/play-services-plugins/issues/176
classpath 'com.google.gms:google-services:4.3.5'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.6.0'
classpath 'com.google.gms:google-services:4.3.8'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.6.1'
}
}
@ -29,8 +28,6 @@ allprojects {
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}

View file

@ -1,23 +1,23 @@
import 'package:aves/model/settings/settings.dart';
import 'package:aves/theme/durations.dart';
import 'package:connectivity/connectivity.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/package_info.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:version/version.dart';
abstract class AvesAvailability {
void onResume();
Future<bool > get isConnected;
Future<bool> get isConnected;
Future<bool > get hasPlayServices;
Future<bool> get hasPlayServices;
Future<bool> get canLocatePlaces;
Future<bool > get isNewVersionAvailable;
Future<bool> get isNewVersionAvailable;
}
class LiveAvesAvailability implements AvesAvailability {
@ -31,7 +31,7 @@ class LiveAvesAvailability implements AvesAvailability {
void onResume() => _isConnected = null;
@override
Future<bool > get isConnected async {
Future<bool> get isConnected async {
if (_isConnected != null) return SynchronousFuture(_isConnected!);
final result = await (Connectivity().checkConnectivity());
_updateConnectivityFromResult(result);
@ -47,7 +47,7 @@ class LiveAvesAvailability implements AvesAvailability {
}
@override
Future<bool > get hasPlayServices async {
Future<bool> get hasPlayServices async {
if (_hasPlayServices != null) return SynchronousFuture(_hasPlayServices!);
final result = await GoogleApiAvailability.instance.checkGooglePlayServicesAvailability();
_hasPlayServices = result == GooglePlayServicesAvailability.success;
@ -60,7 +60,7 @@ class LiveAvesAvailability implements AvesAvailability {
Future<bool> get canLocatePlaces => Future.wait<bool>([isConnected, hasPlayServices]).then((results) => results.every((result) => result));
@override
Future<bool > get isNewVersionAvailable async {
Future<bool> get isNewVersionAvailable async {
if (_isNewVersionAvailable != null) return SynchronousFuture(_isNewVersionAvailable!);
final now = DateTime.now();

View file

@ -52,7 +52,7 @@ class AlbumFilter extends CollectionFilter {
}
@override
Future<Color > color(BuildContext context) {
Future<Color> color(BuildContext context) {
// do not use async/await and rely on `SynchronousFuture`
// to prevent rebuilding of the `FutureBuilder` listening on this future
if (androidFileUtils.getAlbumType(album) == AlbumType.app) {

View file

@ -18,7 +18,7 @@ import 'enums.dart';
class CollectionLens with ChangeNotifier, CollectionActivityMixin {
final CollectionSource source;
final Set<CollectionFilter > filters;
final Set<CollectionFilter> filters;
EntryGroupFactor groupFactor;
EntrySortFactor sortFactor;
final AChangeNotifier filterChangeNotifier = AChangeNotifier(), sortGroupChangeNotifier = AChangeNotifier();
@ -28,7 +28,7 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin {
List<AvesEntry> _filteredSortedEntries = [];
Map<SectionKey, List<AvesEntry> > sections = Map.unmodifiable({});
Map<SectionKey, List<AvesEntry>> sections = Map.unmodifiable({});
CollectionLens({
required this.source,
@ -37,7 +37,7 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin {
EntrySortFactor? sortFactor,
this.id,
this.listenToSource = true,
}) : filters = (filters ?? {}).where((f) => f != null).cast<CollectionFilter >().toSet(),
}) : filters = (filters ?? {}).where((f) => f != null).cast<CollectionFilter>().toSet(),
groupFactor = groupFactor ?? settings.collectionGroupFactor,
sortFactor = sortFactor ?? settings.collectionSortFactor {
id ??= hashCode;
@ -69,9 +69,9 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin {
int get entryCount => _filteredSortedEntries.length;
// sorted as displayed to the user, i.e. sorted then grouped, not an absolute order on all entries
List<AvesEntry >? _sortedEntries;
List<AvesEntry>? _sortedEntries;
List<AvesEntry > get sortedEntries {
List<AvesEntry> get sortedEntries {
_sortedEntries ??= List.of(sections.entries.expand((kv) => kv.value));
return _sortedEntries!;
}

View file

@ -203,8 +203,8 @@ abstract class CollectionSource with SourceBase, AlbumMixin, LocationMixin, TagM
}
});
await metadataDb.saveEntries(movedEntries);
await metadataDb.saveMetadata(movedEntries.map((entry) => entry.catalogMetadata).where((v) => v != null).cast<CatalogMetadata >().toSet());
await metadataDb.saveAddresses(movedEntries.map((entry) => entry.addressDetails).where((v) => v != null).cast<AddressDetails >().toSet());
await metadataDb.saveMetadata(movedEntries.map((entry) => entry.catalogMetadata).where((v) => v != null).cast<CatalogMetadata>().toSet());
await metadataDb.saveAddresses(movedEntries.map((entry) => entry.addressDetails).where((v) => v != null).cast<AddressDetails>().toSet());
} else {
await Future.forEach<MoveOpEvent>(movedOps, (movedOp) async {
final newFields = movedOp.newFields;

View file

@ -45,7 +45,7 @@ mixin LocationMixin on SourceBase {
// final stopwatch = Stopwatch()..start();
final countryCodeMap = await countryTopology.countryCodeMap(todo.map((entry) => entry.latLng!).toSet());
final newAddresses = <AddressDetails >[];
final newAddresses = <AddressDetails>[];
todo.forEach((entry) {
final position = entry.latLng;
final countryCode = countryCodeMap.entries.firstWhereOrNull((kv) => kv.value.contains(position))?.key;
@ -98,7 +98,7 @@ mixin LocationMixin on SourceBase {
final progressTotal = todo.length;
setProgress(done: progressDone, total: progressTotal);
final newAddresses = <AddressDetails >[];
final newAddresses = <AddressDetails>[];
await Future.forEach<AvesEntry>(todo, (entry) async {
final latLng = approximateLatLng(entry);
if (knownLocations.containsKey(latLng)) {
@ -132,7 +132,7 @@ mixin LocationMixin on SourceBase {
}
void updateLocations() {
final locations = visibleEntries.where((entry) => entry.hasAddress).map((entry) => entry.addressDetails).cast<AddressDetails >().toList();
final locations = visibleEntries.where((entry) => entry.hasAddress).map((entry) => entry.addressDetails).cast<AddressDetails>().toList();
final updatedPlaces = locations.map((address) => address.place).where((s) => s != null && s.isNotEmpty).toSet().toList()..sort(compareAsciiUpperCase as int Function(String?, String?)?);
if (!listEquals(updatedPlaces, sortedPlaces)) {
sortedPlaces = List.unmodifiable(updatedPlaces);
@ -163,7 +163,7 @@ mixin LocationMixin on SourceBase {
_filterEntryCountMap.clear();
_filterRecentEntryMap.clear();
} else {
countryCodes = entries.where((entry) => entry.hasAddress).map((entry) => entry.addressDetails!.countryCode).where((v) => v != null).cast<String >().toSet();
countryCodes = entries.where((entry) => entry.hasAddress).map((entry) => entry.addressDetails!.countryCode).where((v) => v != null).cast<String>().toSet();
countryCodes.forEach(_filterEntryCountMap.remove);
}
eventBus.fire(CountrySummaryInvalidatedEvent(countryCodes));

View file

@ -10,7 +10,6 @@ import 'package:aves/services/service_policy.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
// ignore: import_of_legacy_library_into_null_safe
import 'package:streams_channel/streams_channel.dart';

View file

@ -40,7 +40,7 @@ class Constants {
sourceUrl: 'https://android.googlesource.com/platform/frameworks/support/+/androidx-main/exifinterface/exifinterface',
),
Dependency(
name: 'Android-TiffBitmapFactory',
name: 'Android-TiffBitmapFactory (Aves fork)',
license: 'MIT',
licenseUrl: 'https://github.com/deckerst/Android-TiffBitmapFactory/blob/master/license.txt',
sourceUrl: 'https://github.com/deckerst/Android-TiffBitmapFactory',
@ -67,10 +67,10 @@ class Constants {
static const List<Dependency> flutterPlugins = [
Dependency(
name: 'Connectivity',
name: 'Connectivity Plus',
license: 'BSD 3-Clause',
licenseUrl: 'https://github.com/flutter/plugins/blob/master/packages/connectivity/connectivity/LICENSE',
sourceUrl: 'https://github.com/flutter/plugins/blob/master/packages/connectivity/connectivity',
licenseUrl: 'https://github.com/fluttercommunity/plus_plugins/blob/main/packages/connectivity_plus/LICENSE',
sourceUrl: 'https://github.com/fluttercommunity/plus_plugins/tree/main/packages/connectivity_plus',
),
Dependency(
name: 'FlutterFire (Core, Analytics, Crashlytics)',
@ -79,7 +79,7 @@ class Constants {
sourceUrl: 'https://github.com/FirebaseExtended/flutterfire',
),
Dependency(
name: 'fijkplayer',
name: 'fijkplayer (Aves fork)',
license: 'MIT',
licenseUrl: 'https://github.com/deckerst/fijkplayer/blob/master/LICENSE',
sourceUrl: 'https://github.com/deckerst/fijkplayer',
@ -97,10 +97,10 @@ class Constants {
sourceUrl: 'https://github.com/flutter/plugins/blob/master/packages/google_maps_flutter/google_maps_flutter',
),
Dependency(
name: 'Package Info',
name: 'Package Info Plus',
license: 'BSD 3-Clause',
licenseUrl: 'https://github.com/flutter/plugins/blob/master/packages/package_info/LICENSE',
sourceUrl: 'https://github.com/flutter/plugins/tree/master/packages/package_info',
licenseUrl: 'https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus/LICENSE',
sourceUrl: 'https://github.com/fluttercommunity/plus_plugins/tree/main/packages/package_info_plus',
),
Dependency(
name: 'Permission Handler',
@ -127,10 +127,10 @@ class Constants {
sourceUrl: 'https://github.com/tekartik/sqflite',
),
Dependency(
name: 'Streams Channel',
name: 'Streams Channel (Aves fork)',
license: 'Apache 2.0',
licenseUrl: 'https://github.com/loup-v/streams_channel/blob/master/LICENSE',
sourceUrl: 'https://github.com/loup-v/streams_channel',
licenseUrl: 'https://github.com/deckerst/aves_streams_channel/blob/master/LICENSE',
sourceUrl: 'https://github.com/deckerst/aves_streams_channel',
),
Dependency(
name: 'URL Launcher',
@ -229,7 +229,7 @@ class Constants {
sourceUrl: 'https://github.com/benPesso/flutter_decorated_icon',
),
Dependency(
name: 'Expansion Tile Card',
name: 'Expansion Tile Card (Aves fork)',
license: 'BSD 3-Clause',
licenseUrl: 'https://github.com/deckerst/expansion_tile_card/blob/master/LICENSE',
sourceUrl: 'https://github.com/deckerst/expansion_tile_card',

View file

@ -5,7 +5,7 @@ import 'package:aves/widgets/common/basic/link_chip.dart';
import 'package:aves/widgets/common/extensions/build_context.dart';
import 'package:aves/widgets/common/identity/aves_logo.dart';
import 'package:flutter/material.dart';
import 'package:package_info/package_info.dart';
import 'package:package_info_plus/package_info_plus.dart';
class AppReference extends StatefulWidget {
@override

View file

@ -8,7 +8,7 @@ import 'package:flutter/material.dart';
mixin PermissionAwareMixin {
Future<bool> checkStoragePermission(BuildContext context, Set<AvesEntry> entries) {
return checkStoragePermissionForAlbums(context, entries.where((e) => e.path != null).map((e) => e.directory).cast<String >().toSet());
return checkStoragePermissionForAlbums(context, entries.where((e) => e.path != null).map((e) => e.directory).cast<String>().toSet());
}
Future<bool> checkStoragePermissionForAlbums(BuildContext context, Set<String> albumPaths) async {

View file

@ -15,7 +15,7 @@ import 'package:flutter/widgets.dart';
mixin SizeAwareMixin {
Future<bool> checkFreeSpaceForMove(
BuildContext context,
Set<AvesEntry > selection,
Set<AvesEntry> selection,
String destinationAlbum,
MoveType moveType,
) async {

View file

@ -6,7 +6,7 @@ import 'package:provider/provider.dart';
class DraggableThumbLabel<T> extends StatelessWidget {
final double offsetY;
final List<String > Function(BuildContext context, T item) lineBuilder;
final List<String> Function(BuildContext context, T item) lineBuilder;
const DraggableThumbLabel({
required this.offsetY,

View file

@ -145,7 +145,7 @@ abstract class SectionedListLayoutProvider<T> extends StatelessWidget {
bool get showHeaders;
Map<SectionKey, List<T> > get sections;
Map<SectionKey, List<T>> get sections;
double getHeaderExtent(BuildContext context, SectionKey sectionKey);
@ -163,7 +163,7 @@ abstract class SectionedListLayoutProvider<T> extends StatelessWidget {
}
class SectionedListLayout<T> {
final Map<SectionKey, List<T> > sections;
final Map<SectionKey, List<T>> sections;
final bool showHeaders;
final int columnCount;
final double tileExtent, spacing;

View file

@ -1,9 +1,9 @@
import 'package:collection/collection.dart';
import 'dart:ui' as ui;
import 'package:aves/theme/durations.dart';
import 'package:aves/widgets/common/providers/media_query_data_provider.dart';
import 'package:aves/widgets/common/tile_extent_controller.dart';
import 'package:collection/collection.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:provider/provider.dart';

View file

@ -63,7 +63,7 @@ class XmpNamespace {
return extractData(prop) ? null : prop;
})
.where((v) => v != null)
.cast<XmpProp >()
.cast<XmpProp>()
.toList()
..sort((a, b) => compareAsciiUpperCaseNatural(a.displayKey, b.displayKey));

View file

@ -12,7 +12,8 @@ abstract class XmpGoogleNamespace extends XmpNamespace {
@override
Map<String, InfoLinkHandler> linkifyValues(List<XmpProp> props) {
return Map.fromEntries(dataProps.map((t) {
return Map.fromEntries(dataProps
.map((t) {
final dataPropPath = t.item1;
final mimePropPath = t.item2;
final dataProp = props.firstWhereOrNull((prop) => prop.path == dataPropPath);
@ -28,7 +29,9 @@ abstract class XmpGoogleNamespace extends XmpNamespace {
).dispatch(context),
))
: null;
}).where((kv) => kv != null).cast<MapEntry<String, InfoLinkHandler>>());
})
.where((kv) => kv != null)
.cast<MapEntry<String, InfoLinkHandler>>());
}
}

View file

@ -35,7 +35,7 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
version: "2.5.0"
version: "2.6.1"
barcode:
dependency: transitive
description:
@ -99,34 +99,48 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.15.0"
connectivity:
connectivity_plus:
dependency: "direct main"
description:
name: connectivity
name: connectivity_plus
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.3"
connectivity_for_web:
version: "1.0.1"
connectivity_plus_linux:
dependency: transitive
description:
name: connectivity_for_web
name: connectivity_plus_linux
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.0"
connectivity_macos:
version: "1.0.1"
connectivity_plus_macos:
dependency: transitive
description:
name: connectivity_macos
name: connectivity_plus_macos
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
connectivity_platform_interface:
version: "1.0.1"
connectivity_plus_platform_interface:
dependency: transitive
description:
name: connectivity_platform_interface
name: connectivity_plus_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
version: "1.0.1"
connectivity_plus_web:
dependency: transitive
description:
name: connectivity_plus_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
connectivity_plus_windows:
dependency: transitive
description:
name: connectivity_plus_windows
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
convert:
dependency: transitive
description:
@ -154,7 +168,14 @@ packages:
name: crypto
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
version: "3.0.1"
dbus:
dependency: transitive
description:
name: dbus
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.5"
decorated_icon:
dependency: "direct main"
description:
@ -197,10 +218,10 @@ packages:
description:
path: "."
ref: aves
resolved-ref: "7bb26e681ceef9d7b311f0b0f51eab99c3590474"
resolved-ref: ded83f43a1c3a664d5e9cfcab687c3caab2cbdb0
url: "git://github.com/deckerst/fijkplayer.git"
source: git
version: "0.8.7"
version: "0.8.8"
file:
dependency: transitive
description:
@ -221,7 +242,7 @@ packages:
name: firebase_analytics
url: "https://pub.dartlang.org"
source: hosted
version: "8.0.4"
version: "8.1.0"
firebase_analytics_platform_interface:
dependency: transitive
description:
@ -242,7 +263,7 @@ packages:
name: firebase_core
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
version: "1.2.0"
firebase_core_platform_interface:
dependency: transitive
description:
@ -256,21 +277,21 @@ packages:
name: firebase_core_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.3"
version: "1.1.0"
firebase_crashlytics:
dependency: "direct main"
description:
name: firebase_crashlytics
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
version: "2.0.4"
firebase_crashlytics_platform_interface:
dependency: transitive
description:
name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.3"
version: "3.0.4"
flutter:
dependency: "direct main"
description: flutter
@ -295,13 +316,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.7.0"
flutter_image:
dependency: transitive
description:
name: flutter_image
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
flutter_localizations:
dependency: "direct main"
description: flutter
@ -312,10 +326,10 @@ packages:
description:
path: "."
ref: "issues/829-nullsafety"
resolved-ref: "09b306afdfc5d748cdaf3307084e70fcb6a21c6d"
resolved-ref: d9674b5c4fec7d759462a417c8acc548a3e720e1
url: "git://github.com/fleaflet/flutter_map.git"
source: git
version: "0.12.0"
version: "0.13.0"
flutter_markdown:
dependency: "direct main"
description:
@ -393,7 +407,7 @@ packages:
name: google_maps_flutter
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.4"
version: "2.0.5"
google_maps_flutter_platform_interface:
dependency: transitive
description:
@ -562,13 +576,48 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
package_info:
package_info_plus:
dependency: "direct main"
description:
name: package_info
name: package_info_plus
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
version: "1.0.1"
package_info_plus_linux:
dependency: transitive
description:
name: package_info_plus_linux
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
package_info_plus_macos:
dependency: transitive
description:
name: package_info_plus_macos
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.1"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
package_info_plus_web:
dependency: transitive
description:
name: package_info_plus_web
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
package_info_plus_windows:
dependency: transitive
description:
name: package_info_plus_windows
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.1"
palette_generator:
dependency: "direct main"
description:
@ -652,14 +701,14 @@ packages:
name: permission_handler
url: "https://pub.dartlang.org"
source: hosted
version: "7.1.0"
version: "8.0.0+1"
permission_handler_platform_interface:
dependency: transitive
description:
name: permission_handler_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "3.3.0"
version: "3.5.0"
petitparser:
dependency: transitive
description:
@ -878,9 +927,11 @@ packages:
streams_channel:
dependency: "direct main"
description:
name: streams_channel
url: "https://pub.dartlang.org"
source: hosted
path: "."
ref: HEAD
resolved-ref: d644fedd9cb79a45b1b92788880e81b846a69d9b
url: "git://github.com/deckerst/aves_streams_channel.git"
source: git
version: "0.3.0"
string_scanner:
dependency: transitive
@ -965,7 +1016,7 @@ packages:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "6.0.3"
version: "6.0.4"
url_launcher_linux:
dependency: transitive
description:
@ -986,7 +1037,7 @@ packages:
name: url_launcher_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
version: "2.0.3"
url_launcher_web:
dependency: transitive
description:
@ -1021,7 +1072,7 @@ packages:
name: vm_service
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.0+1"
version: "6.2.0"
watcher:
dependency: transitive
description:
@ -1056,7 +1107,7 @@ packages:
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.5"
version: "2.1.1"
wkt_parser:
dependency: transitive
description:
@ -1077,7 +1128,7 @@ packages:
name: xml
url: "https://pub.dartlang.org"
source: hosted
version: "5.1.0"
version: "5.1.1"
yaml:
dependency: transitive
description:
@ -1086,5 +1137,5 @@ packages:
source: hosted
version: "3.1.0"
sdks:
dart: ">=2.12.0 <3.0.0"
dart: ">=2.13.0 <3.0.0"
flutter: ">=2.0.0"

View file

@ -7,17 +7,9 @@ publish_to: none
environment:
sdk: '>=2.12.0 <3.0.0'
# TODO TLAD switch to Flutter stable when possible, currently on dev/beta because of the following mess:
# printing >=5.0.1 depends on pdf ^3.0.1, pdf >=3.0.1 depends on crypto ^3.0.0 and archive ^3.1.0
# but `flutter_driver` (shipped with Flutter) dependencies are too old in stable v2.0.1
# bump `crypto` and others - 2021/02/05 https://github.com/flutter/flutter/commit/bc1cf4945841ba5874f5262b8146d52750e7c11f
# bump `archive` from 3.0.0 to 3.1.2 - 2021/03/04 https://github.com/flutter/flutter/commit/ddcb8d7d6d3fcedc906b2f1bf26b73c018d3dc28
# not null safe, as of 2021/04/28
# not null safe, as of 2021/05/23
# `charts_flutter` - https://github.com/google/charts/issues/579
# `fijkplayer` - https://github.com/befovy/fijkplayer/issues/381
# `flutter_map` - https://github.com/fleaflet/flutter_map/issues/829
# `streams_channel` - unmaintained? - no issue/PR
dependencies:
flutter:
@ -26,7 +18,7 @@ dependencies:
sdk: flutter
charts_flutter:
collection:
connectivity:
connectivity_plus:
country_code:
decorated_icon:
event_bus:
@ -56,7 +48,7 @@ dependencies:
latlong2:
material_design_icons_flutter:
overlay_support:
package_info:
package_info_plus:
palette_generator:
# TODO TLAD upgrade panorama when this is fixed: https://github.com/zesage/panorama/issues/25 (bug in v0.4.1)
panorama: 0.4.0
@ -69,6 +61,8 @@ dependencies:
shared_preferences:
sqflite:
streams_channel:
git:
url: git://github.com/deckerst/aves_streams_channel.git
tuple:
url_launcher:
version:

File diff suppressed because one or more lines are too long

1
shaders_2.2.0.sksl.json Normal file

File diff suppressed because one or more lines are too long