diff --git a/java/res/anim/alt_code_key_while_typing_fadein.xml b/java/res/anim/alt_code_key_while_typing_fadein.xml index f8caca313..079c98090 100644 --- a/java/res/anim/alt_code_key_while_typing_fadein.xml +++ b/java/res/anim/alt_code_key_while_typing_fadein.xml @@ -22,6 +22,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="altCodeKeyWhileTypingAnimAlpha" android:valueType="intType" - android:duration="100" + android:duration="1000" android:valueFrom="128" android:valueTo="255" /> diff --git a/java/res/anim/alt_code_key_while_typing_fadeout.xml b/java/res/anim/alt_code_key_while_typing_fadeout.xml index bad1e7465..511e13886 100644 --- a/java/res/anim/alt_code_key_while_typing_fadeout.xml +++ b/java/res/anim/alt_code_key_while_typing_fadeout.xml @@ -22,6 +22,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:propertyName="altCodeKeyWhileTypingAnimAlpha" android:valueType="intType" - android:duration="70" + android:duration="3000" android:valueFrom="255" android:valueTo="128" /> diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java index a08c0743a..7fadb3b8a 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java @@ -227,16 +227,16 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke removeMessages(MSG_LONGPRESS_KEY); } - public static void cancelAndStartAnimators(ObjectAnimator animatorToCancel, - ObjectAnimator animatorToStart) { - if (animatorToCancel != null && animatorToCancel.isStarted()) { + public static void cancelAndStartAnimators(final ObjectAnimator animatorToCancel, + final ObjectAnimator animatorToStart) { + float startFraction = 0.0f; + if (animatorToCancel.isStarted()) { animatorToCancel.cancel(); + startFraction = 1.0f - animatorToCancel.getAnimatedFraction(); } - // TODO: Start the animation with an initial value that is the same as the final value - // of the above animation when it gets cancelled. - if (animatorToStart != null && !animatorToStart.isStarted()) { - animatorToStart.start(); - } + final long startTime = (long)(animatorToStart.getDuration() * startFraction); + animatorToStart.start(); + animatorToStart.setCurrentPlayTime(startTime); } @Override