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

Commit 4867ecd6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Ensure notification status bar icons scale well on low-density displays" into main

parents 11e94031 f284f67f
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -144,7 +144,7 @@ constructor(
            StatusBarConnectedDisplays.unsafeAssertInNewMode()

            val sbIcon = iconBuilder.createIconView(entry, context)
            sbIcon.scaleType = ImageView.ScaleType.CENTER_INSIDE
            sbIcon.scaleType = ImageView.ScaleType.FIT_CENTER
            val (normalIconDescriptor, _) = getIconDescriptors(entry)
            setIcon(entry, normalIconDescriptor, sbIcon)
            return sbIcon
@@ -161,7 +161,12 @@ constructor(
        traceSection("IconManager.createIcons") {
            // Construct the status bar icon view.
            val sbIcon = iconBuilder.createIconView(entry)
            sbIcon.scaleType = ImageView.ScaleType.CENTER_INSIDE
            sbIcon.scaleType =
                if (StatusBarConnectedDisplays.isEnabled) {
                    ImageView.ScaleType.FIT_CENTER
                } else {
                    ImageView.ScaleType.CENTER_INSIDE
                }
            val sbChipIcon: StatusBarIconView?
            if (!StatusBarConnectedDisplays.isEnabled) {
                sbChipIcon = iconBuilder.createIconView(entry)
@@ -281,7 +286,12 @@ constructor(
        traceSection("IconManager.createIcons") {
            // Construct the status bar icon view.
            val sbIcon = iconBuilder.createIconView(entry)
            sbIcon.scaleType = ImageView.ScaleType.CENTER_INSIDE
            sbIcon.scaleType =
                if (StatusBarConnectedDisplays.isEnabled) {
                    ImageView.ScaleType.FIT_CENTER
                } else {
                    ImageView.ScaleType.CENTER_INSIDE
                }
            val sbChipIcon: StatusBarIconView?
            if (!StatusBarConnectedDisplays.isEnabled) {
                sbChipIcon = iconBuilder.createIconView(entry)
+47 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import android.os.SystemClock
import android.os.UserHandle
import android.platform.test.annotations.DisableFlags
import android.platform.test.annotations.EnableFlags
import android.widget.ImageView.ScaleType.CENTER_INSIDE
import android.widget.ImageView.ScaleType.FIT_CENTER
import androidx.test.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
@@ -279,6 +281,51 @@ class IconManagerTest : SysuiTestCase() {
        assertThat(entry?.icons?.shelfIcon?.sourceIcon).isEqualTo(shortcutIc)
    }

    @Test
    @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME)
    fun testCreateIcons_cdFlagEnabled_scaleTypeIsFitCenter() {
        val entry =
            notificationEntry(
                hasShortcut = false,
                hasMessageSenderIcon = false,
                hasLargeIcon = false,
            )

        iconManager.createIcons(entry!!)

        assertThat(entry.icons.statusBarIcon!!.scaleType).isEqualTo(FIT_CENTER)
    }

    @Test
    @DisableFlags(StatusBarConnectedDisplays.FLAG_NAME)
    fun testCreateIcons_cdFlagDisabled_scaleTypeIsCenterInside() {
        val entry =
            notificationEntry(
                hasShortcut = false,
                hasMessageSenderIcon = false,
                hasLargeIcon = false,
            )

        iconManager.createIcons(entry!!)

        assertThat(entry.icons.statusBarIcon!!.scaleType).isEqualTo(CENTER_INSIDE)
    }

    @Test
    @EnableFlags(StatusBarConnectedDisplays.FLAG_NAME)
    fun testCreateSbIconView_cdFlagEnabled_scaleTypeIsFitCenter() {
        val entry =
            notificationEntry(
                hasShortcut = false,
                hasMessageSenderIcon = false,
                hasLargeIcon = false,
            )

        val sbIconView = iconManager.createSbIconView(context, entry!!)

        assertThat(sbIconView.scaleType).isEqualTo(FIT_CENTER)
    }

    private fun notificationEntry(
        hasShortcut: Boolean,
        hasMessageSenderIcon: Boolean,