Hide QS customizer correctly

When users open and close QS customizer quickly, QSCustomizer#hide()
is not called because QSCustomizer#isCustomizing() returns false.
The isCustomizing() becomes true when the expand animation ends.
The hide() should be called even though the animation is ongoing.

Bug: 30545089
Test: manual - open and close QS customizer quickly

Change-Id: Ic483addfb6ae9da31c997fec7778e5acd718c353
This commit is contained in:
Yoshinori Hirano
2016-09-05 16:11:59 +09:00
committed by Yoshinori Hirano
parent ff5c3ad08b
commit 1dd7d07460
2 changed files with 9 additions and 3 deletions

View File

@@ -215,7 +215,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback {
}
public void onCollapse() {
if (mCustomizePanel != null && mCustomizePanel.isCustomizing()) {
if (mCustomizePanel != null && mCustomizePanel.isShown()) {
mCustomizePanel.hide(mCustomizePanel.getWidth() / 2, mCustomizePanel.getHeight() / 2);
}
}
@@ -392,7 +392,7 @@ public class QSPanel extends LinearLayout implements Tunable, Callback {
}
public void closeDetail() {
if (mCustomizePanel != null && mCustomizePanel.isCustomizing()) {
if (mCustomizePanel != null && mCustomizePanel.isShown()) {
// Treat this as a detail panel for now, to make things easy.
mCustomizePanel.hide(mCustomizePanel.getWidth() / 2, mCustomizePanel.getHeight() / 2);
return;

View File

@@ -162,6 +162,10 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
}
}
public boolean isShown() {
return isShown;
}
private void setCustomizing(boolean customizing) {
mCustomizing = customizing;
mQsContainer.notifyCustomizeChanged();
@@ -216,7 +220,9 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene
private final AnimatorListener mExpandAnimationListener = new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
setCustomizing(true);
if (isShown) {
setCustomizing(true);
}
mNotifQsContainer.setCustomizerAnimating(false);
}