From da4df3f12f930022910d3e37e3c724201dcb2d77 Mon Sep 17 00:00:00 2001 From: Christian Brevik Date: Mon, 14 Nov 2016 11:27:30 -0800 Subject: [PATCH] Make ReactWebView & Client protected Summary: I'd like to make `ReactWebView` and `ReactWebViewClient` `protected` instead of `private`, inside the `ReactWebViewManager` class. The reason being that if you extend the `ReactWebViewManager` it'll be much easier to override existing logic. In my specific case I'd like to be able to override [shouldOverrideUrlLoading](https://github.com/facebook/react-native/blob/master/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java#L120) inside `ReactWebViewClient` and handle custom URL schemes differently. See #10055. Closes https://github.com/facebook/react-native/pull/10105 Differential Revision: D4168359 Pulled By: hramos fbshipit-source-id: ff6cbcf1d56536f0db0d2eea937de2cc065a09f9 --- .../com/facebook/react/views/webview/ReactWebViewManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java index df061a734..1a80722fe 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/webview/ReactWebViewManager.java @@ -102,7 +102,7 @@ public class ReactWebViewManager extends SimpleViewManager { private WebViewConfig mWebViewConfig; private @Nullable WebView.PictureListener mPictureListener; - private static class ReactWebViewClient extends WebViewClient { + protected static class ReactWebViewClient extends WebViewClient { private boolean mLastLoadFailed = false; @@ -202,7 +202,7 @@ public class ReactWebViewManager extends SimpleViewManager { * Subclass of {@link WebView} that implements {@link LifecycleEventListener} interface in order * to call {@link WebView#destroy} on activty destroy event and also to clear the client */ - private static class ReactWebView extends WebView implements LifecycleEventListener { + protected static class ReactWebView extends WebView implements LifecycleEventListener { private @Nullable String injectedJS; private boolean messagingEnabled = false;