Support multiple Vpn ManageDialogs
Move away from storing the configs in the Intent to prevent issues with PendingIntents and multiple configs. The Dialog now queries ConnectivityService for the configuration to display in the management dialog. Change-Id: I0e0ef52db840152914d117a24f776d8106e836ff
This commit is contained in:
@@ -124,6 +124,8 @@ interface IConnectivityManager
|
|||||||
|
|
||||||
ParcelFileDescriptor establishVpn(in VpnConfig config);
|
ParcelFileDescriptor establishVpn(in VpnConfig config);
|
||||||
|
|
||||||
|
VpnConfig getVpnConfig();
|
||||||
|
|
||||||
void startLegacyVpn(in VpnProfile profile);
|
void startLegacyVpn(in VpnProfile profile);
|
||||||
|
|
||||||
LegacyVpnInfo getLegacyVpnInfo();
|
LegacyVpnInfo getLegacyVpnInfo();
|
||||||
|
|||||||
@@ -3425,6 +3425,20 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the information of the ongoing VPN. This method is used by VpnDialogs and
|
||||||
|
* not available in ConnectivityManager.
|
||||||
|
* Permissions are checked in Vpn class.
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public VpnConfig getVpnConfig() {
|
||||||
|
int user = UserHandle.getUserId(Binder.getCallingUid());
|
||||||
|
synchronized(mVpns) {
|
||||||
|
return mVpns.get(user).getVpnConfig();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback for VPN subsystem. Currently VPN is not adapted to the service
|
* Callback for VPN subsystem. Currently VPN is not adapted to the service
|
||||||
* through NetworkStateTracker since it works differently. For example, it
|
* through NetworkStateTracker since it works differently. For example, it
|
||||||
|
|||||||
Reference in New Issue
Block a user