Remove the "play-services-cronet" dependency in the example app when building `package:cronet_http_embedded` (#1103)
diff --git a/pkgs/cronet_http/tool/prepare_for_embedded.dart b/pkgs/cronet_http/tool/prepare_for_embedded.dart
index 3442bc6..aef0865 100644
--- a/pkgs/cronet_http/tool/prepare_for_embedded.dart
+++ b/pkgs/cronet_http/tool/prepare_for_embedded.dart
@@ -42,6 +42,14 @@
'dl.google.com',
'android/maven2/org/chromium/net/group-index.xml',
);
+// Finds the Google Play Services Cronet dependency line. For example:
+// ' implementation "com.google.android.gms:play-services-cronet:18.0.1"'
+final implementationRegExp = RegExp(
+ '^\\s*implementation [\'"]'
+ '$_gmsDependencyName'
+ ':\\d+.\\d+.\\d+[\'"]',
+ multiLine: true,
+);
void main(List<String> args) async {
if (Directory.current.path.endsWith('tool')) {
@@ -51,7 +59,8 @@
}
final latestVersion = await _getLatestCronetVersion();
- updateCronetDependency(latestVersion);
+ updateBuildGradle(latestVersion);
+ updateExampleBuildGradle();
updatePubSpec();
updateReadme();
updateLibraryName();
@@ -75,22 +84,30 @@
}
/// 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,
- );
+void updateBuildGradle(String latestVersion) {
+ final buildGradle = File('${_packageDirectory.path}/android/build.gradle');
+ final gradleContent = buildGradle.readAsStringSync();
final newImplementation = '$_embeddedDependencyName:$latestVersion';
- print('Patching $newImplementation');
+ print('Updating ${buildGradle.path}: adding $newImplementation');
final newGradleContent = gradleContent.replaceAll(
implementationRegExp,
' implementation "$newImplementation"',
);
- fBuildGradle.writeAsStringSync(newGradleContent);
+ buildGradle.writeAsStringSync(newGradleContent);
+}
+
+/// Remove the cronet reference from ./example/android/app/build.gradle.
+void updateExampleBuildGradle() {
+ final buildGradle =
+ File('${_packageDirectory.path}/example/android/app/build.gradle');
+ final gradleContent = buildGradle.readAsStringSync();
+
+ print('Updating ${buildGradle.path}: removing cronet reference');
+ final newGradleContent = gradleContent.replaceAll(
+ implementationRegExp,
+ ' // NOTE: removed in package:cronet_http_embedded',
+ );
+ buildGradle.writeAsStringSync(newGradleContent);
}
/// Update pubspec.yaml and example/pubspec.yaml.