Merge "Make volume dialog only fade in/out in landscape" into pi-dev

This commit is contained in:
Mike Digman
2018-03-28 20:46:20 +00:00
committed by Android (Google) Code Review

View File

@@ -36,6 +36,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.PixelFormat;
@@ -60,6 +61,7 @@ import android.view.View;
import android.view.View.AccessibilityDelegate;
import android.view.View.OnAttachStateChangeListener;
import android.view.ViewGroup;
import android.view.ViewPropertyAnimator;
import android.view.Window;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent;
@@ -192,7 +194,7 @@ public class VolumeDialogImpl implements VolumeDialog {
mDialog.setCanceledOnTouchOutside(true);
mDialog.setContentView(R.layout.volume_dialog);
mDialog.setOnShowListener(dialog -> {
mDialogView.setTranslationX(mDialogView.getWidth() / 2);
if (!isLandscape()) mDialogView.setTranslationX(mDialogView.getWidth() / 2);
mDialogView.setAlpha(0);
mDialogView.animate()
.alpha(1)
@@ -254,6 +256,11 @@ public class VolumeDialogImpl implements VolumeDialog {
return ColorStateList.valueOf(mContext.getColor(colorResId));
}
private boolean isLandscape() {
return mContext.getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE;
}
public void setStreamImportant(int stream, boolean important) {
mHandler.obtainMessage(H.SET_STREAM_IMPORTANT, stream, important ? 1 : 0).sendToTarget();
}
@@ -509,16 +516,16 @@ public class VolumeDialogImpl implements VolumeDialog {
mDialogView.setTranslationX(0);
mDialogView.setAlpha(1);
mDialogView.animate()
ViewPropertyAnimator animator = mDialogView.animate()
.alpha(0)
.translationX(mDialogView.getWidth() / 2)
.setDuration(250)
.setInterpolator(new SystemUIInterpolators.LogAccelerateInterpolator())
.withEndAction(() -> mHandler.postDelayed(() -> {
if (D.BUG) Log.d(TAG, "mDialog.dismiss()");
mDialog.dismiss();
}, 50))
.start();
}, 50));
if (!isLandscape()) animator.translationX(mDialogView.getWidth() / 2);
animator.start();
Events.writeEvent(mContext, Events.EVENT_DISMISS_DIALOG, reason);
mController.notifyVisible(false);