summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jordan Silva <silvajordan@google.com> 2023-03-28 00:33:08 +0100
committer Jordan Silva <silvajordan@google.com> 2023-05-02 14:57:49 +0200
commit567372fbdad91a4bfa2ee92acfa572e090d965d2 (patch)
tree9b5c9206fb25a32fc2df35addecb68dd994855b1
parent5e43031ed069dc95f617e1a0a1a5de41b54b3b35 (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.xml1
-rw-r--r--src/com/android/launcher3/ButtonDropTarget.java15
-rw-r--r--src/com/android/launcher3/DropTargetBar.java1
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;