Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 567372fb authored by Jordan Silva's avatar Jordan Silva
Browse files

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
parent 5e43031e
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -314,6 +314,7 @@
    <style name="DropTargetButtonBase" parent="@android:style/TextAppearance.DeviceDefault.Medium">
    <style name="DropTargetButtonBase" parent="@android:style/TextAppearance.DeviceDefault.Medium">
        <item name="android:drawablePadding">@dimen/drop_target_button_drawable_padding</item>
        <item name="android:drawablePadding">@dimen/drop_target_button_drawable_padding</item>
        <item name="android:padding">14dp</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:textColor">@color/drop_target_text</item>
        <item name="android:textSize">@dimen/drop_target_text_size</item>
        <item name="android:textSize">@dimen/drop_target_text_size</item>
        <item name="android:singleLine">true</item>
        <item name="android:singleLine">true</item>
+5 −10
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;


import android.content.Context;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.Resources;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable;
import android.text.InputType;
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_LEFT = 1;
    public static final int TOOLTIP_RIGHT = 2;
    public static final int TOOLTIP_RIGHT = 2;


    private final Rect mTempRect = new Rect();

    protected final ActivityContext mActivityContext;
    protected final ActivityContext mActivityContext;
    protected final DropTargetHandler mDropTargetHandler;
    protected final DropTargetHandler mDropTargetHandler;
    protected DropTargetBar mDropTargetBar;
    protected DropTargetBar mDropTargetBar;
@@ -417,15 +416,11 @@ public abstract class ButtonDropTarget extends TextView
     */
     */
    @VisibleForTesting
    @VisibleForTesting
    protected boolean isTextClippedVertically(int availableHeight) {
    protected boolean isTextClippedVertically(int availableHeight) {
        availableHeight -= getPaddingTop() + getPaddingBottom();
        Paint.FontMetricsInt fontMetricsInt = getPaint().getFontMetricsInt();
        if (availableHeight <= 0) {
        int lineCount = (getLineCount() <= 0) ? 1 : getLineCount();
            return true;
        int textHeight = lineCount * (fontMetricsInt.bottom - fontMetricsInt.top);
        }


        getPaint().getTextBounds(mText.toString(), 0, mText.length(), mTempRect);
        return textHeight + getPaddingTop() + getPaddingBottom() >= availableHeight;
        // 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;
    }
    }


    /**
    /**
+1 −0
Original line number Original line Diff line number Diff line
@@ -152,6 +152,7 @@ public class DropTargetBar extends FrameLayout
            firstButton.setTextVisible(true);
            firstButton.setTextVisible(true);
            firstButton.setIconVisible(true);
            firstButton.setIconVisible(true);
            firstButton.measure(widthSpec, heightSpec);
            firstButton.measure(widthSpec, heightSpec);
            firstButton.resizeTextToFit();
        } else if (visibleCount == 2) {
        } else if (visibleCount == 2) {
            DeviceProfile dp = mLauncher.getDeviceProfile();
            DeviceProfile dp = mLauncher.getDeviceProfile();
            int verticalPadding = dp.dropTargetVerticalPaddingPx;
            int verticalPadding = dp.dropTargetVerticalPaddingPx;