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 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();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user