Merge "QS Detail: Don't animate switch before panel open" into nyc-mr1-dev

This commit is contained in:
TreeHugger Robot
2016-07-15 16:04:17 +00:00
committed by Android (Google) Code Review
4 changed files with 19 additions and 4 deletions

View File

@@ -67,6 +67,8 @@ public class QSDetail extends LinearLayout {
private boolean mTriggeredExpand; private boolean mTriggeredExpand;
private int mOpenX; private int mOpenX;
private int mOpenY; private int mOpenY;
private boolean mAnimating;
private boolean mSwitchState;
public QSDetail(Context context, @Nullable AttributeSet attrs) { public QSDetail(Context context, @Nullable AttributeSet attrs) {
super(context, attrs); super(context, attrs);
@@ -158,7 +160,7 @@ public class QSDetail extends LinearLayout {
mQsDetailHeader.setClickable(false); mQsDetailHeader.setClickable(false);
} else { } else {
mQsDetailHeaderSwitch.setVisibility(VISIBLE); mQsDetailHeaderSwitch.setVisibility(VISIBLE);
mQsDetailHeaderSwitch.setChecked(toggleState); handleToggleStateChanged(toggleState);
mQsDetailHeader.setClickable(true); mQsDetailHeader.setClickable(true);
mQsDetailHeader.setOnClickListener(new OnClickListener() { mQsDetailHeader.setOnClickListener(new OnClickListener() {
@Override @Override
@@ -228,6 +230,7 @@ public class QSDetail extends LinearLayout {
} }
sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
if (visibleDiff) { if (visibleDiff) {
mAnimating = true;
if (mFullyExpanded || mDetailAdapter != null) { if (mFullyExpanded || mDetailAdapter != null) {
setAlpha(1); setAlpha(1);
mClipper.animateCircularClip(x, y, mDetailAdapter != null, listener); mClipper.animateCircularClip(x, y, mDetailAdapter != null, listener);
@@ -241,6 +244,10 @@ public class QSDetail extends LinearLayout {
} }
private void handleToggleStateChanged(boolean state) { private void handleToggleStateChanged(boolean state) {
mSwitchState = state;
if (mAnimating) {
return;
}
mQsDetailHeaderSwitch.setChecked(state); mQsDetailHeaderSwitch.setChecked(state);
} }
@@ -257,6 +264,10 @@ public class QSDetail extends LinearLayout {
} }
} }
private void checkPendingAnimations() {
handleToggleStateChanged(mSwitchState);
}
private final QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() { private final QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() {
@Override @Override
public void onToggleStateChanged(final boolean state) { public void onToggleStateChanged(final boolean state) {
@@ -294,6 +305,8 @@ public class QSDetail extends LinearLayout {
// If we have been cancelled, remove the listener so that onAnimationEnd doesn't get // If we have been cancelled, remove the listener so that onAnimationEnd doesn't get
// called, this will avoid accidentally turning off the grid when we don't want to. // called, this will avoid accidentally turning off the grid when we don't want to.
animation.removeListener(this); animation.removeListener(this);
mAnimating = false;
checkPendingAnimations();
}; };
@Override @Override
@@ -303,6 +316,8 @@ public class QSDetail extends LinearLayout {
mQsPanel.setGridContentVisibility(false); mQsPanel.setGridContentVisibility(false);
mHeader.setVisibility(View.INVISIBLE); mHeader.setVisibility(View.INVISIBLE);
} }
mAnimating = false;
checkPendingAnimations();
} }
}; };

View File

@@ -90,11 +90,11 @@ public class BluetoothTile extends QSTile<QSTile.BooleanState> {
mHost.startActivityDismissingKeyguard(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS)); mHost.startActivityDismissingKeyguard(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS));
return; return;
} }
showDetail(true);
if (!mState.value) { if (!mState.value) {
mState.value = true; mState.value = true;
mController.setBluetoothEnabled(true); mController.setBluetoothEnabled(true);
} }
showDetail(true);
} }
@Override @Override

View File

@@ -122,9 +122,9 @@ public class DndTile extends QSTile<QSTile.BooleanState> {
if (mState.value) { if (mState.value) {
mController.setZen(Global.ZEN_MODE_OFF, null, TAG); mController.setZen(Global.ZEN_MODE_OFF, null, TAG);
} else { } else {
showDetail(true);
int zen = Prefs.getInt(mContext, Prefs.Key.DND_FAVORITE_ZEN, Global.ZEN_MODE_ALARMS); int zen = Prefs.getInt(mContext, Prefs.Key.DND_FAVORITE_ZEN, Global.ZEN_MODE_ALARMS);
mController.setZen(zen, null, TAG); mController.setZen(zen, null, TAG);
showDetail(true);
} }
} }

View File

@@ -113,11 +113,11 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
mHost.startActivityDismissingKeyguard(new Intent(Settings.ACTION_WIFI_SETTINGS)); mHost.startActivityDismissingKeyguard(new Intent(Settings.ACTION_WIFI_SETTINGS));
return; return;
} }
showDetail(true);
if (!mState.value) { if (!mState.value) {
mController.setWifiEnabled(true); mController.setWifiEnabled(true);
mState.value = true; mState.value = true;
} }
showDetail(true);
} }
@Override @Override