feat: add WithPreMarkOperation and WithPostMarkOperation to mark UI operation before/after action

This commit is contained in:
lilong.129
2025-05-12 08:58:27 +08:00
parent 7a6890a160
commit d95eec78b0
7 changed files with 33 additions and 109 deletions

View File

@@ -44,14 +44,10 @@ func (dExt *XTDriver) Call(desc string, fn func(), opts ...option.ActionOption)
func preHandler_TapAbsXY(driver IDriver, options *option.ActionOptions, rawX, rawY float64) (
x, y float64, err error) {
if options.PreHook != nil {
options.PreHook()
}
x, y = options.ApplyTapOffset(rawX, rawY)
// mark UI operation
if options.MarkOperationEnabled {
if options.PreMarkOperation {
if markErr := MarkUIOperation(driver, ACTION_TapAbsXY, []float64{x, y}); markErr != nil {
log.Warn().Err(markErr).Msg("Failed to mark tap operation")
}
@@ -63,10 +59,6 @@ func preHandler_TapAbsXY(driver IDriver, options *option.ActionOptions, rawX, ra
func preHandler_DoubleTap(driver IDriver, options *option.ActionOptions, rawX, rawY float64) (
x, y float64, err error) {
if options.PreHook != nil {
options.PreHook()
}
x, y, err = convertToAbsolutePoint(driver, rawX, rawY)
if err != nil {
return 0, 0, err
@@ -75,7 +67,7 @@ func preHandler_DoubleTap(driver IDriver, options *option.ActionOptions, rawX, r
x, y = options.ApplyTapOffset(x, y)
// mark UI operation
if options.MarkOperationEnabled {
if options.PreMarkOperation {
if markErr := MarkUIOperation(driver, ACTION_DoubleTapXY, []float64{x, y}); markErr != nil {
log.Warn().Err(markErr).Msg("Failed to mark double tap operation")
}
@@ -87,10 +79,6 @@ func preHandler_DoubleTap(driver IDriver, options *option.ActionOptions, rawX, r
func preHandler_Drag(driver IDriver, options *option.ActionOptions, rawFomX, rawFromY, rawToX, rawToY float64) (
fromX, fromY, toX, toY float64, err error) {
if options.PreHook != nil {
options.PreHook()
}
fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(driver, rawFomX, rawFromY, rawToX, rawToY)
if err != nil {
return 0, 0, 0, 0, err
@@ -98,7 +86,7 @@ func preHandler_Drag(driver IDriver, options *option.ActionOptions, rawFomX, raw
fromX, fromY, toX, toY = options.ApplySwipeOffset(fromX, fromY, toX, toY)
// mark UI operation
if options.MarkOperationEnabled {
if options.PreMarkOperation {
if markErr := MarkUIOperation(driver, ACTION_Drag, []float64{fromX, fromY, toX, toY}); markErr != nil {
log.Warn().Err(markErr).Msg("Failed to mark drag operation")
}
@@ -110,10 +98,6 @@ func preHandler_Drag(driver IDriver, options *option.ActionOptions, rawFomX, raw
func preHandler_Swipe(driver IDriver, options *option.ActionOptions, rawFomX, rawFromY, rawToX, rawToY float64) (
fromX, fromY, toX, toY float64, err error) {
if options.PreHook != nil {
options.PreHook()
}
fromX, fromY, toX, toY, err = convertToAbsoluteCoordinates(driver, rawFomX, rawFromY, rawToX, rawToY)
if err != nil {
return 0, 0, 0, 0, err
@@ -121,7 +105,7 @@ func preHandler_Swipe(driver IDriver, options *option.ActionOptions, rawFomX, ra
fromX, fromY, toX, toY = options.ApplySwipeOffset(fromX, fromY, toX, toY)
// mark UI operation
if options.MarkOperationEnabled {
if options.PreMarkOperation {
if markErr := MarkUIOperation(driver, ACTION_Swipe, []float64{fromX, fromY, toX, toY}); markErr != nil {
log.Warn().Err(markErr).Msg("Failed to mark swipe operation")
}
@@ -131,23 +115,12 @@ func preHandler_Swipe(driver IDriver, options *option.ActionOptions, rawFomX, ra
}
func preHandler_AppLaunch(_ IDriver, options *option.ActionOptions) (err error) {
if options.PreHook != nil {
options.PreHook()
}
return nil
}
func preHandler_AppTerminate(_ IDriver, options *option.ActionOptions) (err error) {
if options.PreHook != nil {
options.PreHook()
}
return nil
}
func postHandler(_ IDriver, options *option.ActionOptions) {
if options.PostHook != nil {
options.PostHook()
}
}