summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcretin45 <cretin45@gmail.com>2016-05-03 11:27:22 -0700
committercretin45 <cretin45@gmail.com>2016-05-03 12:03:47 -0700
commit5d346944d3859de53f2c2401addbab3f71e74026 (patch)
tree1bd35ca921d7f9cbb1700775e88bb340eef6376d
parentaf121c51cce4f8dfafcd6f24103cc9af20b46ab2 (diff)
downloadandroid_packages_apps_DeskClock-5d346944d3859de53f2c2401addbab3f71e74026.tar.gz
android_packages_apps_DeskClock-5d346944d3859de53f2c2401addbab3f71e74026.tar.bz2
android_packages_apps_DeskClock-5d346944d3859de53f2c2401addbab3f71e74026.zip
DeskClock: Fix view animator race condition
Issue-id: FEIJ-268 Change-Id: I3f04dcf45a21cced1baac9eca86f59c65bd984ec
-rw-r--r--src/com/android/deskclock/TimerSetupView.java16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/com/android/deskclock/TimerSetupView.java b/src/com/android/deskclock/TimerSetupView.java
index bd2216f5c..86a66a1cc 100644
--- a/src/com/android/deskclock/TimerSetupView.java
+++ b/src/com/android/deskclock/TimerSetupView.java
@@ -49,10 +49,21 @@ public class TimerSetupView extends LinearLayout implements Button.OnClickListen
private final int mColorAccent;
private final int mColorHairline;
+ // When quickly switching between a hide/show,
+ // the hide animation ends after show starts resulting in being in an invisible state.
+ // This boolean tracks the state that is expected.
+ private int mStartVisibility = View.INVISIBLE;
+
private final AnimatorListenerAdapter mHideFabAnimatorListener = new AnimatorListenerAdapter() {
+
+ @Override
+ public void onAnimationStart(Animator animation) {
+ mStartVisibility = View.INVISIBLE;
+ }
+
@Override
public void onAnimationEnd(Animator animation) {
- if (mStart != null) {
+ if (mStart != null && mStartVisibility == View.INVISIBLE) {
mStart.setScaleX(1.0f);
mStart.setScaleY(1.0f);
mStart.setVisibility(View.INVISIBLE);
@@ -63,6 +74,7 @@ public class TimerSetupView extends LinearLayout implements Button.OnClickListen
private final AnimatorListenerAdapter mShowFabAnimatorListener = new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
+ mStartVisibility = View.VISIBLE;
if (mStart != null) {
mStart.setVisibility(View.VISIBLE);
}
@@ -155,7 +167,7 @@ public class TimerSetupView extends LinearLayout implements Button.OnClickListen
private void setFabButtonVisibility(boolean show) {
final int finalVisibility = show ? View.VISIBLE : View.INVISIBLE;
- if (mStart == null || mStart.getVisibility() == finalVisibility) {
+ if (mStart == null || mStartVisibility == finalVisibility) {
// Fab is not initialized yet or already shown/hidden
return;
}