diff --git a/.gitignore b/.gitignore index aa724b7..539bb0f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,9 @@ /.idea/workspace.xml /.idea/navEditor.xml /.idea/assetWizardSettings.xml +/.idea/deploymentTargetDropDown.xml +/.idea/gradle.xml +/.idea/misc.xml .DS_Store /build /captures diff --git a/navi-alfred/build.gradle b/navi-alfred/build.gradle index 787860d..aa25cf3 100644 --- a/navi-alfred/build.gradle +++ b/navi-alfred/build.gradle @@ -5,7 +5,7 @@ plugins { id 'maven-publish' } -def VERSION_NAME = "navi_v1.0.0" +def VERSION_NAME = "v1.0.1" 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 3a9a548..7bc5367 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/AlfredConfig.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/AlfredConfig.kt @@ -50,8 +50,21 @@ data class AlfredConfig( private var enableAlfred: Boolean = false, private var disableDialogScreenShot: Boolean = false, private var zipFileName: String? = null, - private var disableAlfredLogs: Boolean = true + private var disableAlfredLogs: Boolean = true, + private var timeZone: String? = null, + private var phoneNumber: String? = null, + private var agentEmailId: String? = null, + private var codePushVersion: String? = null, + private var apiKey: String = "" ) { + constructor(appName: String, appVersionCode: String, appVersionName: String, flavor: String, apiKey: String) : this( + appVersionCode = appVersionCode, + appVersionName = appVersionName, + appName = appName, + flavor = flavor, + apiKey = apiKey, + disableAlfredLogs = false + ) fun getDeviceId(): String = Settings.System.getString( @@ -248,6 +261,11 @@ data class AlfredConfig( return this.disableDialogScreenShot } + fun getCurrentTimeZone(): String? { + timeZone = TimeZone.getDefault().getDisplayName(false, TimeZone.SHORT) + return this.timeZone; + } + fun setZipFileName(zipFileName: String) { this.zipFileName = zipFileName } @@ -259,4 +277,28 @@ data class AlfredConfig( } fun getDisableAlfredLogsStatus(): Boolean = this.disableAlfredLogs + + fun getPhoneNumber(): String? = this.phoneNumber + + fun setPhoneNumber(phoneNumber: String) { + this.phoneNumber = phoneNumber + } + + fun getAgentEmailId(): String? = this.agentEmailId + + fun setAgentEmailId(agentEmailId: String) { + this.agentEmailId = agentEmailId + } + + fun getCodePushVersion(): String? = this.codePushVersion + + fun setCodePushVersion(codePushVersion: String) { + this.codePushVersion = codePushVersion + } + + fun getApiKey(): String = this.apiKey + + fun setApiKey(apiKey: String) { + this.apiKey = apiKey + } } diff --git a/navi-alfred/src/main/java/com/navi/alfred/AlfredManager.kt b/navi-alfred/src/main/java/com/navi/alfred/AlfredManager.kt index 1c6393f..0bbf514 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/AlfredManager.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/AlfredManager.kt @@ -7,6 +7,7 @@ package com.navi.alfred +import android.annotation.SuppressLint import android.app.Dialog import android.content.Context import android.graphics.Bitmap @@ -49,6 +50,7 @@ import com.navi.alfred.utils.AlfredConstants.CODE_API_BAD_REQUEST import com.navi.alfred.utils.AlfredConstants.CODE_API_SUCCESS import com.navi.alfred.utils.AlfredConstants.THIRD_PARTY_MODULE import com.navi.alfred.utils.AlfredConstants.ZIP_FILE_EXTENSION +import com.navi.alfred.utils.AlfredConstants.INCREMENT_OF_ONE_MINUTE import com.navi.alfred.utils.ScreenShotStorageHelper import com.navi.alfred.utils.captureScreen import com.navi.alfred.utils.captureScreenshotOfCustomView @@ -77,7 +79,9 @@ import java.util.TimerTask import java.util.UUID import java.util.concurrent.Executors import kotlin.concurrent.fixedRateTimer +import java.lang.Long.min +@SuppressLint("StaticFieldLeak") object AlfredManager { lateinit var config: AlfredConfig @@ -98,6 +102,7 @@ object AlfredManager { private var isAppInBackground: Boolean = false private var hasRecordingStarted: Boolean = false var dialog: Dialog? = null + var cosmosBottomSheet: View? = null private var timer: Timer? = null private var screenShotTimer: Timer? = null private var viewLayoutDelay: Long = 1000 @@ -110,6 +115,7 @@ object AlfredManager { private lateinit var zipFileDetails: List private val exceptionHandler = CoroutineExceptionHandler { _, _ -> } private val coroutineScope = CoroutineScope(Dispatchers.IO + completableJob + exceptionHandler) + private var retryCount: Int = 0 fun init(config: AlfredConfig, context: Context) { this.config = config @@ -166,7 +172,7 @@ object AlfredManager { bmpForCanvas = createBitmapForView(view) } try { - if (dialog != null) { + if (dialog != null || cosmosBottomSheet != null) { captureBottomSheet( view, context, @@ -201,7 +207,7 @@ object AlfredManager { private suspend fun handleScreenShot() { if ( ScreenShotStorageHelper.images.size == imageThreshHoldValue || - ScreenShotStorageHelper.images.size == imageSecondThreshHoldValue + ScreenShotStorageHelper.images.size == imageSecondThreshHoldValue ) { toZip(screenShotDao.fetchScreenShotsPath(imageThreshHoldValue)) } else { @@ -234,7 +240,11 @@ object AlfredManager { if (config.getDisableDialogScreenShot()) { return } - val bottomSheetView = dialog?.window?.decorView?.rootView + val bottomSheetView = if (cosmosBottomSheet != null) { + cosmosBottomSheet + } else { + dialog?.window?.decorView?.rootView + } if (bottomSheetView != null) { val bottomSheetCanvasForBitmap = createBitmapForView(bottomSheetView) val bottomSheetScreenShot = @@ -277,6 +287,7 @@ object AlfredManager { if (screenShotDao.getScreenShotCount() > 0) { screenShotDao.deleteAllScreenShot() } + if (zipDetailsDao.getZipFilesDetailsCount() > 0) { zipFileDetails = zipDetailsDao.fetchAllZipFilesDetails() zipFileDetails.forEachIndexed { index, DumpZipDetailsHelper -> @@ -295,8 +306,9 @@ object AlfredManager { } } - fun measureInflatedView(view: View) { - view.layoutParams = ViewGroup.LayoutParams(1080, 1920) + @JvmOverloads + fun measureInflatedView(view: View, width: Int = 1080, height: Int = 1920) { + view.layoutParams = ViewGroup.LayoutParams(width, height) view.measure( View.MeasureSpec.makeMeasureSpec(view.layoutParams.width, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(view.layoutParams.height, View.MeasureSpec.EXACTLY) @@ -304,17 +316,34 @@ object AlfredManager { view.layout(0, 0, view.measuredWidth, view.measuredHeight) } - suspend fun getCruiseConfig() { + fun getAlfredCruiseInfo(cruiseApiSuccessful: () -> Unit) { + CoroutineScope(Dispatchers.IO).launch { + try { + getCruiseConfig(cruiseApiSuccessful = { + cruiseApiSuccessful() + }) + } catch (e: Exception) { + e.log() + } + } + } + + suspend fun getCruiseConfig(cruiseApiSuccessful: () -> Unit) { val response = repository.cruiseConfig( AlfredConstants.DEFAULT_CRUISE_CONFIG_URL, config.getAppVersionName(), + config.getAppVersionCode(), config.getOsVersion(), - config.getDeviceId() + config.getDeviceId(), + config.getApiKey() ) if (response.isSuccessful && response.code() == CODE_API_SUCCESS) { try { - response.body()?.let { cruiseResponse -> setCruiseConfig(cruiseResponse) } + response.body()?.let { cruiseResponse -> + setCruiseConfig(cruiseResponse) + cruiseApiSuccessful() + } } catch (e: Exception) { e.log() } @@ -325,6 +354,7 @@ object AlfredManager { cruiseResponse.data.let { responseList -> if (responseList.isNotEmpty()) { val cruiseConfig = responseList.first() + cruiseConfig.source.let { source -> source.enable?.let { sourceConfig -> config.setAlfredStatus(sourceConfig) } source.recordingsConfig?.let { recordingConfig -> @@ -377,7 +407,7 @@ object AlfredManager { ) { config.setAlfredEventId() val bucketKey = config.getAlfredEventId().plus(ZIP_FILE_EXTENSION) - val response = repository.getPreSignedUrl(bucketKey) + val response = repository.getPreSignedUrl(bucketKey, config.getApiKey()) if (response.isSuccessful && response.code() == CODE_API_SUCCESS) { checkFileExists(zipFileName, applicationContext)?.let { file -> response.body()?.data?.let { @@ -413,25 +443,38 @@ object AlfredManager { private fun uploadWorkManagerFailedZip() { if (workFailureData.size > 0) { val inputData = workFailureData[0] - WorkManager.getInstance(applicationContext).cancelWorkById(inputData.id) - val requestData = - Data.Builder() - .putString(AlfredConstants.ALFRED_SESSION_ID, inputData.alfredSessionId) - .putLong( - AlfredConstants.SESSION_START_RECORDING_TIME, - inputData.sessionStartRecordingTime - ) - .putLong( - AlfredConstants.EVENT_START_RECORDING_TIME, - inputData.eventStartRecordingTime - ) - .putString( - AlfredConstants.SCREENSHOT_LIST, - Gson().toJson(inputData.screenShots) - ) - .build() - buildWorkManager(requestData) - workFailureData.removeAt(0) + if (retryCount < 3) { + WorkManager.getInstance(applicationContext).cancelWorkById(inputData.id) + val requestData = + Data.Builder() + .putString(AlfredConstants.ALFRED_SESSION_ID, inputData.alfredSessionId) + .putLong( + AlfredConstants.SESSION_START_RECORDING_TIME, + inputData.sessionStartRecordingTime + ) + .putLong( + AlfredConstants.EVENT_START_RECORDING_TIME, + inputData.eventStartRecordingTime + ) + .putString( + AlfredConstants.SCREENSHOT_LIST, + Gson().toJson(inputData.screenShots) + ) + .build() + buildWorkManager(requestData) + retryCount += 1 + workFailureData.removeAt(0) + } else { + retryCount = 0 + WorkManager.getInstance(applicationContext).cancelWorkById(inputData.id) + workFailureData.removeAt(0) + insertZipDetailsToDbForDumpingLater( + alfredSessionId = inputData.alfredSessionId.toString(), + eventStartRecordingTime = inputData.eventStartRecordingTime, + sessionStartRecordingTime = inputData.sessionStartRecordingTime, + zipFileName = inputData.zipFileName + ) + } } } @@ -530,12 +573,12 @@ object AlfredManager { ) { zipDetailsDao.insert( data = - ZipDetailsHelper( - alfredSessionId = alfredSessionId, - sessionStartRecordingTime = sessionStartRecordingTime, - eventStartRecordingTime = eventStartRecordingTime, - zipFileName = zipFileName - ) + ZipDetailsHelper( + alfredSessionId = alfredSessionId, + sessionStartRecordingTime = sessionStartRecordingTime, + eventStartRecordingTime = eventStartRecordingTime, + zipFileName = zipFileName + ) ) } @@ -592,7 +635,7 @@ object AlfredManager { ) return if ( (response.isSuccessful && response.code() == CODE_API_SUCCESS) or - (response.code() == CODE_API_BAD_REQUEST) + (response.code() == CODE_API_BAD_REQUEST) ) { apiMetricDao.deleteApiMetric(metricEventList.map { it.id }) true @@ -630,11 +673,13 @@ object AlfredManager { } suspend fun sendEventsToServer(applicationContext: Context): Boolean { + if (config.getAlfredStatus() && config.getEnableRecordingStatus()) { mutex.withLock { val db = AlfredDatabaseHelper.getAnalyticsDatabase(applicationContext) val analyticsDao = db.analyticsDao() val analyticsEvents = analyticsDao.fetchEvents(config.getEventBatchSize()) + if (analyticsEvents.isNotEmpty()) { try { val detailsList = analyticsEvents.map { it.details } @@ -649,10 +694,14 @@ object AlfredManager { baseAttribute = BaseAttribute(sessionId = sessionId), events = events ) - val response = repository.sendEvents(config.getPostUrl(), request) + val response = repository.sendEvents( + config.getPostUrl(), + config.getApiKey(), + request + ) return if ( (response.isSuccessful && response.code() == CODE_API_SUCCESS) or - (response.code() == CODE_API_BAD_REQUEST) + (response.code() == CODE_API_BAD_REQUEST) ) { analyticsDao.deleteEvents(analyticsEvents.map { it.eventId }) true @@ -680,6 +729,7 @@ object AlfredManager { var clientTs: Long? = null var sessionTimeStamp: Long? = null var sessionId: String? = null + var eventEndTimeStamp: Long? = null if (index != null) { val zipFileDetail = zipFileDetails[index] clientTs = zipFileDetail.eventStartRecordingTime @@ -690,51 +740,65 @@ object AlfredManager { sessionTimeStamp = sessionStartRecordingTimeForCrash sessionId = sessionIdForCrash } + + clientTs?.let { + eventEndTimeStamp = + min(it.plus(INCREMENT_OF_ONE_MINUTE), config.getEventTimeStamp()) + } + request = SessionRequest( base_attribute = - BaseAttribute( - sessionId = sessionId, - eventTimeStamp = config.getEventTimeStamp(), - clientTs = clientTs, - sessionTimeStamp = sessionTimeStamp - ), + BaseAttribute( + sessionId = sessionId, + eventTimeStamp = config.getEventTimeStamp(), + clientTs = clientTs, + sessionTimeStamp = sessionTimeStamp, + eventEndTimeStamp = eventEndTimeStamp + ), session_upload_event_attributes = - SessionEventAttribute( - beginningDeviceAttributes = DeviceAttributes(), - endDeviceAttributes = DeviceAttributes() - ) + SessionEventAttribute( + beginningDeviceAttributes = DeviceAttributes(), + endDeviceAttributes = DeviceAttributes() + ) ) } else { + val eventEndTimeStamp = config.getEventStartRecordingTime() + ?.let { min(it.plus(INCREMENT_OF_ONE_MINUTE), config.getEventTimeStamp()) } request = SessionRequest( base_attribute = - BaseAttribute( - sessionId = config.getAlfredSessionId(), - eventTimeStamp = config.getEventTimeStamp(), - clientTs = config.getEventStartRecordingTime() - ), + BaseAttribute( + sessionId = config.getAlfredSessionId(), + eventTimeStamp = config.getEventTimeStamp(), + clientTs = config.getEventStartRecordingTime(), + eventEndTimeStamp = eventEndTimeStamp + ), session_upload_event_attributes = - SessionEventAttribute( - beginningDeviceAttributes = - DeviceAttributes( - battery = config.batteryPercentageBeforeEventStart, - cpu = config.cpuUsageBeforeEventStart, - memory = config.memoryUsageBeforeEventStart, - storage = config.storageUsageBeforeEventStart - ), - endDeviceAttributes = - DeviceAttributes( - battery = config.getBatteryPercentage(), - cpu = config.getCpuUsage(), - memory = config.getMemoryUsage(), - storage = config.getStorageUsage() - ) + SessionEventAttribute( + beginningDeviceAttributes = + DeviceAttributes( + battery = config.batteryPercentageBeforeEventStart, + cpu = config.cpuUsageBeforeEventStart, + memory = config.memoryUsageBeforeEventStart, + storage = config.storageUsageBeforeEventStart + ), + endDeviceAttributes = + DeviceAttributes( + battery = config.getBatteryPercentage(), + cpu = config.getCpuUsage(), + memory = config.getMemoryUsage(), + storage = config.getStorageUsage() ) + ) ) } coroutineScope.launch { - repository.sendSession(AlfredConstants.DEFAULT_SEND_SESSION_POST_URL, request) + val response = repository.sendSession( + AlfredConstants.DEFAULT_SEND_SESSION_POST_URL, + config.getApiKey(), + request + ) if (!dumpFlow) { config.setEventStartRecordingTime(true) handleDeviceAttributes() diff --git a/navi-alfred/src/main/java/com/navi/alfred/model/ErrorMessage.kt b/navi-alfred/src/main/java/com/navi/alfred/model/ErrorMessage.kt index fa0823e..e9b3ab4 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/model/ErrorMessage.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/model/ErrorMessage.kt @@ -17,5 +17,6 @@ data class WorkManagerFailureInputData( var sessionStartRecordingTime: Long = 0L, var eventStartRecordingTime: Long = 0L, var screenShots: List = emptyList(), - val id: UUID + val id: UUID, + val zipFileName: String ) diff --git a/navi-alfred/src/main/java/com/navi/alfred/model/SessionRequest.kt b/navi-alfred/src/main/java/com/navi/alfred/model/SessionRequest.kt index 3af06b8..ea2902e 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/model/SessionRequest.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/model/SessionRequest.kt @@ -59,7 +59,12 @@ data class BaseAttribute( val sessionId: String? = AlfredManager.config.getAlfredSessionId(), @SerializedName("session_time_stamp") val sessionTimeStamp: Long? = AlfredManager.config.getSessionStartRecordingTime(), -) + @SerializedName("event_end_time_stamp") + val eventEndTimeStamp: Long? = AlfredManager.config.getEventTimeStamp(), + @SerializedName("timezone") + val timezone: String? = AlfredManager.config.getCurrentTimeZone(), + @SerializedName("metadata") val metaData: MetaData = MetaData() + ) data class SessionEventAttribute( @SerializedName("event_id") val eventId: String? = AlfredManager.config.getAlfredEventId(), @@ -74,3 +79,9 @@ data class DeviceAttributes( @SerializedName("storage") val storage: Float? = null, @SerializedName("memory") val memory: Float? = null, ) + +data class MetaData( + @SerializedName("phone_number") val phoneNumber: String? = AlfredManager.config.getPhoneNumber(), + @SerializedName("agent_email_id") val agentEmailId: String? = AlfredManager.config.getAgentEmailId(), + @SerializedName("code_push_version") val codePushVersion: String? = AlfredManager.config.getCodePushVersion() +) diff --git a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredNetworkRepository.kt b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredNetworkRepository.kt index 0001f67..5c7ae44 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredNetworkRepository.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredNetworkRepository.kt @@ -19,19 +19,20 @@ import retrofit2.Response class AlfredNetworkRepository { suspend fun sendEvents( url: String, + apiKey: String, analyticsRequest: AnalyticsRequest ): Response { return AlfredRetrofitProvider.getApiService() - .sendEvents(url, "application/json", ALFRED, analyticsRequest) + .sendEvents(url, "application/json", ALFRED, apiKey, analyticsRequest) } - suspend fun getPreSignedUrl(sessionId: String): Response { - return AlfredRetrofitProvider.getApiService().getPreSignedUrl(sessionId, ALFRED) + suspend fun getPreSignedUrl(sessionId: String, apiKey: String): Response { + return AlfredRetrofitProvider.getApiService().getPreSignedUrl(sessionId, ALFRED, apiKey) } - suspend fun sendSession(url: String, sessionRequest: SessionRequest): Response { + suspend fun sendSession(url: String, apiKey: String, sessionRequest: SessionRequest): Response { return AlfredRetrofitProvider.getApiService() - .sendSession(url, "application/json", ALFRED, sessionRequest) + .sendSession(url, "application/json", apiKey, ALFRED, sessionRequest) } suspend fun uploadZipToS3(preSignedUrl: String, request: RequestBody): Response { @@ -46,8 +47,10 @@ class AlfredNetworkRepository { suspend fun cruiseConfig( url: String, appVersionName: String, + appVersinoCode: String, osVersionCode: String, - deviceId: String + deviceId: String, + apiKey: String ): Response { return AlfredRetrofitProvider.getApiService() .getCruiseConfig( @@ -55,8 +58,10 @@ class AlfredNetworkRepository { ALFRED, contentType = "application/json", appVersionName = appVersionName, + appVersionCode = appVersinoCode, osVersion = osVersionCode, - deviceId = deviceId + deviceId = deviceId, + apiKey = apiKey ) } } diff --git a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt index 9b4a831..d61466f 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitProvider.kt @@ -6,7 +6,6 @@ */ package com.navi.alfred.network - import android.content.Context import com.chuckerteam.chucker.api.ChuckerCollector import com.chuckerteam.chucker.api.ChuckerInterceptor diff --git a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitService.kt b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitService.kt index 6e8c324..28fbc23 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitService.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/network/AlfredRetrofitService.kt @@ -12,11 +12,13 @@ import com.navi.alfred.model.EventMetricRequest import com.navi.alfred.model.SessionRequest import com.navi.alfred.network.model.CruiseResponse import com.navi.alfred.network.model.PreSignedUrlResponse +import com.navi.alfred.utils.AlfredConstants.APP_VERSION_CODE import com.navi.alfred.utils.AlfredConstants.APP_VERSION_NAME import com.navi.alfred.utils.AlfredConstants.CONTENT_TYPE import com.navi.alfred.utils.AlfredConstants.DEVICE_ID import com.navi.alfred.utils.AlfredConstants.OS_VERSION import com.navi.alfred.utils.AlfredConstants.SESSION_ID +import com.navi.alfred.utils.AlfredConstants.X_API_KEY import com.navi.alfred.utils.AlfredConstants.X_TARGET import okhttp3.RequestBody import retrofit2.Response @@ -28,13 +30,15 @@ interface AlfredRetrofitService { @Url url: String, @Header(CONTENT_TYPE) contentType: String, @Header(X_TARGET) target: String, + @Header(X_API_KEY) apiKey: String, @Body analyticsRequest: AnalyticsRequest ): Response - @GET("ingest/session/pre-sign/{sessionId}") + @GET("v2/ingest/session/pre-sign/{sessionId}") suspend fun getPreSignedUrl( @Path(SESSION_ID) sessionId: String, @Header(X_TARGET) target: String, + @Header(X_API_KEY) apiKey: String ): Response @PUT @@ -48,6 +52,7 @@ interface AlfredRetrofitService { suspend fun sendSession( @Url url: String, @Header(CONTENT_TYPE) contentType: String, + @Header(X_API_KEY) apiKey: String, @Header(X_TARGET) target: String, @Body sessionRequest: SessionRequest ): Response @@ -65,8 +70,10 @@ interface AlfredRetrofitService { @Url url: String, @Header(X_TARGET) target: String, @Header(APP_VERSION_NAME) appVersionName: String, + @Header(APP_VERSION_CODE) appVersionCode: String, @Header(OS_VERSION) osVersion: String, @Header(DEVICE_ID) deviceId: String, - @Header(CONTENT_TYPE) contentType: String, + @Header(X_API_KEY) apiKey: String = "", + @Header(CONTENT_TYPE) contentType: String ): Response } diff --git a/navi-alfred/src/main/java/com/navi/alfred/utils/AlfredConstants.kt b/navi-alfred/src/main/java/com/navi/alfred/utils/AlfredConstants.kt index 1a5ffc0..33617d6 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/utils/AlfredConstants.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/utils/AlfredConstants.kt @@ -14,9 +14,9 @@ object AlfredConstants { const val ADD_EVENT_TASK = "AddEventTask" const val ADD_API_METRIC_TASK = "AddMetricTask" const val OS_ANDROID = "Android" - const val DEFAULT_SEND_EVENT_POST_URL = "/ingest/event" - const val DEFAULT_SEND_SESSION_POST_URL = "/ingest/session" - const val DEFAULT_CRUISE_CONFIG_URL = "/cruise" + const val DEFAULT_SEND_EVENT_POST_URL = "/v2/ingest/event" + const val DEFAULT_SEND_SESSION_POST_URL = "/v2/ingest/session" + const val DEFAULT_CRUISE_CONFIG_URL = "/v2/cruise" const val DEFAULT_INGEST_METRIC_URL = "/ingest/metrics" const val TIMER_THREAD_NAME = "SyncTimer" const val DEFAULT_INITIAL_DELAY = 5000L @@ -50,8 +50,10 @@ object AlfredConstants { const val BYTES_SENT = "bytes_sent" const val ALFRED = "ALFRED" const val CONTENT_TYPE = "Content-Type" + const val X_API_KEY = "X-Api-Key" const val X_TARGET = "X-Target" const val APP_VERSION_NAME = "appVersionName" + const val APP_VERSION_CODE = "appVersionCode" const val OS_VERSION = "osVersion" const val DEVICE_ID = "deviceId" const val SESSION_ID = "sessionId" @@ -71,4 +73,5 @@ object AlfredConstants { const val ZIP_FILE_EXTENSION = ".zip" const val IMAGE_FILE_EXTENSION = ".jpeg" const val SYNC_EVENT_TASK = "SyncEventTask" + const val INCREMENT_OF_ONE_MINUTE = 60000L } diff --git a/navi-alfred/src/main/java/com/navi/alfred/utils/Utils.kt b/navi-alfred/src/main/java/com/navi/alfred/utils/Utils.kt index 68a4dfb..fe4357e 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/utils/Utils.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/utils/Utils.kt @@ -118,8 +118,8 @@ fun combineScreenshots( ): Bitmap? { if ( backgroundScreenshot == null || - bottomSheetScreenshot == null || - isScreenDisabled(screenName, moduleName) + bottomSheetScreenshot == null || + isScreenDisabled(screenName, moduleName) ) { return null } diff --git a/navi-alfred/src/main/java/com/navi/alfred/worker/UploadFileWorker.kt b/navi-alfred/src/main/java/com/navi/alfred/worker/UploadFileWorker.kt index bc78dd2..d5a8146 100644 --- a/navi-alfred/src/main/java/com/navi/alfred/worker/UploadFileWorker.kt +++ b/navi-alfred/src/main/java/com/navi/alfred/worker/UploadFileWorker.kt @@ -45,7 +45,8 @@ class UploadFileWorker(context: Context, workerParams: WorkerParameters) : sessionStartRecordingTime, eventStartRecordingTime, screenShots, - id + id, + zipFileName ) ) try {