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

Commit d1e6d2e3 authored by Haoyu Zhang's avatar Haoyu Zhang
Browse files

Fix getLineLeft crashes when alignment is null

Bug: 119221721
Test: atest StaticLayoutGetLineLeftRightTest
Change-Id: If83ac95f47d76052cf088b7d977ee5cded9a8fee
parent e6472fe5
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -1270,7 +1270,13 @@ public abstract class Layout {
     */
    public float getLineLeft(int line) {
        final int dir = getParagraphDirection(line);
        final Alignment align = getParagraphAlignment(line);
        Alignment align = getParagraphAlignment(line);
        // Before Q, StaticLayout.Builder.setAlignment didn't check whether the input alignment
        // is null. And when it is null, the old behavior is the same as ALIGN_CENTER.
        // To keep consistency, we convert a null alignment to ALIGN_CENTER.
        if (align == null) {
            align = Alignment.ALIGN_CENTER;
        }

        // First convert combinations of alignment and direction settings to
        // three basic cases: ALIGN_LEFT, ALIGN_RIGHT and ALIGN_CENTER.
@@ -1319,7 +1325,13 @@ public abstract class Layout {
     */
    public float getLineRight(int line) {
        final int dir = getParagraphDirection(line);
        final Alignment align = getParagraphAlignment(line);
        Alignment align = getParagraphAlignment(line);
        // Before Q, StaticLayout.Builder.setAlignment didn't check whether the input alignment
        // is null. And when it is null, the old behavior is the same as ALIGN_CENTER.
        // To keep consistency, we convert a null alignment to ALIGN_CENTER.
        if (align == null) {
            align = Alignment.ALIGN_CENTER;
        }

        final Alignment resultAlign;
        switch(align) {