diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml b/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml index db03ed20311ce..dfa4bf922c8f7 100644 --- a/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml +++ b/packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml @@ -28,7 +28,7 @@ android:clipToPadding="false" android:orientation="vertical" android:layout_centerHorizontal="true"> - 0) { - if (layout.getEllipsisCount(lineCount - 1) == 0) { - CharSequence title = mTitle.getText(); - CharSequence bestLineBreak = findBestLineBreak(title); - if (!TextUtils.equals(title, bestLineBreak)) { - mTitle.setText(bestLineBreak); - } - } - } - } - } - public void refresh() { Slice slice = SliceManager.getInstance(getContext()).bindSlice(mKeyguardSliceUri); onChanged(slice); @@ -553,6 +533,46 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe } } + /** + * A text view that will split its contents in 2 lines when possible. + */ + static class TitleView extends AlphaOptimizedTextView { + + public TitleView(Context context) { + super(context); + } + + public TitleView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public TitleView(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public TitleView(Context context, AttributeSet attrs, int defStyleAttr, + int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + Layout layout = getLayout(); + int lineCount = layout.getLineCount(); + boolean ellipsizing = layout.getEllipsisCount(lineCount - 1) != 0; + if (lineCount > 0 && !ellipsizing) { + CharSequence title = getText(); + CharSequence bestLineBreak = findBestLineBreak(title); + if (!TextUtils.equals(title, bestLineBreak)) { + setText(bestLineBreak); + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + } + } + } + private class SliceViewTransitionListener implements LayoutTransition.TransitionListener { @Override public void startTransition(LayoutTransition transition, ViewGroup container, View view,