summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java7
-rw-r--r--packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java7
2 files changed, 14 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
index 6c94aa4cbdd8..a195fc9e347b 100644
--- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
+++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java
@@ -1399,6 +1399,7 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
private final ColorExtractor mColorExtractor;
private boolean mKeyguardShowing;
private boolean mShouldDisplaySeparatedButton;
+ private boolean mShowing;
public ActionsDialog(Context context, OnClickListener clickListener, MyAdapter adapter,
OnItemLongClickListener longClickListener, boolean shouldDisplaySeparatedButton) {
@@ -1507,6 +1508,7 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
@Override
public void show() {
super.show();
+ mShowing = true;
mGradientDrawable.setAlpha(0);
mHardwareLayout.setTranslationX(getAnimTranslation());
mHardwareLayout.setAlpha(0);
@@ -1526,6 +1528,10 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
@Override
public void dismiss() {
+ if (!mShowing) {
+ return;
+ }
+ mShowing = false;
mHardwareLayout.setTranslationX(0);
mHardwareLayout.setAlpha(1);
mHardwareLayout.animate()
@@ -1544,6 +1550,7 @@ class GlobalActionsDialog implements DialogInterface.OnDismissListener,
void dismissImmediately() {
super.dismiss();
+ mShowing = false;
}
private float getAnimTranslation() {
diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
index 02babacc3acd..41e47689fdaa 100644
--- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
@@ -149,6 +149,7 @@ public class VolumeDialogImpl implements VolumeDialog {
private boolean mHovering = false;
private boolean mShowActiveStreamOnly;
private boolean mConfigChanged = false;
+ private boolean mIsAnimatingDismiss = false;
public VolumeDialogImpl(Context context) {
mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme);
@@ -582,18 +583,24 @@ public class VolumeDialogImpl implements VolumeDialog {
protected void dismissH(int reason) {
mHandler.removeMessages(H.DISMISS);
mHandler.removeMessages(H.SHOW);
+ if (mIsAnimatingDismiss) {
+ return;
+ }
mDialogView.animate().cancel();
+ mIsAnimatingDismiss = false;
mShowing = false;
mDialogView.setTranslationX(0);
mDialogView.setAlpha(1);
ViewPropertyAnimator animator = mDialogView.animate()
+ .withStartAction(() -> mIsAnimatingDismiss = true)
.alpha(0)
.setDuration(250)
.setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator())
.withEndAction(() -> mHandler.postDelayed(() -> {
if (D.BUG) Log.d(TAG, "mDialog.dismiss()");
mDialog.dismiss();
+ mIsAnimatingDismiss = false;
}, 50));
if (!isLandscape()) animator.translationX(mDialogView.getWidth() / 2);
animator.start();