diff --git a/app/src/main/java/com/alfred/demo/MainApplication.kt b/app/src/main/java/com/alfred/demo/MainApplication.kt index 3d9ba35..8dedeba 100644 --- a/app/src/main/java/com/alfred/demo/MainApplication.kt +++ b/app/src/main/java/com/alfred/demo/MainApplication.kt @@ -27,7 +27,7 @@ class MainApplication : Application(), Application.ActivityLifecycleCallbacks { val alfredConfig = AlfredConfig( "Alfred Demo App", - "1", + "1000", "1.0.0", "qa", "oMv77fgpBg9NFGom0Psizbf7lbrdBVJz" diff --git a/navi-alfred/build.gradle b/navi-alfred/build.gradle index cdfdb9d..85dd805 100644 --- a/navi-alfred/build.gradle +++ b/navi-alfred/build.gradle @@ -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' diff --git a/navi-alfred/src/main/java/com/navi/alfred/AlfredConfig.kt b/navi-alfred/src/main/java/com/navi/alfred/AlfredConfig.kt index 92bd864..b2f58fd 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/AlfredConfig.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/AlfredConfig.kt @@ -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, diff --git a/navi-alfred/src/main/java/com/navi/alfred/utils/ScreenShotUtils.kt b/navi-alfred/src/main/java/com/navi/alfred/utils/ScreenShotUtils.kt index 4957480..70742ce 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/utils/ScreenShotUtils.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/utils/ScreenShotUtils.kt @@ -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) { diff --git a/navi-alfred/src/main/java/com/navi/alfred/utils/UserBehaviourUtils.kt b/navi-alfred/src/main/java/com/navi/alfred/utils/UserBehaviourUtils.kt index 16fcb5a..37966c9 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/utils/UserBehaviourUtils.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/utils/UserBehaviourUtils.kt @@ -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> { val properties = HashMap() 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)