diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java | 7 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java | 7 |
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(); |