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

Commit 75136cd0 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Fix language switch preview

This change also makes the delay after key preview longer to 60ms.

Change-Id: If7cf3b493824bb12e0bf44aa0bc3c186b15b51f6
parent d00d963b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@
    <integer name="config_duration_of_fadeout_language_on_spacebar">50</integer>
    <integer name="config_final_fadeout_percentage_of_language_on_spacebar">15</integer>
    <integer name="config_delay_before_preview">0</integer>
    <integer name="config_delay_after_preview">10</integer>
    <integer name="config_delay_after_preview">60</integer>
    <integer name="config_mini_keyboard_fadein_anim_time">0</integer>
    <integer name="config_mini_keyboard_fadeout_anim_time">100</integer>
    <integer name="config_delay_before_key_repeat_start">400</integer>
+1 −0
Original line number Diff line number Diff line
@@ -190,6 +190,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
        // we should reset the text fade factor. It is also applicable to shortcut key.
        keyboard.setSpacebarTextFadeFactor(0.0f, null);
        keyboard.updateShortcutKey(mSubtypeSwitcher.isShortcutImeReady(), null);
        keyboard.setSpacebarSlidingLanguageSwitchDiff(0);
        return keyboard;
    }

+12 −7
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ public class LatinKeyboard extends Keyboard {
    private final int mSpacebarTextShadowColor;
    private float mSpacebarTextFadeFactor = 0.0f;
    private final int mSpacebarLanguageSwitchThreshold;
    private int mSpacebarLanguageSwitchDiff;
    private int mSpacebarSlidingLanguageSwitchDiff;
    private SlidingLocaleDrawable mSlidingLocaleIcon;
    private final HashMap<Integer, SoftReference<BitmapDrawable>> mSpaceDrawableCache =
            new HashMap<Integer, SoftReference<BitmapDrawable>>();
@@ -323,10 +323,14 @@ public class LatinKeyboard extends Keyboard {
        return buffer;
    }

    public void setSpacebarSlidingLanguageSwitchDiff(int diff) {
        mSpacebarSlidingLanguageSwitchDiff = diff;
    }

    public void updateSpacebarPreviewIcon(int diff) {
        if (mSpacebarLanguageSwitchDiff == diff)
        if (mSpacebarSlidingLanguageSwitchDiff == diff)
            return;
        mSpacebarLanguageSwitchDiff = diff;
        mSpacebarSlidingLanguageSwitchDiff = diff;
        if (mSlidingLocaleIcon == null) {
            final int width = Math.max(mSpaceKey.mWidth,
                    (int)(getMinWidth() * SPACEBAR_POPUP_MIN_RATIO));
@@ -366,15 +370,16 @@ public class LatinKeyboard extends Keyboard {
            return false;
        // The language switcher will be displayed only when the dragging distance is greater
        // than the threshold.
        return shouldTriggerSpacebarSlidingLanguageSwitch(mSpacebarLanguageSwitchDiff);
        return shouldTriggerSpacebarSlidingLanguageSwitch(mSpacebarSlidingLanguageSwitchDiff);
    }

    public int getLanguageChangeDirection() {
        if (mSpaceKey == null || mSubtypeSwitcher.getEnabledKeyboardLocaleCount() <= 1 || Math.abs(
                mSpacebarLanguageSwitchDiff) < getMostCommonKeyWidth() * SPACEBAR_DRAG_WIDTH) {
        if (mSpaceKey == null || mSubtypeSwitcher.getEnabledKeyboardLocaleCount() <= 1
                || Math.abs(mSpacebarSlidingLanguageSwitchDiff)
                    < getMostCommonKeyWidth() * SPACEBAR_DRAG_WIDTH) {
            return 0; // No change
        }
        return mSpacebarLanguageSwitchDiff > 0 ? 1 : -1;
        return mSpacebarSlidingLanguageSwitchDiff > 0 ? 1 : -1;
    }

    @Override
+0 −1
Original line number Diff line number Diff line
@@ -541,7 +541,6 @@ public class PointerTracker {
                // This will change keyboard layout.
                mListener.onCodeInput(code, new int[] {code}, keyX, keyY);
            }
            ((LatinKeyboard)mKeyboard).updateSpacebarPreviewIcon(0);
            mIsInSlidingLanguageSwitch = false;
            return;
        }