From 64f8e2a57b18d1d1b9a4382a63edc83ee52a0086 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 18 Feb 2024 17:00:56 -0500 Subject: [PATCH 1/6] Improved URL handling for F-Droid third party repos (#1399) --- lib/app_sources/fdroidrepo.dart | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/app_sources/fdroidrepo.dart b/lib/app_sources/fdroidrepo.dart index 7722d9f..43b656f 100644 --- a/lib/app_sources/fdroidrepo.dart +++ b/lib/app_sources/fdroidrepo.dart @@ -120,6 +120,22 @@ class FDroidRepo extends AppSource { var res = await sourceRequest( '$standardUrl${standardUrl.endsWith('/index.xml') ? '' : '/index.xml'}', additionalSettings); + if (res.statusCode != 200) { + var base = standardUrl.endsWith('/index.xml') + ? standardUrl + .split('/') + .reversed + .toList() + .sublist(1) + .reversed + .join('/') + : standardUrl; + res = await sourceRequest('$base/repo/index.xml', additionalSettings); + if (res.statusCode != 200) { + res = await sourceRequest( + '$base/fdroid/repo/index.xml', additionalSettings); + } + } if (res.statusCode == 200) { var body = parse(res.body); var foundApps = body.querySelectorAll('application').where((element) { @@ -168,7 +184,8 @@ class FDroidRepo extends AppSource { latestVersionReleases = [latestVersionReleases[0]]; } List apkUrls = latestVersionReleases - .map((e) => '$standardUrl/${e.querySelector('apkname')!.innerHtml}') + .map((e) => + '${res.request!.url.toString().split('/').reversed.toList().sublist(1).reversed.join('/')}/${e.querySelector('apkname')!.innerHtml}') .toList(); return APKDetails(latestVersion, getApkUrlsFromUrls(apkUrls), AppNames(authorName, appName), From 4db205dd9af5e7e64af5af126befa065e1a14aa3 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 18 Feb 2024 17:43:24 -0500 Subject: [PATCH 2/6] Fixed F-Droid repo search (#1400) + general search bugfixes --- lib/app_sources/fdroidrepo.dart | 52 +++++++++++++++++------------- lib/pages/add_app.dart | 2 +- lib/pages/import_export.dart | 2 +- lib/providers/source_provider.dart | 7 ++-- 4 files changed, 37 insertions(+), 26 deletions(-) diff --git a/lib/app_sources/fdroidrepo.dart b/lib/app_sources/fdroidrepo.dart index 43b656f..41e92df 100644 --- a/lib/app_sources/fdroidrepo.dart +++ b/lib/app_sources/fdroidrepo.dart @@ -1,5 +1,6 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:html/parser.dart'; +import 'package:http/http.dart'; import 'package:obtainium/components/generated_form.dart'; import 'package:obtainium/custom_errors.dart'; import 'package:obtainium/providers/source_provider.dart'; @@ -45,7 +46,7 @@ class FDroidRepo extends AppSource { String sourceSpecificStandardizeURL(String url) { var standardUri = Uri.parse(url); var pathSegments = standardUri.pathSegments; - if (pathSegments.last == 'index.xml') { + if (pathSegments.isNotEmpty && pathSegments.last == 'index.xml') { pathSegments.removeLast(); standardUri = standardUri.replace(path: pathSegments.join('/')); } @@ -60,7 +61,7 @@ class FDroidRepo extends AppSource { throw NoReleasesError(); } url = removeQueryParamsFromUrl(standardizeUrl(url)); - var res = await sourceRequest('$url/index.xml', {}); + var res = await sourceRequestWithURLVariants(url, {}); if (res.statusCode == 200) { var body = parse(res.body); Map> results = {}; @@ -72,7 +73,11 @@ class FDroidRepo extends AppSource { appId.contains(query) || appName.contains(query) || appDesc.contains(query)) { - results['$url?appId=$appId'] = [appName, appDesc]; + results[ + '${res.request!.url.toString().split('/').reversed.toList().sublist(1).reversed.join('/')}?appId=$appId'] = [ + appName, + appDesc + ]; } }); return results; @@ -102,6 +107,26 @@ class FDroidRepo extends AppSource { return app; } + Future sourceRequestWithURLVariants( + String url, + Map additionalSettings, + ) async { + var res = await sourceRequest( + '$url${url.endsWith('/index.xml') ? '' : '/index.xml'}', + additionalSettings); + if (res.statusCode != 200) { + var base = url.endsWith('/index.xml') + ? url.split('/').reversed.toList().sublist(1).reversed.join('/') + : url; + res = await sourceRequest('$base/repo/index.xml', additionalSettings); + if (res.statusCode != 200) { + res = await sourceRequest( + '$base/fdroid/repo/index.xml', additionalSettings); + } + } + return res; + } + @override Future getLatestAPKDetails( String standardUrl, @@ -117,25 +142,8 @@ class FDroidRepo extends AppSource { if (appIdOrName == null) { throw NoReleasesError(); } - var res = await sourceRequest( - '$standardUrl${standardUrl.endsWith('/index.xml') ? '' : '/index.xml'}', - additionalSettings); - if (res.statusCode != 200) { - var base = standardUrl.endsWith('/index.xml') - ? standardUrl - .split('/') - .reversed - .toList() - .sublist(1) - .reversed - .join('/') - : standardUrl; - res = await sourceRequest('$base/repo/index.xml', additionalSettings); - if (res.statusCode != 200) { - res = await sourceRequest( - '$base/fdroid/repo/index.xml', additionalSettings); - } - } + var res = + await sourceRequestWithURLVariants(standardUrl, additionalSettings); if (res.statusCode == 200) { var body = parse(res.body); var foundApps = body.querySelectorAll('application').where((element) { diff --git a/lib/pages/add_app.dart b/lib/pages/add_app.dart index e73829e..bb8bf27 100644 --- a/lib/pages/add_app.dart +++ b/lib/pages/add_app.dart @@ -163,7 +163,7 @@ class AddAppPageState extends State { app = await sourceProvider.getApp( pickedSource!, userInput.trim(), additionalSettings, trackOnlyOverride: trackOnly, - overrideSource: pickedSourceOverride, + sourceIsOverriden: pickedSourceOverride != null, inferAppIdIfOptional: inferAppIdIfOptional); // Only download the APK here if you need to for the package ID if (isTempId(app) && app.additionalSettings['trackOnly'] != true) { diff --git a/lib/pages/import_export.dart b/lib/pages/import_export.dart index 18a61dd..7e73d0a 100644 --- a/lib/pages/import_export.dart +++ b/lib/pages/import_export.dart @@ -213,7 +213,7 @@ class _ImportExportPageState extends State { setState(() { importInProgress = true; }); - if (values['url'] != source.hosts[0]) { + if (source.hosts.isEmpty || values['url'] != source.hosts[0]) { source = sourceProvider.getSource(values['url'], overrideSource: source.runtimeType.toString()); } diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index 486c101..d2c34bf 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -819,7 +819,7 @@ class SourceProvider { AppSource source, String url, Map additionalSettings, {App? currentApp, bool trackOnlyOverride = false, - String? overrideSource, + bool sourceIsOverriden = false, bool inferAppIdIfOptional = false}) async { if (trackOnlyOverride || source.enforceTrackOnly) { additionalSettings['trackOnly'] = true; @@ -887,7 +887,9 @@ class SourceProvider { categories: currentApp?.categories ?? const [], releaseDate: apk.releaseDate, changeLog: apk.changeLog, - overrideSource: overrideSource ?? currentApp?.overrideSource, + overrideSource: sourceIsOverriden + ? source.runtimeType.toString() + : currentApp?.overrideSource, allowIdChange: currentApp?.allowIdChange ?? trackOnly || (source.appIdInferIsOptional && @@ -911,6 +913,7 @@ class SourceProvider { apps.add(await getApp( source, url, + sourceIsOverriden: sourceOverride != null, getDefaultValuesFromFormItems( source.combinedAppSpecificSettingFormItems))); } catch (e) { From b4cf0f5d2982a5f0560f7295b2c80b5b2b6285fd Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 18 Feb 2024 18:00:03 -0500 Subject: [PATCH 3/6] Improved APK filter for F-Droid (#1386) --- lib/app_sources/fdroid.dart | 35 ++++++++++++++++++++------------ lib/app_sources/izzyondroid.dart | 6 +----- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/lib/app_sources/fdroid.dart b/lib/app_sources/fdroid.dart index 259f824..ac08801 100644 --- a/lib/app_sources/fdroid.dart +++ b/lib/app_sources/fdroid.dart @@ -76,16 +76,7 @@ class FDroid extends AppSource { 'https://$host/repo/$appId', standardUrl, name, - autoSelectHighestVersionCode: - additionalSettings['autoSelectHighestVersionCode'] == true, - trySelectingSuggestedVersionCode: - additionalSettings['trySelectingSuggestedVersionCode'] == true, - filterVersionsByRegEx: - (additionalSettings['filterVersionsByRegEx'] as String?) - ?.isNotEmpty == - true - ? additionalSettings['filterVersionsByRegEx'] - : null); + additionalSettings: additionalSettings); if (!hostChanged) { try { var res = await sourceRequest( @@ -166,12 +157,30 @@ class FDroid extends AppSource { APKDetails getAPKUrlsFromFDroidPackagesAPIResponse( Response res, String apkUrlPrefix, String standardUrl, String sourceName, - {bool autoSelectHighestVersionCode = false, - bool trySelectingSuggestedVersionCode = false, - String? filterVersionsByRegEx}) { + {Map additionalSettings = const {}}) { + var autoSelectHighestVersionCode = + additionalSettings['autoSelectHighestVersionCode'] == true; + var trySelectingSuggestedVersionCode = + additionalSettings['trySelectingSuggestedVersionCode'] == true; + var filterVersionsByRegEx = + (additionalSettings['filterVersionsByRegEx'] as String?)?.isNotEmpty == + true + ? additionalSettings['filterVersionsByRegEx'] + : null; + var apkFilterRegEx = + (additionalSettings['apkFilterRegEx'] as String?)?.isNotEmpty == true + ? additionalSettings['apkFilterRegEx'] + : null; if (res.statusCode == 200) { var response = jsonDecode(res.body); List releases = response['packages'] ?? []; + if (apkFilterRegEx != null) { + releases = releases.where((rel) { + String apk = '${apkUrlPrefix}_${rel['versionCode']}.apk'; + return filterApks([MapEntry(apk, apk)], apkFilterRegEx, false) + .isNotEmpty; + }).toList(); + } if (releases.isEmpty) { throw NoReleasesError(); } diff --git a/lib/app_sources/izzyondroid.dart b/lib/app_sources/izzyondroid.dart index ace8ed1..d49071e 100644 --- a/lib/app_sources/izzyondroid.dart +++ b/lib/app_sources/izzyondroid.dart @@ -50,10 +50,6 @@ class IzzyOnDroid extends AppSource { 'https://android.izzysoft.de/frepo/$appId', standardUrl, name, - autoSelectHighestVersionCode: - additionalSettings['autoSelectHighestVersionCode'] == true, - trySelectingSuggestedVersionCode: - additionalSettings['trySelectingSuggestedVersionCode'] == true, - filterVersionsByRegEx: additionalSettings['filterVersionsByRegEx']); + additionalSettings: additionalSettings); } } From db484f7b28316d8fab8a444258a83fae26f82d14 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 18 Feb 2024 18:13:17 -0500 Subject: [PATCH 4/6] Don't remove storage permission (#1391) --- android/app/src/main/AndroidManifest.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e03abab..fde611b 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -70,8 +70,6 @@ - + android:maxSdkVersion="29" />\ \ No newline at end of file From 34fd673e2566404a5ae9a19d5eac8246d0023387 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 18 Feb 2024 18:16:33 -0500 Subject: [PATCH 5/6] Jump in versionCode to fix updates in x86 versions (#1370) --- pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pubspec.yaml b/pubspec.yaml index 908e34b..6647728 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.2+252 # When changing this, update the tag in main() accordingly +version: 1.0.2+2252 # When changing this, update the tag in main() accordingly environment: sdk: '>=3.0.0 <4.0.0' From 13cd7e76c1173fa6a171310f8c7109dfc262cae6 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sun, 18 Feb 2024 18:19:29 -0500 Subject: [PATCH 6/6] Update Flutter + packages, increment version --- .flutter | 2 +- pubspec.lock | 126 ++++++++++++++++++++++++++++++++------------------- pubspec.yaml | 2 +- 3 files changed, 81 insertions(+), 49 deletions(-) diff --git a/.flutter b/.flutter index 4145645..bae5e49 160000 --- a/.flutter +++ b/.flutter @@ -1 +1 @@ -Subproject commit 41456452f29d64e8deb623a3c927524bcf9f111b +Subproject commit bae5e49bc2a867403c43b2aae2de8f8c33b037e4 diff --git a/pubspec.lock b/pubspec.lock index 40fb1c6..c777731 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -150,10 +150,10 @@ packages: dependency: transitive description: name: cross_file - sha256: fedaadfa3a6996f75211d835aaeb8fede285dae94262485698afd832371b9a5e + sha256: "2f9d2cbccb76127ba28528cb3ae2c2326a122446a83de5a056aaa3880d3882c5" url: "https://pub.dev" source: hosted - version: "0.3.3+8" + version: "0.3.3+7" crypto: dependency: "direct main" description: @@ -214,10 +214,10 @@ packages: dependency: "direct main" description: name: easy_localization - sha256: de63e3b422adfc97f256cbb3f8cf12739b6a4993d390f3cadb3f51837afaefe5 + sha256: "9c86754b22aaa3e74e471635b25b33729f958dd6fb83df0ad6612948a7b231af" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.4" easy_logger: dependency: transitive description: @@ -238,10 +238,10 @@ packages: dependency: transitive description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" file: dependency: transitive description: @@ -336,10 +336,10 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: "30088ce826b5b9cfbf9e8bece34c716c8a59fa54461dcae1e4ac01a94639e762" + sha256: "21b085a1c185e46701373866144ced56cfb7a0c33f63c916bb8fe2d0c1491278" url: "https://pub.dev" source: hosted - version: "0.6.18+3" + version: "0.6.19" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -394,10 +394,10 @@ packages: dependency: "direct main" description: name: http - sha256: a2bbf9d017fcced29139daa8ed2bba4ece450ab222871df93ca9eec6f80c34ba + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" http_parser: dependency: transitive description: @@ -410,10 +410,10 @@ packages: dependency: transitive description: name: image - sha256: "49a0d4b0c12402853d3f227fe7c315601b238d126aa4caa5dbb2dcf99421aa4a" + sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" url: "https://pub.dev" source: hosted - version: "4.1.6" + version: "4.1.7" intl: dependency: transitive description: @@ -438,6 +438,30 @@ packages: url: "https://pub.dev" source: hosted version: "4.8.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" lints: dependency: transitive description: @@ -458,26 +482,26 @@ packages: dependency: transitive description: name: matcher - sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb url: "https://pub.dev" source: hosted - version: "0.12.16" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" mime: dependency: transitive description: @@ -506,10 +530,10 @@ packages: dependency: transitive description: name: path - sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" url: "https://pub.dev" source: hosted - version: "1.8.3" + version: "1.9.0" path_provider: dependency: "direct main" description: @@ -562,26 +586,26 @@ packages: dependency: "direct main" description: name: permission_handler - sha256: "45ff3fbcb99040fde55c528d5e3e6ca29171298a85436274d49c6201002087d6" + sha256: "74e962b7fad7ff75959161bb2c0ad8fe7f2568ee82621c9c2660b751146bfe44" url: "https://pub.dev" source: hosted - version: "11.2.0" + version: "11.3.0" permission_handler_android: dependency: transitive description: name: permission_handler_android - sha256: "758284a0976772f9c744d6384fc5dc4834aa61e3f7aa40492927f244767374eb" + sha256: "1acac6bae58144b442f11e66621c062aead9c99841093c38f5bcdcc24c1c3474" url: "https://pub.dev" source: hosted - version: "12.0.3" + version: "12.0.5" permission_handler_apple: dependency: transitive description: name: permission_handler_apple - sha256: c6bf440f80acd2a873d3d91a699e4cc770f86e7e6b576dda98759e8b92b39830 + sha256: bdafc6db74253abb63907f4e357302e6bb786ab41465e8635f362ee71fd8707b url: "https://pub.dev" source: hosted - version: "9.3.0" + version: "9.4.0" permission_handler_html: dependency: transitive description: @@ -594,10 +618,10 @@ packages: dependency: transitive description: name: permission_handler_platform_interface - sha256: "5c43148f2bfb6d14c5a8162c0a712afe891f2d847f35fcff29c406b37da43c3c" + sha256: "23dfba8447c076ab5be3dee9ceb66aad345c4a648f0cac292c77b1eb0e800b78" url: "https://pub.dev" source: hosted - version: "4.1.0" + version: "4.2.0" permission_handler_windows: dependency: transitive description: @@ -706,10 +730,10 @@ packages: dependency: transitive description: name: shared_preferences_web - sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" + sha256: d762709c2bbe80626ecc819143013cc820fa49ca5e363620ee20a8b15a3e3daf url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.1" shared_preferences_windows: dependency: transitive description: @@ -722,10 +746,10 @@ packages: dependency: "direct main" description: name: shared_storage - sha256: "7c65a9d64f0f5521256be974cfd74010af12196657cec9f9fb7b03b2f11bcaf6" + sha256: cf20428d06af065311b71e09cbfbbfe431e979a3bf9180001c1952129b7c708f url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.8.1" sky_engine: dependency: transitive description: flutter @@ -839,10 +863,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "507dc655b1d9cb5ebc756032eb785f114e415f91557b73bf60b7e201dfedeb2f" + sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745 url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.3.0" url_launcher_ios: dependency: transitive description: @@ -871,18 +895,18 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: a932c3a8082e118f80a475ce692fde89dc20fddb24c57360b96bc56f7035de1f + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b + sha256: "7fd2f55fe86cea2897b963e864dc01a7eb0719ecc65fcef4c1cc3d686d718bb2" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.2.0" url_launcher_windows: dependency: transitive description: @@ -907,30 +931,38 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + url: "https://pub.dev" + source: hosted + version: "13.0.0" web: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: "1d9158c616048c38f712a6646e317a3426da10e884447626167240d45209cbad" url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.5.0" webview_flutter: dependency: "direct main" description: name: webview_flutter - sha256: d81b68e88cc353e546afb93fb38958e3717282c5ac6e5d3be4a4aef9fc3c1413 + sha256: "25e1b6e839e8cbfbd708abc6f85ed09d1727e24e08e08c6b8590d7c65c9a8932" url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.7.0" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: "4ea3c4e1b8ed590162b15b8a61b41b1ef3ff179a314627c16ce40c086d94b8af" + sha256: "3e5f4e9d818086b0d01a66fb1ff9cc72ab0cc58c71980e3d3661c5685ea0efb0" url: "https://pub.dev" source: hosted - version: "3.14.0" + version: "3.15.0" webview_flutter_platform_interface: dependency: transitive description: @@ -943,10 +975,10 @@ packages: dependency: transitive description: name: webview_flutter_wkwebview - sha256: b99ca8d8bae9c6b43d568218691aa537fb0aeae1d7d34eadf112a6aa36d26506 + sha256: "9bf168bccdf179ce90450b5f37e36fe263f591c9338828d6bf09b6f8d0f57f86" url: "https://pub.dev" source: hosted - version: "3.11.0" + version: "3.12.0" win32: dependency: transitive description: @@ -988,5 +1020,5 @@ packages: source: hosted version: "3.1.2" sdks: - dart: ">=3.2.3 <4.0.0" + dart: ">=3.3.0 <4.0.0" flutter: ">=3.16.6" diff --git a/pubspec.yaml b/pubspec.yaml index 6647728..610d06c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 1.0.2+2252 # When changing this, update the tag in main() accordingly +version: 1.0.3+2253 # When changing this, update the tag in main() accordingly environment: sdk: '>=3.0.0 <4.0.0'