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

Commit 5ecdfa15 authored by Mark Renouf's avatar Mark Renouf
Browse files

Fixes a crash ColorScheme#toString

Fixes an IndexOutOfBoundsException in stringForColor whenever the
value is between 0 and 15. Integer#toHexString does not zero pad.

Bug: 234413479
Test: atest ColorSchemeTest#testToString
Change-Id: I50f95ee8f2b1924bb1778b66ed39fa40685ef7e2
parent 735ebc1f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -435,7 +435,7 @@ class ColorScheme(
            val h = "H${hct.hue.roundToInt().toString().padEnd(width)}"
            val c = "C${hct.chroma.roundToInt().toString().padEnd(width)}"
            val t = "T${CamUtils.lstarFromInt(color).roundToInt().toString().padEnd(width)}"
            val hex = Integer.toHexString(color).replaceRange(0, 2, "").uppercase()
            val hex = Integer.toHexString(color and 0xffffff).padStart(6, '0').uppercase()
            return "$h$c$t = #$hex"
        }

+14 −0
Original line number Diff line number Diff line
@@ -146,6 +146,20 @@ public class ColorSchemeTest extends SysuiTestCase {
        Assert.assertTrue(cam.getChroma() <= 8.0);
    }

    @Test
    @SuppressWarnings("ResultOfMethodCallIgnored")
    public void testToString() {
        new ColorScheme(Color.TRANSPARENT, false /* darkTheme */).toString();
        new ColorScheme(Color.argb(0, 0, 0, 0xf), false /* darkTheme */).toString();
        new ColorScheme(Color.argb(0xff, 0xff, 0, 0), false /* darkTheme */).toString();
        new ColorScheme(0xFFFFFFFF, false /* darkTheme */).toString();

        new ColorScheme(Color.TRANSPARENT, true /* darkTheme */).toString();
        new ColorScheme(Color.argb(0, 0, 0, 0xf), true /* darkTheme */).toString();
        new ColorScheme(0xFFFF0000, true /* darkTheme */).toString();
        new ColorScheme(0xFFFFFFFF, true /* darkTheme */).toString();
    }

    /**
     * Generate xml for SystemPaletteTest#testThemeStyles().
     */