@@ -42,6 +42,14 @@ final _cronetVersionUri = Uri.https(
42
42
'dl.google.com' ,
43
43
'android/maven2/org/chromium/net/group-index.xml' ,
44
44
);
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
+ );
45
53
46
54
void main (List <String > args) async {
47
55
if (Directory .current.path.endsWith ('tool' )) {
@@ -51,7 +59,8 @@ void main(List<String> args) async {
51
59
}
52
60
53
61
final latestVersion = await _getLatestCronetVersion ();
54
- updateCronetDependency (latestVersion);
62
+ updateBuildGradle (latestVersion);
63
+ updateExampleBuildGradle ();
55
64
updatePubSpec ();
56
65
updateReadme ();
57
66
updateLibraryName ();
@@ -75,22 +84,30 @@ Future<String> _getLatestCronetVersion() async {
75
84
}
76
85
77
86
/// 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 ();
87
90
final newImplementation = '$_embeddedDependencyName :$latestVersion ' ;
88
- print ('Patching $newImplementation ' );
91
+ print ('Updating ${ buildGradle . path }: adding $newImplementation ' );
89
92
final newGradleContent = gradleContent.replaceAll (
90
93
implementationRegExp,
91
94
' implementation "$newImplementation "' ,
92
95
);
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);
94
111
}
95
112
96
113
/// Update pubspec.yaml and example/pubspec.yaml.
0 commit comments