From 86915726335e111820b78ad9d549d6957b9f9d2d Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Sun, 31 Oct 2021 16:05:45 +0100 Subject: [PATCH 1/3] chore: Deprecate touch actions --- .../appium/java_client/PerformsTouchActions.java | 15 ++++++++++++++- .../java/io/appium/java_client/TouchAction.java | 10 ++++++++++ .../java_client/android/AndroidTouchAction.java | 11 +++++++++++ .../java/io/appium/java_client/ios/IOSDriver.java | 1 - .../io/appium/java_client/ios/IOSTouchAction.java | 11 +++++++++++ .../io/appium/java_client/mac/Mac2Driver.java | 2 ++ .../appium/java_client/windows/WindowsDriver.java | 2 ++ 7 files changed, 50 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/appium/java_client/PerformsTouchActions.java b/src/main/java/io/appium/java_client/PerformsTouchActions.java index fae9c2403..288254ca7 100644 --- a/src/main/java/io/appium/java_client/PerformsTouchActions.java +++ b/src/main/java/io/appium/java_client/PerformsTouchActions.java @@ -22,6 +22,18 @@ import java.util.List; import java.util.Map; +/** + * Touch actions are deprecated. + * Please use W3C Actions instead or the corresponding + * extension methods for the driver (if available). + * Check + * - https://www.youtube.com/watch?v=oAJ7jwMNFVU + * - https://appiumpro.com/editions/30-ios-specific-touch-action-methods + * - https://appiumpro.com/editions/29-automating-complex-gestures-with-the-w3c-actions-api + * for more details. + */ +@Deprecated +@SuppressWarnings({"unchecked", "rawtypes"}) public interface PerformsTouchActions extends ExecutesMethod { /** * Performs a chain of touch actions, which together can be considered an @@ -53,9 +65,10 @@ default TouchAction performTouchAction(TouchAction touchAction) { * * @param multiAction the MultiTouchAction object to perform. */ - default void performMultiTouchAction(MultiTouchAction multiAction) { + default MultiTouchAction performMultiTouchAction(MultiTouchAction multiAction) { Map> parameters = multiAction.getParameters(); execute(PERFORM_MULTI_TOUCH, parameters); multiAction.clearActions(); + return multiAction.clearActions(); } } diff --git a/src/main/java/io/appium/java_client/TouchAction.java b/src/main/java/io/appium/java_client/TouchAction.java index 63b889b20..669a32e26 100644 --- a/src/main/java/io/appium/java_client/TouchAction.java +++ b/src/main/java/io/appium/java_client/TouchAction.java @@ -42,7 +42,17 @@ * action.press(element).waitAction(300).moveTo(element1).release().perform(); * Calling perform() sends the action command to the Mobile Driver. Otherwise, * more and more actions can be chained. + * + * Touch actions are deprecated. + * Please use W3C Actions instead or the corresponding + * extension methods for the driver (if available). + * Check + * - https://www.youtube.com/watch?v=oAJ7jwMNFVU + * - https://appiumpro.com/editions/30-ios-specific-touch-action-methods + * - https://appiumpro.com/editions/29-automating-complex-gestures-with-the-w3c-actions-api + * for more details. */ +@Deprecated public class TouchAction> implements PerformsActions { protected ImmutableList.Builder parameterBuilder; diff --git a/src/main/java/io/appium/java_client/android/AndroidTouchAction.java b/src/main/java/io/appium/java_client/android/AndroidTouchAction.java index e1af310df..20c02a6ca 100644 --- a/src/main/java/io/appium/java_client/android/AndroidTouchAction.java +++ b/src/main/java/io/appium/java_client/android/AndroidTouchAction.java @@ -20,6 +20,17 @@ import io.appium.java_client.TouchAction; +/** + * Touch actions are deprecated. + * Please use W3C Actions instead or the corresponding + * extension methods for the driver (if available). + * Check + * - https://www.youtube.com/watch?v=oAJ7jwMNFVU + * - https://appiumpro.com/editions/30-ios-specific-touch-action-methods + * - https://appiumpro.com/editions/29-automating-complex-gestures-with-the-w3c-actions-api + * for more details. + */ +@Deprecated public class AndroidTouchAction extends TouchAction { public AndroidTouchAction(PerformsTouchActions performsTouchActions) { diff --git a/src/main/java/io/appium/java_client/ios/IOSDriver.java b/src/main/java/io/appium/java_client/ios/IOSDriver.java index 70fe3c46d..648602dfc 100644 --- a/src/main/java/io/appium/java_client/ios/IOSDriver.java +++ b/src/main/java/io/appium/java_client/ios/IOSDriver.java @@ -54,7 +54,6 @@ /** * iOS driver implementation. - * */ public class IOSDriver extends AppiumDriver implements SupportsContextSwitching, diff --git a/src/main/java/io/appium/java_client/ios/IOSTouchAction.java b/src/main/java/io/appium/java_client/ios/IOSTouchAction.java index 8a2c19199..ce6180752 100644 --- a/src/main/java/io/appium/java_client/ios/IOSTouchAction.java +++ b/src/main/java/io/appium/java_client/ios/IOSTouchAction.java @@ -22,6 +22,17 @@ import io.appium.java_client.touch.offset.ElementOption; import io.appium.java_client.touch.offset.PointOption; +/** + * Touch actions are deprecated. + * Please use W3C Actions instead or the corresponding + * extension methods for the driver (if available). + * Check + * - https://www.youtube.com/watch?v=oAJ7jwMNFVU + * - https://appiumpro.com/editions/30-ios-specific-touch-action-methods + * - https://appiumpro.com/editions/29-automating-complex-gestures-with-the-w3c-actions-api + * for more details. + */ +@Deprecated public class IOSTouchAction extends TouchAction { public IOSTouchAction(PerformsTouchActions performsTouchActions) { diff --git a/src/main/java/io/appium/java_client/mac/Mac2Driver.java b/src/main/java/io/appium/java_client/mac/Mac2Driver.java index 9ad2b368c..71a4990c3 100644 --- a/src/main/java/io/appium/java_client/mac/Mac2Driver.java +++ b/src/main/java/io/appium/java_client/mac/Mac2Driver.java @@ -17,6 +17,7 @@ package io.appium.java_client.mac; import io.appium.java_client.AppiumDriver; +import io.appium.java_client.PerformsTouchActions; import io.appium.java_client.internal.CapabilityHelpers; import io.appium.java_client.remote.AutomationName; import io.appium.java_client.remote.MobileCapabilityType; @@ -43,6 +44,7 @@ * @since Appium 1.20.0 */ public class Mac2Driver extends AppiumDriver implements + PerformsTouchActions, CanRecordScreen { public Mac2Driver(HttpCommandExecutor executor, Capabilities capabilities) { super(executor, prepareCaps(capabilities)); diff --git a/src/main/java/io/appium/java_client/windows/WindowsDriver.java b/src/main/java/io/appium/java_client/windows/WindowsDriver.java index 032ce91cd..43046e130 100644 --- a/src/main/java/io/appium/java_client/windows/WindowsDriver.java +++ b/src/main/java/io/appium/java_client/windows/WindowsDriver.java @@ -20,6 +20,7 @@ import io.appium.java_client.AppiumDriver; import io.appium.java_client.HidesKeyboardWithKeyName; +import io.appium.java_client.PerformsTouchActions; import io.appium.java_client.screenrecording.CanRecordScreen; import io.appium.java_client.service.local.AppiumDriverLocalService; import io.appium.java_client.service.local.AppiumServiceBuilder; @@ -30,6 +31,7 @@ import java.net.URL; public class WindowsDriver extends AppiumDriver implements + PerformsTouchActions, PressesKeyCode, HidesKeyboardWithKeyName, CanRecordScreen { From 7c250021b2066a97d3a0128ea68af8c2f95ab6d8 Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Sun, 31 Oct 2021 16:09:24 +0100 Subject: [PATCH 2/3] Remove extra call --- src/main/java/io/appium/java_client/PerformsTouchActions.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/io/appium/java_client/PerformsTouchActions.java b/src/main/java/io/appium/java_client/PerformsTouchActions.java index 288254ca7..10dc5da0e 100644 --- a/src/main/java/io/appium/java_client/PerformsTouchActions.java +++ b/src/main/java/io/appium/java_client/PerformsTouchActions.java @@ -68,7 +68,6 @@ default TouchAction performTouchAction(TouchAction touchAction) { default MultiTouchAction performMultiTouchAction(MultiTouchAction multiAction) { Map> parameters = multiAction.getParameters(); execute(PERFORM_MULTI_TOUCH, parameters); - multiAction.clearActions(); return multiAction.clearActions(); } } From 950696ea2fb407aae3dc9e7afdcd33d0de35ab6f Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Sun, 31 Oct 2021 18:09:20 +0100 Subject: [PATCH 3/3] Deprecate perform methods --- src/main/java/io/appium/java_client/PerformsTouchActions.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/io/appium/java_client/PerformsTouchActions.java b/src/main/java/io/appium/java_client/PerformsTouchActions.java index 10dc5da0e..7058375f4 100644 --- a/src/main/java/io/appium/java_client/PerformsTouchActions.java +++ b/src/main/java/io/appium/java_client/PerformsTouchActions.java @@ -48,6 +48,7 @@ public interface PerformsTouchActions extends ExecutesMethod { * touch actions to perform * @return the same touch action object */ + @Deprecated default TouchAction performTouchAction(TouchAction touchAction) { Map> parameters = touchAction.getParameters(); execute(PERFORM_TOUCH_ACTION, parameters); @@ -65,6 +66,7 @@ default TouchAction performTouchAction(TouchAction touchAction) { * * @param multiAction the MultiTouchAction object to perform. */ + @Deprecated default MultiTouchAction performMultiTouchAction(MultiTouchAction multiAction) { Map> parameters = multiAction.getParameters(); execute(PERFORM_MULTI_TOUCH, parameters);