diff --git a/internal/version/VERSION b/internal/version/VERSION index 263f357d..0d77f6e8 100644 --- a/internal/version/VERSION +++ b/internal/version/VERSION @@ -1 +1 @@ -v5.0.0-beta-2505060038 +v5.0.0-beta-2505060041 diff --git a/uixt/android_driver_adb.go b/uixt/android_driver_adb.go index 4727def9..589296fb 100644 --- a/uixt/android_driver_adb.go +++ b/uixt/android_driver_adb.go @@ -406,19 +406,10 @@ func (ad *ADBDriver) Swipe(fromX, fromY, toX, toY float64, opts ...option.Action log.Info().Float64("fromX", fromX).Float64("fromY", fromY). Float64("toX", toX).Float64("toY", toY).Msg("ADBDriver.Swipe") var err error - fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(ad, fromX, fromY, toX, toY) + fromX, fromY, toX, toY, err = handlerSwipe(ad, fromX, fromY, toX, toY) if err != nil { return err } - actionOptions := option.NewActionOptions(opts...) - fromX, fromY, toX, toY = actionOptions.ApplySwipeOffset(fromX, fromY, toX, toY) - - // mark UI operation - if actionOptions.MarkOperationEnabled { - if markErr := MarkUIOperation(ad, ACTION_Swipe, []float64{fromX, fromY, toX, toY}); markErr != nil { - log.Warn().Err(markErr).Msg("Failed to mark swipe operation") - } - } // adb shell input swipe fromX fromY toX toY _, err = ad.runShellCommand( diff --git a/uixt/android_driver_uia2.go b/uixt/android_driver_uia2.go index 705fbf1c..e3b46751 100644 --- a/uixt/android_driver_uia2.go +++ b/uixt/android_driver_uia2.go @@ -387,20 +387,11 @@ func (ud *UIA2Driver) Swipe(fromX, fromY, toX, toY float64, opts ...option.Actio log.Info().Float64("fromX", fromX).Float64("fromY", fromY). Float64("toX", toX).Float64("toY", toY).Msg("UIA2Driver.Swipe") var err error - actionOptions := option.NewActionOptions(opts...) - fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(ud, fromX, fromY, toX, toY) + fromX, fromY, toX, toY, err = handlerSwipe(ud, fromX, fromY, toX, toY) if err != nil { return err } - fromX, fromY, toX, toY = actionOptions.ApplySwipeOffset(fromX, fromY, toX, toY) - - // mark UI operation - if actionOptions.MarkOperationEnabled { - if markErr := MarkUIOperation(ud, ACTION_Swipe, []float64{fromX, fromY, toX, toY}); markErr != nil { - log.Warn().Err(markErr).Msg("Failed to mark swipe operation") - } - } - + actionOptions := option.NewActionOptions(opts...) duration := 200.0 if actionOptions.PressDuration > 0 { duration = actionOptions.PressDuration * 1000 // ms diff --git a/uixt/driver_ext_handler.go b/uixt/driver_ext_handler.go index f59091ce..09b8d9a1 100644 --- a/uixt/driver_ext_handler.go +++ b/uixt/driver_ext_handler.go @@ -45,3 +45,23 @@ func handlerDrag(driver IDriver, rawFomX, rawFromY, rawToX, rawToY float64, opts return fromX, fromY, toX, toY, nil } + +func handlerSwipe(driver IDriver, rawFomX, rawFromY, rawToX, rawToY float64, opts ...option.ActionOption) ( + fromX, fromY, toX, toY float64, err error) { + + actionOptions := option.NewActionOptions(opts...) + fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(driver, rawFomX, rawFromY, rawToX, rawToY) + if err != nil { + return 0, 0, 0, 0, err + } + fromX, fromY, toX, toY = actionOptions.ApplySwipeOffset(fromX, fromY, toX, toY) + + // mark UI operation + if actionOptions.MarkOperationEnabled { + if markErr := MarkUIOperation(driver, ACTION_Swipe, []float64{fromX, fromY, toX, toY}); markErr != nil { + log.Warn().Err(markErr).Msg("Failed to mark drag operation") + } + } + + return fromX, fromY, toX, toY, nil +} diff --git a/uixt/harmony_driver_hdc.go b/uixt/harmony_driver_hdc.go index 88499080..af0d65e7 100644 --- a/uixt/harmony_driver_hdc.go +++ b/uixt/harmony_driver_hdc.go @@ -187,20 +187,11 @@ func (hd *HDCDriver) Swipe(fromX, fromY, toX, toY float64, opts ...option.Action log.Info().Float64("fromX", fromX).Float64("fromY", fromY). Float64("toX", toX).Float64("toY", toY).Msg("HDCDriver.Swipe") var err error - actionOptions := option.NewActionOptions(opts...) - fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(hd, fromX, fromY, toX, toY) + fromX, fromY, toX, toY, err = handlerSwipe(hd, fromX, fromY, toX, toY) if err != nil { return err } - fromX, fromY, toX, toY = actionOptions.ApplySwipeOffset(fromX, fromY, toX, toY) - - // mark UI operation - if actionOptions.MarkOperationEnabled { - if markErr := MarkUIOperation(hd, ACTION_Swipe, []float64{fromX, fromY, toX, toY}); markErr != nil { - log.Warn().Err(markErr).Msg("Failed to mark swipe operation") - } - } - + actionOptions := option.NewActionOptions(opts...) duration := 200 if actionOptions.PressDuration > 0 { duration = int(actionOptions.PressDuration * 1000)