Skip to content
Snippets Groups Projects
Commit d0062116 authored by Eghosa Ewansiha-Vlachavas's avatar Eghosa Ewansiha-Vlachavas Committed by Automerger Merge Worker
Browse files

Merge "Update user aspcet ratio settings button animation" into udc-qpr-dev...

Merge "Update user aspcet ratio settings button animation" into udc-qpr-dev am: c59dfa40 am: 764e00e5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24846394



Change-Id: Ie0c2c70623323db3ef32ca1ffe71c6cc782ed6af
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c11a0da8 764e00e5
No related branches found
No related tags found
No related merge requests found
......@@ -18,12 +18,16 @@ package com.android.wm.shell.compatui;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.annotation.IdRes;
import android.annotation.NonNull;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
import android.view.animation.PathInterpolator;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
......@@ -36,14 +40,29 @@ import com.android.wm.shell.R;
*/
public class UserAspectRatioSettingsLayout extends LinearLayout {
private static final Interpolator LINEAR_INTERPOLATOR = new LinearInterpolator();
private static final Interpolator PATH_INTERPOLATOR =
new PathInterpolator(0.2f, 0f, 0f, 1f);
private static final float ALPHA_FULL_TRANSPARENT = 0f;
private static final float ALPHA_FULL_OPAQUE = 1f;
private static final long VISIBILITY_ANIMATION_DURATION_MS = 50;
private static final float SCALE_START = 0.8f;
private static final float SCALE_END = 1f;
private static final long FADE_ANIMATION_DURATION_MS = 167;
private static final long SCALE_ANIMATION_DURATION_MS = 300;
private static final String ALPHA_PROPERTY_NAME = "alpha";
private static final String SCALE_X_PROPERTY_NAME = "scaleX";
private static final String SCALE_Y_PROPERTY_NAME = "scaleY";
private UserAspectRatioSettingsWindowManager mWindowManager;
public UserAspectRatioSettingsLayout(Context context) {
......@@ -88,7 +107,7 @@ public class UserAspectRatioSettingsLayout extends LinearLayout {
if (show) {
showItem(view);
} else {
view.setVisibility(visibility);
hideItem(view);
}
}
......@@ -121,16 +140,40 @@ public class UserAspectRatioSettingsLayout extends LinearLayout {
}
private void showItem(@NonNull View view) {
view.setVisibility(View.VISIBLE);
final AnimatorSet animatorSet = new AnimatorSet();
final ObjectAnimator fadeIn = ObjectAnimator.ofFloat(view, ALPHA_PROPERTY_NAME,
ALPHA_FULL_TRANSPARENT, ALPHA_FULL_OPAQUE);
fadeIn.setDuration(VISIBILITY_ANIMATION_DURATION_MS);
fadeIn.addListener(new AnimatorListenerAdapter() {
fadeIn.setDuration(FADE_ANIMATION_DURATION_MS);
fadeIn.setInterpolator(LINEAR_INTERPOLATOR);
final ObjectAnimator scaleY =
ObjectAnimator.ofFloat(view, SCALE_Y_PROPERTY_NAME, SCALE_START, SCALE_END);
final ObjectAnimator scaleX =
ObjectAnimator.ofFloat(view, SCALE_X_PROPERTY_NAME, SCALE_START, SCALE_END);
scaleX.setDuration(SCALE_ANIMATION_DURATION_MS);
scaleX.setInterpolator(PATH_INTERPOLATOR);
scaleY.setDuration(SCALE_ANIMATION_DURATION_MS);
scaleY.setInterpolator(PATH_INTERPOLATOR);
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
public void onAnimationStart(Animator animation) {
view.setVisibility(View.VISIBLE);
}
});
fadeIn.start();
animatorSet.playTogether(fadeIn, scaleY, scaleX);
animatorSet.start();
}
private void hideItem(@NonNull View view) {
final ObjectAnimator fadeOut = ObjectAnimator.ofFloat(view, ALPHA_PROPERTY_NAME,
ALPHA_FULL_OPAQUE, ALPHA_FULL_TRANSPARENT);
fadeOut.setDuration(FADE_ANIMATION_DURATION_MS);
fadeOut.setInterpolator(LINEAR_INTERPOLATOR);
fadeOut.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
view.setVisibility(View.GONE);
}
});
fadeOut.start();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment