diff --git a/app/src/main/java/com/enaboapps/switchify/service/gestures/GestureManager.kt b/app/src/main/java/com/enaboapps/switchify/service/gestures/GestureManager.kt index 6e1b85c..beb38b4 100644 --- a/app/src/main/java/com/enaboapps/switchify/service/gestures/GestureManager.kt +++ b/app/src/main/java/com/enaboapps/switchify/service/gestures/GestureManager.kt @@ -5,6 +5,7 @@ import android.accessibilityservice.GestureDescription import android.graphics.PointF import com.enaboapps.switchify.service.SwitchifyAccessibilityService import com.enaboapps.switchify.service.utils.ScreenUtils +import java.util.Timer class GestureManager { // singleton @@ -48,6 +49,44 @@ class GestureManager { } } + // Function to perform a double tap + fun performDoubleTap() { + try { + val path = android.graphics.Path() + currentPoint?.let { point -> + path.moveTo(point.x, point.y) + } + val gestureDescription = GestureDescription.Builder().addStroke(GestureDescription.StrokeDescription(path, 550, 100)).build() + accessibilityService.let { + it?.dispatchGesture(gestureDescription, object : AccessibilityService.GestureResultCallback() { + override fun onCompleted(gestureDescription: GestureDescription?) { + super.onCompleted(gestureDescription) + val gestureDrawing = GestureDrawing(it) + currentPoint?.let { point -> + gestureDrawing.drawCircleAndRemove(point.x.toInt(), point.y.toInt()) + } + Timer().schedule(object : java.util.TimerTask() { + override fun run() { + if (gestureDescription != null) { + it.dispatchGesture(gestureDescription, object : AccessibilityService.GestureResultCallback() { + override fun onCompleted(gestureDescription: GestureDescription?) { + super.onCompleted(gestureDescription) + currentPoint?.let { point -> + gestureDrawing.drawCircleAndRemove(point.x.toInt(), point.y.toInt()) + } + } + }, null) + } + } + }, 100) + } + }, null) + } + } catch (e: Exception) { + // Log.e(TAG, "onDoubleTap: ", e) + } + } + // Swipe direction enum class SwipeDirection { UP, DOWN, LEFT, RIGHT diff --git a/app/src/main/java/com/enaboapps/switchify/service/menu/menus/GesturesMenu.kt b/app/src/main/java/com/enaboapps/switchify/service/menu/menus/GesturesMenu.kt index e59afe7..e1b5fe0 100644 --- a/app/src/main/java/com/enaboapps/switchify/service/menu/menus/GesturesMenu.kt +++ b/app/src/main/java/com/enaboapps/switchify/service/menu/menus/GesturesMenu.kt @@ -11,6 +11,9 @@ class GesturesMenu(accessibilityService: SwitchifyAccessibilityService) { MenuItem("Tap", { GestureManager.getInstance().performTap() }), + MenuItem("Double Tap", { + GestureManager.getInstance().performDoubleTap() + }), MenuItem("Swipe", { MenuManager.getInstance().openSwipeMenu() }),