Merge "Fix the SysUI dialogs size after rotating" into tm-dev am: f694241615
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18375395 Change-Id: Ib9921d83faf2fcd0f7b5e95b56465d312a2a6032 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -16,7 +16,8 @@
|
||||
-->
|
||||
<resources>
|
||||
<!-- DialogLaunchAnimator -->
|
||||
<item type="id" name="launch_animation_running"/>
|
||||
<item type="id" name="tag_launch_animation_running"/>
|
||||
<item type="id" name="tag_dialog_background"/>
|
||||
|
||||
<!-- ViewBoundsAnimator -->
|
||||
<item type="id" name="tag_animator"/>
|
||||
|
||||
@@ -62,7 +62,7 @@ class DialogLaunchAnimator @JvmOverloads constructor(
|
||||
positionXInterpolator = ActivityLaunchAnimator.INTERPOLATORS.positionInterpolator
|
||||
)
|
||||
|
||||
private val TAG_LAUNCH_ANIMATION_RUNNING = R.id.launch_animation_running
|
||||
private val TAG_LAUNCH_ANIMATION_RUNNING = R.id.tag_launch_animation_running
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -447,6 +447,7 @@ private class AnimatedDialog(
|
||||
dialogContentWithBackground
|
||||
}
|
||||
this.dialogContentWithBackground = dialogContentWithBackground
|
||||
dialogContentWithBackground.setTag(R.id.tag_dialog_background, true)
|
||||
|
||||
val background = dialogContentWithBackground.background
|
||||
originalDialogBackgroundColor =
|
||||
@@ -584,7 +585,7 @@ private class AnimatedDialog(
|
||||
GhostView.removeGhost(touchSurface)
|
||||
},
|
||||
onLaunchAnimationEnd = {
|
||||
touchSurface.setTag(R.id.launch_animation_running, null)
|
||||
touchSurface.setTag(R.id.tag_launch_animation_running, null)
|
||||
|
||||
// We hide the touch surface when the dialog is showing. We will make this
|
||||
// view visible again when dismissing the dialog.
|
||||
|
||||
@@ -31,6 +31,7 @@ import android.os.Looper;
|
||||
import android.os.SystemProperties;
|
||||
import android.os.UserHandle;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewRootImpl;
|
||||
import android.view.Window;
|
||||
@@ -376,11 +377,17 @@ public class SystemUIDialog extends AlertDialog implements ViewRootImpl.ConfigCh
|
||||
}
|
||||
|
||||
private static int getHorizontalInsets(Dialog dialog) {
|
||||
if (dialog.getWindow().getDecorView() == null) {
|
||||
View decorView = dialog.getWindow().getDecorView();
|
||||
if (decorView == null) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
Drawable background = dialog.getWindow().getDecorView().getBackground();
|
||||
// We first look for the background on the dialogContentWithBackground added by
|
||||
// DialogLaunchAnimator. If it's not there, we use the background of the DecorView.
|
||||
View viewWithBackground = decorView.findViewByPredicate(
|
||||
view -> view.getTag(R.id.tag_dialog_background) != null);
|
||||
Drawable background = viewWithBackground != null ? viewWithBackground.getBackground()
|
||||
: decorView.getBackground();
|
||||
Insets insets = background != null ? background.getOpticalInsets() : Insets.NONE;
|
||||
return insets.left + insets.right;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user