Skip to content

Commit b93cc40

Browse files
[various] Scrubs pre-SDK-21 Android code (#9112)
- Removes any annotations or runtime checks related to Android API 20 or 21, as 21 is the minimum API version supported by the versions of Flutter these plugins support. - Removes comment/README references to limitations for <21. - Updates READMEs for app-facing packages to reflect the current support levels. Fixes flutter/flutter#157106 ## Pre-Review Checklist [^1]: Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling.
1 parent bfb42a6 commit b93cc40

File tree

80 files changed

+136
-136
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+136
-136
lines changed

packages/camera/camera_android/android/src/test/java/io/flutter/plugins/camera/CameraTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ public void setDescriptionWhileRecording_errorsWhenUnsupported() {
663663
camera.mediaRecorder = mockMediaRecorder;
664664
camera.recordingVideo = true;
665665
camera.videoRenderer = mockVideoRenderer;
666-
SdkCapabilityChecker.SDK_VERSION = Build.VERSION_CODES.LOLLIPOP;
666+
SdkCapabilityChecker.SDK_VERSION = Build.VERSION_CODES.N;
667667

668668
final CameraProperties newCameraProperties = mock(CameraProperties.class);
669669
assertThrows(

packages/camera/camera_android/example/android/build.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ tasks.register("clean", Delete) {
3030
gradle.projectsEvaluated {
3131
project(":camera_android") {
3232
tasks.withType(JavaCompile) {
33-
options.compilerArgs << "-Xlint:all" << "-Werror"
33+
// Ignore classfile due to https://issuetracker.google.com/issues/342067844
34+
options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile"
3435
}
3536
}
3637
}

packages/espresso/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.4.0+7
2+
3+
* Removes obsolete code related to supporting SDK <21.
4+
15
## 0.4.0+6
26

37
* Updates compileSdk 34 to flutter.compileSdkVersion.

packages/espresso/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Provides bindings for Espresso tests of Flutter Android apps.
44

55
| | Android |
66
|-------------|---------|
7-
| **Support** | SDK 16+ |
7+
| **Support** | SDK 21+ |
88

99
## Installation
1010

packages/espresso/android/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ android {
2626
compileSdk = flutter.compileSdkVersion
2727

2828
defaultConfig {
29-
minSdkVersion 19
29+
minSdkVersion 21
3030
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3131
}
3232

packages/espresso/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ description: Java classes for testing Flutter apps using Espresso.
33
Allows driving Flutter widgets from a native Espresso test.
44
repository: https://github.com/flutter/packages/tree/main/packages/espresso
55
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+espresso%22
6-
version: 0.4.0+6
6+
version: 0.4.0+7
77

88
environment:
99
sdk: ^3.6.0

packages/file_selector/file_selector/CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## NEXT
22

3+
* Updates README to indicate that Andoid SDK <21 is no longer supported.
34
* Updates minimum supported SDK version to Flutter 3.22/Dart 3.4.
45

56
## 1.0.3

packages/file_selector/file_selector/README.md

+2-4
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ A Flutter plugin that manages files and interactions with file dialogs.
88

99
| | Android | iOS | Linux | macOS | Web | Windows |
1010
|-------------|---------|---------|-------|--------|-----|-------------|
11-
| **Support** | SDK 19+ | iOS 12+ | Any | 10.14+ | Any | Windows 10+ |
11+
| **Support** | SDK 21+ | iOS 12+ | Any | 10.14+ | Any | Windows 10+ |
1212

1313
## Setup
1414

@@ -114,9 +114,7 @@ pass different `XTypeGroup`s based on `Platform`.
114114
| Choose a single file | Pick a file/image | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
115115
| Choose multiple files | Pick multiple files/images | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
116116
| Choose a save location | Pick a directory to save a file in ||| ✔️ | ✔️ | ✔️ ||
117-
| Choose a directory | Pick a directory and get its path | ✔️† || ✔️ | ✔️ | ✔️ ||
118-
119-
† Choosing a directory is no supported on versions of Android before SDK 21 (Lollipop).
117+
| Choose a directory | Pick a directory and get its path | ✔️ || ✔️ | ✔️ | ✔️ ||
120118

121119
[example]:./example
122120
[entitlement]: https://docs.flutter.dev/desktop#entitlements-and-the-app-sandbox

packages/file_selector/file_selector_android/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.5.1+14
2+
3+
* Removes obsolete code related to supporting SDK <21.
4+
15
## 0.5.1+13
26

37
* Updates compileSdk 34 to flutter.compileSdkVersion.

packages/file_selector/file_selector_android/android/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ android {
3131
}
3232

3333
defaultConfig {
34-
minSdkVersion 19
34+
minSdkVersion 21
3535
}
3636

3737
dependencies {

packages/file_selector/file_selector_android/android/src/main/java/dev/flutter/packages/file_selector_android/FileSelectorApiImpl.java

-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import static dev.flutter.packages.file_selector_android.FileUtils.FILE_SELECTOR_EXCEPTION_PLACEHOLDER_PATH;
88

9-
import android.annotation.TargetApi;
109
import android.app.Activity;
1110
import android.content.ClipData;
1211
import android.content.ContentResolver;
@@ -193,17 +192,9 @@ public void onResult(int resultCode, @Nullable Intent data) {
193192
}
194193

195194
@Override
196-
@TargetApi(21)
197195
public void getDirectoryPath(
198196
@Nullable String initialDirectory,
199197
@NonNull GeneratedFileSelectorApi.NullableResult<String> result) {
200-
if (!sdkChecker.sdkIsAtLeast(android.os.Build.VERSION_CODES.LOLLIPOP)) {
201-
result.error(
202-
new UnsupportedOperationException(
203-
"Selecting a directory is only supported on versions >= 21"));
204-
return;
205-
}
206-
207198
final Intent intent = objectFactory.newIntent(Intent.ACTION_OPEN_DOCUMENT_TREE);
208199
trySetInitialDirectory(intent, initialDirectory);
209200

packages/file_selector/file_selector_android/android/src/test/java/dev/flutter/packages/file_selector_android/FileSelectorAndroidPluginTest.java

+1-17
Original file line numberDiff line numberDiff line change
@@ -443,7 +443,7 @@ public void getDirectoryPathReturnsSuccessfully() {
443443
new FileSelectorApiImpl(
444444
mockActivityBinding,
445445
mockObjectFactory,
446-
(version) -> Build.VERSION_CODES.LOLLIPOP >= version);
446+
(version) -> Build.VERSION.SDK_INT >= version);
447447

448448
final GeneratedFileSelectorApi.NullableResult mockResult =
449449
mock(GeneratedFileSelectorApi.NullableResult.class);
@@ -465,20 +465,4 @@ public void getDirectoryPathReturnsSuccessfully() {
465465
}
466466
}
467467
}
468-
469-
@Test
470-
public void getDirectoryPath_errorsForUnsupportedVersion() {
471-
final FileSelectorApiImpl fileSelectorApi =
472-
new FileSelectorApiImpl(
473-
mockActivityBinding,
474-
mockObjectFactory,
475-
(version) -> Build.VERSION_CODES.KITKAT >= version);
476-
477-
@SuppressWarnings("unchecked")
478-
final GeneratedFileSelectorApi.NullableResult<String> mockResult =
479-
mock(GeneratedFileSelectorApi.NullableResult.class);
480-
fileSelectorApi.getDirectoryPath(null, mockResult);
481-
482-
verify(mockResult).error(any());
483-
}
484468
}

packages/file_selector/file_selector_android/example/android/build.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ tasks.register("clean", Delete) {
3030
gradle.projectsEvaluated {
3131
project(":file_selector_android") {
3232
tasks.withType(JavaCompile) {
33-
options.compilerArgs << "-Xlint:all" << "-Werror"
33+
// Ignore classfile due to https://issuetracker.google.com/issues/342067844
34+
options.compilerArgs << "-Xlint:all" << "-Werror" << "-Xlint:-classfile"
3435
}
3536
}
3637
}

packages/file_selector/file_selector_android/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: file_selector_android
22
description: Android implementation of the file_selector package.
33
repository: https://github.com/flutter/packages/tree/main/packages/file_selector/file_selector_android
44
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22
5-
version: 0.5.1+13
5+
version: 0.5.1+14
66

77
environment:
88
sdk: ^3.6.0

packages/flutter_plugin_android_lifecycle/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.0.28
2+
3+
* Removes obsolete code related to supporting SDK <21.
4+
15
## 2.0.27
26

37
* Bumps flutter supported version to 3.27 and use flutter.compileSdkVersion.

packages/flutter_plugin_android_lifecycle/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ major version of the Android `Lifecycle` API they expect.
1111

1212
| | Android |
1313
|-------------|---------|
14-
| **Support** | SDK 16+ |
14+
| **Support** | SDK 21+ |
1515

1616
## Example
1717

packages/flutter_plugin_android_lifecycle/android/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ android {
2626
compileSdk = flutter.compileSdkVersion
2727

2828
defaultConfig {
29-
minSdkVersion 19
29+
minSdkVersion 21
3030
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3131
consumerProguardFiles 'proguard.txt'
3232
}

packages/flutter_plugin_android_lifecycle/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: flutter_plugin_android_lifecycle
22
description: Flutter plugin for accessing an Android Lifecycle within other plugins.
33
repository: https://github.com/flutter/packages/tree/main/packages/flutter_plugin_android_lifecycle
44
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+flutter_plugin_android_lifecycle%22
5-
version: 2.0.27
5+
version: 2.0.28
66

77
environment:
88
sdk: ^3.6.0

packages/google_maps_flutter/google_maps_flutter/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## NEXT
2+
3+
* Updates README to indicate that Andoid SDK <21 is no longer supported.
4+
15
## 2.12.1
26

37
* Fixes typo in README.

packages/google_maps_flutter/google_maps_flutter/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ A Flutter plugin that provides a [Google Maps](https://developers.google.com/map
88

99
| | Android | iOS | Web |
1010
|-------------|---------|---------|----------------------------------|
11-
| **Support** | SDK 20+ | iOS 14+ | Same as [Flutter's][web-support] |
11+
| **Support** | SDK 21+ | iOS 14+ | Same as [Flutter's][web-support] |
1212

1313
[web-support]: https://docs.flutter.dev/reference/supported-platforms
1414

packages/google_maps_flutter/google_maps_flutter_android/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.16.1
2+
3+
* Removes obsolete code related to supporting SDK <21.
4+
15
## 2.16.0
26

37
* Adds support for animating the camera with a duration.

packages/google_maps_flutter/google_maps_flutter_android/android/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ android {
2626
compileSdk = flutter.compileSdkVersion
2727

2828
defaultConfig {
29-
minSdkVersion 20
29+
minSdkVersion 21
3030
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3131
}
3232
lintOptions {

packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/ClusterManagersControllerTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import android.content.Context;
1717
import android.content.res.AssetManager;
1818
import android.graphics.Bitmap;
19-
import android.os.Build;
2019
import androidx.test.core.app.ApplicationProvider;
2120
import com.google.android.gms.maps.GoogleMap;
2221
import com.google.android.gms.maps.model.CameraPosition;
@@ -41,10 +40,8 @@
4140
import org.mockito.Mockito;
4241
import org.mockito.MockitoAnnotations;
4342
import org.robolectric.RobolectricTestRunner;
44-
import org.robolectric.annotation.Config;
4543

4644
@RunWith(RobolectricTestRunner.class)
47-
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
4845
public class ClusterManagersControllerTest {
4946
private Context context;
5047
private MapsCallbackApi flutterApi;

packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/ConvertTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import static org.mockito.Mockito.when;
2525

2626
import android.content.res.AssetManager;
27-
import android.os.Build;
2827
import android.util.Base64;
2928
import androidx.annotation.NonNull;
3029
import com.google.android.gms.maps.model.BitmapDescriptor;
@@ -49,10 +48,8 @@
4948
import org.mockito.Mock;
5049
import org.mockito.MockitoAnnotations;
5150
import org.robolectric.RobolectricTestRunner;
52-
import org.robolectric.annotation.Config;
5351

5452
@RunWith(RobolectricTestRunner.class)
55-
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
5653
public class ConvertTest {
5754
@Mock private AssetManager assetManager;
5855

packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/GoogleMapControllerTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import static org.mockito.Mockito.when;
1919

2020
import android.content.Context;
21-
import android.os.Build;
2221
import androidx.activity.ComponentActivity;
2322
import androidx.test.core.app.ApplicationProvider;
2423
import com.google.android.gms.maps.CameraUpdate;
@@ -41,10 +40,8 @@
4140
import org.mockito.MockitoAnnotations;
4241
import org.robolectric.Robolectric;
4342
import org.robolectric.RobolectricTestRunner;
44-
import org.robolectric.annotation.Config;
4543

4644
@RunWith(RobolectricTestRunner.class)
47-
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
4845
public class GoogleMapControllerTest {
4946

5047
private Context context;

packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/GoogleMapInitializerTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import static org.mockito.Mockito.verify;
1414

1515
import android.content.Context;
16-
import android.os.Build;
1716
import androidx.test.core.app.ApplicationProvider;
1817
import com.google.android.gms.maps.MapsInitializer.Renderer;
1918
import io.flutter.plugin.common.BinaryMessenger;
@@ -23,10 +22,8 @@
2322
import org.mockito.Mock;
2423
import org.mockito.MockitoAnnotations;
2524
import org.robolectric.RobolectricTestRunner;
26-
import org.robolectric.annotation.Config;
2725

2826
@RunWith(RobolectricTestRunner.class)
29-
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
3027
public class GoogleMapInitializerTest {
3128
private GoogleMapInitializer googleMapInitializer;
3229

packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/GroundOverlaysControllerTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
import android.content.Context;
1414
import android.content.res.AssetManager;
15-
import android.os.Build;
1615
import android.util.Base64;
1716
import androidx.annotation.NonNull;
1817
import androidx.test.core.app.ApplicationProvider;
@@ -31,10 +30,8 @@
3130
import org.mockito.Mockito;
3231
import org.mockito.MockitoAnnotations;
3332
import org.robolectric.RobolectricTestRunner;
34-
import org.robolectric.annotation.Config;
3533

3634
@RunWith(RobolectricTestRunner.class)
37-
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
3835
public class GroundOverlaysControllerTest {
3936
@Mock private BitmapDescriptorFactoryWrapper bitmapDescriptorFactoryWrapper;
4037
@Mock private BitmapDescriptor mockBitmapDescriptor;

packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/HeatmapsControllerTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import static org.mockito.Mockito.times;
1616
import static org.mockito.Mockito.when;
1717

18-
import android.os.Build;
1918
import com.google.android.gms.maps.GoogleMap;
2019
import com.google.android.gms.maps.model.TileOverlay;
2120
import com.google.android.gms.maps.model.TileOverlayOptions;
@@ -30,10 +29,8 @@
3029
import org.junit.runner.RunWith;
3130
import org.mockito.Mockito;
3231
import org.robolectric.RobolectricTestRunner;
33-
import org.robolectric.annotation.Config;
3432

3533
@RunWith(RobolectricTestRunner.class)
36-
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
3734
public class HeatmapsControllerTest {
3835
private HeatmapsController controller;
3936
private GoogleMap googleMap;

packages/google_maps_flutter/google_maps_flutter_android/android/src/test/java/io/flutter/plugins/googlemaps/MarkersControllerTest.java

-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import android.content.Context;
1616
import android.content.res.AssetManager;
1717
import android.graphics.Bitmap;
18-
import android.os.Build;
1918
import androidx.test.core.app.ApplicationProvider;
2019
import com.google.android.gms.maps.GoogleMap;
2120
import com.google.android.gms.maps.model.LatLng;
@@ -36,10 +35,8 @@
3635
import org.mockito.Mockito;
3736
import org.mockito.MockitoAnnotations;
3837
import org.robolectric.RobolectricTestRunner;
39-
import org.robolectric.annotation.Config;
4038

4139
@RunWith(RobolectricTestRunner.class)
42-
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
4340
public class MarkersControllerTest {
4441
private Context context;
4542
private MapsCallbackApi flutterApi;

packages/google_maps_flutter/google_maps_flutter_android/pubspec.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: google_maps_flutter_android
22
description: Android implementation of the google_maps_flutter plugin.
33
repository: https://github.com/flutter/packages/tree/main/packages/google_maps_flutter/google_maps_flutter_android
44
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+maps%22
5-
version: 2.16.0
5+
version: 2.16.1
66

77
environment:
88
sdk: ^3.6.0

packages/google_sign_in/google_sign_in/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## NEXT
2+
3+
* Updates README to indicate that Andoid SDK <21 is no longer supported.
4+
15
## 6.3.0
26

37
* Adds a sign-in field to allow Android clients to explicitly specify an account name. This

0 commit comments

Comments
 (0)