Skip to content

Commit a76bafd

Browse files
brettchabotcopybara-androidxtest
authored andcommitted
Remove all obsolete logic for Android SDKs < 19.
Since androidx now supports only SDKs 19 and above, remove all logic that is applicable only to APIs < 19. #cleanup PiperOrigin-RevId: 599556590
1 parent 9579d3f commit a76bafd

File tree

64 files changed

+142
-1106
lines changed

Some content is hidden

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

64 files changed

+142
-1106
lines changed

core/CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
`androidx.test:core:{version}` and `androidx.test:core-ktx:{version}` are released.
66

77
**Bug Fixes**
8-
Update Activity Scenario reference documentation to fix missing links
98

9+
* Update Activity Scenario reference documentation to fix missing links
10+
* Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)
1011
* Reference doc cleanup - document previously missing parameters, fix links, etc
1112

1213
**New Features**

core/java/androidx/test/core/app/DeviceCapture.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,10 @@
1818
package androidx.test.core.app
1919

2020
import android.graphics.Bitmap
21-
import android.os.Build
2221
import android.os.Handler
2322
import android.os.Looper
2423
import android.util.Log
2524
import android.view.Choreographer
26-
import androidx.annotation.RequiresApi
2725
import androidx.annotation.RestrictTo
2826
import androidx.concurrent.futures.ResolvableFuture
2927
import androidx.test.annotation.ExperimentalTestApi
@@ -49,9 +47,7 @@ import java.util.concurrent.TimeUnit
4947
*/
5048
@ExperimentalTestApi
5149
fun canTakeScreenshot(): Boolean =
52-
Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2 &&
53-
getInstrumentation().uiAutomation != null &&
54-
Looper.myLooper() != Looper.getMainLooper()
50+
getInstrumentation().uiAutomation != null && Looper.myLooper() != Looper.getMainLooper()
5551

5652
/**
5753
* Captures an image of the device's screen into a [Bitmap].
@@ -75,7 +71,6 @@ fun canTakeScreenshot(): Boolean =
7571
* to UiAutomation, [RuntimeException] if UiAutomation fails to take the screenshot
7672
*/
7773
@ExperimentalTestApi
78-
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
7974
@Suppress("FutureReturnValueIgnored")
8075
@Throws(RuntimeException::class)
8176
fun takeScreenshot(): Bitmap {
@@ -96,7 +91,6 @@ fun takeScreenshot(): Bitmap {
9691
*/
9792
@ExperimentalTestApi
9893
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
99-
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
10094
@Suppress("FutureReturnValueIgnored")
10195
@Throws(RuntimeException::class)
10296
fun takeScreenshotNoSync(): Bitmap {
@@ -147,7 +141,6 @@ fun takeScreenshotNoSync(): Bitmap {
147141
}
148142
}
149143

150-
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
151144
private fun forceRedrawGlobalWindowViews(mainExecutor: Executor): ListenableFuture<List<Void>> {
152145
val future: ResolvableFuture<List<Void>> = ResolvableFuture.create()
153146
mainExecutor.execute {

core/java/androidx/test/core/content/pm/PackageInfoBuilder.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ public PackageInfoBuilder setVersionName(String versionName) {
9696
* @see PackageInfo#requestedPermissions
9797
* @see PackageInfo#requestedPermissionsFlags
9898
*/
99-
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
10099
public PackageInfoBuilder addRequestedPermission(
101100
String requestedPermission, int requestedPermissionFlag) {
102101
requestedPermissionsMap.put(requestedPermission, requestedPermissionFlag);
@@ -137,16 +136,13 @@ public PackageInfo build() {
137136
packageInfo.applicationInfo = applicationInfo;
138137
packageInfo.requestedPermissions = requestedPermissionsMap.keySet().toArray(new String[0]);
139138

140-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
141-
Integer[] requestedPermissionsFlags =
142-
requestedPermissionsMap.values().toArray(new Integer[0]);
143-
// Stream APIs such as `mapToInt` are not supported below API 24.
144-
int[] requestedPermissionsFlagsIntArray = new int[requestedPermissionsFlags.length];
145-
for (int i = 0; i < requestedPermissionsFlags.length; i++) {
146-
requestedPermissionsFlagsIntArray[i] = requestedPermissionsFlags[i];
147-
}
148-
packageInfo.requestedPermissionsFlags = requestedPermissionsFlagsIntArray;
139+
Integer[] requestedPermissionsFlags = requestedPermissionsMap.values().toArray(new Integer[0]);
140+
// Stream APIs such as `mapToInt` are not supported below API 24.
141+
int[] requestedPermissionsFlagsIntArray = new int[requestedPermissionsFlags.length];
142+
for (int i = 0; i < requestedPermissionsFlags.length; i++) {
143+
requestedPermissionsFlagsIntArray[i] = requestedPermissionsFlags[i];
149144
}
145+
packageInfo.requestedPermissionsFlags = requestedPermissionsFlagsIntArray;
150146

151147
checkState(
152148
packageInfo.packageName.equals(packageInfo.applicationInfo.packageName),

core/java/androidx/test/core/view/ViewCapture.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ import java.util.function.Consumer
6060
* This API is currently experimental and subject to change or removal.
6161
*/
6262
@ExperimentalTestApi
63-
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN)
6463
fun View.captureToBitmap(rect: Rect? = null): ListenableFuture<Bitmap> {
6564
val bitmapFuture: ResolvableFuture<Bitmap> = ResolvableFuture.create()
6665
val mainExecutor = HandlerExecutor(Handler(Looper.getMainLooper()))
@@ -90,8 +89,7 @@ fun View.captureToBitmap(rect: Rect? = null): ListenableFuture<Bitmap> {
9089
*
9190
* @return a [ListenableFuture] that will be complete once ui drawing is complete
9291
*/
93-
// NoClassDefFoundError occurs on API 15
94-
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN)
92+
// TODO(b/316921934): uncomment once @ExperimentalTestApi is removed
9593
// @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
9694
@ExperimentalTestApi
9795
fun View.forceRedraw(): ListenableFuture<Void> {

core/java/androidx/test/core/view/WindowCapture.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import android.os.Handler
2424
import android.os.Looper
2525
import android.view.PixelCopy
2626
import android.view.Window
27-
import androidx.annotation.RequiresApi
2827
import androidx.concurrent.futures.ResolvableFuture
2928
import androidx.test.annotation.ExperimentalTestApi
3029
import androidx.test.core.internal.os.HandlerExecutor
@@ -45,7 +44,6 @@ import com.google.common.util.concurrent.ListenableFuture
4544
* This API is currently experimental and subject to change or removal.
4645
*/
4746
@ExperimentalTestApi
48-
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN)
4947
fun Window.captureRegionToBitmap(boundsInWindow: Rect? = null): ListenableFuture<Bitmap> {
5048
val bitmapFuture: ResolvableFuture<Bitmap> = ResolvableFuture.create()
5149
val mainExecutor = HandlerExecutor(Handler(Looper.getMainLooper()))

core/javatests/androidx/test/core/content/pm/PackageInfoBuilderTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,6 @@ public void build_withLongVersionCode() {
7474

7575
@Test
7676
public void build_withRequestedPermissionsFlags() {
77-
// API added in API 16 or newer.
78-
assumeTrue(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN);
7977
int permissionFlag = PackageInfo.REQUESTED_PERMISSION_GRANTED;
8078

8179
PackageInfo packageInfo =

espresso/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ The following artifacts were released:
2020
* Remove Kotlin collect stdlib calls in Java from espresso
2121
* Reference doc cleanup - document previously missing parameters, fix links, etc
2222
* Remove Kotlin StringKt calls from Java code
23+
* Remove all support for Android SDKs < 19. Minimum is API 19 (Android Kit Kat 4.4)
2324

2425
**New Features**
2526

espresso/core/java/androidx/test/espresso/Espresso.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,6 @@
2929

3030
import android.content.Context;
3131
import android.os.Build;
32-
import android.os.Build.VERSION;
33-
import android.os.Build.VERSION_CODES;
3432
import android.os.Looper;
3533
import android.util.Log;
3634
import android.view.Choreographer;
@@ -297,11 +295,6 @@ public static void openActionBarOverflowOrOptionsMenu(Context context) {
297295
}
298296

299297
private static void waitUntilNextFrame(int times) {
300-
// Choreographer API is added in API 16.
301-
if (VERSION.SDK_INT < VERSION_CODES.JELLY_BEAN) {
302-
return;
303-
}
304-
305298
for (int i = 0; i < times; ++i) {
306299
CountDownLatch latch = new CountDownLatch(1);
307300
InstrumentationRegistry.getInstrumentation()
@@ -393,11 +386,7 @@ public Void call() throws Exception {
393386
}
394387

395388
private static boolean hasVirtualOverflowButton(Context context) {
396-
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
397-
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
398-
} else {
399-
return !ViewConfiguration.get(context).hasPermanentMenuKey();
400-
}
389+
return !ViewConfiguration.get(context).hasPermanentMenuKey();
401390
}
402391

403392
/**

espresso/core/java/androidx/test/espresso/action/AdapterViewProtocols.java

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import static androidx.test.internal.util.Checks.checkArgument;
2121

2222
import android.database.Cursor;
23-
import android.os.Build;
2423
import android.util.Log;
2524
import android.view.View;
2625
import android.widget.AbsListView;
@@ -133,25 +132,19 @@ public void makeDataRenderedWithinAdapterView(
133132
boolean moved = false;
134133
// set selection should always work, we can give a little better experience if per subtype
135134
// though.
136-
if (Build.VERSION.SDK_INT > 7) {
137-
if (adapterView instanceof AbsListView) {
138-
if (Build.VERSION.SDK_INT > 10) {
139-
((AbsListView) adapterView)
140-
.smoothScrollToPositionFromTop(position, adapterView.getPaddingTop(), 0);
141-
} else {
142-
((AbsListView) adapterView).smoothScrollToPosition(position);
143-
}
144-
moved = true;
145-
}
146-
if (Build.VERSION.SDK_INT > 10) {
147-
if (adapterView instanceof AdapterViewAnimator) {
148-
if (adapterView instanceof AdapterViewFlipper) {
149-
((AdapterViewFlipper) adapterView).stopFlipping();
150-
}
151-
((AdapterViewAnimator) adapterView).setDisplayedChild(position);
152-
moved = true;
153-
}
135+
if (adapterView instanceof AbsListView) {
136+
((AbsListView) adapterView)
137+
.smoothScrollToPositionFromTop(position, adapterView.getPaddingTop(), 0);
138+
139+
moved = true;
140+
}
141+
142+
if (adapterView instanceof AdapterViewAnimator) {
143+
if (adapterView instanceof AdapterViewFlipper) {
144+
((AdapterViewFlipper) adapterView).stopFlipping();
154145
}
146+
((AdapterViewAnimator) adapterView).setDisplayedChild(position);
147+
moved = true;
155148
}
156149
if (!moved) {
157150
adapterView.setSelection(position);

espresso/core/java/androidx/test/espresso/action/EspressoKey.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import static androidx.test.internal.util.Checks.checkState;
2020

21-
import android.os.Build;
2221
import android.view.KeyEvent;
2322
import androidx.test.espresso.remote.annotation.RemoteMsgConstructor;
2423
import androidx.test.espresso.remote.annotation.RemoteMsgField;
@@ -73,10 +72,7 @@ public Builder withShiftPressed(boolean shiftPressed) {
7372
return this;
7473
}
7574

76-
/**
77-
* On Honeycomb and above, sets the CTRL_ON meta state of the resulting key. On Gingerbread and
78-
* below, this is a noop.
79-
*/
75+
/** Sets the CTRL_ON meta state of the resulting key. */
8076
public Builder withCtrlPressed(boolean ctrlPressed) {
8177
isCtrlPressed = ctrlPressed;
8278
return this;
@@ -98,7 +94,7 @@ private int getMetaState() {
9894
metaState |= KeyEvent.META_ALT_ON;
9995
}
10096

101-
if (isCtrlPressed && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
97+
if (isCtrlPressed) {
10298
metaState |= KeyEvent.META_CTRL_ON;
10399
}
104100

0 commit comments

Comments
 (0)