diff options
| -rw-r--r-- | core/java/com/android/internal/net/LegacyVpnInfo.java | 7 | ||||
| -rw-r--r-- | services/core/java/com/android/server/connectivity/Vpn.java | 4 |
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; } |