diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java index ffe92fd34257..33cac3bfdc73 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java @@ -166,18 +166,6 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe SliceItem mainTitle = header.getTitleItem(); CharSequence title = mainTitle != null ? mainTitle.getText() : null; mTitle.setText(title); - - // Check if we're already ellipsizing the text. - // We're going to figure out the best possible line break if not. - Layout layout = mTitle.getLayout(); - if (layout != null){ - final int lineCount = layout.getLineCount(); - if (lineCount > 0) { - if (layout.getEllipsisCount(lineCount - 1) == 0) { - mTitle.setText(findBestLineBreak(title)); - } - } - } } mClickActions.clear(); @@ -381,6 +369,27 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe mIconSize = mContext.getResources().getDimensionPixelSize(R.dimen.widget_icon_size); } + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + // Find best ellipsis strategy for the title. + // Done on onMeasure since TextView#getLayout needs a measure pass to calculate its bounds. + Layout layout = mTitle.getLayout(); + if (layout != null) { + final int lineCount = layout.getLineCount(); + if (lineCount > 0) { + if (layout.getEllipsisCount(lineCount - 1) == 0) { + CharSequence title = mTitle.getText(); + CharSequence bestLineBreak = findBestLineBreak(title); + if (!TextUtils.equals(title, bestLineBreak)) { + mTitle.setText(bestLineBreak); + } + } + } + } + } + public static class Row extends LinearLayout { /** |