Merge changes I623e2983,I8b95e020 am: ec1966e372

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1479476

Change-Id: I39e260b987fcc371028107bc683f67f1b8833727
This commit is contained in:
Chalard Jean
2020-10-29 09:54:15 +00:00
committed by Automerger Merge Worker
2 changed files with 8 additions and 5 deletions

View File

@@ -83,8 +83,8 @@ public class LegacyVpnInfo implements Parcelable {
* Return best matching {@link LegacyVpnInfo} state based on given * Return best matching {@link LegacyVpnInfo} state based on given
* {@link NetworkInfo}. * {@link NetworkInfo}.
*/ */
public static int stateFromNetworkInfo(NetworkInfo info) { public static int stateFromNetworkInfo(NetworkInfo.DetailedState state) {
switch (info.getDetailedState()) { switch (state) {
case CONNECTING: case CONNECTING:
return STATE_CONNECTING; return STATE_CONNECTING;
case CONNECTED: case CONNECTED:
@@ -94,8 +94,7 @@ public class LegacyVpnInfo implements Parcelable {
case FAILED: case FAILED:
return STATE_FAILED; return STATE_FAILED;
default: default:
Log.w(TAG, "Unhandled state " + info.getDetailedState() Log.w(TAG, "Unhandled state " + state + " ; treating as disconnected");
+ " ; treating as disconnected");
return STATE_DISCONNECTED; return STATE_DISCONNECTED;
} }
} }

View File

@@ -201,6 +201,7 @@ public class Vpn {
private final Context mContext; private final Context mContext;
@VisibleForTesting final Dependencies mDeps; @VisibleForTesting final Dependencies mDeps;
private final NetworkInfo mNetworkInfo; private final NetworkInfo mNetworkInfo;
private int mLegacyState;
@VisibleForTesting protected String mPackage; @VisibleForTesting protected String mPackage;
private int mOwnerUID; private int mOwnerUID;
private boolean mIsPackageTargetingAtLeastQ; private boolean mIsPackageTargetingAtLeastQ;
@@ -415,6 +416,7 @@ public class Vpn {
Log.wtf(TAG, "Problem registering observer", e); Log.wtf(TAG, "Problem registering observer", e);
} }
mLegacyState = LegacyVpnInfo.STATE_DISCONNECTED;
mNetworkInfo = new NetworkInfo(ConnectivityManager.TYPE_VPN, 0 /* subtype */, NETWORKTYPE, mNetworkInfo = new NetworkInfo(ConnectivityManager.TYPE_VPN, 0 /* subtype */, NETWORKTYPE,
"" /* subtypeName */); "" /* subtypeName */);
mNetworkCapabilities = new NetworkCapabilities(); mNetworkCapabilities = new NetworkCapabilities();
@@ -440,6 +442,7 @@ public class Vpn {
@VisibleForTesting @VisibleForTesting
protected void updateState(DetailedState detailedState, String reason) { protected void updateState(DetailedState detailedState, String reason) {
if (LOGD) Log.d(TAG, "setting state=" + detailedState + ", reason=" + reason); if (LOGD) Log.d(TAG, "setting state=" + detailedState + ", reason=" + reason);
mLegacyState = LegacyVpnInfo.stateFromNetworkInfo(detailedState);
mNetworkInfo.setDetailedState(detailedState, reason, null); mNetworkInfo.setDetailedState(detailedState, reason, null);
if (mNetworkAgent != null) { if (mNetworkAgent != null) {
mNetworkAgent.sendNetworkInfo(mNetworkInfo); mNetworkAgent.sendNetworkInfo(mNetworkInfo);
@@ -1243,6 +1246,7 @@ public class Vpn {
// behaves the same as when it uses the default network. // behaves the same as when it uses the default network.
mNetworkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET); mNetworkCapabilities.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
mLegacyState = LegacyVpnInfo.STATE_CONNECTING;
mNetworkInfo.setDetailedState(DetailedState.CONNECTING, null, null); mNetworkInfo.setDetailedState(DetailedState.CONNECTING, null, null);
NetworkAgentConfig networkAgentConfig = new NetworkAgentConfig(); NetworkAgentConfig networkAgentConfig = new NetworkAgentConfig();
@@ -2265,7 +2269,7 @@ public class Vpn {
final LegacyVpnInfo info = new LegacyVpnInfo(); final LegacyVpnInfo info = new LegacyVpnInfo();
info.key = mConfig.user; info.key = mConfig.user;
info.state = LegacyVpnInfo.stateFromNetworkInfo(mNetworkInfo); info.state = mLegacyState;
if (mNetworkInfo.isConnected()) { if (mNetworkInfo.isConnected()) {
info.intent = mStatusIntent; info.intent = mStatusIntent;
} }