Loading packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -28,7 +28,7 @@ android:clipToPadding="false" android:clipToPadding="false" android:orientation="vertical" android:orientation="vertical" android:layout_centerHorizontal="true"> android:layout_centerHorizontal="true"> <com.android.systemui.statusbar.AlphaOptimizedTextView <view class="com.android.keyguard.KeyguardSliceView$TitleView" android:id="@+id/title" android:id="@+id/title" android:layout_width="match_parent" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="wrap_content" Loading packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +42 −22 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,7 @@ import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.statusbar.AlphaOptimizedTextView; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService; import com.android.systemui.util.wakelock.KeepAwakeAnimationListener; import com.android.systemui.util.wakelock.KeepAwakeAnimationListener; Loading Loading @@ -245,7 +246,7 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe * @param charSequence Original text. * @param charSequence Original text. * @return Optimal string. * @return Optimal string. */ */ private CharSequence findBestLineBreak(CharSequence charSequence) { private static CharSequence findBestLineBreak(CharSequence charSequence) { if (TextUtils.isEmpty(charSequence)) { if (TextUtils.isEmpty(charSequence)) { return charSequence; return charSequence; } } Loading Loading @@ -371,27 +372,6 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe mIconSize = mContext.getResources().getDimensionPixelSize(R.dimen.widget_icon_size); 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 void refresh() { public void refresh() { Slice slice = SliceManager.getInstance(getContext()).bindSlice(mKeyguardSliceUri); Slice slice = SliceManager.getInstance(getContext()).bindSlice(mKeyguardSliceUri); onChanged(slice); onChanged(slice); Loading Loading @@ -554,6 +534,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 { private class SliceViewTransitionListener implements LayoutTransition.TransitionListener { @Override @Override public void startTransition(LayoutTransition transition, ViewGroup container, View view, public void startTransition(LayoutTransition transition, ViewGroup container, View view, Loading Loading
packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -28,7 +28,7 @@ android:clipToPadding="false" android:clipToPadding="false" android:orientation="vertical" android:orientation="vertical" android:layout_centerHorizontal="true"> android:layout_centerHorizontal="true"> <com.android.systemui.statusbar.AlphaOptimizedTextView <view class="com.android.keyguard.KeyguardSliceView$TitleView" android:id="@+id/title" android:id="@+id/title" android:layout_width="match_parent" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_height="wrap_content" Loading
packages/SystemUI/src/com/android/keyguard/KeyguardSliceView.java +42 −22 Original line number Original line Diff line number Diff line Loading @@ -47,6 +47,7 @@ import com.android.systemui.Dependency; import com.android.systemui.Interpolators; import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.statusbar.AlphaOptimizedTextView; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService; import com.android.systemui.util.wakelock.KeepAwakeAnimationListener; import com.android.systemui.util.wakelock.KeepAwakeAnimationListener; Loading Loading @@ -245,7 +246,7 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe * @param charSequence Original text. * @param charSequence Original text. * @return Optimal string. * @return Optimal string. */ */ private CharSequence findBestLineBreak(CharSequence charSequence) { private static CharSequence findBestLineBreak(CharSequence charSequence) { if (TextUtils.isEmpty(charSequence)) { if (TextUtils.isEmpty(charSequence)) { return charSequence; return charSequence; } } Loading Loading @@ -371,27 +372,6 @@ public class KeyguardSliceView extends LinearLayout implements View.OnClickListe mIconSize = mContext.getResources().getDimensionPixelSize(R.dimen.widget_icon_size); 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 void refresh() { public void refresh() { Slice slice = SliceManager.getInstance(getContext()).bindSlice(mKeyguardSliceUri); Slice slice = SliceManager.getInstance(getContext()).bindSlice(mKeyguardSliceUri); onChanged(slice); onChanged(slice); Loading Loading @@ -554,6 +534,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 { private class SliceViewTransitionListener implements LayoutTransition.TransitionListener { @Override @Override public void startTransition(LayoutTransition transition, ViewGroup container, View view, public void startTransition(LayoutTransition transition, ViewGroup container, View view, Loading