summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRemi NGUYEN VAN <reminv@google.com>2019-06-11 23:06:00 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-06-11 23:06:00 -0700
commiteb9e627711a8c2563d45cf62a0206e138c14af0a (patch)
tree018fea52bf4c67876da8d2cdf43de4b040a7a91c /src
parent68ec32966f3d1e155c4169fe32928f901d3f1679 (diff)
parent34e740ca97b3193a6f502d04127c03e9dc9bbba4 (diff)
Merge "Support beta 4 system images." am: 53ba2595c3
am: 34e740ca97 Change-Id: Ic97d42c89ac011fa668f0edb23fbb6a13a486e57
Diffstat (limited to 'src')
-rw-r--r--src/com/android/server/connectivity/NetworkMonitor.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/com/android/server/connectivity/NetworkMonitor.java b/src/com/android/server/connectivity/NetworkMonitor.java
index 9a8b304..0b2c051 100644
--- a/src/com/android/server/connectivity/NetworkMonitor.java
+++ b/src/com/android/server/connectivity/NetworkMonitor.java
@@ -24,6 +24,9 @@ import static android.net.ConnectivityManager.EXTRA_CAPTIVE_PORTAL_URL;
import static android.net.ConnectivityManager.TYPE_MOBILE;
import static android.net.ConnectivityManager.TYPE_WIFI;
import static android.net.DnsResolver.FLAG_EMPTY;
+import static android.net.INetworkMonitor.NETWORK_TEST_RESULT_INVALID;
+import static android.net.INetworkMonitor.NETWORK_TEST_RESULT_PARTIAL_CONNECTIVITY;
+import static android.net.INetworkMonitor.NETWORK_TEST_RESULT_VALID;
import static android.net.INetworkMonitor.NETWORK_VALIDATION_PROBE_DNS;
import static android.net.INetworkMonitor.NETWORK_VALIDATION_PROBE_FALLBACK;
import static android.net.INetworkMonitor.NETWORK_VALIDATION_PROBE_HTTP;
@@ -93,6 +96,7 @@ import android.net.util.SharedLog;
import android.net.util.Stopwatch;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
+import android.os.Build;
import android.os.Bundle;
import android.os.Message;
import android.os.RemoteException;
@@ -286,6 +290,7 @@ public class NetworkMonitor extends StateMachine {
private final Context mContext;
private final INetworkMonitorCallbacks mCallback;
+ private final int mCallbackVersion;
private final Network mCleartextDnsNetwork;
private final Network mNetwork;
private final TelephonyManager mTelephonyManager;
@@ -355,6 +360,17 @@ public class NetworkMonitor extends StateMachine {
private boolean mAcceptPartialConnectivity = false;
private final EvaluationState mEvaluationState = new EvaluationState();
+ private int getCallbackVersion(INetworkMonitorCallbacks cb) {
+ int version;
+ try {
+ version = cb.getInterfaceVersion();
+ } catch (RemoteException e) {
+ version = 0;
+ }
+ if (version == Build.VERSION_CODES.CUR_DEVELOPMENT) version = 0;
+ return version;
+ }
+
public NetworkMonitor(Context context, INetworkMonitorCallbacks cb, Network network,
SharedLog validationLog) {
this(context, cb, network, new IpConnectivityLog(), validationLog,
@@ -376,6 +392,7 @@ public class NetworkMonitor extends StateMachine {
mMetricsLog = logger;
mValidationLogs = validationLogs;
mCallback = cb;
+ mCallbackVersion = getCallbackVersion(cb);
mDependencies = deps;
mDetectionStatsUtils = detectionStatsUtils;
mNetwork = network;
@@ -2113,6 +2130,15 @@ public class NetworkMonitor extends StateMachine {
}
protected int getNetworkTestResult() {
+ if (mCallbackVersion < 3) {
+ if ((mEvaluationResult & NETWORK_VALIDATION_RESULT_VALID) != 0) {
+ return NETWORK_TEST_RESULT_VALID;
+ }
+ if ((mEvaluationResult & NETWORK_VALIDATION_RESULT_PARTIAL) != 0) {
+ return NETWORK_TEST_RESULT_PARTIAL_CONNECTIVITY;
+ }
+ return NETWORK_TEST_RESULT_INVALID;
+ }
return mEvaluationResult | mProbeResults;
}
}