From 7d67331c72cc7af82631bd40a56334ec364b7e1a Mon Sep 17 00:00:00 2001 From: Brandon Dayauon Date: Mon, 3 Apr 2023 12:32:24 -0700 Subject: [PATCH] Fix two line item of app-title only in A-Z list and not predicted app row Create protected method that would be overidden if two lines should be supported bug: 274686392 test: manual Change-Id: I34bbd9980aee70397ee75744bedfa61c340a2741 --- .../appprediction/PredictionRowView.java | 11 +++++++++++ src/com/android/launcher3/BubbleTextView.java | 15 +++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/quickstep/src/com/android/launcher3/appprediction/PredictionRowView.java b/quickstep/src/com/android/launcher3/appprediction/PredictionRowView.java index 3510fbef38..34316dbb1b 100644 --- a/quickstep/src/com/android/launcher3/appprediction/PredictionRowView.java +++ b/quickstep/src/com/android/launcher3/appprediction/PredictionRowView.java @@ -36,6 +36,7 @@ import com.android.launcher3.Utilities; import com.android.launcher3.allapps.FloatingHeaderRow; import com.android.launcher3.allapps.FloatingHeaderView; import com.android.launcher3.anim.AlphaUpdateListener; +import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.keyboard.FocusIndicatorHelper; import com.android.launcher3.keyboard.FocusIndicatorHelper.SimpleFocusIndicatorHelper; import com.android.launcher3.model.data.ItemInfo; @@ -105,12 +106,22 @@ public class PredictionRowView mActivityContext.getAppsView().getAppsStore().unregisterIconContainer(this); } } + + // Set the predicted row in All Apps' text line to 1. + if (FeatureFlags.ENABLE_TWOLINE_ALLAPPS.get() + || FeatureFlags.ENABLE_TWOLINE_DEVICESEARCH.get()) { + for (int i = 0; i < getChildCount(); i++) { + BubbleTextView icon = (BubbleTextView) getChildAt(i); + icon.setMaxLines(1); + } + } } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(getExpectedHeight(), MeasureSpec.EXACTLY)); + updateVisibility(); } @Override diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java index 961c2548dd..450a9f0069 100644 --- a/src/com/android/launcher3/BubbleTextView.java +++ b/src/com/android/launcher3/BubbleTextView.java @@ -398,6 +398,15 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver, || mDisplay == DISPLAY_TASKBAR; } + /** + * Only if actual text can be displayed in two line, the {@code true} value will be effective. + */ + protected boolean shouldUseTwoLine() { + return (FeatureFlags.ENABLE_TWOLINE_ALLAPPS.get() && mDisplay == DISPLAY_ALL_APPS) + || (FeatureFlags.ENABLE_TWOLINE_DEVICESEARCH.get() + && mDisplay == DISPLAY_SEARCH_RESULT); + } + @UiThread @VisibleForTesting public void applyLabel(ItemInfoWithIcon info) { @@ -667,10 +676,8 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver, setPadding(getPaddingLeft(), (height - cellHeightPx) / 2, getPaddingRight(), getPaddingBottom()); } - // only apply two line for all_apps - if (((FeatureFlags.ENABLE_TWOLINE_ALLAPPS.get() && mDisplay == DISPLAY_ALL_APPS) - || (FeatureFlags.ENABLE_TWOLINE_DEVICESEARCH.get() - && mDisplay == DISPLAY_SEARCH_RESULT)) && (mLastOriginalText != null)) { + // Only apply two line for all_apps and device search only if necessary. + if (shouldUseTwoLine() && (mLastOriginalText != null)) { CharSequence modifiedString = modifyTitleToSupportMultiLine( MeasureSpec.getSize(widthMeasureSpec) - getCompoundPaddingLeft() - getCompoundPaddingRight(),