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

Commit 83f173cc authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka Committed by Android (Google) Code Review
Browse files

Merge "Remove {max,min}keyboardHeight attribute from Keyboard"

parents f6aed4bd 17dae305
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -173,13 +173,6 @@
        <attr name="themeId" format="integer" />
        <!-- Touch position correction -->
        <attr name="touchPositionCorrectionData" format="reference" />
        <!-- Default keyboard height -->
        <attr name="keyboardHeight" format="dimension|fraction" />
        <!-- Maximum keyboard height, in pixels or percentage of display height -->
        <attr name="maxKeyboardHeight" format="dimension|fraction" />
        <!-- Minimum keyboard height represented in pixels, percentage of display height if fraction
             is positive, or percentage of display width if fraction is negative. -->
        <attr name="minKeyboardHeight" format="dimension|fraction" />
        <!-- Keyboard top, bottom, both horizontal edges paddings. -->
        <attr name="keyboardTopPadding" format="dimension|fraction" />
        <attr name="keyboardBottomPadding" format="dimension|fraction" />
+0 −3
Original line number Diff line number Diff line
@@ -21,9 +21,6 @@
        <item name="themeId">0</item>
        <item name="touchPositionCorrectionData">@array/touch_position_correction_data_default</item>
        <item name="rowHeight">25%p</item>
        <item name="keyboardHeight">@dimen/keyboardHeight</item>
        <item name="maxKeyboardHeight">@fraction/maxKeyboardHeight</item>
        <item name="minKeyboardHeight">@fraction/minKeyboardHeight</item>
        <item name="moreKeysTemplate">@xml/kbd_more_keys_keyboard_template</item>
        <item name="keyboardTopPadding">@fraction/keyboard_top_padding</item>
        <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding</item>
+11 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.inputmethod.keyboard;

import static com.android.inputmethod.latin.Constants.Subtype.ExtraValue.KEYBOARD_LAYOUT_SET;

import android.content.res.Configuration;
import android.text.InputType;
import android.text.TextUtils;
import android.view.inputmethod.EditorInfo;
@@ -62,8 +63,10 @@ public final class KeyboardId {
    public final InputMethodSubtype mSubtype;
    public final Locale mLocale;
    public final int mDeviceFormFactor;
    // TODO: Remove this member. It is used only for logging purpose.
    public final int mOrientation;
    public final int mWidth;
    public final int mHeight;
    public final int mMode;
    public final int mElementId;
    private final EditorInfo mEditorInfo;
@@ -81,7 +84,8 @@ public final class KeyboardId {
        mLocale = SubtypeLocale.getSubtypeLocale(mSubtype);
        mDeviceFormFactor = params.mDeviceFormFactor;
        mOrientation = params.mOrientation;
        mWidth = params.mWidth;
        mWidth = params.mKeyboardWidth;
        mHeight = params.mKeyboardHeight;
        mMode = params.mMode;
        mElementId = elementId;
        mEditorInfo = params.mEditorInfo;
@@ -108,6 +112,7 @@ public final class KeyboardId {
                id.mElementId,
                id.mMode,
                id.mWidth,
                id.mHeight,
                id.passwordInput(),
                id.mClobberSettingsKey,
                id.mShortcutKeyEnabled,
@@ -130,6 +135,7 @@ public final class KeyboardId {
                && other.mElementId == mElementId
                && other.mMode == mMode
                && other.mWidth == mWidth
                && other.mHeight == mHeight
                && other.passwordInput() == passwordInput()
                && other.mClobberSettingsKey == mClobberSettingsKey
                && other.mShortcutKeyEnabled == mShortcutKeyEnabled
@@ -187,11 +193,13 @@ public final class KeyboardId {

    @Override
    public String toString() {
        return String.format("[%s %s:%s %s-%s:%d %s %s %s%s%s%s%s%s%s%s%s]",
        final String orientation = (mOrientation == Configuration.ORIENTATION_PORTRAIT)
                ? "port" : "land";
        return String.format("[%s %s:%s %s-%s:%dx%d %s %s %s%s%s%s%s%s%s%s%s]",
                elementIdToName(mElementId),
                mLocale,
                mSubtype.getExtraValueOf(KEYBOARD_LAYOUT_SET),
                deviceFormFactor(mDeviceFormFactor), (mOrientation == 1 ? "port" : "land"), mWidth,
                deviceFormFactor(mDeviceFormFactor), orientation, mWidth, mHeight,
                modeName(mMode),
                imeAction(),
                (navigateNext() ? "navigateNext" : ""),
+37 −5
Original line number Diff line number Diff line
@@ -28,9 +28,11 @@ import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.text.InputType;
import android.text.TextUtils;
import android.util.Log;
import android.util.SparseArray;
import android.util.Xml;
import android.view.ViewDebug.HierarchyTraceType;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodSubtype;

@@ -44,6 +46,7 @@ import com.android.inputmethod.latin.InputAttributes;
import com.android.inputmethod.latin.InputTypeUtils;
import com.android.inputmethod.latin.LatinImeLogger;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.ResourceUtils;
import com.android.inputmethod.latin.SubtypeLocale;
import com.android.inputmethod.latin.SubtypeSwitcher;
import com.android.inputmethod.latin.XmlParseUtils;
@@ -106,7 +109,8 @@ public final class KeyboardLayoutSet {
        InputMethodSubtype mSubtype;
        int mDeviceFormFactor;
        int mOrientation;
        int mWidth;
        int mKeyboardWidth;
        int mKeyboardHeight;
        // Sparse array of KeyboardLayoutSet element parameters indexed by element's id.
        final SparseArray<ElementParams> mKeyboardLayoutSetElementIdToParamsMap =
                CollectionUtils.newSparseArray();
@@ -214,15 +218,43 @@ public final class KeyboardLayoutSet {
                    mPackageName, NO_SETTINGS_KEY, mEditorInfo);
        }

        public Builder setScreenGeometry(final int deviceFormFactor, final int orientation,
                final int widthPixels) {
        public Builder setScreenGeometry(final int deviceFormFactor, final int widthPixels,
                final int heightPixels) {
            final Params params = mParams;
            params.mDeviceFormFactor = deviceFormFactor;
            params.mOrientation = orientation;
            params.mWidth = widthPixels;
            params.mOrientation = (heightPixels > widthPixels)
                    ? Configuration.ORIENTATION_PORTRAIT : Configuration.ORIENTATION_LANDSCAPE;
            setDefaultKeyboardSize(widthPixels, heightPixels);
            return this;
        }

        private void setDefaultKeyboardSize(final int widthPixels, final int heightPixels) {
            final String keyboardHeightString = ResourceUtils.getDeviceOverrideValue(
                    mResources, R.array.keyboard_heights);
            final float keyboardHeight;
            if (TextUtils.isEmpty(keyboardHeightString)) {
                keyboardHeight = mResources.getDimension(R.dimen.keyboardHeight);
            } else {
                keyboardHeight = Float.parseFloat(keyboardHeightString)
                        * mResources.getDisplayMetrics().density;
            }
            final float maxKeyboardHeight = mResources.getFraction(
                    R.fraction.maxKeyboardHeight, heightPixels, heightPixels);
            float minKeyboardHeight = mResources.getFraction(
                    R.fraction.minKeyboardHeight, heightPixels, heightPixels);
            if (minKeyboardHeight < 0.0f) {
                // Specified fraction was negative, so it should be calculated against display
                // width.
                minKeyboardHeight = -mResources.getFraction(
                        R.fraction.minKeyboardHeight, widthPixels, widthPixels);
            }
            // Keyboard height will not exceed maxKeyboardHeight and will not be less than
            // minKeyboardHeight.
            mParams.mKeyboardHeight = (int)Math.max(
                    Math.min(keyboardHeight, maxKeyboardHeight), minKeyboardHeight);
            mParams.mKeyboardWidth = widthPixels;
        }

        public Builder setSubtype(final InputMethodSubtype subtype) {
            final boolean asciiCapable = subtype.containsExtraValueKey(ASCII_CAPABLE);
            @SuppressWarnings("deprecation")
+3 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.preference.PreferenceManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
@@ -140,8 +141,9 @@ public final class KeyboardSwitcher implements KeyboardState.SwitchActions {
        final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(
                mThemeContext, editorInfo);
        final Resources res = mThemeContext.getResources();
        final DisplayMetrics dm = res.getDisplayMetrics();
        builder.setScreenGeometry(res.getInteger(R.integer.config_device_form_factor),
                res.getConfiguration().orientation, res.getDisplayMetrics().widthPixels);
                dm.widthPixels, dm.heightPixels);
        builder.setSubtype(mSubtypeSwitcher.getCurrentSubtype());
        builder.setOptions(
                settingsValues.isVoiceKeyEnabled(editorInfo),
Loading