diff options
author | 2023-03-28 00:33:08 +0100 | |
---|---|---|
committer | 2023-05-02 14:57:49 +0200 | |
commit | 567372fbdad91a4bfa2ee92acfa572e090d965d2 (patch) | |
tree | 9b5c9206fb25a32fc2df35addecb68dd994855b1 | |
parent | 5e43031ed069dc95f617e1a0a1a5de41b54b3b35 (diff) |
Fix text sizes and alignment in drop target
Drop target button texts are being resized incorrectly.
When both buttons are visible, the text is considerably smaller compared
to only one visible button. This happens even for the default display and font scale 1.
Fix: 271279172
Test: manual. test all combinations of display size and font size.
Test: HomeScreenEditStateImageTest
Change-Id: Ib001dcf8b096c65b138946bdad49cf8199fb5b1d
-rw-r--r-- | res/values/styles.xml | 1 | ||||
-rw-r--r-- | src/com/android/launcher3/ButtonDropTarget.java | 15 | ||||
-rw-r--r-- | src/com/android/launcher3/DropTargetBar.java | 1 |
3 files changed, 7 insertions, 10 deletions
diff --git a/res/values/styles.xml b/res/values/styles.xml index 07148631e6..11861b9884 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -314,6 +314,7 @@ <style name="DropTargetButtonBase" parent="@android:style/TextAppearance.DeviceDefault.Medium"> <item name="android:drawablePadding">@dimen/drop_target_button_drawable_padding</item> <item name="android:padding">14dp</item> + <item name="android:includeFontPadding">false</item> <item name="android:textColor">@color/drop_target_text</item> <item name="android:textSize">@dimen/drop_target_text_size</item> <item name="android:singleLine">true</item> diff --git a/src/com/android/launcher3/ButtonDropTarget.java b/src/com/android/launcher3/ButtonDropTarget.java index fc7f614265..1a8600980f 100644 --- a/src/com/android/launcher3/ButtonDropTarget.java +++ b/src/com/android/launcher3/ButtonDropTarget.java @@ -20,6 +20,7 @@ import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import android.content.Context; import android.content.res.Resources; +import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.text.InputType; @@ -58,8 +59,6 @@ public abstract class ButtonDropTarget extends TextView public static final int TOOLTIP_LEFT = 1; public static final int TOOLTIP_RIGHT = 2; - private final Rect mTempRect = new Rect(); - protected final ActivityContext mActivityContext; protected final DropTargetHandler mDropTargetHandler; protected DropTargetBar mDropTargetBar; @@ -417,15 +416,11 @@ public abstract class ButtonDropTarget extends TextView */ @VisibleForTesting protected boolean isTextClippedVertically(int availableHeight) { - availableHeight -= getPaddingTop() + getPaddingBottom(); - if (availableHeight <= 0) { - return true; - } + Paint.FontMetricsInt fontMetricsInt = getPaint().getFontMetricsInt(); + int lineCount = (getLineCount() <= 0) ? 1 : getLineCount(); + int textHeight = lineCount * (fontMetricsInt.bottom - fontMetricsInt.top); - getPaint().getTextBounds(mText.toString(), 0, mText.length(), mTempRect); - // Add bounds bottom to height, as text bounds height measures from the text baseline and - // above, which characters can descend below - return mTempRect.bottom + mTempRect.height() >= availableHeight; + return textHeight + getPaddingTop() + getPaddingBottom() >= availableHeight; } /** diff --git a/src/com/android/launcher3/DropTargetBar.java b/src/com/android/launcher3/DropTargetBar.java index bb6d8b09a2..addcac9f45 100644 --- a/src/com/android/launcher3/DropTargetBar.java +++ b/src/com/android/launcher3/DropTargetBar.java @@ -152,6 +152,7 @@ public class DropTargetBar extends FrameLayout firstButton.setTextVisible(true); firstButton.setIconVisible(true); firstButton.measure(widthSpec, heightSpec); + firstButton.resizeTextToFit(); } else if (visibleCount == 2) { DeviceProfile dp = mLauncher.getDeviceProfile(); int verticalPadding = dp.dropTargetVerticalPaddingPx; |