diff --git a/src/main/java/io/appium/java_client/pagefactory/HowToUseLocators.java b/src/main/java/io/appium/java_client/pagefactory/HowToUseLocators.java index a4b65e36c..18cec5010 100644 --- a/src/main/java/io/appium/java_client/pagefactory/HowToUseLocators.java +++ b/src/main/java/io/appium/java_client/pagefactory/HowToUseLocators.java @@ -40,7 +40,12 @@ * * @return the strategy which defines how to use locators which are described by the * {@link SelendroidFindBy} annotation + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidFindBy} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ + @Deprecated LocatorGroupStrategy selendroidAutomation() default LocatorGroupStrategy.CHAIN; /** diff --git a/src/main/java/io/appium/java_client/pagefactory/OverrideWidget.java b/src/main/java/io/appium/java_client/pagefactory/OverrideWidget.java index d4d8870d0..6e21bdc43 100644 --- a/src/main/java/io/appium/java_client/pagefactory/OverrideWidget.java +++ b/src/main/java/io/appium/java_client/pagefactory/OverrideWidget.java @@ -63,9 +63,13 @@ * {@link io.appium.java_client.remote.AutomationName#SELENDROID} automation is used. * A declared class should not be abstract. Declared class also should be a subclass * of an annotated class/class which is declared by an annotated field. - * + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link io.appium.java_client.remote.AutomationName#ANDROID_UIAUTOMATOR2} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 * @return a class which extends {@link io.appium.java_client.pagefactory.Widget} */ + @Deprecated Class selendroid() default Widget.class; /** diff --git a/src/main/java/io/appium/java_client/pagefactory/SelendroidBy.java b/src/main/java/io/appium/java_client/pagefactory/SelendroidBy.java index 829b55d49..d1bb5a117 100644 --- a/src/main/java/io/appium/java_client/pagefactory/SelendroidBy.java +++ b/src/main/java/io/appium/java_client/pagefactory/SelendroidBy.java @@ -19,7 +19,12 @@ /** * Used to build a complex selendroid locator. + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidBy} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ +@Deprecated public @interface SelendroidBy { /** * It is an id of the target element. diff --git a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindAll.java b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindAll.java index bbbb233d3..ce560cb1c 100644 --- a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindAll.java +++ b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindAll.java @@ -28,8 +28,14 @@ * series of {@link SelendroidBy} tags * It will then search for all elements that match any criteria. Note that elements * are not guaranteed to be in document order. + * + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidBy} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ @Retention(RUNTIME) @Target({FIELD, TYPE}) +@Deprecated public @interface SelendroidFindAll { /** * It is a set of {@link SelendroidBy} strategies which may be used to find the target element. diff --git a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBy.java b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBy.java index 8bcd75fce..0dc060585 100644 --- a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBy.java +++ b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBy.java @@ -31,9 +31,15 @@ * {@link org.openqa.selenium.support.PageFactory} * this allows users to quickly and easily create PageObjects. * using Selendroid UI selectors like, id, name, class name, tag and xpath + * + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidFindBy} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ @Retention(RUNTIME) @Target({FIELD, TYPE}) @Repeatable(SelendroidFindBySet.class) +@Deprecated public @interface SelendroidFindBy { /** * It is an id of the target element. diff --git a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByAllSet.java b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByAllSet.java index 0b83c223c..8bee5f94f 100644 --- a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByAllSet.java +++ b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByAllSet.java @@ -26,9 +26,15 @@ /** * Defines set of chained/possible locators. Each one locator * should be defined with {@link SelendroidFindAll} + * + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidFindAll} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ @Target(value = {TYPE, FIELD}) @Retention(value = RUNTIME) +@Deprecated public @interface SelendroidFindByAllSet { /** * @return an array of {@link SelendroidFindAll} which builds a sequence of diff --git a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByChainSet.java b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByChainSet.java index 5824ed173..8b5cee026 100644 --- a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByChainSet.java +++ b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindByChainSet.java @@ -26,9 +26,15 @@ /** * Defines set of chained/possible locators. Each one locator * should be defined with {@link SelendroidFindBys} + * + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidFindBys} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ @Target(value = {TYPE, FIELD}) @Retention(value = RUNTIME) +@Deprecated public @interface SelendroidFindByChainSet { /** * @return an array of {@link SelendroidFindBys} which builds a sequence of diff --git a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBySet.java b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBySet.java index 38e903966..e1e34acc6 100644 --- a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBySet.java +++ b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBySet.java @@ -26,9 +26,15 @@ /** * Defines set of chained/possible locators. Each one locator * should be defined with {@link io.appium.java_client.pagefactory.SelendroidFindBy} + * + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidFindBySet} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ @Target(value = {TYPE, FIELD}) @Retention(value = RUNTIME) +@Deprecated public @interface SelendroidFindBySet { /** * @return an array of {@link io.appium.java_client.pagefactory.SelendroidFindBy} which builds a sequence of diff --git a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBys.java b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBys.java index 518235bf4..ffb945b68 100644 --- a/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBys.java +++ b/src/main/java/io/appium/java_client/pagefactory/SelendroidFindBys.java @@ -26,8 +26,14 @@ /** * Used to mark a field on a Page Object to indicate that lookup should * use a series of {@link SelendroidBy} tags. + * + * @deprecated Selendroid driver is going to be deprecated. + * Use {@link AndroidBy} instead. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ @Retention(RUNTIME) @Target({FIELD, TYPE}) +@Deprecated public @interface SelendroidFindBys { /** * It is a set of {@link SelendroidBy} strategies which build the chain of the searching for the target element. diff --git a/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java b/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java index 10ab18ff0..041f16207 100644 --- a/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java +++ b/src/main/java/io/appium/java_client/remote/AndroidMobileCapabilityType.java @@ -249,6 +249,12 @@ public interface AndroidMobileCapabilityType extends CapabilityType { */ String ANDROID_NATURAL_ORIENTATION = "androidNaturalOrientation"; + /** + * Selendroid driver is going to be deprecated. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 + */ + @Deprecated String SELENDROID_PORT = "selendroidPort"; /** diff --git a/src/main/java/io/appium/java_client/service/local/flags/AndroidServerFlag.java b/src/main/java/io/appium/java_client/service/local/flags/AndroidServerFlag.java index 9321078fb..29f808ee1 100644 --- a/src/main/java/io/appium/java_client/service/local/flags/AndroidServerFlag.java +++ b/src/main/java/io/appium/java_client/service/local/flags/AndroidServerFlag.java @@ -28,7 +28,11 @@ public enum AndroidServerFlag implements ServerArgument { /** * Local port used for communication with Selendroid. Sample: * --selendroid-port 8080 + * Selendroid driver is going to be deprecated. + * It is recommended to use UIAutomator1 for Android API below 21 + * and UIAutomator2 for API >= 21 */ + @Deprecated SELENDROID_PORT("--selendroid-port"), /** * If set, prevents Appium from killing the adb server diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/DefaultSelendroidWidget.java b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/DefaultSelendroidWidget.java index 34ff23f68..f777aaa4c 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/DefaultSelendroidWidget.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/DefaultSelendroidWidget.java @@ -6,6 +6,7 @@ import java.util.List; +@Deprecated public class DefaultSelendroidWidget extends DefaultStubWidget { @SelendroidFindBy(linkText = "SELENDROID_SOME_SUB_LOCATOR")