@@ -6,7 +6,7 @@ plugins {
|
||||
id 'kotlin-parcelize'
|
||||
}
|
||||
|
||||
def VERSION_NAME = "1.0.9"
|
||||
def VERSION_NAME = "1.0.10"
|
||||
|
||||
android {
|
||||
namespace 'com.navi.alfred'
|
||||
|
||||
@@ -344,9 +344,12 @@ object AlfredManager {
|
||||
coroutineDispatcher.executor.execute {
|
||||
try {
|
||||
if (currentTouchEvent?.action == ACTION_DOWN) {
|
||||
val actionPointer = currentTouchEvent.actionIndex
|
||||
previousTouchEvent.action = currentTouchEvent.action
|
||||
previousTouchEvent.positionX = currentTouchEvent.rawX
|
||||
previousTouchEvent.positionY = currentTouchEvent.rawY
|
||||
previousTouchEvent.pointerPositionX = currentTouchEvent.getX(actionPointer)
|
||||
previousTouchEvent.pointerPositionY = currentTouchEvent.getY(actionPointer)
|
||||
previousTouchEvent.rawX = currentTouchEvent.rawX
|
||||
previousTouchEvent.rawY = currentTouchEvent.rawY
|
||||
}
|
||||
if (currentTouchEvent?.action == ACTION_UP) {
|
||||
val touchEventData =
|
||||
|
||||
@@ -9,6 +9,8 @@ package com.navi.alfred.model
|
||||
|
||||
data class NaviMotionEvent(
|
||||
var action: Int? = null,
|
||||
var positionX: Float? = null,
|
||||
var positionY: Float? = null
|
||||
var pointerPositionX: Float? = null,
|
||||
var pointerPositionY: Float? = null,
|
||||
var rawX: Float? = null,
|
||||
var rawY: Float? = null
|
||||
)
|
||||
|
||||
@@ -22,23 +22,25 @@ internal fun getTouchEvent(
|
||||
val pointerIndex = currentTouchEvent?.actionIndex ?: 0
|
||||
val eventName =
|
||||
if (
|
||||
difference(currentTouchEvent?.getX(pointerIndex), previousTouchEvent?.positionX) &&
|
||||
difference(currentTouchEvent?.getY(pointerIndex), previousTouchEvent?.positionY)
|
||||
(difference(currentTouchEvent?.getX(pointerIndex), previousTouchEvent?.pointerPositionX) &&
|
||||
difference(currentTouchEvent?.getY(pointerIndex), previousTouchEvent?.pointerPositionY)) ||
|
||||
(difference(currentTouchEvent?.rawX, previousTouchEvent?.rawX) &&
|
||||
difference(currentTouchEvent?.rawY, previousTouchEvent?.rawY))
|
||||
) {
|
||||
properties[AlfredConstants.START_X] = previousTouchEvent?.positionX.toString()
|
||||
properties[AlfredConstants.START_Y] = previousTouchEvent?.positionY.toString()
|
||||
properties[AlfredConstants.START_X] = previousTouchEvent?.pointerPositionX.toString()
|
||||
properties[AlfredConstants.START_Y] = previousTouchEvent?.pointerPositionY.toString()
|
||||
AlfredConstants.TOUCH_EVENT
|
||||
} else {
|
||||
properties[AlfredConstants.START_X] = previousTouchEvent?.positionX.toString()
|
||||
properties[AlfredConstants.START_Y] = previousTouchEvent?.positionY.toString()
|
||||
properties[AlfredConstants.END_X] = currentTouchEvent?.rawX.toString()
|
||||
properties[AlfredConstants.END_Y] = currentTouchEvent?.rawY.toString()
|
||||
properties[AlfredConstants.START_X] = previousTouchEvent?.pointerPositionX.toString()
|
||||
properties[AlfredConstants.START_Y] = previousTouchEvent?.pointerPositionY.toString()
|
||||
properties[AlfredConstants.END_X] = currentTouchEvent?.getX(pointerIndex).toString()
|
||||
properties[AlfredConstants.END_Y] = currentTouchEvent?.getY(pointerIndex).toString()
|
||||
AlfredConstants.SCROLL_EVENT
|
||||
}
|
||||
return Pair(eventName, properties)
|
||||
}
|
||||
|
||||
internal fun difference(value1: Float? = 0F, value2: Float? = 0F, threshold: Int = 100): Boolean {
|
||||
internal fun difference(value1: Float? = 0F, value2: Float? = 0F, threshold: Int = 50): Boolean {
|
||||
return try {
|
||||
abs(subtractExact(value1?.toInt().orZero(), value2?.toInt().orZero())) <= threshold
|
||||
} catch (e: Exception) {
|
||||
|
||||
Reference in New Issue
Block a user