diff --git a/core/java/android/webkit/JWebCoreJavaBridge.java b/core/java/android/webkit/JWebCoreJavaBridge.java index f350d139edcc4..e496d97858c51 100644 --- a/core/java/android/webkit/JWebCoreJavaBridge.java +++ b/core/java/android/webkit/JWebCoreJavaBridge.java @@ -247,4 +247,5 @@ final class JWebCoreJavaBridge extends Handler { private native void nativeUpdatePluginDirectories(String[] directories, boolean reload); public native void setNetworkOnLine(boolean online); + public native void setNetworkType(String type, String subtype); } diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 09ed931fb5db3..db5641c9989b3 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -80,6 +80,7 @@ import java.io.IOException; import java.net.URLDecoder; import java.util.ArrayList; import java.util.List; +import java.util.HashMap; import java.util.Map; import junit.framework.Assert; @@ -1131,6 +1132,16 @@ public class WebView extends AbsoluteLayout networkUp ? 1 : 0, 0); } + /** + * Inform WebView about the current network type. + * {@hide} + */ + public void setNetworkType(String type, String subtype) { + Map map = new HashMap(); + map.put("type", type); + map.put("subtype", subtype); + mWebViewCore.sendMessage(EventHub.SET_NETWORK_TYPE, map); + } /** * Save the state of this WebView used in * {@link android.app.Activity#onSaveInstanceState}. Please note that this diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index 949b31875375a..d509bb4e0ee51 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -878,6 +878,8 @@ final class WebViewCore { static final int HIDE_FULLSCREEN = 182; + static final int SET_NETWORK_TYPE = 183; + // private message ids private static final int DESTROY = 200; @@ -1110,6 +1112,16 @@ final class WebViewCore { .setNetworkOnLine(msg.arg1 == 1); break; + case SET_NETWORK_TYPE: + if (BrowserFrame.sJavaBridge == null) { + throw new IllegalStateException("No WebView " + + "has been created in this process!"); + } + Map map = (Map) msg.obj; + BrowserFrame.sJavaBridge + .setNetworkType(map.get("type"), map.get("subtype")); + break; + case CLEAR_CACHE: clearCache(msg.arg1 == 1); break;