Add the SPA page enter/leave logging metrcis.
- Add the SpaLogProvider and SpaLogData for logging writing. - Write the SPA page enter/leave logging. Fixes: 271793388 Bug: 253979024 Test: atest SpaActivityTest SpaLogDataTest MetricsDataModelTest Change-Id: I0ad5af39ba207ac00d58f6392496effa3adc42f4
This commit is contained in:
@@ -16,18 +16,29 @@
|
||||
|
||||
package com.android.settings.spa
|
||||
|
||||
import android.app.ActivityManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.RemoteException
|
||||
import android.os.UserHandle
|
||||
import android.util.Log
|
||||
import com.android.settingslib.spa.framework.BrowseActivity
|
||||
import com.android.settingslib.spa.framework.util.SESSION_BROWSE
|
||||
import com.android.settingslib.spa.framework.util.SESSION_EXTERNAL
|
||||
import com.android.settingslib.spa.framework.util.appendSpaParams
|
||||
|
||||
class SpaActivity : BrowseActivity() {
|
||||
companion object {
|
||||
private const val TAG = "SpaActivity"
|
||||
@JvmStatic
|
||||
fun Context.startSpaActivity(destination: String) {
|
||||
val intent = Intent(this, SpaActivity::class.java)
|
||||
.appendSpaParams(destination = destination)
|
||||
if (isLaunchedFromInternal()) {
|
||||
intent.appendSpaParams(sessionName = SESSION_BROWSE)
|
||||
} else {
|
||||
intent.appendSpaParams(sessionName = SESSION_EXTERNAL)
|
||||
}
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
@@ -37,5 +48,15 @@ class SpaActivity : BrowseActivity() {
|
||||
startSpaActivity("$destinationPrefix/$packageName/${UserHandle.myUserId()}")
|
||||
return true
|
||||
}
|
||||
|
||||
fun Context.isLaunchedFromInternal(): Boolean {
|
||||
var pkg: String? = null
|
||||
try {
|
||||
pkg = ActivityManager.getService().getLaunchedFromPackage(getActivityToken())
|
||||
} catch (e: RemoteException) {
|
||||
Log.v(TAG, "Could not talk to activity manager.", e)
|
||||
}
|
||||
return applicationContext.packageName == pkg
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user