summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Monk <jmonk@google.com> 2016-02-29 10:47:35 -0500
committer Jason Monk <jmonk@google.com> 2016-02-29 12:59:38 -0500
commitdf5459daaa0f61f9c15d17f45a547420cdf83ae6 (patch)
treeafc203706899a085915ca804d7d7c11c073cfeca
parent3f3d42e0d40c423bf932d16bb10892d16d35c641 (diff)
Fix TouchAnimator callbacks
Bug: 27392084 Change-Id: I42df29b4c7df4f709dd2fafa90037d485e93f3bd
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSAnimator.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/TouchAnimator.java21
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java18
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);