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

Commit d621e77c authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Workaround apps not calling super.onDetachedFromWindow()"

parents 16340670 198d2084
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -256,7 +256,7 @@ public class SurfaceView extends View {
    }

    @Override
    protected void onDetachedFromWindow() {
    protected void onDetachedFromWindowInternal() {
        if (mGlobalListenersAdded) {
            ViewTreeObserver observer = getViewTreeObserver();
            observer.removeOnScrollChangedListener(mScrollChangedListener);
@@ -278,7 +278,7 @@ public class SurfaceView extends View {
        mSession = null;
        mLayout.token = null;

        super.onDetachedFromWindow();
        super.onDetachedFromWindowInternal();
    }

    @Override
+2 −2
Original line number Diff line number Diff line
@@ -229,9 +229,9 @@ public class TextureView extends View {
    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
    protected void onDetachedFromWindowInternal() {
        destroySurface();
        super.onDetachedFromWindowInternal();
    }

    private void destroySurface() {
+14 −0
Original line number Diff line number Diff line
@@ -13116,6 +13116,19 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * @see #onAttachedToWindow()
     */
    protected void onDetachedFromWindow() {
    }
    /**
     * This is a framework-internal mirror of onDetachedFromWindow() that's called
     * after onDetachedFromWindow().
     *
     * If you override this you *MUST* call super.onDetachedFromWindowInternal()!
     * The super method should be called at the end of the overriden method to ensure
     * subclasses are destroyed first
     *
     * @hide
     */
    protected void onDetachedFromWindowInternal() {
        mPrivateFlags &= ~PFLAG_CANCEL_NEXT_UP_EVENT;
        mPrivateFlags3 &= ~PFLAG3_IS_LAID_OUT;
@@ -13303,6 +13316,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        }
        onDetachedFromWindow();
        onDetachedFromWindowInternal();
        ListenerInfo li = mListenerInfo;
        final CopyOnWriteArrayList<OnAttachStateChangeListener> listeners =
+3 −3
Original line number Diff line number Diff line
@@ -4730,9 +4730,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();

    protected void onDetachedFromWindowInternal() {
        if (mPreDrawRegistered) {
            getViewTreeObserver().removeOnPreDrawListener(this);
            mPreDrawRegistered = false;
@@ -4741,6 +4739,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        resetResolvedDrawables();

        if (mEditor != null) mEditor.onDetachedFromWindow();

        super.onDetachedFromWindowInternal();
    }

    @Override
+2 −2
Original line number Diff line number Diff line
@@ -601,7 +601,7 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback
     * Must not be called before a renderer has been set.
     */
    @Override
    protected void onDetachedFromWindow() {
    protected void onDetachedFromWindowInternal() {
        if (LOG_ATTACH_DETACH) {
            Log.d(TAG, "onDetachedFromWindow");
        }
@@ -609,7 +609,7 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback
            mGLThread.requestExitAndWait();
        }
        mDetached = true;
        super.onDetachedFromWindow();
        super.onDetachedFromWindowInternal();
    }

    // ----------------------------------------------------------------------