Switch Settings from IConnectivityManager to VpnManager.
The VPN code is moving out of ConnectivityService to a new VpnManagerService. Update Settings to call into the VpnManager class instead of using the AIDL interface directly. This way, the VPN code can be moved without touching Settings. Bug: 173331190 Test: builds, boots Test: manually verified VPN settings page Change-Id: Id2731a166b5d6783acb1c711a54604b69aa8c0d7
This commit is contained in:
@@ -29,10 +29,8 @@ import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.IConnectivityManager;
|
||||
import android.net.VpnManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.text.TextUtils;
|
||||
@@ -72,7 +70,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
private PackageManager mPackageManager;
|
||||
private DevicePolicyManager mDevicePolicyManager;
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
private IConnectivityManager mConnectivityService;
|
||||
private VpnManager mVpnManager;
|
||||
|
||||
// VPN app info
|
||||
private final int mUserId = UserHandle.myUserId();
|
||||
@@ -125,8 +123,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
mPackageManager = getContext().getPackageManager();
|
||||
mDevicePolicyManager = getContext().getSystemService(DevicePolicyManager.class);
|
||||
mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
|
||||
mConnectivityService = IConnectivityManager.Stub
|
||||
.asInterface(ServiceManager.getService(Context.CONNECTIVITY_SERVICE));
|
||||
mVpnManager = getContext().getSystemService(VpnManager.class);
|
||||
|
||||
mPreferenceVersion = findPreference(KEY_VERSION);
|
||||
mPreferenceAlwaysOn = (RestrictedSwitchPreference) findPreference(KEY_ALWAYS_ON_VPN);
|
||||
@@ -335,13 +332,8 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
* @return {@code true} if another VPN (VpnService or legacy) is connected or set as always-on.
|
||||
*/
|
||||
private boolean isAnotherVpnActive() {
|
||||
try {
|
||||
final VpnConfig config = mConnectivityService.getVpnConfig(mUserId);
|
||||
return config != null && !TextUtils.equals(config.user, mPackageName);
|
||||
} catch (RemoteException e) {
|
||||
Log.w(TAG, "Failure to look up active VPN", e);
|
||||
return false;
|
||||
}
|
||||
final VpnConfig config = mVpnManager.getVpnConfig(mUserId);
|
||||
return config != null && !TextUtils.equals(config.user, mPackageName);
|
||||
}
|
||||
|
||||
public static class CannotConnectFragment extends InstrumentedDialogFragment {
|
||||
|
Reference in New Issue
Block a user