Reload page on network connectivity
This change will auto reload the page that failed to load due
to network connectivity problem when the network becomes
available.
Change-Id: I85e5ddce48f95c398959a2e64141c87e4c83e0ca
diff --git a/src/com/android/browser/NetworkStateHandler.java b/src/com/android/browser/NetworkStateHandler.java
index 74a355a..9faa996 100644
--- a/src/com/android/browser/NetworkStateHandler.java
+++ b/src/com/android/browser/NetworkStateHandler.java
@@ -62,19 +62,22 @@
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(
ConnectivityManager.CONNECTIVITY_ACTION)) {
+ final ConnectivityManager cm = (ConnectivityManager)
+ context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ NetworkInfo info = cm.getActiveNetworkInfo();
- NetworkInfo info = intent.getParcelableExtra(
- ConnectivityManager.EXTRA_NETWORK_INFO);
+ if (info == null) {
+ onNetworkToggle(false);
+ return;
+ }
+
String typeName = info.getTypeName();
String subtypeName = info.getSubtypeName();
sendNetworkType(typeName.toLowerCase(),
(subtypeName != null ? subtypeName.toLowerCase() : ""));
BrowserSettings.getInstance().updateConnectionType();
- boolean noConnection = intent.getBooleanExtra(
- ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
-
- onNetworkToggle(!noConnection);
+ onNetworkToggle(info.isConnectedOrConnecting());
}
}
};
@@ -105,6 +108,10 @@
if (w != null) {
w.setNetworkAvailable(up);
}
+ Tab t = mController.getCurrentTab();
+ if (t != null) {
+ t.setNetworkAvailable(up);
+ }
}
boolean isNetworkUp() {
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 107ab07..c4260da 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -357,6 +357,12 @@
}
}
+ public void setNetworkAvailable(boolean networkUp) {
+ if (networkUp && mReceivedError && (mMainView != null)) {
+ mMainView.reload();
+ }
+ }
+
// -------------------------------------------------------------------------
// WebViewClient implementation for the main WebView
// -------------------------------------------------------------------------