summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/net/LegacyVpnInfo.java7
-rw-r--r--services/core/java/com/android/server/connectivity/Vpn.java4
2 files changed, 6 insertions, 5 deletions
diff --git a/core/java/com/android/internal/net/LegacyVpnInfo.java b/core/java/com/android/internal/net/LegacyVpnInfo.java
index 4eb7dede7769..43984b59378c 100644
--- a/core/java/com/android/internal/net/LegacyVpnInfo.java
+++ b/core/java/com/android/internal/net/LegacyVpnInfo.java
@@ -83,8 +83,8 @@ public class LegacyVpnInfo implements Parcelable {
* Return best matching {@link LegacyVpnInfo} state based on given
* {@link NetworkInfo}.
*/
- public static int stateFromNetworkInfo(NetworkInfo info) {
- switch (info.getDetailedState()) {
+ public static int stateFromNetworkInfo(NetworkInfo.DetailedState state) {
+ switch (state) {
case CONNECTING:
return STATE_CONNECTING;
case CONNECTED:
@@ -94,8 +94,7 @@ public class LegacyVpnInfo implements Parcelable {
case FAILED:
return STATE_FAILED;
default:
- Log.w(TAG, "Unhandled state " + info.getDetailedState()
- + " ; treating as disconnected");
+ Log.w(TAG, "Unhandled state " + state + " ; treating as disconnected");
return STATE_DISCONNECTED;
}
}
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index e3481a3b3bc7..5ded77c0e6ea 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -201,6 +201,7 @@ public class Vpn {
private final Context mContext;
@VisibleForTesting final Dependencies mDeps;
private final NetworkInfo mNetworkInfo;
+ private int mLegacyState = LegacyVpnInfo.STATE_DISCONNECTED;
@VisibleForTesting protected String mPackage;
private int mOwnerUID;
private boolean mIsPackageTargetingAtLeastQ;
@@ -440,6 +441,7 @@ public class Vpn {
@VisibleForTesting
protected void updateState(DetailedState detailedState, String reason) {
if (LOGD) Log.d(TAG, "setting state=" + detailedState + ", reason=" + reason);
+ mLegacyState = LegacyVpnInfo.stateFromNetworkInfo(detailedState);
mNetworkInfo.setDetailedState(detailedState, reason, null);
if (mNetworkAgent != null) {
mNetworkAgent.sendNetworkInfo(mNetworkInfo);
@@ -2265,7 +2267,7 @@ public class Vpn {
final LegacyVpnInfo info = new LegacyVpnInfo();
info.key = mConfig.user;
- info.state = LegacyVpnInfo.stateFromNetworkInfo(mNetworkInfo);
+ info.state = mLegacyState;
if (mNetworkInfo.isConnected()) {
info.intent = mStatusIntent;
}