Loading packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +19 −5 Original line number Diff line number Diff line Loading @@ -414,6 +414,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, @Override public void destroy() { Log.d(TAG, "destroy() called"); mController.removeCallback(mControllerCallbackH); mHandler.removeCallbacksAndMessages(null); mConfigurationController.removeCallback(this); Loading Loading @@ -488,6 +489,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, } private void initDialog(int lockTaskModeState) { Log.d(TAG, "initDialog: called!"); mDialog = new CustomDialog(mContext); initDimens(); Loading Loading @@ -1281,7 +1283,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, } protected void tryToRemoveCaptionsTooltip() { if (mHasSeenODICaptionsTooltip && mODICaptionsTooltipView != null) { if (mHasSeenODICaptionsTooltip && mODICaptionsTooltipView != null && mDialog != null) { ViewGroup container = mDialog.findViewById(R.id.volume_dialog_container); container.removeView(mODICaptionsTooltipView); mODICaptionsTooltipView = null; Loading Loading @@ -1471,8 +1473,16 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, mHandler.removeMessages(H.DISMISS); mHandler.removeMessages(H.SHOW); if (mIsAnimatingDismiss) { Log.d(TAG, "dismissH: isAnimatingDismiss"); boolean showingStateInconsistent = !mShowing && mDialog != null && mDialog.isShowing(); // If incorrectly assuming dialog is not showing, continue and make the state consistent. if (showingStateInconsistent) { Log.d(TAG, "dismissH: volume dialog possible in inconsistent state:" + "mShowing=" + mShowing + ", mDialog==null?" + (mDialog == null)); } if (mIsAnimatingDismiss && !showingStateInconsistent) { Log.d(TAG, "dismissH: skipping dismiss because isAnimatingDismiss is true" + " and showingStateInconsistent is false"); Trace.endSection(); return; } Loading @@ -1490,8 +1500,12 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, .setDuration(mDialogHideAnimationDurationMs) .setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator()) .withEndAction(() -> mHandler.postDelayed(() -> { if (mController != null) { mController.notifyVisible(false); } if (mDialog != null) { mDialog.dismiss(); } tryToRemoveCaptionsTooltip(); mIsAnimatingDismiss = false; Loading Loading
packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +19 −5 Original line number Diff line number Diff line Loading @@ -414,6 +414,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, @Override public void destroy() { Log.d(TAG, "destroy() called"); mController.removeCallback(mControllerCallbackH); mHandler.removeCallbacksAndMessages(null); mConfigurationController.removeCallback(this); Loading Loading @@ -488,6 +489,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, } private void initDialog(int lockTaskModeState) { Log.d(TAG, "initDialog: called!"); mDialog = new CustomDialog(mContext); initDimens(); Loading Loading @@ -1281,7 +1283,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, } protected void tryToRemoveCaptionsTooltip() { if (mHasSeenODICaptionsTooltip && mODICaptionsTooltipView != null) { if (mHasSeenODICaptionsTooltip && mODICaptionsTooltipView != null && mDialog != null) { ViewGroup container = mDialog.findViewById(R.id.volume_dialog_container); container.removeView(mODICaptionsTooltipView); mODICaptionsTooltipView = null; Loading Loading @@ -1471,8 +1473,16 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, mHandler.removeMessages(H.DISMISS); mHandler.removeMessages(H.SHOW); if (mIsAnimatingDismiss) { Log.d(TAG, "dismissH: isAnimatingDismiss"); boolean showingStateInconsistent = !mShowing && mDialog != null && mDialog.isShowing(); // If incorrectly assuming dialog is not showing, continue and make the state consistent. if (showingStateInconsistent) { Log.d(TAG, "dismissH: volume dialog possible in inconsistent state:" + "mShowing=" + mShowing + ", mDialog==null?" + (mDialog == null)); } if (mIsAnimatingDismiss && !showingStateInconsistent) { Log.d(TAG, "dismissH: skipping dismiss because isAnimatingDismiss is true" + " and showingStateInconsistent is false"); Trace.endSection(); return; } Loading @@ -1490,8 +1500,12 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, .setDuration(mDialogHideAnimationDurationMs) .setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator()) .withEndAction(() -> mHandler.postDelayed(() -> { if (mController != null) { mController.notifyVisible(false); } if (mDialog != null) { mDialog.dismiss(); } tryToRemoveCaptionsTooltip(); mIsAnimatingDismiss = false; Loading