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

Commit c1c93552 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[Media TTT] Improve our logs around chip removal.

1) Fix our log for removing the chip due to FAR_FROM_RECEIVER state
   (previously, it was logging "ChipStateSender" as the reason, not
   "FAR_FROM_RECEIVER").
2) Add a log for when we ignore a removal event.

Fixes: 246574567
Test: manual: verified MediaTttSender logs
Test: media.taptotransfer tests
Change-Id: Idb59c0c24ee49481abcfa005de59af007fbf84ec
parent b9f40302
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -52,6 +52,23 @@ class MediaTttLogger(
            { "Package $str1 could not be found" }
        )
    }

    /**
     * Logs that a removal request has been bypassed (ignored).
     *
     * @param removalReason the reason that the chip removal was requested.
     * @param bypassReason the reason that the request was bypassed.
     */
    fun logRemovalBypass(removalReason: String, bypassReason: String) {
        buffer.log(
            tag,
            LogLevel.DEBUG,
            {
                str1 = removalReason
                str2 = bypassReason
            },
            { "Chip removal requested due to $str1; however, removal was ignored because $str2" })
    }
}

private const val BASE_TAG = "MediaTtt"
+4 −1
Original line number Diff line number Diff line
@@ -106,7 +106,7 @@ class MediaTttChipControllerSender @Inject constructor(
        uiEventLogger.logSenderStateChange(chipState)

        if (chipState == ChipStateSender.FAR_FROM_RECEIVER) {
            removeView(removalReason = ChipStateSender.FAR_FROM_RECEIVER::class.simpleName!!)
            removeView(removalReason = ChipStateSender.FAR_FROM_RECEIVER.name)
        } else {
            displayView(ChipSenderInfo(chipState, routeInfo, undoCallback))
        }
@@ -180,6 +180,9 @@ class MediaTttChipControllerSender @Inject constructor(
                transferStatus == TransferStatus.SUCCEEDED) &&
            removalReason != TemporaryDisplayRemovalReason.REASON_TIMEOUT
        ) {
            logger.logRemovalBypass(
                removalReason, bypassReason = "transferStatus=${transferStatus.name}"
            )
            return
        }
        super.removeView(removalReason)
+19 −7
Original line number Diff line number Diff line
@@ -50,10 +50,7 @@ class MediaTttLoggerTest : SysuiTestCase() {

        logger.logStateChange(stateName, id, packageName)

        val stringWriter = StringWriter()
        buffer.dump(PrintWriter(stringWriter), tailLength = 0)
        val actualString = stringWriter.toString()

        val actualString = getStringFromBuffer()
        assertThat(actualString).contains(DEVICE_TYPE_TAG)
        assertThat(actualString).contains(stateName)
        assertThat(actualString).contains(id)
@@ -66,11 +63,26 @@ class MediaTttLoggerTest : SysuiTestCase() {

        logger.logPackageNotFound(packageName)

        val actualString = getStringFromBuffer()
        assertThat(actualString).contains(packageName)
    }

    @Test
    fun logRemovalBypass_bufferHasReasons() {
        val removalReason = "fakeRemovalReason"
        val bypassReason = "fakeBypassReason"

        logger.logRemovalBypass(removalReason, bypassReason)

        val actualString = getStringFromBuffer()
        assertThat(actualString).contains(removalReason)
        assertThat(actualString).contains(bypassReason)
    }

    private fun getStringFromBuffer(): String {
        val stringWriter = StringWriter()
        buffer.dump(PrintWriter(stringWriter), tailLength = 0)
        val actualString = stringWriter.toString()

        assertThat(actualString).contains(packageName)
        return stringWriter.toString()
    }
}

+8 −0
Original line number Diff line number Diff line
@@ -587,6 +587,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    @Test
@@ -601,6 +602,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    @Test
@@ -622,6 +624,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    @Test
@@ -646,6 +649,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    @Test
@@ -656,6 +660,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    @Test
@@ -680,6 +685,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    @Test
@@ -690,6 +696,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    @Test
@@ -714,6 +721,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() {
        fakeExecutor.runAllReady()

        verify(windowManager, never()).removeView(any())
        verify(logger).logRemovalBypass(any(), any())
    }

    private fun ViewGroup.getAppIconView() = this.requireViewById<ImageView>(R.id.app_icon)