summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationCreator.java17
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java12
-rw-r--r--packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java9
3 files changed, 29 insertions, 9 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationCreator.java b/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationCreator.java
index 8a61e4e6dbf7..fdc2469842d6 100644
--- a/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationCreator.java
+++ b/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationCreator.java
@@ -16,6 +16,7 @@
package com.android.settingslib.animation;
+import android.animation.AnimatorListenerAdapter;
import android.view.animation.Interpolator;
/**
@@ -23,7 +24,17 @@ import android.view.animation.Interpolator;
* {@link AppearAnimationUtils}
*/
public interface AppearAnimationCreator<T> {
- void createAnimation(T animatedObject, long delay, long duration,
- float translationY, boolean appearing, Interpolator interpolator,
- Runnable finishListener);
+ /**
+ * Create the appear / disappear animation.
+ */
+ void createAnimation(T animatedObject, long delay, long duration,
+ float translationY, boolean appearing, Interpolator interpolator,
+ Runnable endRunnable);
+
+ /**
+ * Create the animation with {@link AnimatorListenerAdapter}.
+ */
+ default void createAnimation(T animatedObject, long delay, long duration,
+ float translationY, boolean appearing, Interpolator interpolator,
+ Runnable endRunnable, AnimatorListenerAdapter animatorListener) {}
}
diff --git a/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java b/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java
index d19469575296..b066d85f147c 100644
--- a/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/animation/AppearAnimationUtils.java
@@ -180,6 +180,14 @@ public class AppearAnimationUtils implements AppearAnimationCreator<View> {
@Override
public void createAnimation(final View view, long delay, long duration, float translationY,
boolean appearing, Interpolator interpolator, final Runnable endRunnable) {
+ createAnimation(
+ view, delay, duration, translationY, appearing, interpolator, endRunnable, null);
+ }
+
+ @Override
+ public void createAnimation(final View view, long delay,
+ long duration, float translationY, boolean appearing, Interpolator interpolator,
+ final Runnable endRunnable, final AnimatorListenerAdapter animatorListener) {
if (view != null) {
float targetAlpha = appearing ? 1f : 0f;
float targetTranslationY = appearing ? 0 : translationY;
@@ -224,7 +232,7 @@ public class AppearAnimationUtils implements AppearAnimationCreator<View> {
});
alphaAnim.start();
startTranslationYAnimation(view, delay, duration, appearing ? 0 : translationY,
- interpolator);
+ interpolator, animatorListener);
}
}
@@ -240,7 +248,7 @@ public class AppearAnimationUtils implements AppearAnimationCreator<View> {
* A static method to start translation y animation
*/
public static void startTranslationYAnimation(View view, long delay, long duration,
- float endTranslationY, Interpolator interpolator, Animator.AnimatorListener listener) {
+ float endTranslationY, Interpolator interpolator, AnimatorListenerAdapter listener) {
Animator translationAnim;
if (view.isHardwareAccelerated()) {
RenderNodeAnimator translationAnimRt = new RenderNodeAnimator(
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
index 77044ed33113..6844b655629a 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
@@ -16,6 +16,8 @@
package com.android.keyguard;
+import static com.android.internal.jank.InteractionJankMonitor.CUJ_LOCKSCREEN_PIN_APPEAR;
+import static com.android.internal.jank.InteractionJankMonitor.CUJ_LOCKSCREEN_PIN_DISAPPEAR;
import static com.android.systemui.statusbar.policy.DevicePostureController.DEVICE_POSTURE_HALF_OPENED;
import static com.android.systemui.statusbar.policy.DevicePostureController.DEVICE_POSTURE_UNKNOWN;
@@ -28,7 +30,6 @@ import android.view.animation.AnimationUtils;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
-import com.android.internal.jank.InteractionJankMonitor;
import com.android.settingslib.animation.AppearAnimationUtils;
import com.android.settingslib.animation.DisappearAnimationUtils;
import com.android.systemui.R;
@@ -173,7 +174,7 @@ public class KeyguardPINView extends KeyguardPinBasedInputView {
setTranslationY(mAppearAnimationUtils.getStartTranslation());
AppearAnimationUtils.startTranslationYAnimation(this, 0 /* delay */, 500 /* duration */,
0, mAppearAnimationUtils.getInterpolator(),
- getAnimationListener(InteractionJankMonitor.CUJ_LOCKSCREEN_PIN_APPEAR));
+ getAnimationListener(CUJ_LOCKSCREEN_PIN_APPEAR));
mAppearAnimationUtils.startAnimation2d(mViews,
new Runnable() {
@Override
@@ -194,12 +195,12 @@ public class KeyguardPINView extends KeyguardPinBasedInputView {
disappearAnimationUtils.createAnimation(
this, 0, 200, mDisappearYTranslation, false,
mDisappearAnimationUtils.getInterpolator(), () -> {
- getAnimationListener(InteractionJankMonitor.CUJ_LOCKSCREEN_PIN_DISAPPEAR);
enableClipping(true);
if (finishRunnable != null) {
finishRunnable.run();
}
- });
+ },
+ getAnimationListener(CUJ_LOCKSCREEN_PIN_DISAPPEAR));
return true;
}