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

Commit 4c259866 authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Cancel keydown events immediately once the view starts scrolling

The motivation of this patch is to make sure a user never feel
haptic feedback when scrolling the Emoji palette. In order to
achieve it, EmojiPageKeyboardView#releaseCurrentKey() should
be called whenever (delayed) keydown events should be canceled.

This patch wires up ViewPager.OnPageChangeListener#onPageScrolled
with EmojiPageKeyboardView#releaseCurrentKey() so that delayed
keydown events will be canceled immediately once the ViewParger
starts scrolling.

BUG: 12964092
Change-Id: Iea8c3e090bb16a8622e6b4a850af2bf963aa77d0
parent 351c8e61
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -534,6 +534,7 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
    @Override
    public void onPageScrolled(final int position, final float positionOffset,
            final int positionOffsetPixels) {
        mEmojiPalettesAdapter.onPageScrolled();
        final Pair<Integer, Integer> newPos =
                mEmojiCategory.getCategoryIdAndPageIdFromPagePosition(position);
        final int newCategoryId = newPos.first;
@@ -718,6 +719,14 @@ public final class EmojiPalettesView extends LinearLayout implements OnTabChange
            }
        }

        public void onPageScrolled() {
            // Make sure the delayed key-down event (highlight effect and haptic feedback) will be
            // canceled.
            final EmojiPageKeyboardView currentKeyboardView =
                  mActiveKeyboardViews.get(mActivePosition);
            currentKeyboardView.releaseCurrentKey();
        }

        @Override
        public int getCount() {
            return mEmojiCategory.getTotalPageCountOfAllCategories();