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

Commit ffb8f130 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android Git Automerger
Browse files

am b805067f: am b886aa76: am c1bd7da9: Merge "Fix: Ellipsis is wrongly applied...

am b805067f: am b886aa76: am c1bd7da9: Merge "Fix: Ellipsis is wrongly applied or not applied in TextView." into mnc-dev

* commit 'b805067f':
  Fix: Ellipsis is wrongly applied or not applied in TextView.
parents 5c0d4d0a b805067f
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -714,6 +714,27 @@ public class StaticLayout extends Layout {
            float[] lineWidths = lineBreaks.widths;
            int[] flags = lineBreaks.flags;

            final int remainingLineCount = mMaximumVisibleLineCount - mLineCount;
            final boolean ellipsisMayBeApplied = ellipsize != null
                    && (ellipsize == TextUtils.TruncateAt.END
                        || (mMaximumVisibleLineCount == 1
                                && ellipsize != TextUtils.TruncateAt.MARQUEE));
            if (remainingLineCount < breakCount && ellipsisMayBeApplied) {
                // Treat the last line and overflowed lines as a single line.
                breaks[remainingLineCount - 1] = breaks[breakCount - 1];
                // Calculate width and flag.
                float width = 0;
                int flag = 0;
                for (int i = remainingLineCount - 1; i < breakCount; i++) {
                    width += lineWidths[i];
                    flag |= flags[i] & TAB_MASK;
                }
                lineWidths[remainingLineCount - 1] = width;
                flags[remainingLineCount - 1] = flag;

                breakCount = remainingLineCount;
            }

            // here is the offset of the starting character of the line we are currently measuring
            int here = paraStart;