diff options
| author | 2016-02-29 10:47:35 -0500 | |
|---|---|---|
| committer | 2016-02-29 12:59:38 -0500 | |
| commit | df5459daaa0f61f9c15d17f45a547420cdf83ae6 (patch) | |
| tree | afc203706899a085915ca804d7d7c11c073cfeca | |
| parent | 3f3d42e0d40c423bf932d16bb10892d16d35c641 (diff) | |
Fix TouchAnimator callbacks
Bug: 27392084
Change-Id: I42df29b4c7df4f709dd2fafa90037d485e93f3bd
3 files changed, 14 insertions, 29 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java index c31bb33d6a41..c643d6708adb 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java @@ -54,8 +54,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha mQsContainer = container; mQuickQsPanel = quickPanel; mQsPanel = panel; - mQuickQsPanel.addOnLayoutChangeListener(this); - mQsPanel.addOnLayoutChangeListener(this); + container.addOnLayoutChangeListener(this); QSTileLayout tileLayout = mQsPanel.getTileLayout(); if (tileLayout instanceof PagedTileLayout) { ((PagedTileLayout) tileLayout).setPageListener(this); @@ -161,6 +160,7 @@ public class QSAnimator implements Callback, PageListener, Listener, OnLayoutCha @Override public void onAnimationAtStart() { + mQuickQsPanel.setVisibility(View.VISIBLE); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/qs/TouchAnimator.java b/packages/SystemUI/src/com/android/systemui/qs/TouchAnimator.java index 026dd0e74a0a..35ade580654a 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/TouchAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/qs/TouchAnimator.java @@ -38,7 +38,7 @@ public class TouchAnimator { private final float mSpan; private final Interpolator mInterpolator; private final Listener mListener; - private float mLastT; + private float mLastT = -1; private TouchAnimator(Object[] targets, KeyframeSet[] keyframeSets, float startDelay, float endDelay, Interpolator interpolator, Listener listener) { @@ -56,15 +56,16 @@ public class TouchAnimator { if (mInterpolator != null) { t = mInterpolator.getInterpolation(t); } + if (t == mLastT) { + return; + } if (mListener != null) { - if (mLastT == 0 || mLastT == 1) { - if (t != mLastT) { - mListener.onAnimationStarted(); - } - } else if (t == 1) { + if (t == 1) { mListener.onAnimationAtEnd(); } else if (t == 0) { mListener.onAnimationAtStart(); + } else if (mLastT <= 0 || mLastT == 1) { + mListener.onAnimationStarted(); } mLastT = t; } @@ -114,12 +115,12 @@ public class TouchAnimator { private Listener mListener; public Builder addFloat(Object target, String property, float... values) { - add(target, KeyframeSet.ofFloat(getProperty(target, property), values)); + add(target, KeyframeSet.ofFloat(getProperty(target, property, float.class), values)); return this; } public Builder addInt(Object target, String property, int... values) { - add(target, KeyframeSet.ofInt(getProperty(target, property), values)); + add(target, KeyframeSet.ofInt(getProperty(target, property, int.class), values)); return this; } @@ -128,7 +129,7 @@ public class TouchAnimator { mValues.add(keyframeSet); } - private static Property getProperty(Object target, String property) { + private static Property getProperty(Object target, String property, Class<?> cls) { if (target instanceof View) { switch (property) { case "translationX": @@ -151,7 +152,7 @@ public class TouchAnimator { return View.SCALE_Y; } } - return Property.of(target.getClass(), float.class, property); + return Property.of(target.getClass(), cls, property); } public Builder setStartDelay(float startDelay) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java index cf5531fd3eb8..b549d5912117 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -38,7 +38,6 @@ import com.android.systemui.qs.QSPanel; import com.android.systemui.qs.QSTile; import com.android.systemui.qs.QuickQSPanel; import com.android.systemui.qs.TouchAnimator; -import com.android.systemui.qs.TouchAnimator.Listener; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.NextAlarmController; import com.android.systemui.statusbar.policy.NextAlarmController.NextAlarmChangeCallback; @@ -46,7 +45,7 @@ import com.android.systemui.statusbar.policy.UserInfoController; import com.android.systemui.tuner.TunerService; public class QuickStatusBarHeader extends BaseStatusBarHeader implements - NextAlarmChangeCallback, OnClickListener, Listener { + NextAlarmChangeCallback, OnClickListener { private static final String TAG = "QuickStatusBarHeader"; @@ -157,7 +156,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mAnimator = new TouchAnimator.Builder() .addFloat(mSettingsContainer, "translationY", -mGearTranslation, 0) .addFloat(mMultiUserSwitch, "translationY", -mGearTranslation, 0) - .setListener(this) .build(); mSecondHalfAnimator = new TouchAnimator.Builder() .addFloat(mSettingsButton, "rotation", -180, 0) @@ -224,20 +222,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mExpandIndicator.setExpanded(headerExpansionFraction > EXPAND_INDICATOR_THRESHOLD); } - @Override - public void onAnimationAtStart() { - } - - @Override - public void onAnimationAtEnd() { - mHeaderQsPanel.setVisibility(View.INVISIBLE); - } - - @Override - public void onAnimationStarted() { - mHeaderQsPanel.setVisibility(View.VISIBLE); - } - private void updateAlarmVisibilities() { mAlarmStatus.setVisibility(mAlarmShowing ? View.VISIBLE : View.INVISIBLE); mAlarmStatusCollapsed.setVisibility(mAlarmShowing ? View.VISIBLE : View.INVISIBLE); |