packages upgrade

This commit is contained in:
Thibault Deckers 2022-05-09 09:33:40 +09:00
parent 5b7caa7caf
commit 194845fa56
12 changed files with 93 additions and 85 deletions

View file

@ -156,12 +156,12 @@ dependencies {
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'com.caverock:androidsvg-aar:1.4' implementation 'com.caverock:androidsvg-aar:1.4'
implementation 'com.commonsware.cwac:document:0.4.1' implementation 'com.commonsware.cwac:document:0.4.1'
implementation 'com.drewnoakes:metadata-extractor:2.17.0' implementation 'com.drewnoakes:metadata-extractor:2.18.0'
// forked, built by JitPack, cf https://jitpack.io/p/deckerst/Android-TiffBitmapFactory // forked, built by JitPack, cf https://jitpack.io/p/deckerst/Android-TiffBitmapFactory
implementation 'com.github.deckerst:Android-TiffBitmapFactory:876e53870a' implementation 'com.github.deckerst:Android-TiffBitmapFactory:876e53870a'
// forked, built by JitPack, cf https://jitpack.io/p/deckerst/pixymeta-android // forked, built by JitPack, cf https://jitpack.io/p/deckerst/pixymeta-android
implementation 'com.github.deckerst:pixymeta-android:706bd73d6e' implementation 'com.github.deckerst:pixymeta-android:706bd73d6e'
implementation 'com.github.bumptech.glide:glide:4.13.1' implementation 'com.github.bumptech.glide:glide:4.13.2'
implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300' implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300'
kapt 'androidx.annotation:annotation:1.3.0' kapt 'androidx.annotation:annotation:1.3.0'

View file

@ -35,6 +35,15 @@
<intent> <intent>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
</intent> </intent>
<!--
from Android R, `url_launcher` method `canLaunchUrl()` will return false,
if appropriate intents are not declared, cf https://pub.dev/packages/url_launcher#configuration=
-->
<!-- to open https URLs -->
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https" />
</intent>
</queries> </queries>
<application <application

View file

@ -79,7 +79,7 @@ class _AppReferenceState extends State<AppReference> {
size: 24, size: 24,
), ),
text: l10n.aboutLinkSources, text: l10n.aboutLinkSources,
url: Constants.avesGithub, urlString: Constants.avesGithub,
), ),
LinkChip( LinkChip(
leading: const Icon( leading: const Icon(
@ -87,7 +87,7 @@ class _AppReferenceState extends State<AppReference> {
size: 22, size: 22,
), ),
text: l10n.aboutLinkLicense, text: l10n.aboutLinkLicense,
url: '${Constants.avesGithub}/blob/main/LICENSE', urlString: '${Constants.avesGithub}/blob/main/LICENSE',
), ),
LinkChip( LinkChip(
leading: const Icon( leading: const Icon(

View file

@ -36,6 +36,8 @@ class _BugReportState extends State<BugReport> with FeedbackMixin {
late Future<String> _infoLoader; late Future<String> _infoLoader;
bool _showInstructions = false; bool _showInstructions = false;
static final bugReportUri = Uri.parse('${Constants.avesGithub}/issues/new?labels=type%3Abug&template=bug_report.md');
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -198,6 +200,8 @@ class _BugReportState extends State<BugReport> with FeedbackMixin {
} }
Future<void> _goToGithub() async { Future<void> _goToGithub() async {
await launch('${Constants.avesGithub}/issues/new?labels=type%3Abug&template=bug_report.md'); if (await canLaunchUrl(bugReportUri)) {
await launchUrl(bugReportUri, mode: LaunchMode.externalApplication);
}
} }
} }

View file

@ -40,7 +40,7 @@ class AboutCredits extends StatelessWidget {
const WidgetSpan( const WidgetSpan(
child: LinkChip( child: LinkChip(
text: 'World Atlas', text: 'World Atlas',
url: 'https://github.com/topojson/world-atlas', urlString: 'https://github.com/topojson/world-atlas',
textStyle: TextStyle(fontWeight: FontWeight.bold), textStyle: TextStyle(fontWeight: FontWeight.bold),
), ),
alignment: PlaceholderAlignment.middle, alignment: PlaceholderAlignment.middle,

View file

@ -138,14 +138,14 @@ class LicenseRow extends StatelessWidget {
children: [ children: [
LinkChip( LinkChip(
text: package.name, text: package.name,
url: package.sourceUrl, urlString: package.sourceUrl,
textStyle: const TextStyle(fontWeight: FontWeight.bold), textStyle: const TextStyle(fontWeight: FontWeight.bold),
), ),
Padding( Padding(
padding: const EdgeInsetsDirectional.only(start: 16), padding: const EdgeInsetsDirectional.only(start: 16),
child: LinkChip( child: LinkChip(
text: package.license, text: package.license,
url: package.licenseUrl, urlString: package.licenseUrl,
color: subColor, color: subColor,
), ),
), ),

View file

@ -5,7 +5,7 @@ import 'package:url_launcher/url_launcher.dart';
class LinkChip extends StatelessWidget { class LinkChip extends StatelessWidget {
final Widget? leading; final Widget? leading;
final String text; final String text;
final String? url; final String? urlString;
final Color? color; final Color? color;
final TextStyle? textStyle; final TextStyle? textStyle;
final VoidCallback? onTap; final VoidCallback? onTap;
@ -16,7 +16,7 @@ class LinkChip extends StatelessWidget {
Key? key, Key? key,
this.leading, this.leading,
required this.text, required this.text,
this.url, this.urlString,
this.color, this.color,
this.textStyle, this.textStyle,
this.onTap, this.onTap,
@ -24,15 +24,18 @@ class LinkChip extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final _url = url; final _urlString = urlString;
return DefaultTextStyle.merge( return DefaultTextStyle.merge(
style: (textStyle ?? const TextStyle()).copyWith(color: color), style: (textStyle ?? const TextStyle()).copyWith(color: color),
child: InkWell( child: InkWell(
borderRadius: borderRadius, borderRadius: borderRadius,
onTap: onTap ?? onTap: onTap ??
() async { () async {
if (_url != null && await canLaunch(_url)) { if (_urlString != null) {
await launch(_url); final url = Uri.parse(_urlString);
if (await canLaunchUrl(url)) {
await launchUrl(url, mode: LaunchMode.externalApplication);
}
} }
}, },
child: Padding( child: Padding(

View file

@ -44,8 +44,11 @@ class MarkdownContainer extends StatelessWidget {
data: data, data: data,
selectable: true, selectable: true,
onTapLink: (text, href, title) async { onTapLink: (text, href, title) async {
if (href != null && await canLaunch(href)) { if (href != null) {
await launch(href); final url = Uri.parse(href);
if (await canLaunchUrl(url)) {
await launchUrl(url, mode: LaunchMode.externalApplication);
}
} }
}, },
shrinkWrap: true, shrinkWrap: true,

View file

@ -38,8 +38,11 @@ class Attribution extends StatelessWidget {
p: theme.textTheme.caption!.merge(const TextStyle(fontSize: InfoRowGroup.fontSize)), p: theme.textTheme.caption!.merge(const TextStyle(fontSize: InfoRowGroup.fontSize)),
), ),
onTapLink: (text, href, title) async { onTapLink: (text, href, title) async {
if (href != null && await canLaunch(href)) { if (href != null) {
await launch(href); final url = Uri.parse(href);
if (await canLaunchUrl(url)) {
await launchUrl(url, mode: LaunchMode.externalApplication);
}
} }
}, },
), ),

View file

@ -72,35 +72,27 @@ class FilterTable<T extends Comparable> extends StatelessWidget {
), ),
), ),
if (showPercentIndicator) if (showPercentIndicator)
// as of percent_indicator v4.0.0, bar radius is not correctly applied to progress bar FutureBuilder<Color>(
// when width is lower than height, so we clip it and handle padding outside future: filter.color(context),
Padding( builder: (context, snapshot) {
padding: EdgeInsets.symmetric(horizontal: lineHeight), final color = snapshot.data;
child: ClipRRect( return LinearPercentIndicator(
borderRadius: BorderRadius.all(barRadius), percent: percent,
child: FutureBuilder<Color>( lineHeight: lineHeight,
future: filter.color(context), backgroundColor: theme.colorScheme.onPrimary.withOpacity(.1),
builder: (context, snapshot) { progressColor: isMonochrome ? theme.colorScheme.secondary : color,
final color = snapshot.data; animation: true,
return LinearPercentIndicator( isRTL: isRtl,
percent: percent, barRadius: barRadius,
lineHeight: lineHeight, center: Text(
backgroundColor: theme.colorScheme.onPrimary.withOpacity(.1), intl.NumberFormat.percentPattern().format(percent),
progressColor: isMonochrome ? theme.colorScheme.secondary : color, style: TextStyle(
animation: true, shadows: theme.brightness == Brightness.dark ? Constants.embossShadows : null,
isRTL: isRtl, ),
barRadius: barRadius, ),
center: Text( padding: EdgeInsets.symmetric(horizontal: lineHeight),
intl.NumberFormat.percentPattern().format(percent), );
style: TextStyle( },
shadows: theme.brightness == Brightness.dark ? Constants.embossShadows : null,
),
),
padding: EdgeInsets.zero,
);
},
),
),
), ),
Text( Text(
'$count', '$count',

View file

@ -110,36 +110,30 @@ class StatsPage extends StatelessWidget {
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
child: Column( child: Column(
children: [ children: [
// as of percent_indicator v4.0.0, bar radius is not correctly applied to progress bar
// when width is lower than height, so we clip it and handle padding outside
Row( Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
const Icon(AIcons.location), const Icon(AIcons.location),
SizedBox(width: lineHeight),
Expanded( Expanded(
child: ClipRRect( child: LinearPercentIndicator(
borderRadius: BorderRadius.all(barRadius), percent: withGpsPercent,
child: LinearPercentIndicator( lineHeight: lineHeight,
percent: withGpsPercent, backgroundColor: theme.colorScheme.onPrimary.withOpacity(.1),
lineHeight: lineHeight, progressColor: theme.colorScheme.secondary,
backgroundColor: theme.colorScheme.onPrimary.withOpacity(.1), animation: animate,
progressColor: theme.colorScheme.secondary, isRTL: context.isRtl,
animation: animate, barRadius: barRadius,
isRTL: context.isRtl, center: Text(
barRadius: barRadius, intl.NumberFormat.percentPattern().format(withGpsPercent),
center: Text( style: TextStyle(
intl.NumberFormat.percentPattern().format(withGpsPercent), shadows: isDark ? Constants.embossShadows : null,
style: TextStyle(
shadows: isDark ? Constants.embossShadows : null,
),
), ),
padding: EdgeInsets.zero,
), ),
padding: EdgeInsets.symmetric(horizontal: lineHeight),
), ),
), ),
// end padding to match leading, so that inside label is aligned with outside label below // end padding to match leading, so that inside label is aligned with outside label below
SizedBox(width: lineHeight + 24), const SizedBox(width: 24),
], ],
), ),
const SizedBox(height: 8), const SizedBox(height: 8),

View file

@ -326,42 +326,42 @@ packages:
name: firebase_core name: firebase_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
firebase_core_platform_interface: firebase_core_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_platform_interface name: firebase_core_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.2.5" version: "4.3.0"
firebase_core_web: firebase_core_web:
dependency: transitive dependency: transitive
description: description:
name: firebase_core_web name: firebase_core_web
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.6.2" version: "1.6.3"
firebase_crashlytics: firebase_crashlytics:
dependency: transitive dependency: transitive
description: description:
name: firebase_crashlytics name: firebase_crashlytics
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.6.3" version: "2.7.2"
firebase_crashlytics_platform_interface: firebase_crashlytics_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: firebase_crashlytics_platform_interface name: firebase_crashlytics_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.2.4" version: "3.2.5"
flex_color_picker: flex_color_picker:
dependency: "direct main" dependency: "direct main"
description: description:
name: flex_color_picker name: flex_color_picker
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.4.0" version: "2.5.0"
fluster: fluster:
dependency: "direct main" dependency: "direct main"
description: description:
@ -489,7 +489,7 @@ packages:
name: google_maps_flutter name: google_maps_flutter
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.3" version: "2.1.4"
google_maps_flutter_platform_interface: google_maps_flutter_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -629,7 +629,7 @@ packages:
name: mime name: mime
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.1" version: "1.0.2"
motion_sensors: motion_sensors:
dependency: transitive dependency: transitive
description: description:
@ -776,7 +776,7 @@ packages:
name: percent_indicator name: percent_indicator
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.0.0" version: "4.0.1"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
@ -895,35 +895,35 @@ packages:
name: quiver name: quiver
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.0.1+1" version: "3.1.0"
screen_brightness: screen_brightness:
dependency: "direct main" dependency: "direct main"
description: description:
name: screen_brightness name: screen_brightness
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.4" version: "0.2.0"
screen_brightness_android: screen_brightness_android:
dependency: transitive dependency: transitive
description: description:
name: screen_brightness_android name: screen_brightness_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.4" version: "0.1.0"
screen_brightness_ios: screen_brightness_ios:
dependency: transitive dependency: transitive
description: description:
name: screen_brightness_ios name: screen_brightness_ios
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.5" version: "0.1.0"
screen_brightness_platform_interface: screen_brightness_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: screen_brightness_platform_interface name: screen_brightness_platform_interface
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.0.4" version: "0.1.0"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1161,14 +1161,14 @@ packages:
name: url_launcher name: url_launcher
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.20" version: "6.1.0"
url_launcher_android: url_launcher_android:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_android name: url_launcher_android
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "6.0.15" version: "6.0.16"
url_launcher_ios: url_launcher_ios:
dependency: transitive dependency: transitive
description: description:
@ -1238,7 +1238,7 @@ packages:
name: web_socket_channel name: web_socket_channel
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" version: "2.2.0"
webdriver: webdriver:
dependency: transitive dependency: transitive
description: description:
@ -1252,14 +1252,14 @@ packages:
name: webkit_inspection_protocol name: webkit_inspection_protocol
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.0" version: "1.0.1"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.5.1" version: "2.5.2"
wkt_parser: wkt_parser:
dependency: transitive dependency: transitive
description: description: