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

Commit d007c7b9 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Do not call drawableChanged pre Q" into qt-dev

parents 8d56bbf2 843f9dee
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -967,6 +967,19 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     */
    static boolean sBrokenInsetsDispatch;
    /**
     * Prior to Q, calling
     * {@link com.android.internal.policy.DecorView#setBackgroundDrawable(Drawable)}
     * did not call update the window format so the opacity of the background was not correctly
     * applied to the window. Some applications rely on this misbehavior to work properly.
     * <p>
     * From Q, {@link com.android.internal.policy.DecorView#setBackgroundDrawable(Drawable)} is
     * the same as {@link com.android.internal.policy.DecorView#setWindowBackground(Drawable)}
     * which updates the window format.
     * @hide
     */
    protected static boolean sBrokenWindowBackground;
    /** @hide */
    @IntDef({NOT_FOCUSABLE, FOCUSABLE, FOCUSABLE_AUTO})
    @Retention(RetentionPolicy.SOURCE)
@@ -5104,6 +5117,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            sBrokenInsetsDispatch = ViewRootImpl.sNewInsetsMode != NEW_INSETS_MODE_FULL
                    || targetSdkVersion < Build.VERSION_CODES.Q;
            sBrokenWindowBackground = targetSdkVersion < Build.VERSION_CODES.Q;
            sCompatibilityDone = true;
        }
    }
+3 −2
Original line number Diff line number Diff line
@@ -983,15 +983,16 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind

    @Override
    public void setBackgroundDrawable(Drawable background) {

        // TODO: This should route through setWindowBackground, but late in the release to make this
        // change.
        if (mOriginalBackgroundDrawable != background) {
            mOriginalBackgroundDrawable = background;
            updateBackgroundDrawable();
            if (!View.sBrokenWindowBackground) {
                drawableChanged();
            }
        }
    }

    public void setWindowFrame(Drawable drawable) {
        if (getForeground() != drawable) {