Feature/bottomshett touchpoint (#58) (#59)

This commit is contained in:
Sayed Owais Ali
2023-11-27 23:29:02 +05:30
committed by GitHub
parent 0cbdbbaf12
commit 564c2007cd
4 changed files with 21 additions and 14 deletions

View File

@@ -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'

View File

@@ -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 =

View File

@@ -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
)

View File

@@ -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) {