diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java index 186e57695..9d0030cf0 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/MainKeyboardView.java @@ -483,11 +483,11 @@ public final class MainKeyboardView extends KeyboardView implements DrawingProxy locatePreviewPlacerView(); getLocationInWindow(mOriginCoords); mKeyPreviewChoreographer.placeAndShowKeyPreview(key, keyboard.mIconsSet, getKeyDrawParams(), - getWidth(), mOriginCoords, mDrawingPreviewPlacerView, isHardwareAccelerated()); + getWidth(), mOriginCoords, mDrawingPreviewPlacerView); } private void dismissKeyPreviewWithoutDelay(@Nonnull final Key key) { - mKeyPreviewChoreographer.dismissKeyPreview(key, false /* withAnimation */); + mKeyPreviewChoreographer.dismissKeyPreview(key); invalidateKey(key); } @@ -507,7 +507,7 @@ public final class MainKeyboardView extends KeyboardView implements DrawingProxy private void dismissKeyPreview(@Nonnull final Key key) { if (isHardwareAccelerated()) { - mKeyPreviewChoreographer.dismissKeyPreview(key, true /* withAnimation */); + mKeyPreviewChoreographer.dismissKeyPreview(key); return; } // TODO: Implement preference option to control key preview method and duration. diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyPreviewChoreographer.java b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyPreviewChoreographer.java index 5d4083444..c0061562b 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyPreviewChoreographer.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyPreviewChoreographer.java @@ -16,8 +16,6 @@ package org.dslul.openboard.inputmethod.keyboard.internal; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; @@ -68,7 +66,7 @@ public final class KeyPreviewChoreographer { return mShowingKeyPreviewViews.containsKey(key); } - public void dismissKeyPreview(final Key key, final boolean withAnimation) { + public void dismissKeyPreview(final Key key) { if (key == null) { return; } @@ -76,19 +74,8 @@ public final class KeyPreviewChoreographer { if (keyPreviewView == null) { return; } - final Object tag = keyPreviewView.getTag(); - if (withAnimation) { - if (tag instanceof KeyPreviewAnimators) { - final KeyPreviewAnimators animators = (KeyPreviewAnimators)tag; - animators.startDismiss(); - return; - } - } - // Dismiss preview without animation. + // Dismiss preview mShowingKeyPreviewViews.remove(key); - if (tag instanceof Animator) { - ((Animator)tag).cancel(); - } keyPreviewView.setTag(null); keyPreviewView.setVisibility(View.INVISIBLE); mFreeKeyPreviewViews.add(keyPreviewView); @@ -96,11 +83,11 @@ public final class KeyPreviewChoreographer { public void placeAndShowKeyPreview(final Key key, final KeyboardIconsSet iconsSet, final KeyDrawParams drawParams, final int keyboardViewWidth, final int[] keyboardOrigin, - final ViewGroup placerView, final boolean withAnimation) { + final ViewGroup placerView) { final KeyPreviewView keyPreviewView = getKeyPreviewView(key, placerView); placeKeyPreview( key, keyPreviewView, iconsSet, drawParams, keyboardViewWidth, keyboardOrigin); - showKeyPreview(key, keyPreviewView, withAnimation); + showKeyPreview(key, keyPreviewView); } private void placeKeyPreview(final Key key, final KeyPreviewView keyPreviewView, @@ -141,69 +128,9 @@ public final class KeyPreviewChoreographer { keyPreviewView.setPivotY(previewHeight); } - void showKeyPreview(final Key key, final KeyPreviewView keyPreviewView, - final boolean withAnimation) { - if (!withAnimation) { - keyPreviewView.setVisibility(View.VISIBLE); - mShowingKeyPreviewViews.put(key, keyPreviewView); - return; - } - - // Show preview with animation. - final Animator showUpAnimator = createShowUpAnimator(key, keyPreviewView); - final Animator dismissAnimator = createDismissAnimator(key, keyPreviewView); - final KeyPreviewAnimators animators = new KeyPreviewAnimators( - showUpAnimator, dismissAnimator); - keyPreviewView.setTag(animators); - animators.startShowUp(); + void showKeyPreview(final Key key, final KeyPreviewView keyPreviewView) { + keyPreviewView.setVisibility(View.VISIBLE); + mShowingKeyPreviewViews.put(key, keyPreviewView); } - public Animator createShowUpAnimator(final Key key, final KeyPreviewView keyPreviewView) { - final Animator showUpAnimator = mParams.createShowUpAnimator(keyPreviewView); - showUpAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationStart(final Animator animator) { - showKeyPreview(key, keyPreviewView, false /* withAnimation */); - } - }); - return showUpAnimator; - } - - private Animator createDismissAnimator(final Key key, final KeyPreviewView keyPreviewView) { - final Animator dismissAnimator = mParams.createDismissAnimator(keyPreviewView); - dismissAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(final Animator animator) { - dismissKeyPreview(key, false /* withAnimation */); - } - }); - return dismissAnimator; - } - - private static class KeyPreviewAnimators extends AnimatorListenerAdapter { - private final Animator mShowUpAnimator; - private final Animator mDismissAnimator; - - public KeyPreviewAnimators(final Animator showUpAnimator, final Animator dismissAnimator) { - mShowUpAnimator = showUpAnimator; - mDismissAnimator = dismissAnimator; - } - - public void startShowUp() { - mShowUpAnimator.start(); - } - - public void startDismiss() { - if (mShowUpAnimator.isRunning()) { - mShowUpAnimator.addListener(this); - return; - } - mDismissAnimator.start(); - } - - @Override - public void onAnimationEnd(final Animator animator) { - mDismissAnimator.start(); - } - } }