Merge "QS Detail: Don't animate switch before panel open" into nyc-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9716690e2f
@@ -67,6 +67,8 @@ public class QSDetail extends LinearLayout {
|
||||
private boolean mTriggeredExpand;
|
||||
private int mOpenX;
|
||||
private int mOpenY;
|
||||
private boolean mAnimating;
|
||||
private boolean mSwitchState;
|
||||
|
||||
public QSDetail(Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
@@ -158,7 +160,7 @@ public class QSDetail extends LinearLayout {
|
||||
mQsDetailHeader.setClickable(false);
|
||||
} else {
|
||||
mQsDetailHeaderSwitch.setVisibility(VISIBLE);
|
||||
mQsDetailHeaderSwitch.setChecked(toggleState);
|
||||
handleToggleStateChanged(toggleState);
|
||||
mQsDetailHeader.setClickable(true);
|
||||
mQsDetailHeader.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
@@ -228,6 +230,7 @@ public class QSDetail extends LinearLayout {
|
||||
}
|
||||
sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
||||
if (visibleDiff) {
|
||||
mAnimating = true;
|
||||
if (mFullyExpanded || mDetailAdapter != null) {
|
||||
setAlpha(1);
|
||||
mClipper.animateCircularClip(x, y, mDetailAdapter != null, listener);
|
||||
@@ -241,6 +244,10 @@ public class QSDetail extends LinearLayout {
|
||||
}
|
||||
|
||||
private void handleToggleStateChanged(boolean state) {
|
||||
mSwitchState = state;
|
||||
if (mAnimating) {
|
||||
return;
|
||||
}
|
||||
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() {
|
||||
@Override
|
||||
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
|
||||
// called, this will avoid accidentally turning off the grid when we don't want to.
|
||||
animation.removeListener(this);
|
||||
mAnimating = false;
|
||||
checkPendingAnimations();
|
||||
};
|
||||
|
||||
@Override
|
||||
@@ -303,6 +316,8 @@ public class QSDetail extends LinearLayout {
|
||||
mQsPanel.setGridContentVisibility(false);
|
||||
mHeader.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
mAnimating = false;
|
||||
checkPendingAnimations();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -90,11 +90,11 @@ public class BluetoothTile extends QSTile<QSTile.BooleanState> {
|
||||
mHost.startActivityDismissingKeyguard(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS));
|
||||
return;
|
||||
}
|
||||
showDetail(true);
|
||||
if (!mState.value) {
|
||||
mState.value = true;
|
||||
mController.setBluetoothEnabled(true);
|
||||
}
|
||||
showDetail(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -122,9 +122,9 @@ public class DndTile extends QSTile<QSTile.BooleanState> {
|
||||
if (mState.value) {
|
||||
mController.setZen(Global.ZEN_MODE_OFF, null, TAG);
|
||||
} else {
|
||||
showDetail(true);
|
||||
int zen = Prefs.getInt(mContext, Prefs.Key.DND_FAVORITE_ZEN, Global.ZEN_MODE_ALARMS);
|
||||
mController.setZen(zen, null, TAG);
|
||||
showDetail(true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -113,11 +113,11 @@ public class WifiTile extends QSTile<QSTile.SignalState> {
|
||||
mHost.startActivityDismissingKeyguard(new Intent(Settings.ACTION_WIFI_SETTINGS));
|
||||
return;
|
||||
}
|
||||
showDetail(true);
|
||||
if (!mState.value) {
|
||||
mController.setWifiEnabled(true);
|
||||
mState.value = true;
|
||||
}
|
||||
showDetail(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user