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

Commit 741831d3 authored by Satoshi Kataoka's avatar Satoshi Kataoka
Browse files

Add margin to the label of language

Change-Id: I48dc63475caf5cc1a1ac09b82b26fbeaef993fa1
parent 98565a9c
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -122,4 +122,6 @@
    <dimen name="accessibility_edge_slop">8dp</dimen>
    <dimen name="accessibility_edge_slop">8dp</dimen>


    <integer name="user_dictionary_max_word_length" translatable="false">48</integer>
    <integer name="user_dictionary_max_word_length" translatable="false">48</integer>

    <dimen name="language_on_spacebar_horizontal_margin">1dp</dimen>
</resources>
</resources>
+10 −5
Original line number Original line Diff line number Diff line
@@ -183,6 +183,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
    private final NonDistinctMultitouchHelper mNonDistinctMultitouchHelper;
    private final NonDistinctMultitouchHelper mNonDistinctMultitouchHelper;


    private final KeyTimerHandler mKeyTimerHandler;
    private final KeyTimerHandler mKeyTimerHandler;
    private final int mLanguageOnSpacebarHorizontalMargin;


    private static final class KeyTimerHandler extends StaticInnerHandlerWrapper<MainKeyboardView>
    private static final class KeyTimerHandler extends StaticInnerHandlerWrapper<MainKeyboardView>
            implements TimerProxy {
            implements TimerProxy {
@@ -512,6 +513,9 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
                altCodeKeyWhileTypingFadeinAnimatorResId, this);
                altCodeKeyWhileTypingFadeinAnimatorResId, this);


        mKeyboardActionListener = KeyboardActionListener.EMPTY_LISTENER;
        mKeyboardActionListener = KeyboardActionListener.EMPTY_LISTENER;

        mLanguageOnSpacebarHorizontalMargin =
                (int) getResources().getDimension(R.dimen.language_on_spacebar_horizontal_margin);
    }
    }


    @Override
    @Override
@@ -1188,26 +1192,27 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack
        }
        }
    }
    }


    private static boolean fitsTextIntoWidth(final int width, final String text,
    private boolean fitsTextIntoWidth(final int width, final String text, final Paint paint) {
            final Paint paint) {
        final int maxTextWidth = width - mLanguageOnSpacebarHorizontalMargin * 2;
        paint.setTextScaleX(1.0f);
        paint.setTextScaleX(1.0f);
        final float textWidth = TypefaceUtils.getLabelWidth(text, paint);
        final float textWidth = TypefaceUtils.getLabelWidth(text, paint);
        if (textWidth < width) {
        if (textWidth < width) {
            return true;
            return true;
        }
        }


        final float scaleX = width / textWidth;
        final float scaleX = maxTextWidth / textWidth;
        if (scaleX < MINIMUM_XSCALE_OF_LANGUAGE_NAME) {
        if (scaleX < MINIMUM_XSCALE_OF_LANGUAGE_NAME) {
            return false;
            return false;
        }
        }


        paint.setTextScaleX(scaleX);
        paint.setTextScaleX(scaleX);
        return TypefaceUtils.getLabelWidth(text, paint) < width;
        return TypefaceUtils.getLabelWidth(text, paint) < maxTextWidth;
    }
    }


    // Layout language name on spacebar.
    // Layout language name on spacebar.
    private static String layoutLanguageOnSpacebar(final Paint paint,
    private String layoutLanguageOnSpacebar(final Paint paint,
            final InputMethodSubtype subtype, final int width) {
            final InputMethodSubtype subtype, final int width) {

        // Choose appropriate language name to fit into the width.
        // Choose appropriate language name to fit into the width.
        final String fullText = SubtypeLocaleUtils.getFullDisplayName(subtype);
        final String fullText = SubtypeLocaleUtils.getFullDisplayName(subtype);
        if (fitsTextIntoWidth(width, fullText, paint)) {
        if (fitsTextIntoWidth(width, fullText, paint)) {