Hotfix 1.0.11 touchpoint scale factor (#60)

This commit is contained in:
Sayed Owais Ali
2023-11-28 16:47:33 +05:30
committed by GitHub
parent 564c2007cd
commit f8f2ca50b7
5 changed files with 20 additions and 10 deletions

View File

@@ -27,7 +27,7 @@ class MainApplication : Application(), Application.ActivityLifecycleCallbacks {
val alfredConfig = AlfredConfig(
"Alfred Demo App",
"1",
"1000",
"1.0.0",
"qa",
"oMv77fgpBg9NFGom0Psizbf7lbrdBVJz"

View File

@@ -6,7 +6,7 @@ plugins {
id 'kotlin-parcelize'
}
def VERSION_NAME = "1.0.10"
def VERSION_NAME = "1.0.11"
android {
namespace 'com.navi.alfred'

View File

@@ -62,7 +62,9 @@ data class AlfredConfig(
internal var memoryUsageBeforeEventStart: Float? = null,
internal var storageUsageBeforeEventStart: Float? = null,
internal var batteryPercentageBeforeEventStart: Float? = null,
internal var cruiseAttributes: CruiseAttributes = CruiseAttributes()
internal var cruiseAttributes: CruiseAttributes = CruiseAttributes(),
internal var xScaleFactor: Float? = null,
internal var yScaleFactor: Float? = null
) {
constructor(appName: String, appVersionCode: String, appVersionName: String, flavor: String, apiKey: String) : this(
appVersionCode = appVersionCode,

View File

@@ -6,7 +6,6 @@ import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.util.Log
import android.view.View
import android.view.ViewGroup
import com.navi.alfred.AlfredManager
@@ -104,6 +103,10 @@ internal fun insertScreenShotPathInDb(
}
}
bitmap?.compress(Bitmap.CompressFormat.JPEG, videoQuality, fos)
if (AlfredManager.config.xScaleFactor == null || AlfredManager.config.yScaleFactor == null) {
AlfredManager.config.xScaleFactor = bitmap?.width?.toFloat()?.div(Resources.getSystem().displayMetrics.widthPixels)
AlfredManager.config.yScaleFactor = bitmap?.height?.toFloat()?.div(Resources.getSystem().displayMetrics.heightPixels)
}
fos.flush()
fos.close()
if (bottomSheetFlow == false) {

View File

@@ -8,8 +8,11 @@
package com.navi.alfred.utils
import android.content.res.Resources
import android.view.MotionEvent
import com.navi.alfred.AlfredManager
import com.navi.alfred.model.NaviMotionEvent
import java.lang.Float.min
import java.lang.Math.subtractExact
import java.util.*
import kotlin.math.abs
@@ -20,6 +23,8 @@ internal fun getTouchEvent(
): Pair<String, HashMap<String, String>> {
val properties = HashMap<String, String>()
val pointerIndex = currentTouchEvent?.actionIndex ?: 0
val screenWidth = Resources.getSystem().displayMetrics.widthPixels
val screenHeight = Resources.getSystem().displayMetrics.heightPixels
val eventName =
if (
(difference(currentTouchEvent?.getX(pointerIndex), previousTouchEvent?.pointerPositionX) &&
@@ -27,14 +32,14 @@ internal fun getTouchEvent(
(difference(currentTouchEvent?.rawX, previousTouchEvent?.rawX) &&
difference(currentTouchEvent?.rawY, previousTouchEvent?.rawY))
) {
properties[AlfredConstants.START_X] = previousTouchEvent?.pointerPositionX.toString()
properties[AlfredConstants.START_Y] = previousTouchEvent?.pointerPositionY.toString()
properties[AlfredConstants.START_X] = min(previousTouchEvent?.pointerPositionX ?: 0f, screenWidth.toFloat()).times(AlfredManager.config.xScaleFactor ?: 0.5f).toString()
properties[AlfredConstants.START_Y] = min(previousTouchEvent?.pointerPositionY ?: 0f, screenHeight.toFloat()).times(AlfredManager.config.yScaleFactor ?: 0.5f).toString()
AlfredConstants.TOUCH_EVENT
} else {
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()
properties[AlfredConstants.START_X] = min(previousTouchEvent?.pointerPositionX ?: 0f, screenWidth.toFloat()).times(AlfredManager.config.xScaleFactor ?: 0.5f).toString()
properties[AlfredConstants.START_Y] = min(previousTouchEvent?.pointerPositionY ?: 0f, screenHeight.toFloat()).times(AlfredManager.config.yScaleFactor ?: 0.5f).toString()
properties[AlfredConstants.END_X] = min(currentTouchEvent?.getX(pointerIndex) ?: 0f, screenWidth.toFloat()).times(AlfredManager.config.xScaleFactor ?: 0.5f).toString()
properties[AlfredConstants.END_Y] = min(currentTouchEvent?.getY(pointerIndex) ?: 0f, screenHeight.toFloat()).times(AlfredManager.config.yScaleFactor ?: 0.5f).toString()
AlfredConstants.SCROLL_EVENT
}
return Pair(eventName, properties)