Skip to content

Commit 473a892

Browse files
authored
Remove the "play-services-cronet" dependency in the example app when building package:cronet_http_embedded (#1103)
1 parent e79ebe1 commit 473a892

File tree

1 file changed

+29
-12
lines changed

1 file changed

+29
-12
lines changed

pkgs/cronet_http/tool/prepare_for_embedded.dart

Lines changed: 29 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ final _cronetVersionUri = Uri.https(
4242
'dl.google.com',
4343
'android/maven2/org/chromium/net/group-index.xml',
4444
);
45+
// Finds the Google Play Services Cronet dependency line. For example:
46+
// ' implementation "com.google.android.gms:play-services-cronet:18.0.1"'
47+
final implementationRegExp = RegExp(
48+
'^\\s*implementation [\'"]'
49+
'$_gmsDependencyName'
50+
':\\d+.\\d+.\\d+[\'"]',
51+
multiLine: true,
52+
);
4553

4654
void main(List<String> args) async {
4755
if (Directory.current.path.endsWith('tool')) {
@@ -51,7 +59,8 @@ void main(List<String> args) async {
5159
}
5260

5361
final latestVersion = await _getLatestCronetVersion();
54-
updateCronetDependency(latestVersion);
62+
updateBuildGradle(latestVersion);
63+
updateExampleBuildGradle();
5564
updatePubSpec();
5665
updateReadme();
5766
updateLibraryName();
@@ -75,22 +84,30 @@ Future<String> _getLatestCronetVersion() async {
7584
}
7685

7786
/// Update android/build.gradle.
78-
void updateCronetDependency(String latestVersion) {
79-
final fBuildGradle = File('${_packageDirectory.path}/android/build.gradle');
80-
final gradleContent = fBuildGradle.readAsStringSync();
81-
final implementationRegExp = RegExp(
82-
'^\\s*implementation [\'"]'
83-
'$_gmsDependencyName'
84-
':\\d+.\\d+.\\d+[\'"]',
85-
multiLine: true,
86-
);
87+
void updateBuildGradle(String latestVersion) {
88+
final buildGradle = File('${_packageDirectory.path}/android/build.gradle');
89+
final gradleContent = buildGradle.readAsStringSync();
8790
final newImplementation = '$_embeddedDependencyName:$latestVersion';
88-
print('Patching $newImplementation');
91+
print('Updating ${buildGradle.path}: adding $newImplementation');
8992
final newGradleContent = gradleContent.replaceAll(
9093
implementationRegExp,
9194
' implementation "$newImplementation"',
9295
);
93-
fBuildGradle.writeAsStringSync(newGradleContent);
96+
buildGradle.writeAsStringSync(newGradleContent);
97+
}
98+
99+
/// Remove the cronet reference from ./example/android/app/build.gradle.
100+
void updateExampleBuildGradle() {
101+
final buildGradle =
102+
File('${_packageDirectory.path}/example/android/app/build.gradle');
103+
final gradleContent = buildGradle.readAsStringSync();
104+
105+
print('Updating ${buildGradle.path}: removing cronet reference');
106+
final newGradleContent = gradleContent.replaceAll(
107+
implementationRegExp,
108+
' // NOTE: removed in package:cronet_http_embedded',
109+
);
110+
buildGradle.writeAsStringSync(newGradleContent);
94111
}
95112

96113
/// Update pubspec.yaml and example/pubspec.yaml.

0 commit comments

Comments
 (0)