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

Commit 749d0ff7 authored by Olivier St-Onge's avatar Olivier St-Onge
Browse files

Fix the exclamation point cutout background for the stacked icon

Using CompositingStrategy.Offscreen ensures that BlendMode.SrcIn works as expected

Flag: com.android.settingslib.flags.new_status_bar_icons
Flag: com.android.systemui.status_bar_root_modernization
Fixes: 423646181
Test: manually - demo mode
Change-Id: I724b5df8f5d02828d4a147309c42b793df37b50f
parent b38e11b4
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -35,8 +35,10 @@ import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.BlendMode
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.CompositingStrategy
import androidx.compose.ui.graphics.drawscope.DrawScope
import androidx.compose.ui.graphics.drawscope.scale
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
@@ -140,9 +142,11 @@ private fun StackedMobileIcon(
        with(LocalDensity.current) { dimensions.totalWidth.toDp() to IconHeightSp.toDp() }

    Canvas(
        modifier.width(iconSize.first).height(iconSize.second).semantics {
            contentDescription?.let { this.contentDescription = it }
        }
        modifier
            .width(iconSize.first)
            .height(iconSize.second)
            .semantics { contentDescription?.let { this.contentDescription = it } }
            .graphicsLayer { compositingStrategy = CompositingStrategy.Offscreen }
    ) {
        val rtl = layoutDirection == LayoutDirection.Rtl
        scale(if (rtl) -1f else 1f, 1f) {