Add New UiEvents for media dashboard

Adds two UiEvents when media session is added, the first one is logged when the carousel contains only one media player. The second event when the carousel has multiples, it is logged only once.

Bug: 241485754
Test: Tried log.e() and checked that it is working as explained in the
description.

Change-Id: I8380bfd14cde5c38b2940023e7ddce01fe3128ad
This commit is contained in:
Michael Mikhail
2022-11-23 21:30:38 +00:00
parent 5b7da895e2
commit 93111fee94
2 changed files with 39 additions and 1 deletions

View File

@@ -422,6 +422,7 @@ class MediaDataManager(
appUid = appUid
)
mediaEntries.put(packageName, resumeData)
logSingleVsMultipleMediaAdded(appUid, packageName, instanceId)
logger.logResumeMediaAdded(appUid, packageName, instanceId)
}
backgroundExecutor.execute {
@@ -812,6 +813,7 @@ class MediaDataManager(
val appUid = appInfo?.uid ?: Process.INVALID_UID
if (logEvent) {
logSingleVsMultipleMediaAdded(appUid, sbn.packageName, instanceId)
logger.logActiveMediaAdded(appUid, sbn.packageName, instanceId, playbackLocation)
} else if (playbackLocation != currentEntry?.playbackLocation) {
logger.logPlaybackLocationChange(appUid, sbn.packageName, instanceId, playbackLocation)
@@ -855,6 +857,20 @@ class MediaDataManager(
}
}
private fun logSingleVsMultipleMediaAdded(
appUid: Int,
packageName: String,
instanceId: InstanceId
) {
if (mediaEntries.size == 1) {
logger.logSingleMediaPlayerInCarousel(appUid, packageName, instanceId)
} else if (mediaEntries.size == 2) {
// Since this method is only called when there is a new media session added.
// logging needed once there is more than one media session in carousel.
logger.logMultipleMediaPlayersInCarousel(appUid, packageName, instanceId)
}
}
private fun getAppInfoFromPackage(packageName: String): ApplicationInfo? {
try {
return context.packageManager.getApplicationInfo(packageName, 0)

View File

@@ -213,6 +213,24 @@ class MediaUiEventLogger @Inject constructor(private val logger: UiEventLogger)
instanceId
)
}
fun logSingleMediaPlayerInCarousel(uid: Int, packageName: String, instanceId: InstanceId) {
logger.logWithInstanceId(
MediaUiEvent.MEDIA_CAROUSEL_SINGLE_PLAYER,
uid,
packageName,
instanceId
)
}
fun logMultipleMediaPlayersInCarousel(uid: Int, packageName: String, instanceId: InstanceId) {
logger.logWithInstanceId(
MediaUiEvent.MEDIA_CAROUSEL_MULTIPLE_PLAYERS,
uid,
packageName,
instanceId
)
}
}
enum class MediaUiEvent(val metricId: Int) : UiEventLogger.UiEventEnum {
@@ -269,7 +287,11 @@ enum class MediaUiEvent(val metricId: Int) : UiEventLogger.UiEventEnum {
@UiEvent(doc = "User tapped on a media recommendation card")
MEDIA_RECOMMENDATION_CARD_TAP(1045),
@UiEvent(doc = "User opened the broadcast dialog from a media control")
MEDIA_OPEN_BROADCAST_DIALOG(1079);
MEDIA_OPEN_BROADCAST_DIALOG(1079),
@UiEvent(doc = "The media carousel contains one media player card")
MEDIA_CAROUSEL_SINGLE_PLAYER(1244),
@UiEvent(doc = "The media carousel contains multiple media player cards")
MEDIA_CAROUSEL_MULTIPLE_PLAYERS(1245);
override fun getId() = metricId
}