Merge "Volume: Hide dialog when motion cancelled, as well as when finished." into tm-qpr-dev

This commit is contained in:
Alison Cichowlas
2023-03-10 16:35:57 +00:00
committed by Android (Google) Code Review

View File

@@ -1398,7 +1398,11 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
@Override @Override
public void onAnimationCancel(@NonNull Animator animation) { public void onAnimationCancel(@NonNull Animator animation) {
mInteractionJankMonitor.cancel(CUJ_VOLUME_CONTROL); mInteractionJankMonitor.cancel(CUJ_VOLUME_CONTROL);
Log.d(TAG, "onAnimationCancel"); Log.i(TAG, "onAnimationCancel");
// We can only have one animation listener for cancel, so the jank listener should
// also call for cleanup.
finishDismiss();
} }
@Override @Override
@@ -1490,12 +1494,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
.setDuration(mDialogHideAnimationDurationMs) .setDuration(mDialogHideAnimationDurationMs)
.setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator()) .setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator())
.withEndAction(() -> mHandler.postDelayed(() -> { .withEndAction(() -> mHandler.postDelayed(() -> {
mController.notifyVisible(false); finishDismiss();
mDialog.dismiss();
tryToRemoveCaptionsTooltip();
mIsAnimatingDismiss = false;
hideRingerDrawer();
}, 50)); }, 50));
if (!shouldSlideInVolumeTray()) animator.translationX(mDialogView.getWidth() / 2.0f); if (!shouldSlideInVolumeTray()) animator.translationX(mDialogView.getWidth() / 2.0f);
animator.setListener(getJankListener(getDialogView(), TYPE_DISMISS, animator.setListener(getJankListener(getDialogView(), TYPE_DISMISS,
@@ -1510,6 +1509,18 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable,
Trace.endSection(); Trace.endSection();
} }
/**
* Clean up and hide volume dialog. Called when animation is finished/cancelled.
*/
private void finishDismiss() {
mController.notifyVisible(false);
mDialog.dismiss();
tryToRemoveCaptionsTooltip();
mIsAnimatingDismiss = false;
hideRingerDrawer();
}
private boolean showActiveStreamOnly() { private boolean showActiveStreamOnly() {
return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK) return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK)
|| mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION); || mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEVISION);