Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93111fee authored by Michael Mikhail's avatar Michael Mikhail
Browse files

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
parent 5b7da895
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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)
+23 −1
Original line number Diff line number Diff line
@@ -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
}