[cronet_http] ⬇️ Downgrade `minSdkVersion` to 21 (#1104)
diff --git a/.github/workflows/cronet.yml b/.github/workflows/cronet.yml
index 8e114a0..74571fb 100644
--- a/.github/workflows/cronet.yml
+++ b/.github/workflows/cronet.yml
@@ -62,7 +62,8 @@
# - .github/workflows/cronet.yml
# - pkgs/cronet_http/android/build.gradle
# - pkgs/cronet_http/example/android/app/build.gradle
- api-level: 28
- target: ${{ matrix.package == 'cronet_http_embedded' && 'google_apis' || 'playstore' }}
+ api-level: 21
+ arch: x86_64
+ target: ${{ matrix.package == 'cronet_http_embedded' && 'default' || 'google_apis' }}
profile: pixel
script: cd 'pkgs/${{ matrix.package }}/example' && flutter test --timeout=1200s integration_test/
diff --git a/pkgs/cronet_http/CHANGELOG.md b/pkgs/cronet_http/CHANGELOG.md
index 6cc73ab..fa461d5 100644
--- a/pkgs/cronet_http/CHANGELOG.md
+++ b/pkgs/cronet_http/CHANGELOG.md
@@ -1,6 +1,7 @@
## 1.0.1-wip
* Use `package:http_image_provider` in the example application.
+* Support Android API 21+.
## 1.0.0
diff --git a/pkgs/cronet_http/android/build.gradle b/pkgs/cronet_http/android/build.gradle
index 96bb197..af945d9 100644
--- a/pkgs/cronet_http/android/build.gradle
+++ b/pkgs/cronet_http/android/build.gradle
@@ -50,7 +50,7 @@
// - .github/workflows/cronet.yml
// - pkgs/cronet_http/android/build.gradle
// - pkgs/cronet_http/example/android/app/build.gradle
- minSdkVersion 28
+ minSdkVersion 21
}
defaultConfig {
@@ -65,6 +65,5 @@
}
dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "com.google.android.gms:play-services-cronet:18.0.1"
}
diff --git a/pkgs/cronet_http/example/android/app/build.gradle b/pkgs/cronet_http/example/android/app/build.gradle
index 1f7cd94..dfd7427 100644
--- a/pkgs/cronet_http/example/android/app/build.gradle
+++ b/pkgs/cronet_http/example/android/app/build.gradle
@@ -44,13 +44,11 @@
defaultConfig {
applicationId "io.flutter.cronet_http_example"
- // You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
// api-level/minSdkVersion should be help in sync in:
// - .github/workflows/cronet.yml
// - pkgs/cronet_http/android/build.gradle
// - pkgs/cronet_http/example/android/app/build.gradle
- minSdkVersion 28
+ minSdkVersion 21
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
@@ -70,7 +68,9 @@
}
dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ // TODO(#1112): org.jetbrains.kotlin:kotlin-bom artifact purpose is to align kotlin stdlib and related code versions.
+ // This should be removed when https://github.com/flutter/flutter/issues/125062 is fixed.
+ implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
// ""com.google.android.gms:play-services-cronet" is only present so that
// `jnigen` will work. Applications should not include this line.
implementation "com.google.android.gms:play-services-cronet:18.0.1"
diff --git a/pkgs/cronet_http/tool/prepare_for_embedded.dart b/pkgs/cronet_http/tool/prepare_for_embedded.dart
index aef0865..16a2c0b 100644
--- a/pkgs/cronet_http/tool/prepare_for_embedded.dart
+++ b/pkgs/cronet_http/tool/prepare_for_embedded.dart
@@ -29,6 +29,7 @@
import 'package:xml/xml.dart';
import 'package:yaml_edit/yaml_edit.dart';
+late final String _scriptName;
late final Directory _packageDirectory;
const _gmsDependencyName = 'com.google.android.gms:play-services-cronet';
@@ -52,12 +53,14 @@
);
void main(List<String> args) async {
- if (Directory.current.path.endsWith('tool')) {
- _packageDirectory = Directory.current.parent;
- } else {
- _packageDirectory = Directory.current;
- }
-
+ final script = Platform.script.toFilePath();
+ _scriptName = script.split(Platform.pathSeparator).last;
+ _packageDirectory = Directory(
+ Uri.directory(
+ '${script.replaceAll(_scriptName, '')}'
+ '..${Platform.pathSeparator}',
+ ).toFilePath(),
+ );
final latestVersion = await _getLatestCronetVersion();
updateBuildGradle(latestVersion);
updateExampleBuildGradle();
@@ -137,7 +140,9 @@
void updateImports() {
print('Updating imports in Dart files');
for (final file in _packageDirectory.listSync(recursive: true)) {
- if (file is File && file.path.endsWith('.dart')) {
+ if (file is File &&
+ file.path.endsWith('.dart') &&
+ !file.path.contains(_scriptName)) {
final updatedSource = file.readAsStringSync().replaceAll(
'package:cronet_http/cronet_http.dart',
'package:cronet_http_embedded/cronet_http_embedded.dart',