diff --git a/pkgs/cronet_http/tool/prepare_for_embedded.dart b/pkgs/cronet_http/tool/prepare_for_embedded.dart index 3442bc6843..edbedb66b5 100644 --- a/pkgs/cronet_http/tool/prepare_for_embedded.dart +++ b/pkgs/cronet_http/tool/prepare_for_embedded.dart @@ -25,12 +25,13 @@ library; import 'dart:io'; -import 'package:http/http.dart' as http; -import 'package:xml/xml.dart'; import 'package:yaml_edit/yaml_edit.dart'; late final Directory _packageDirectory; +// For the latest version, see: +// https://mvnrepository.com/artifact/org.chromium.net/cronet-embedded +const _cronetEmbeddedVersion = '113.5672.61'; const _gmsDependencyName = 'com.google.android.gms:play-services-cronet'; const _embeddedDependencyName = 'org.chromium.net:cronet-embedded'; const _packageName = 'cronet_http_embedded'; @@ -38,9 +39,11 @@ const _packageDescription = 'An Android Flutter plugin that ' 'provides access to the Cronet HTTP client. ' 'Identical to package:cronet_http except that it embeds Cronet ' 'rather than relying on Google Play Services.'; -final _cronetVersionUri = Uri.https( - 'dl.google.com', - 'android/maven2/org/chromium/net/group-index.xml', +final implementationRegExp = RegExp( + '^\\s*implementation [\'"]' + '$_gmsDependencyName' + ':\\d+.\\d+.\\d+[\'"]', + multiLine: true, ); void main(List args) async { @@ -50,40 +53,18 @@ void main(List args) async { _packageDirectory = Directory.current; } - final latestVersion = await _getLatestCronetVersion(); - updateCronetDependency(latestVersion); + updateCronetDependency(_cronetEmbeddedVersion); + update2(); updatePubSpec(); updateReadme(); updateLibraryName(); updateImports(); } -Future _getLatestCronetVersion() async { - final response = await http.get(_cronetVersionUri); - final parsedXml = XmlDocument.parse(response.body); - final embeddedNode = parsedXml.children - .singleWhere((e) => e is XmlElement) - .children - .singleWhere((e) => e is XmlElement && e.name.local == 'cronet-embedded'); - final stableVersionReg = RegExp(r'^\d+.\d+.\d+$'); - final versions = embeddedNode.attributes - .singleWhere((e) => e.name.local == 'versions') - .value - .split(',') - .where((e) => stableVersionReg.stringMatch(e) == e); - return versions.last; -} - /// Update android/build.gradle. void updateCronetDependency(String latestVersion) { final fBuildGradle = File('${_packageDirectory.path}/android/build.gradle'); final gradleContent = fBuildGradle.readAsStringSync(); - final implementationRegExp = RegExp( - '^\\s*implementation [\'"]' - '$_gmsDependencyName' - ':\\d+.\\d+.\\d+[\'"]', - multiLine: true, - ); final newImplementation = '$_embeddedDependencyName:$latestVersion'; print('Patching $newImplementation'); final newGradleContent = gradleContent.replaceAll( @@ -93,6 +74,17 @@ void updateCronetDependency(String latestVersion) { fBuildGradle.writeAsStringSync(newGradleContent); } +void update2() { + final fBuildGradle = + File('${_packageDirectory.path}/example/android/app/build.gradle'); + final gradleContent = fBuildGradle.readAsStringSync(); + final newGradleContent = gradleContent.replaceAll( + implementationRegExp, + '', + ); + fBuildGradle.writeAsStringSync(newGradleContent); +} + /// Update pubspec.yaml and example/pubspec.yaml. void updatePubSpec() { print('Updating pubspec.yaml');