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

Commit 605e74c9 authored by Vadim Caen's avatar Vadim Caen Committed by android-build-merger
Browse files

DO NOT MERGE Do not call drawableChanged pre Q

am: 843f9dee

Change-Id: I813f41905386da06e6eaebd6b7f85c17a6051456
parents b95eefcc 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)
@@ -5223,6 +5236,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) {