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

Commit 1b087064 authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Dim keyboard when more suggestions are shown

Bug: 5241009
Change-Id: Ia42bcfc34dddf93d35f9cea8a4f0efead6ce3a6a
parent 913e2aee
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
    private ViewGroup mPreviewPlacer;

    // Drawing
    /** True if the entire keyboard needs to be dimmed. */
    private boolean mNeedsToDimBackground;
    /** Whether the keyboard bitmap buffer needs to be redrawn before it's blitted. **/
    private boolean mBufferNeedsUpdate;
    /** The dirty region in the keyboard bitmap */
@@ -481,8 +483,8 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
            }
        }

        // Overlay a dark rectangle to dim the keyboard
        if (needsToDimKeyboard()) {
        // Overlay a dark rectangle to dim the entire keyboard
        if (mNeedsToDimBackground) {
            mPaint.setColor((int) (mBackgroundDimAmount * 0xFF) << 24);
            canvas.drawRect(0, 0, width, height, mPaint);
        }
@@ -491,8 +493,12 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
        mDirtyRect.setEmpty();
    }

    protected boolean needsToDimKeyboard() {
        return false;
    public void dimEntireKeyboard(boolean dimmed) {
        final boolean needsRedrawing = mNeedsToDimBackground != dimmed;
        mNeedsToDimBackground = dimmed;
        if (needsRedrawing) {
            invalidateAllKeys();
        }
    }

    private static void onBufferDrawKey(final Key key, final Keyboard keyboard, final Canvas canvas,
+2 −8
Original line number Diff line number Diff line
@@ -373,11 +373,6 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
        return miniKeyboardView;
    }

    @Override
    protected boolean needsToDimKeyboard() {
        return mMoreKeysPanel != null;
    }

    public void setSpacebarTextFadeFactor(float fadeFactor, LatinKeyboard oldKeyboard) {
        final Keyboard keyboard = getKeyboard();
        // We should not set text fade factor to the keyboard which does not display the language on
@@ -460,8 +455,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
        final int translatedY = moreKeysPanel.translateY(tracker.getLastY());
        tracker.onShowMoreKeysPanel(
                translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel);

        invalidateAllKeys();
        dimEntireKeyboard(true);
        return true;
    }

@@ -620,7 +614,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
            mMoreKeysWindow.dismiss();
            mMoreKeysPanel = null;
            mMoreKeysPanelPointerTrackerId = -1;
            invalidateAllKeys();
            dimEntireKeyboard(false);
            return true;
        }
        return false;
+17 −11
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.widget.TextView;
import com.android.inputmethod.compat.FrameLayoutCompatUtils;
import com.android.inputmethod.compat.LinearLayoutCompatUtils;
import com.android.inputmethod.keyboard.KeyboardActionListener;
import com.android.inputmethod.keyboard.KeyboardView;
import com.android.inputmethod.keyboard.MoreKeysPanel;
import com.android.inputmethod.keyboard.PointerTracker;
import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
@@ -70,7 +71,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On

    private final ViewGroup mSuggestionsPlacer;
    private final ViewGroup mSuggestionsStrip;
    private View mKeyboardView;
    private KeyboardView mKeyboardView;

    private final View mMoreSuggestionsContainer;
    private final MoreSuggestionsView mMoreSuggestionsView;
@@ -515,7 +516,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
     */
    public void setListener(Listener listener, View inputView) {
        mListener = listener;
        mKeyboardView = inputView.findViewById(R.id.keyboard_view);
        mKeyboardView = (KeyboardView)inputView.findViewById(R.id.keyboard_view);
    }

    public void setSuggestions(SuggestedWords suggestions) {
@@ -658,7 +659,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
        mSuggestionsPlacer.removeAllViews();
        mSuggestionsPlacer.addView(mSuggestionsStrip);
        mSuggestionsStrip.removeAllViews();
        mMoreSuggestionsWindow.dismiss();
        dismissMoreSuggestions();
    }

    private void hidePreview() {
@@ -702,13 +703,13 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
            final int index = requestCode;
            final CharSequence word = mSuggestions.getWord(index);
            mListener.pickSuggestionManually(index, word);
            mMoreSuggestionsView.dismissMoreKeysPanel();
            dismissMoreSuggestions();
            return true;
        }

        @Override
        public void onCancelInput() {
            mMoreSuggestionsView.dismissMoreKeysPanel();
            dismissMoreSuggestions();
        }
    };

@@ -716,13 +717,18 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
            new MoreKeysPanel.Controller() {
        @Override
        public boolean dismissMoreKeysPanel() {
            return dismissMoreSuggestions();
        }
    };

    private boolean dismissMoreSuggestions() {
        if (mMoreSuggestionsWindow.isShowing()) {
            mMoreSuggestionsWindow.dismiss();
            mKeyboardView.dimEntireKeyboard(false);
            return true;
        }
        return false;
    }
    };

    @Override
    public boolean onLongClick(View view) {
@@ -754,7 +760,7 @@ public class SuggestionsView extends LinearLayout implements OnClickListener, On
            tracker.onShowMoreKeysPanel(
                    translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel);
            view.setPressed(false);
            // TODO: Should gray out the keyboard here as well?
            mKeyboardView.dimEntireKeyboard(true);
            return true;
        }
        return false;