Merge "End transitions before starting new transition." into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2f9ad0c42e
@@ -3,6 +3,7 @@ package com.android.keyguard;
|
|||||||
import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;
|
import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;
|
||||||
|
|
||||||
import android.animation.Animator;
|
import android.animation.Animator;
|
||||||
|
import android.animation.AnimatorListenerAdapter;
|
||||||
import android.animation.ValueAnimator;
|
import android.animation.ValueAnimator;
|
||||||
import android.app.WallpaperManager;
|
import android.app.WallpaperManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -412,15 +413,10 @@ public class KeyguardClockSwitch extends RelativeLayout {
|
|||||||
mClockTransition.setScale(smallFontSize / bigFontSize);
|
mClockTransition.setScale(smallFontSize / bigFontSize);
|
||||||
mBoldClockTransition.setScale(bigFontSize / smallFontSize);
|
mBoldClockTransition.setScale(bigFontSize / smallFontSize);
|
||||||
|
|
||||||
TransitionManager.beginDelayedTransition((ViewGroup) mClockView.getParent(), mTransition);
|
// End any current transitions before starting a new transition so that the new transition
|
||||||
mClockView.setVisibility(hasHeader ? View.INVISIBLE : View.VISIBLE);
|
// starts from a good state instead of a potentially bad intermediate state arrived at
|
||||||
mClockViewBold.setVisibility(hasHeader ? View.VISIBLE : View.INVISIBLE);
|
// during a transition animation.
|
||||||
int paddingBottom = mContext.getResources().getDimensionPixelSize(hasHeader
|
TransitionManager.endTransitions((ViewGroup) mClockView.getParent());
|
||||||
? R.dimen.widget_vertical_padding_clock : R.dimen.title_clock_padding);
|
|
||||||
mClockView.setPadding(mClockView.getPaddingLeft(), mClockView.getPaddingTop(),
|
|
||||||
mClockView.getPaddingRight(), paddingBottom);
|
|
||||||
mClockViewBold.setPadding(mClockViewBold.getPaddingLeft(), mClockViewBold.getPaddingTop(),
|
|
||||||
mClockViewBold.getPaddingRight(), paddingBottom);
|
|
||||||
|
|
||||||
if (hasHeader) {
|
if (hasHeader) {
|
||||||
// After the transition, make the default clock GONE so that it doesn't make the
|
// After the transition, make the default clock GONE so that it doesn't make the
|
||||||
@@ -439,6 +435,16 @@ public class KeyguardClockSwitch extends RelativeLayout {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransitionManager.beginDelayedTransition((ViewGroup) mClockView.getParent(), mTransition);
|
||||||
|
mClockView.setVisibility(hasHeader ? View.INVISIBLE : View.VISIBLE);
|
||||||
|
mClockViewBold.setVisibility(hasHeader ? View.VISIBLE : View.INVISIBLE);
|
||||||
|
int paddingBottom = mContext.getResources().getDimensionPixelSize(hasHeader
|
||||||
|
? R.dimen.widget_vertical_padding_clock : R.dimen.title_clock_padding);
|
||||||
|
mClockView.setPadding(mClockView.getPaddingLeft(), mClockView.getPaddingTop(),
|
||||||
|
mClockView.getPaddingRight(), paddingBottom);
|
||||||
|
mClockViewBold.setPadding(mClockViewBold.getPaddingLeft(), mClockViewBold.getPaddingTop(),
|
||||||
|
mClockViewBold.getPaddingRight(), paddingBottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
|
@VisibleForTesting(otherwise = VisibleForTesting.NONE)
|
||||||
@@ -553,7 +559,6 @@ public class KeyguardClockSwitch extends RelativeLayout {
|
|||||||
private Animator createAnimator(View view, float cutoff, int startVisibility,
|
private Animator createAnimator(View view, float cutoff, int startVisibility,
|
||||||
int endVisibility, float startScale, float endScale) {
|
int endVisibility, float startScale, float endScale) {
|
||||||
view.setPivotY(view.getHeight() - view.getPaddingBottom());
|
view.setPivotY(view.getHeight() - view.getPaddingBottom());
|
||||||
view.setVisibility(startVisibility);
|
|
||||||
ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f);
|
ValueAnimator animator = ValueAnimator.ofFloat(0f, 1f);
|
||||||
animator.addUpdateListener(animation -> {
|
animator.addUpdateListener(animation -> {
|
||||||
final float fraction = animation.getAnimatedFraction();
|
final float fraction = animation.getAnimatedFraction();
|
||||||
@@ -564,6 +569,14 @@ public class KeyguardClockSwitch extends RelativeLayout {
|
|||||||
view.setScaleX(scale);
|
view.setScaleX(scale);
|
||||||
view.setScaleY(scale);
|
view.setScaleY(scale);
|
||||||
});
|
});
|
||||||
|
animator.addListener(new AnimatorListenerAdapter() {
|
||||||
|
@Override
|
||||||
|
public void onAnimationStart(Animator animation) {
|
||||||
|
super.onAnimationStart(animation);
|
||||||
|
view.setVisibility(startVisibility);
|
||||||
|
animation.removeListener(this);
|
||||||
|
}
|
||||||
|
});
|
||||||
addListener(new TransitionListenerAdapter() {
|
addListener(new TransitionListenerAdapter() {
|
||||||
@Override
|
@Override
|
||||||
public void onTransitionEnd(Transition transition) {
|
public void onTransitionEnd(Transition transition) {
|
||||||
|
|||||||
Reference in New Issue
Block a user