From dd2199ef205e257d8ff792f277023eac1285aa71 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Wed, 1 Apr 2020 10:40:02 +0900 Subject: [PATCH] packages upgrade & fixed pedantic issues --- lib/labs/sliver_transition_grid_delegate.dart | 14 +++++++------- lib/main.dart | 10 +++++----- lib/model/collection_lens.dart | 10 ++++------ lib/model/collection_source.dart | 4 ++-- lib/model/favourite_repo.dart | 2 +- lib/model/filters/album.dart | 2 +- lib/model/image_metadata.dart | 6 +++--- lib/model/settings.dart | 2 +- lib/utils/file_utils.dart | 2 +- lib/utils/geo_utils.dart | 18 +++++++++--------- lib/utils/time_utils.dart | 10 +++++----- lib/widgets/album/collection_drawer.dart | 4 ++-- lib/widgets/album/collection_scaling.dart | 2 +- lib/widgets/album/collection_section.dart | 2 +- .../album/transparent_material_page_route.dart | 2 +- .../media_store_collection_provider.dart | 2 +- lib/widgets/common/fx/sweeper.dart | 9 ++++----- .../app_icon_image_provider.dart | 3 +-- .../image_providers/thumbnail_provider.dart | 3 +-- .../image_providers/uri_image_provider.dart | 3 +-- lib/widgets/fullscreen/fullscreen_body.dart | 4 ++-- lib/widgets/fullscreen/info/info_page.dart | 4 ++-- .../fullscreen/info/location_section.dart | 6 +++--- lib/widgets/stats.dart | 7 +++---- pubspec.lock | 12 ++++++------ 25 files changed, 68 insertions(+), 75 deletions(-) diff --git a/lib/labs/sliver_transition_grid_delegate.dart b/lib/labs/sliver_transition_grid_delegate.dart index fb9852d68..b8e2fa411 100644 --- a/lib/labs/sliver_transition_grid_delegate.dart +++ b/lib/labs/sliver_transition_grid_delegate.dart @@ -40,9 +40,9 @@ class SliverTransitionGridDelegateWithCrossAxisCount extends SliverGridDelegate } SliverTransitionGridTileLayoutSettings _buildSettings(SliverConstraints constraints, double crossAxisCount) { - final double usableCrossAxisExtent = constraints.crossAxisExtent - crossAxisSpacing * (crossAxisCount - 1); - final double childCrossAxisExtent = usableCrossAxisExtent / crossAxisCount; - final double childMainAxisExtent = childCrossAxisExtent / childAspectRatio; + final usableCrossAxisExtent = constraints.crossAxisExtent - crossAxisSpacing * (crossAxisCount - 1); + final childCrossAxisExtent = usableCrossAxisExtent / crossAxisCount; + final childMainAxisExtent = childCrossAxisExtent / childAspectRatio; final current = SliverTransitionGridTileLayoutSettings( crossAxisCount: crossAxisCount, mainAxisStride: childMainAxisExtent + mainAxisSpacing, @@ -129,7 +129,7 @@ class SliverTransitionGridTileLayout extends SliverGridLayout { int getMaxChildIndexForScrollOffset(double scrollOffset) { final settings = t == 0 ? current : floor; if (settings.mainAxisStride > 0.0) { - final int mainAxisCount = (scrollOffset / settings.mainAxisStride).ceil(); + final mainAxisCount = (scrollOffset / settings.mainAxisStride).ceil(); final index = math.max(0, settings.crossAxisCount * mainAxisCount - 1).ceil(); return index; } @@ -141,7 +141,7 @@ class SliverTransitionGridTileLayout extends SliverGridLayout { } double _getCrossAxisOffset(int index, SliverTransitionGridTileLayoutSettings settings) { - final double crossAxisStart = (index % settings.crossAxisCount) * settings.crossAxisStride; + final crossAxisStart = (index % settings.crossAxisCount) * settings.crossAxisStride; if (reverseCrossAxis) { return settings.crossAxisCount * settings.crossAxisStride - crossAxisStart - settings.childCrossAxisExtent - (settings.crossAxisStride - settings.childCrossAxisExtent); } @@ -168,8 +168,8 @@ class SliverTransitionGridTileLayout extends SliverGridLayout { return maxScrollOffset; } - final int mainAxisCount = ((childCount - 1) ~/ current.crossAxisCount) + 1; - final double mainAxisSpacing = current.mainAxisStride - current.childMainAxisExtent; + final mainAxisCount = ((childCount - 1) ~/ current.crossAxisCount) + 1; + final mainAxisSpacing = current.mainAxisStride - current.childMainAxisExtent; final maxScrollOffset = current.mainAxisStride * mainAxisCount - mainAxisSpacing; return maxScrollOffset; } diff --git a/lib/main.dart b/lib/main.dart index 83cc51cc3..be7985852 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -67,12 +67,12 @@ class _HomePageState extends State { debugPrint('$runtimeType _setup'); // TODO reduce permission check time - final permissions = await PermissionHandler().requestPermissions([ - PermissionGroup.storage, + final permissions = await [ + Permission.storage, // unredacted EXIF with scoped storage (Android 10+) - PermissionGroup.accessMediaLocation, - ]); // 350ms - if (permissions[PermissionGroup.storage] != PermissionStatus.granted) { + Permission.accessMediaLocation, + ].request(); // 350ms + if (permissions[Permission.storage] != PermissionStatus.granted) { unawaited(SystemNavigator.pop()); return; } diff --git a/lib/model/collection_lens.dart b/lib/model/collection_lens.dart index c47990f97..0ef353447 100644 --- a/lib/model/collection_lens.dart +++ b/lib/model/collection_lens.dart @@ -27,9 +27,9 @@ class CollectionLens with ChangeNotifier { Iterable filters, @required GroupFactor groupFactor, @required SortFactor sortFactor, - }) : this.filters = [if (filters != null) ...filters.where((f) => f != null)].toSet(), - this.groupFactor = groupFactor ?? GroupFactor.month, - this.sortFactor = sortFactor ?? SortFactor.date { + }) : filters = {if (filters != null) ...filters.where((f) => f != null)}, + groupFactor = groupFactor ?? GroupFactor.month, + sortFactor = sortFactor ?? SortFactor.date { _subscriptions.add(source.eventBus.on().listen((e) => onEntryAdded())); _subscriptions.add(source.eventBus.on().listen((e) => onEntryRemoved(e.entry))); _subscriptions.add(source.eventBus.on().listen((e) => onMetadataChanged())); @@ -69,9 +69,7 @@ class CollectionLens with ChangeNotifier { List _sortedEntries; List get sortedEntries { - if (_sortedEntries == null) { - _sortedEntries = List.of(sections.entries.expand((e) => e.value)); - } + _sortedEntries ??= List.of(sections.entries.expand((e) => e.value)); return _sortedEntries; } diff --git a/lib/model/collection_source.dart b/lib/model/collection_source.dart index bf1e336c2..4b889bed6 100644 --- a/lib/model/collection_source.dart +++ b/lib/model/collection_source.dart @@ -119,7 +119,7 @@ class CollectionSource { void updateLocations() { final locations = _rawEntries.where((entry) => entry.isLocated).map((entry) => entry.addressDetails); - final lister = (String f(AddressDetails a)) => List.unmodifiable(locations.map(f).where((s) => s != null && s.isNotEmpty).toSet().toList()..sort(compareAsciiUpperCase)); + final lister = (String Function(AddressDetails a) f) => List.unmodifiable(locations.map(f).where((s) => s != null && s.isNotEmpty).toSet().toList()..sort(compareAsciiUpperCase)); sortedCountries = lister((address) => address.countryName); sortedCities = lister((address) => address.city); } @@ -146,7 +146,7 @@ class CollectionSource { static String getUniqueAlbumName(String album, Iterable albums) { final otherAlbums = albums?.where((item) => item != album) ?? []; final parts = album.split(separator); - int partCount = 0; + var partCount = 0; String testName; do { testName = separator + parts.skip(parts.length - ++partCount).join(separator); diff --git a/lib/model/favourite_repo.dart b/lib/model/favourite_repo.dart index 00e9a69c5..2c21ea9fc 100644 --- a/lib/model/favourite_repo.dart +++ b/lib/model/favourite_repo.dart @@ -5,7 +5,7 @@ import 'package:aves/model/metadata_db.dart'; final FavouriteRepo favourites = FavouriteRepo._private(); class FavouriteRepo { - List _rows = List(); + List _rows = []; FavouriteRepo._private(); diff --git a/lib/model/filters/album.dart b/lib/model/filters/album.dart index 72e5fc9e4..015266692 100644 --- a/lib/model/filters/album.dart +++ b/lib/model/filters/album.dart @@ -12,7 +12,7 @@ import 'package:path/path.dart'; class AlbumFilter extends CollectionFilter { static const type = 'album'; - static Map _appColors = Map(); + static final Map _appColors = {}; final String album; diff --git a/lib/model/image_metadata.dart b/lib/model/image_metadata.dart index c0ecf6941..0e5a70c39 100644 --- a/lib/model/image_metadata.dart +++ b/lib/model/image_metadata.dart @@ -16,8 +16,8 @@ class CatalogMetadata { double longitude, }) // Geocoder throws an IllegalArgumentException when a coordinate has a funky values like 1.7056881853375E7 - : this.latitude = latitude == null || latitude < -90.0 || latitude > 90.0 ? null : latitude, - this.longitude = longitude == null || longitude < -180.0 || longitude > 180.0 ? null : longitude; + : latitude = latitude == null || latitude < -90.0 || latitude > 90.0 ? null : latitude, + longitude = longitude == null || longitude < -180.0 || longitude > 180.0 ? null : longitude; factory CatalogMetadata.fromMap(Map map) { return CatalogMetadata( @@ -53,7 +53,7 @@ class OverlayMetadata { this.exposureTime, this.focalLength, this.iso, - }) : this.aperture = aperture.replaceFirst('f', 'ƒ'); + }) : aperture = aperture.replaceFirst('f', 'ƒ'); factory OverlayMetadata.fromMap(Map map) { return OverlayMetadata( diff --git a/lib/model/settings.dart b/lib/model/settings.dart index 79fabcb8c..32dc6b9ca 100644 --- a/lib/model/settings.dart +++ b/lib/model/settings.dart @@ -35,7 +35,7 @@ class Settings { void notifyListeners(String key, dynamic oldValue, dynamic newValue) { debugPrint('$runtimeType notifyListeners key=$key, old=$oldValue, new=$newValue'); if (_listeners != null) { - final List localListeners = _listeners.toList(); + final localListeners = _listeners.toList(); for (final listener in localListeners) { try { if (_listeners.contains(listener)) { diff --git a/lib/utils/file_utils.dart b/lib/utils/file_utils.dart index 0dbad3563..50e1319df 100644 --- a/lib/utils/file_utils.dart +++ b/lib/utils/file_utils.dart @@ -1,5 +1,5 @@ String formatFilesize(int size, {int round = 2}) { - int divider = 1024; + var divider = 1024; if (size < divider) return '$size B'; diff --git a/lib/utils/geo_utils.dart b/lib/utils/geo_utils.dart index 091f38092..023510678 100644 --- a/lib/utils/geo_utils.dart +++ b/lib/utils/geo_utils.dart @@ -10,24 +10,24 @@ String _decimal2sexagesimal(final double dec) { List _split(final double value) { // NumberFormat is necessary to create digit after comma if the value // has no decimal point (only necessary for browser) - final List tmp = NumberFormat('0.0#####').format(_round(value, decimals: 10)).split('.'); + final tmp = NumberFormat('0.0#####').format(_round(value, decimals: 10)).split('.'); return [ int.parse(tmp[0]).abs(), int.parse(tmp[1]), ]; } - final List parts = _split(dec); - final int integerPart = parts[0]; - final int fractionalPart = parts[1]; + final parts = _split(dec); + final integerPart = parts[0]; + final fractionalPart = parts[1]; - final int deg = integerPart; - final double min = double.parse('0.$fractionalPart') * 60; + final deg = integerPart; + final min = double.parse('0.$fractionalPart') * 60; - final List minParts = _split(min); - final int minFractionalPart = minParts[1]; + final minParts = _split(min); + final minFractionalPart = minParts[1]; - final double sec = double.parse('0.$minFractionalPart') * 60; + final sec = double.parse('0.$minFractionalPart') * 60; return '$deg° ${min.floor()}′ ${_round(sec, decimals: 2).toStringAsFixed(2)}″'; } diff --git a/lib/utils/time_utils.dart b/lib/utils/time_utils.dart index 644a1d9b0..46ae6835f 100644 --- a/lib/utils/time_utils.dart +++ b/lib/utils/time_utils.dart @@ -4,19 +4,19 @@ String formatDuration(Duration d) { return '0$n'; } - String twoDigitSeconds = twoDigits(d.inSeconds.remainder(Duration.secondsPerMinute)); + final twoDigitSeconds = twoDigits(d.inSeconds.remainder(Duration.secondsPerMinute)); if (d.inHours == 0) return '${d.inMinutes}:$twoDigitSeconds'; - String twoDigitMinutes = twoDigits(d.inMinutes.remainder(Duration.minutesPerHour)); + final twoDigitMinutes = twoDigits(d.inMinutes.remainder(Duration.minutesPerHour)); return '${d.inHours}:$twoDigitMinutes:$twoDigitSeconds'; } extension ExtraDateTime on DateTime { - bool isAtSameYearAs(DateTime other) => this != null && other != null && this.year == other.year; + bool isAtSameYearAs(DateTime other) => this != null && other != null && year == other.year; - bool isAtSameMonthAs(DateTime other) => isAtSameYearAs(other) && this.month == other.month; + bool isAtSameMonthAs(DateTime other) => isAtSameYearAs(other) && month == other.month; - bool isAtSameDayAs(DateTime other) => isAtSameMonthAs(other) && this.day == other.day; + bool isAtSameDayAs(DateTime other) => isAtSameMonthAs(other) && day == other.day; bool get isToday => isAtSameDayAs(DateTime.now()); diff --git a/lib/widgets/album/collection_drawer.dart b/lib/widgets/album/collection_drawer.dart index b2a913ae5..5e53a68a7 100644 --- a/lib/widgets/album/collection_drawer.dart +++ b/lib/widgets/album/collection_drawer.dart @@ -3,10 +3,10 @@ import 'dart:ui'; import 'package:aves/model/collection_lens.dart'; import 'package:aves/model/collection_source.dart'; import 'package:aves/model/filters/album.dart'; -import 'package:aves/model/filters/location.dart'; import 'package:aves/model/filters/favourite.dart'; import 'package:aves/model/filters/filters.dart'; import 'package:aves/model/filters/gif.dart'; +import 'package:aves/model/filters/location.dart'; import 'package:aves/model/filters/tag.dart'; import 'package:aves/model/filters/video.dart'; import 'package:aves/model/settings.dart'; @@ -300,7 +300,7 @@ class _FilteredCollectionNavTile extends StatelessWidget { @required this.title, bool dense, @required this.filter, - }) : this.dense = dense ?? false; + }) : dense = dense ?? false; @override Widget build(BuildContext context) { diff --git a/lib/widgets/album/collection_scaling.dart b/lib/widgets/album/collection_scaling.dart index e33b91ce1..b5cb075ec 100644 --- a/lib/widgets/album/collection_scaling.dart +++ b/lib/widgets/album/collection_scaling.dart @@ -233,7 +233,7 @@ class GridPainter extends CustomPainter { ], ); final topLeft = center.translate(-extent / 2, -extent / 2); - for (int i = -1; i <= 2; i++) { + for (var i = -1; i <= 2; i++) { canvas.drawLine(Offset(0, topLeft.dy + extent * i), Offset(size.width, topLeft.dy + extent * i), paint); canvas.drawLine(Offset(topLeft.dx + extent * i, 0), Offset(topLeft.dx + extent * i, size.height), paint); } diff --git a/lib/widgets/album/collection_section.dart b/lib/widgets/album/collection_section.dart index d135dbbf5..74632b7e7 100644 --- a/lib/widgets/album/collection_section.dart +++ b/lib/widgets/album/collection_section.dart @@ -168,7 +168,7 @@ class SectionHeader extends StatelessWidget { } Widget _buildAlbumSectionHeader(BuildContext context) { - Widget albumIcon = IconUtils.getAlbumIcon(context: context, album: sectionKey as String); + var albumIcon = IconUtils.getAlbumIcon(context: context, album: sectionKey as String); if (albumIcon != null) { albumIcon = Material( type: MaterialType.circle, diff --git a/lib/widgets/album/transparent_material_page_route.dart b/lib/widgets/album/transparent_material_page_route.dart index a7ebf4776..30f52855a 100644 --- a/lib/widgets/album/transparent_material_page_route.dart +++ b/lib/widgets/album/transparent_material_page_route.dart @@ -10,7 +10,7 @@ class TransparentMaterialPageRoute extends PageRouteBuilder { @override Widget buildTransitions(BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { - final PageTransitionsTheme theme = Theme.of(context).pageTransitionsTheme; + final theme = Theme.of(context).pageTransitionsTheme; return theme.buildTransitions(this, context, animation, secondaryAnimation, child); } } diff --git a/lib/widgets/common/data_providers/media_store_collection_provider.dart b/lib/widgets/common/data_providers/media_store_collection_provider.dart index 98be5209c..497b6633b 100644 --- a/lib/widgets/common/data_providers/media_store_collection_provider.dart +++ b/lib/widgets/common/data_providers/media_store_collection_provider.dart @@ -50,7 +50,7 @@ class _MediaStoreCollectionProviderState extends State(); + final allEntries = []; eventChannel.receiveBroadcastStream().cast().listen( (entryMap) => allEntries.add(ImageEntry.fromMap(entryMap)), onDone: () async { diff --git a/lib/widgets/common/fx/sweeper.dart b/lib/widgets/common/fx/sweeper.dart index 84c16fa9e..7b5f3da3a 100644 --- a/lib/widgets/common/fx/sweeper.dart +++ b/lib/widgets/common/fx/sweeper.dart @@ -121,11 +121,10 @@ class _SweepClipPath extends CustomClipper { @override Path getClip(Size size) { - Path path = Path(); - path.moveTo(size.width / 2, size.height / 2); - path.addArc(Rect.fromLTWH(0, 0, size.width, size.height), startAngle, sweepAngle); - path.lineTo(size.width / 2, size.height / 2); - return path; + return Path() + ..moveTo(size.width / 2, size.height / 2) + ..addArc(Rect.fromLTWH(0, 0, size.width, size.height), startAngle, sweepAngle) + ..lineTo(size.width / 2, size.height / 2); } @override diff --git a/lib/widgets/common/image_providers/app_icon_image_provider.dart b/lib/widgets/common/image_providers/app_icon_image_provider.dart index dae957ca8..0740e8855 100644 --- a/lib/widgets/common/image_providers/app_icon_image_provider.dart +++ b/lib/widgets/common/image_providers/app_icon_image_provider.dart @@ -1,4 +1,3 @@ -import 'dart:typed_data'; import 'dart:ui' as ui show Codec; import 'package:aves/utils/android_app_service.dart'; @@ -38,7 +37,7 @@ class AppIconImage extends ImageProvider { } Future _loadAsync(AppIconImageKey key, DecoderCallback decode) async { - final Uint8List bytes = await AndroidAppService.getAppIcon(key.packageName, key.sizePixels); + final bytes = await AndroidAppService.getAppIcon(key.packageName, key.sizePixels); if (bytes.lengthInBytes == 0) { return null; } diff --git a/lib/widgets/common/image_providers/thumbnail_provider.dart b/lib/widgets/common/image_providers/thumbnail_provider.dart index 47468275b..dc57ef167 100644 --- a/lib/widgets/common/image_providers/thumbnail_provider.dart +++ b/lib/widgets/common/image_providers/thumbnail_provider.dart @@ -1,4 +1,3 @@ -import 'dart:typed_data'; import 'dart:ui' as ui show Codec; import 'package:aves/model/image_entry.dart'; @@ -45,7 +44,7 @@ class ThumbnailProvider extends ImageProvider { Future _loadAsync(ThumbnailProviderKey key, DecoderCallback decode) async { final dimPixels = (extent * key.devicePixelRatio).round(); - final Uint8List bytes = await ImageFileService.getThumbnail(key.entry, dimPixels, dimPixels); + final bytes = await ImageFileService.getThumbnail(key.entry, dimPixels, dimPixels); if (bytes.lengthInBytes == 0) { return null; } diff --git a/lib/widgets/common/image_providers/uri_image_provider.dart b/lib/widgets/common/image_providers/uri_image_provider.dart index cf23596d7..c6c452ec7 100644 --- a/lib/widgets/common/image_providers/uri_image_provider.dart +++ b/lib/widgets/common/image_providers/uri_image_provider.dart @@ -1,4 +1,3 @@ -import 'dart:typed_data'; import 'dart:ui' as ui show Codec; import 'package:aves/model/image_file_service.dart'; @@ -36,7 +35,7 @@ class UriImage extends ImageProvider { Future _loadAsync(UriImage key, DecoderCallback decode) async { assert(key == this); - final Uint8List bytes = await ImageFileService.getImage(uri, mimeType); + final bytes = await ImageFileService.getImage(uri, mimeType); if (bytes.lengthInBytes == 0) { return null; } diff --git a/lib/widgets/fullscreen/fullscreen_body.dart b/lib/widgets/fullscreen/fullscreen_body.dart index 7a0959d09..5bc8f8a1a 100644 --- a/lib/widgets/fullscreen/fullscreen_body.dart +++ b/lib/widgets/fullscreen/fullscreen_body.dart @@ -324,8 +324,8 @@ class FullscreenVerticalPageView extends StatefulWidget { class _FullscreenVerticalPageViewState extends State { bool _isInitialScale = true; - ValueNotifier _backgroundColorNotifier = ValueNotifier(Colors.black); - ValueNotifier _infoPageVisibleNotifier = ValueNotifier(false); + final ValueNotifier _backgroundColorNotifier = ValueNotifier(Colors.black); + final ValueNotifier _infoPageVisibleNotifier = ValueNotifier(false); CollectionLens get collection => widget.collection; diff --git a/lib/widgets/fullscreen/info/info_page.dart b/lib/widgets/fullscreen/info/info_page.dart index 392df9ddb..44be7ae30 100644 --- a/lib/widgets/fullscreen/info/info_page.dart +++ b/lib/widgets/fullscreen/info/info_page.dart @@ -30,7 +30,7 @@ class InfoPage extends StatefulWidget { } class InfoPageState extends State { - ScrollController _scrollController = ScrollController(); + final ScrollController _scrollController = ScrollController(); bool _scrollStartFromTop = false; CollectionLens get collection => widget.collection; @@ -172,7 +172,7 @@ class SectionRow extends StatelessWidget { @override Widget build(BuildContext context) { - const double dim = 32; + const dim = 32.0; final buildDivider = () => const SizedBox( width: dim, child: Divider( diff --git a/lib/widgets/fullscreen/info/location_section.dart b/lib/widgets/fullscreen/info/location_section.dart index 751b0a508..76791f172 100644 --- a/lib/widgets/fullscreen/info/location_section.dart +++ b/lib/widgets/fullscreen/info/location_section.dart @@ -73,8 +73,8 @@ class _LocationSectionState extends State { final showMap = (_loadedUri == entry.uri) || (entry.hasGps && widget.visibleNotifier.value); if (showMap) { _loadedUri = entry.uri; - String location = ''; - final List filters = []; + var location = ''; + final filters = []; if (entry.isLocated) { final address = entry.addressDetails; location = address.addressLine; @@ -179,7 +179,7 @@ class ImageMapState extends State with AutomaticKeepAliveClientMixin { target: widget.latLng, zoom: widget.initialZoom, ), - onMapCreated: (controller) => setState(() => this._controller = controller), + onMapCreated: (controller) => setState(() => _controller = controller), rotateGesturesEnabled: false, scrollGesturesEnabled: false, zoomGesturesEnabled: false, diff --git a/lib/widgets/stats.dart b/lib/widgets/stats.dart index 387483264..a5ab52d25 100644 --- a/lib/widgets/stats.dart +++ b/lib/widgets/stats.dart @@ -20,7 +20,7 @@ import 'package:percent_indicator/linear_percent_indicator.dart'; class StatsPage extends StatelessWidget { final CollectionLens collection; - final Map entryCountPerCity = Map(), entryCountPerCountry = Map(), entryCountPerTag = Map(); + final Map entryCountPerCity = {}, entryCountPerCountry = {}, entryCountPerTag = {}; List get entries => collection.sortedEntries; @@ -54,7 +54,7 @@ class StatsPage extends StatelessWidget { final catalogued = entries.where((entry) => entry.isCatalogued); final withGps = catalogued.where((entry) => entry.hasGps); final withGpsPercent = withGps.length / collection.entryCount; - final Map byMimeTypes = groupBy(entries, (entry) => entry.mimeType).map((k, v) => MapEntry(k, v.length)); + final byMimeTypes = groupBy(entries, (entry) => entry.mimeType).map((k, v) => MapEntry(k, v.length)); final imagesByMimeTypes = Map.fromEntries(byMimeTypes.entries.where((kv) => kv.key.startsWith('image/'))); final videoByMimeTypes = Map.fromEntries(byMimeTypes.entries.where((kv) => kv.key.startsWith('video/'))); child = ListView( @@ -127,9 +127,8 @@ class StatsPage extends StatelessWidget { ]; return LayoutBuilder(builder: (context, constraints) { - final mq = MediaQuery.of(context); final availableWidth = constraints.maxWidth; - final double dim = max(mimeDonutMinWidth, availableWidth / (availableWidth > 4 * mimeDonutMinWidth ? 4 : 2)); + final dim = max(mimeDonutMinWidth, availableWidth / (availableWidth > 4 * mimeDonutMinWidth ? 4 : 2)); final donut = Container( width: dim, diff --git a/pubspec.lock b/pubspec.lock index 933710301..251cd285c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -168,7 +168,7 @@ packages: name: google_maps_flutter url: "https://pub.dartlang.org" source: hosted - version: "0.5.24+1" + version: "0.5.25+2" image: dependency: transitive description: @@ -266,14 +266,14 @@ packages: name: pdf url: "https://pub.dartlang.org" source: hosted - version: "1.5.0" + version: "1.6.0" pedantic: dependency: "direct main" description: name: pedantic url: "https://pub.dartlang.org" source: hosted - version: "1.8.0+1" + version: "1.9.0" percent_indicator: dependency: "direct main" description: @@ -287,14 +287,14 @@ packages: name: permission_handler url: "https://pub.dartlang.org" source: hosted - version: "4.4.0+hotfix.2" + version: "5.0.0+hotfix.2" permission_handler_platform_interface: dependency: transitive description: name: permission_handler_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "2.0.0" petitparser: dependency: transitive description: @@ -322,7 +322,7 @@ packages: name: printing url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "3.2.1" provider: dependency: "direct main" description: