Skip to content

Commit 48dc2f5

Browse files
Paige McAuliffecopybara-androidxtest
authored andcommitted
Remove ExperimentalTestApi annotations from Espresso Device APIs
PiperOrigin-RevId: 549064310
1 parent b9c2a88 commit 48dc2f5

File tree

13 files changed

+160
-49
lines changed

13 files changed

+160
-49
lines changed

espresso/device/java/androidx/test/espresso/device/DeviceInteraction.kt

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package androidx.test.espresso.device
1717

18-
import androidx.test.annotation.ExperimentalTestApi
1918
import androidx.test.espresso.device.action.DeviceAction
2019
import androidx.test.espresso.device.action.ScreenOrientation
2120
import androidx.test.espresso.device.action.setBookMode as getSetBookModeDeviceAction
@@ -32,10 +31,7 @@ import javax.inject.Inject
3231

3332
/**
3433
* API surface for performing device-centric operations.
35-
*
36-
* <p>This API is experimental and subject to change.
3734
*/
38-
@ExperimentalTestApi
3935
class DeviceInteraction @Inject constructor(private val deviceController: DeviceController) {
4036

4137
/**
@@ -64,7 +60,6 @@ class DeviceInteraction @Inject constructor(private val deviceController: Device
6460
* @throws UnsupportedDeviceOperationException if used on a real device.
6561
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
6662
*/
67-
@ExperimentalTestApi
6863
fun DeviceInteraction.setTabletopMode(): DeviceInteraction {
6964
perform(getSetTabletopModeDeviceAction())
7065
return this
@@ -81,7 +76,6 @@ class DeviceInteraction @Inject constructor(private val deviceController: Device
8176
* @throws UnsupportedDeviceOperationException if used on a real device.
8277
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
8378
*/
84-
@ExperimentalTestApi
8579
fun DeviceInteraction.setBookMode(): DeviceInteraction {
8680
perform(getSetBookModeDeviceAction())
8781
return this
@@ -97,7 +91,6 @@ class DeviceInteraction @Inject constructor(private val deviceController: Device
9791
* @throws UnsupportedDeviceOperationException if used on a real device.
9892
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
9993
*/
100-
@ExperimentalTestApi
10194
fun DeviceInteraction.setFlatMode(): DeviceInteraction {
10295
perform(getSetFlatModeDeviceAction())
10396
return this
@@ -112,7 +105,6 @@ class DeviceInteraction @Inject constructor(private val deviceController: Device
112105
* @throws UnsupportedDeviceOperationException if used on a real device.
113106
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
114107
*/
115-
@ExperimentalTestApi
116108
fun DeviceInteraction.setClosedMode(): DeviceInteraction {
117109
perform(getSetClosedModeDeviceAction())
118110
return this
@@ -123,7 +115,6 @@ class DeviceInteraction @Inject constructor(private val deviceController: Device
123115
*
124116
* @param orientation the orientation to set the device to (portait or landscape)
125117
*/
126-
@ExperimentalTestApi
127118
fun DeviceInteraction.setScreenOrientation(orientation: ScreenOrientation): DeviceInteraction {
128119
perform(getSetScreenOrientationDeviceAction(orientation))
129120
return this
@@ -135,7 +126,6 @@ class DeviceInteraction @Inject constructor(private val deviceController: Device
135126
* @param widthSizeClass the width to set the device display to
136127
* @param heightSizeClass the height to set the device display to
137128
*/
138-
@ExperimentalTestApi
139129
fun DeviceInteraction.setDisplaySize(
140130
widthSizeClass: WidthSizeClass,
141131
heightSizeClass: HeightSizeClass

espresso/device/java/androidx/test/espresso/device/EspressoDevice.kt

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,12 @@
1515
*/
1616
package androidx.test.espresso.device
1717

18-
import androidx.test.annotation.ExperimentalTestApi
1918
import androidx.test.espresso.device.dagger.DeviceHolder
2019
import androidx.test.espresso.device.dagger.DeviceLayerComponent
2120
import androidx.test.internal.util.Checks.checkNotMainThread
2221

2322
/** Entry point for device centric operations */
24-
@ExperimentalTestApi
2523
class EspressoDevice private constructor() {
26-
@ExperimentalTestApi
2724
companion object {
2825
private val BASE: DeviceLayerComponent = DeviceHolder.deviceLayer()
2926

@@ -32,10 +29,7 @@ class EspressoDevice private constructor() {
3229
* that are device-centric in scope. This method should not be called on the main thread.
3330
*
3431
* @throws IllegalStateException when being invoked on the main thread.
35-
*
36-
* <p>This API is experimental and subject to change or removal.
3732
*/
38-
@ExperimentalTestApi
3933
@JvmStatic
4034
fun onDevice(): DeviceInteraction {
4135
checkNotMainThread()

espresso/device/java/androidx/test/espresso/device/action/DeviceAction.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@
1616

1717
package androidx.test.espresso.device.action
1818

19-
import androidx.test.annotation.ExperimentalTestApi
2019
import androidx.test.platform.device.DeviceController
2120

2221
/** Responsible for performing an interaction on the given device. */
23-
@ExperimentalTestApi
2422
interface DeviceAction {
2523
/**
2624
* Performs this action on the given device.

espresso/device/java/androidx/test/espresso/device/action/DeviceActions.kt

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import android.os.Handler
2222
import android.os.Looper
2323
import androidx.annotation.RestrictTo
2424
import androidx.annotation.RestrictTo.Scope
25-
import androidx.test.annotation.ExperimentalTestApi
2625
import androidx.test.espresso.device.sizeclass.HeightSizeClass
2726
import androidx.test.espresso.device.sizeclass.WidthSizeClass
2827
import java.util.concurrent.Executor
@@ -41,7 +40,6 @@ private val mainExecutor = Executor { command -> Handler(Looper.getMainLooper())
4140
* @throws UnsupportedDeviceOperationException if used on a real device.
4241
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
4342
*/
44-
@ExperimentalTestApi
4543
fun setTabletopMode(): DeviceAction {
4644
return TabletopModeAction(mainExecutor)
4745
}
@@ -57,7 +55,6 @@ fun setTabletopMode(): DeviceAction {
5755
* @throws UnsupportedDeviceOperationException if used on a real device.
5856
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
5957
*/
60-
@ExperimentalTestApi
6158
fun setBookMode(): DeviceAction {
6259
return BookModeAction(mainExecutor)
6360
}
@@ -72,7 +69,6 @@ fun setBookMode(): DeviceAction {
7269
* @throws UnsupportedDeviceOperationException if used on a real device.
7370
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
7471
*/
75-
@ExperimentalTestApi
7672
fun setFlatMode(): DeviceAction {
7773
return FlatModeAction(mainExecutor)
7874
}
@@ -86,7 +82,6 @@ fun setFlatMode(): DeviceAction {
8682
* @throws UnsupportedDeviceOperationException if used on a real device.
8783
* @throws DeviceControllerOperationException when called on a non-foldable Emulator.
8884
*/
89-
@ExperimentalTestApi
9085
fun setClosedMode(): DeviceAction {
9186
return ClosedModeAction(mainExecutor)
9287
}
@@ -96,7 +91,6 @@ fun setClosedMode(): DeviceAction {
9691
*
9792
* @param orientation the orientation to set the device to (portait or landscape)
9893
*/
99-
@ExperimentalTestApi
10094
fun setScreenOrientation(orientation: ScreenOrientation): DeviceAction {
10195
return ScreenOrientationAction(orientation)
10296
}
@@ -107,13 +101,11 @@ fun setScreenOrientation(orientation: ScreenOrientation): DeviceAction {
107101
* @param widthSizeClass the window width to set the device to
108102
* @param heightSizeClass the window height to set the device to
109103
*/
110-
@ExperimentalTestApi
111104
fun setDisplaySize(widthSizeClass: WidthSizeClass, heightSizeClass: HeightSizeClass): DeviceAction {
112105
return DisplaySizeAction(widthDisplaySize = widthSizeClass, heightDisplaySize = heightSizeClass)
113106
}
114107

115108
/** Enum for screen orientations a device can be set to. */
116-
@ExperimentalTestApi
117109
enum class ScreenOrientation(private val orientation: Int) {
118110
PORTRAIT(0),
119111
LANDSCAPE(1);
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,161 @@
11
// Signature format: 3.0
2+
package androidx.test.espresso.device {
3+
4+
public final class DeviceInteraction {
5+
ctor @javax.inject.Inject public DeviceInteraction(androidx.test.platform.device.DeviceController deviceController);
6+
method public androidx.test.espresso.device.DeviceInteraction perform(androidx.test.espresso.device.action.DeviceAction action);
7+
field public static final androidx.test.espresso.device.DeviceInteraction.Companion Companion;
8+
}
9+
10+
public static final class DeviceInteraction.Companion {
11+
method public androidx.test.espresso.device.DeviceInteraction setBookMode(androidx.test.espresso.device.DeviceInteraction);
12+
method public androidx.test.espresso.device.DeviceInteraction setClosedMode(androidx.test.espresso.device.DeviceInteraction);
13+
method public androidx.test.espresso.device.DeviceInteraction setDisplaySize(androidx.test.espresso.device.DeviceInteraction, androidx.test.espresso.device.sizeclass.WidthSizeClass widthSizeClass, androidx.test.espresso.device.sizeclass.HeightSizeClass heightSizeClass);
14+
method public androidx.test.espresso.device.DeviceInteraction setFlatMode(androidx.test.espresso.device.DeviceInteraction);
15+
method public androidx.test.espresso.device.DeviceInteraction setScreenOrientation(androidx.test.espresso.device.DeviceInteraction, androidx.test.espresso.device.action.ScreenOrientation orientation);
16+
method public androidx.test.espresso.device.DeviceInteraction setTabletopMode(androidx.test.espresso.device.DeviceInteraction);
17+
}
18+
19+
public final class EspressoDevice {
20+
method public static androidx.test.espresso.device.DeviceInteraction onDevice();
21+
field public static final androidx.test.espresso.device.EspressoDevice.Companion Companion;
22+
}
23+
24+
public static final class EspressoDevice.Companion {
25+
method public androidx.test.espresso.device.DeviceInteraction onDevice();
26+
}
27+
28+
}
29+
30+
package androidx.test.espresso.device.action {
31+
32+
public interface DeviceAction {
33+
method public void perform(androidx.test.platform.device.DeviceController deviceController);
34+
}
35+
36+
public final class DeviceActions {
37+
method public static androidx.test.espresso.device.action.DeviceAction setBookMode();
38+
method public static androidx.test.espresso.device.action.DeviceAction setClosedMode();
39+
method public static androidx.test.espresso.device.action.DeviceAction setDisplaySize(androidx.test.espresso.device.sizeclass.WidthSizeClass widthSizeClass, androidx.test.espresso.device.sizeclass.HeightSizeClass heightSizeClass);
40+
method public static androidx.test.espresso.device.action.DeviceAction setFlatMode();
41+
method public static androidx.test.espresso.device.action.DeviceAction setScreenOrientation(androidx.test.espresso.device.action.ScreenOrientation orientation);
42+
method public static androidx.test.espresso.device.action.DeviceAction setTabletopMode();
43+
}
44+
45+
public enum ScreenOrientation {
46+
method public static androidx.test.espresso.device.action.ScreenOrientation valueOf(String value) throws java.lang.IllegalArgumentException;
47+
method public static androidx.test.espresso.device.action.ScreenOrientation[] values();
48+
enum_constant public static final androidx.test.espresso.device.action.ScreenOrientation LANDSCAPE;
49+
enum_constant public static final androidx.test.espresso.device.action.ScreenOrientation PORTRAIT;
50+
}
51+
52+
}
53+
54+
package androidx.test.espresso.device.controller {
55+
56+
public enum DeviceMode {
57+
method public static androidx.test.espresso.device.controller.DeviceMode valueOf(String value) throws java.lang.IllegalArgumentException;
58+
method public static androidx.test.espresso.device.controller.DeviceMode[] values();
59+
enum_constant public static final androidx.test.espresso.device.controller.DeviceMode BOOK;
60+
enum_constant public static final androidx.test.espresso.device.controller.DeviceMode CLOSED;
61+
enum_constant public static final androidx.test.espresso.device.controller.DeviceMode FLAT;
62+
enum_constant public static final androidx.test.espresso.device.controller.DeviceMode TABLETOP;
63+
}
64+
65+
}
66+
67+
package androidx.test.espresso.device.filter {
68+
69+
@java.lang.annotation.Repeatable(RequiresDeviceModes::class) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface RequiresDeviceMode {
70+
method public abstract androidx.test.espresso.device.controller.DeviceMode mode();
71+
property public abstract androidx.test.espresso.device.controller.DeviceMode mode;
72+
}
73+
74+
@kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.CLASS, kotlin.annotation.AnnotationTarget.FUNCTION}) public @interface RequiresDisplay {
75+
method public abstract androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum heightSizeClass();
76+
method public abstract androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum widthSizeClass();
77+
property public abstract androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum heightSizeClass;
78+
property public abstract androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum widthSizeClass;
79+
}
80+
81+
}
82+
83+
package androidx.test.espresso.device.rules {
84+
85+
public final class DisplaySizeRule implements org.junit.rules.TestRule {
86+
ctor public DisplaySizeRule();
87+
method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement statement, org.junit.runner.Description description);
88+
field public static final androidx.test.espresso.device.rules.DisplaySizeRule.Companion Companion;
89+
}
90+
91+
public static final class DisplaySizeRule.Companion {
92+
}
93+
94+
public final class ScreenOrientationRule implements org.junit.rules.TestRule {
95+
ctor public ScreenOrientationRule(androidx.test.espresso.device.action.ScreenOrientation? defaultOrientation);
96+
method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement statement, org.junit.runner.Description description);
97+
}
98+
99+
public final class SkipUnsupportedDeviceActionsRule implements org.junit.rules.TestRule {
100+
ctor public SkipUnsupportedDeviceActionsRule();
101+
method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement statement, org.junit.runner.Description description);
102+
}
103+
104+
}
105+
106+
package androidx.test.espresso.device.sizeclass {
107+
108+
public final class HeightSizeClass {
109+
method public static androidx.test.espresso.device.sizeclass.HeightSizeClass compute(int dpHeight);
110+
method public static androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum getEnum(androidx.test.espresso.device.sizeclass.HeightSizeClass sizeClass);
111+
method public static int getHeightDpInSizeClass(androidx.test.espresso.device.sizeclass.HeightSizeClass sizeClass);
112+
field public static final androidx.test.espresso.device.sizeclass.HeightSizeClass COMPACT;
113+
field public static final androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion Companion;
114+
field public static final androidx.test.espresso.device.sizeclass.HeightSizeClass EXPANDED;
115+
field public static final androidx.test.espresso.device.sizeclass.HeightSizeClass MEDIUM;
116+
}
117+
118+
public static final class HeightSizeClass.Companion {
119+
method public androidx.test.espresso.device.sizeclass.HeightSizeClass compute(int dpHeight);
120+
method public androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum getEnum(androidx.test.espresso.device.sizeclass.HeightSizeClass sizeClass);
121+
method public int getHeightDpInSizeClass(androidx.test.espresso.device.sizeclass.HeightSizeClass sizeClass);
122+
}
123+
124+
public enum HeightSizeClass.Companion.HeightSizeClassEnum {
125+
method public final String! getDescription();
126+
method public static androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum valueOf(String value) throws java.lang.IllegalArgumentException;
127+
method public static androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum[] values();
128+
property public final String! description;
129+
enum_constant public static final androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum COMPACT;
130+
enum_constant public static final androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum EXPANDED;
131+
enum_constant public static final androidx.test.espresso.device.sizeclass.HeightSizeClass.Companion.HeightSizeClassEnum MEDIUM;
132+
}
133+
134+
public final class WidthSizeClass {
135+
method public static androidx.test.espresso.device.sizeclass.WidthSizeClass compute(int dpWidth);
136+
method public static androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum getEnum(androidx.test.espresso.device.sizeclass.WidthSizeClass sizeClass);
137+
method public static int getWidthDpInSizeClass(androidx.test.espresso.device.sizeclass.WidthSizeClass sizeClass);
138+
field public static final androidx.test.espresso.device.sizeclass.WidthSizeClass COMPACT;
139+
field public static final androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion Companion;
140+
field public static final androidx.test.espresso.device.sizeclass.WidthSizeClass EXPANDED;
141+
field public static final androidx.test.espresso.device.sizeclass.WidthSizeClass MEDIUM;
142+
}
143+
144+
public static final class WidthSizeClass.Companion {
145+
method public androidx.test.espresso.device.sizeclass.WidthSizeClass compute(int dpWidth);
146+
method public androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum getEnum(androidx.test.espresso.device.sizeclass.WidthSizeClass sizeClass);
147+
method public int getWidthDpInSizeClass(androidx.test.espresso.device.sizeclass.WidthSizeClass sizeClass);
148+
}
149+
150+
public enum WidthSizeClass.Companion.WidthSizeClassEnum {
151+
method public final String! getDescription();
152+
method public static androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum valueOf(String value) throws java.lang.IllegalArgumentException;
153+
method public static androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum[] values();
154+
property public final String! description;
155+
enum_constant public static final androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum COMPACT;
156+
enum_constant public static final androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum EXPANDED;
157+
enum_constant public static final androidx.test.espresso.device.sizeclass.WidthSizeClass.Companion.WidthSizeClassEnum MEDIUM;
158+
}
159+
160+
}
161+

espresso/device/java/androidx/test/espresso/device/controller/DeviceMode.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,13 @@ package androidx.test.espresso.device.controller
1818

1919
import androidx.annotation.RestrictTo
2020
import androidx.annotation.RestrictTo.Scope
21-
import androidx.test.annotation.ExperimentalTestApi
2221

2322
/**
2423
* Enum for modes a foldable device can be set to.
2524
*
2625
* For more information on foldable device postures, see
2726
* https://developer.android.com/guide/topics/large-screens/learn-about-foldables
2827
*/
29-
@ExperimentalTestApi
3028
enum class DeviceMode(private val mode: Int) {
3129
// the device screen is completely flat, like a tablet
3230
FLAT(0),

espresso/device/java/androidx/test/espresso/device/filter/RequiresDeviceMode.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616
package androidx.test.espresso.device.filter
1717

18-
import androidx.test.annotation.ExperimentalTestApi
1918
import androidx.test.espresso.device.controller.DeviceMode
2019
import androidx.test.filters.CustomFilter
2120
import java.lang.annotation.Repeatable
@@ -26,17 +25,13 @@ import java.lang.annotation.Repeatable
2625
*
2726
* <p> This annotation is repeatable. It will be executed only if the test is running on a foldable
2827
* device that can be set to the all of the provided device modes.
29-
*
30-
* <p>This API is experimental and subject to change or removal.
3128
*/
32-
@ExperimentalTestApi
3329
@Retention(AnnotationRetention.RUNTIME)
3430
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
3531
@Repeatable(RequiresDeviceModes::class)
3632
@CustomFilter(filterClass = RequiresDeviceModeFilter::class)
3733
annotation class RequiresDeviceMode(val mode: DeviceMode)
3834

39-
@ExperimentalTestApi
4035
@Retention(AnnotationRetention.RUNTIME)
4136
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION)
4237
@CustomFilter(filterClass = RequiresDeviceModeFilter::class)

0 commit comments

Comments
 (0)