TP-67637 | PixelCopy Capture (#195)

Co-authored-by: Varun Jain <varun.jain@navi.com>
This commit is contained in:
Sayed Owais Ali
2024-06-26 13:49:06 +05:30
committed by GitHub
parent abdb4380c8
commit 0db7eb2db4
21 changed files with 540 additions and 299 deletions

View File

@@ -9,17 +9,14 @@ package com.navi.alfred.demo
import android.app.Activity
import android.app.Application
import android.content.IntentFilter
import android.os.Bundle
import android.util.Log
import com.github.anrwatchdog.ANRWatchDog
import com.navi.alfred.AlfredConfig
import com.navi.alfred.AlfredManager
import com.navi.alfred.AlfredManager.isAlfredRecordingEnabled
import com.navi.alfred.demo.activity.MainActivity
import com.navi.alfred.demo.activity.SWWActivity
import com.navi.alfred.utils.AlfredConstants
import com.navi.alfred.utils.AlfredConstants.BROADCAST_ACTION_TYPE
import com.navi.alfred.utils.log
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -40,8 +37,22 @@ class AlfredDemoApplication : Application(), Application.ActivityLifecycleCallba
"qa",
"oMv77fgpBg9NFGom0Psizbf7lbrdBVJz"
)
AlfredManager.init(alfredConfig, this, 27, "Critical Journey is active")
getAlfredCruiseInfo()
AlfredManager.init(alfredConfig, this, 27, "Critical Journey")
CoroutineScope(Dispatchers.IO).launch {
try {
AlfredManager.getAlfredCruiseInfo(
cruiseApiSuccessful = { response ->
Log.d(
"Alfred",
"Alfred - getAlfredCruiseInfo cruiseApiSuccessful h response = $response"
)
}
)
} catch (e: Exception) {
e.log()
}
}
// Dumping anr data to click stream
ANRWatchDog()
@@ -97,7 +108,7 @@ class AlfredDemoApplication : Application(), Application.ActivityLifecycleCallba
override fun onActivityResumed(activity: Activity) {
if (appForegroundCounter > 0) {
startAlfredRecording(activity)
alfredOnActivityResumed(activity)
}
}
@@ -114,64 +125,36 @@ class AlfredDemoApplication : Application(), Application.ActivityLifecycleCallba
override fun onActivityDestroyed(activity: Activity) {}
private fun startAlfredRecording(activity: Activity) {
if (isAlfredRecordingEnabled()) {
val screenName: String?
val moduleName: String?
when (activity) {
is MainActivity -> {
screenName = "MainActivity"
moduleName = "Demo App"
}
is SWWActivity -> {
screenName = "SWWActivity"
moduleName = "Demo App"
}
else -> {
screenName = AlfredConstants.THIRD_PARTY_SCREEN
moduleName = AlfredConstants.THIRD_PARTY_MODULE
}
private fun alfredOnActivityResumed(activity: Activity) {
val screenName: String?
val moduleName: String?
when (activity) {
is MainActivity -> {
screenName = "NaviApp_HomePage_Lands"
moduleName = "Demo App"
}
try {
AlfredManager.startRecording(
activity.applicationContext,
activity.window.decorView.rootView,
screenName,
moduleName
)
} catch (e: Exception) {
e.log()
is SWWActivity -> {
screenName = "NaviApp_HomePage_Lands"
moduleName = "Demo App"
}
else -> {
screenName = AlfredConstants.THIRD_PARTY_SCREEN
moduleName = AlfredConstants.THIRD_PARTY_MODULE
}
}
try {
AlfredManager.onActivityResumed(
activity = activity,
screenName = screenName,
moduleName = moduleName,
applicationContext = applicationContext
)
} catch (e: Exception) {
e.log()
}
}
private fun isAppInForeground(): Boolean {
return appForegroundCounter >= 1
}
private fun getAlfredCruiseInfo() {
Log.d("Alfred", "Alfred - getAlfredCruiseInfo started")
val appNetworkReceiver = AlfredNetworkFailureReceiver()
val intentFilter = IntentFilter(BROADCAST_ACTION_TYPE)
registerReceiver(appNetworkReceiver, intentFilter)
CoroutineScope(Dispatchers.IO).launch {
try {
Log.d(
"Alfred",
"Alfred - getAlfredCruiseInfo started inside try thread = ${Thread.currentThread().name}"
)
AlfredManager.getAlfredCruiseInfo(
cruiseApiSuccessful = { response ->
Log.d(
"Alfred",
"Alfred - getAlfredCruiseInfo cruiseApiSuccessful h response = $response"
)
}
)
} catch (e: Exception) {
Log.d("Alfred", "Alfred - getAlfredCruiseInfo catch e = $e")
e.log()
}
}
}
}