Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1a76c594 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix the SysUI dialogs size after rotating" into tm-dev am: f6942416 am: 0403d84f

parents 7d7d4975 0403d84f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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"/>
+3 −2
Original line number Diff line number Diff line
@@ -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.
+9 −2
Original line number Diff line number Diff line
@@ -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;
    }