Merge changes I623e2983,I8b95e020
* changes: Fix comments from aosp/1455975 Manage VPN legacy state separately from NetworkInfo
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user