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

Commit a57632fe authored by Leon Scroggins's avatar Leon Scroggins
Browse files

Fix bugs around removing and attaching WebViews.

When removing a WebView from its Window, remove the WebTextView.
Remove the old attempt to do the same, which was not being called.

When attaching a WebView to a Window, call onWindowFocusChanged so
its state of drawing the selection ring returns.

Fixes http://b/issue?id=2257787 and http://b/issue?id=2260867
parent 5fd01f7a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -178749,7 +178749,7 @@
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 deprecated="deprecated"
 visibility="public"
>
<parameter name="parent" type="android.view.View">
@@ -178764,7 +178764,7 @@
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 deprecated="deprecated"
 visibility="public"
>
<parameter name="p" type="android.view.View">
+13 −19
Original line number Diff line number Diff line
@@ -3572,39 +3572,33 @@ public class WebView extends AbsoluteLayout
        return copiedSomething;
    }

    // Set this as a hierarchy change listener so we can know when this view
    // is removed and still have access to our parent.
    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        ViewParent parent = getParent();
        if (parent instanceof ViewGroup) {
            ViewGroup p = (ViewGroup) parent;
            p.setOnHierarchyChangeListener(this);
        }
        if (hasWindowFocus()) onWindowFocusChanged(true);
    }

    @Override
    protected void onDetachedFromWindow() {
        clearTextEntry();
        super.onDetachedFromWindow();
        ViewParent parent = getParent();
        if (parent instanceof ViewGroup) {
            ViewGroup p = (ViewGroup) parent;
            p.setOnHierarchyChangeListener(null);
        }

        // Clean up the zoom controller
        mZoomButtonsController.setVisible(false);
    }

    // Implementation for OnHierarchyChangeListener
    /**
     * @deprecated WebView no longer needs to implement
     * ViewGroup.OnHierarchyChangeListener.  This method does nothing now.
     */
    @Deprecated
    public void onChildViewAdded(View parent, View child) {}

    public void onChildViewRemoved(View p, View child) {
        if (child == this) {
            clearTextEntry();
        }
    }
    /**
     * @deprecated WebView no longer needs to implement
     * ViewGroup.OnHierarchyChangeListener.  This method does nothing now.
     */
    @Deprecated
    public void onChildViewRemoved(View p, View child) {}

    /**
     * @deprecated WebView should not have implemented