Stop using ConnectivityManager for VPNs.
These methods have all moved to VpnManager. Bug: 173331190 Test: atest SettingsRoboTests Change-Id: I1dd57fa2213b1785a94ec9d6ab4cce3a5d2684ff Merged-In: I1dd57fa2213b1785a94ec9d6ab4cce3a5d2684ff
This commit is contained in:
@@ -20,7 +20,6 @@ import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.VpnManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
@@ -48,7 +47,6 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
|
||||
private PackageInfo mPackageInfo;
|
||||
private Listener mListener;
|
||||
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
private UserManager mUserManager;
|
||||
private VpnManager mVpnManager;
|
||||
|
||||
@@ -93,7 +91,6 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
|
||||
mUserManager = UserManager.get(getContext());
|
||||
mVpnManager = getContext().getSystemService(VpnManager.class);
|
||||
}
|
||||
@@ -158,8 +155,8 @@ public class AppDialogFragment extends InstrumentedDialogFragment implements App
|
||||
}
|
||||
final int userId = getUserId();
|
||||
if (mPackageInfo.packageName.equals(VpnUtils.getConnectedPackage(mVpnManager, userId))) {
|
||||
mConnectivityManager.setAlwaysOnVpnPackageForUser(userId, null,
|
||||
/* lockdownEnabled */ false, /* lockdownAllowlist */ null);
|
||||
mVpnManager.setAlwaysOnVpnPackageForUser(userId, null, /* lockdownEnabled */ false,
|
||||
/* lockdownAllowlist */ null);
|
||||
mVpnManager.prepareVpn(mPackageInfo.packageName, VpnConfig.LEGACY_VPN, userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,6 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.VpnManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
@@ -69,7 +68,6 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
|
||||
private PackageManager mPackageManager;
|
||||
private DevicePolicyManager mDevicePolicyManager;
|
||||
private ConnectivityManager mConnectivityManager;
|
||||
private VpnManager mVpnManager;
|
||||
|
||||
// VPN app info
|
||||
@@ -122,7 +120,6 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
|
||||
mPackageManager = getContext().getPackageManager();
|
||||
mDevicePolicyManager = getContext().getSystemService(DevicePolicyManager.class);
|
||||
mConnectivityManager = getContext().getSystemService(ConnectivityManager.class);
|
||||
mVpnManager = getContext().getSystemService(VpnManager.class);
|
||||
|
||||
mPreferenceVersion = findPreference(KEY_VERSION);
|
||||
@@ -227,8 +224,8 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
private boolean setAlwaysOnVpn(boolean isEnabled, boolean isLockdown) {
|
||||
return mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId,
|
||||
isEnabled ? mPackageName : null, isLockdown, /* lockdownWhitelist */ null);
|
||||
return mVpnManager.setAlwaysOnVpnPackageForUser(mUserId,
|
||||
isEnabled ? mPackageName : null, isLockdown, /* lockdownAllowlist */ null);
|
||||
}
|
||||
|
||||
private void updateUI() {
|
||||
@@ -261,7 +258,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
mPreferenceLockdown.setDisabledByAdmin(admin);
|
||||
}
|
||||
}
|
||||
if (mConnectivityManager.isAlwaysOnVpnPackageSupportedForUser(mUserId, mPackageName)) {
|
||||
if (mVpnManager.isAlwaysOnVpnPackageSupportedForUser(mUserId, mPackageName)) {
|
||||
// setSummary doesn't override the admin message when user restriction is applied
|
||||
mPreferenceAlwaysOn.setSummary(R.string.vpn_always_on_summary);
|
||||
// setEnabled is not required here, as checkRestrictionAndSetDisabled
|
||||
@@ -275,7 +272,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
private String getAlwaysOnVpnPackage() {
|
||||
return mConnectivityManager.getAlwaysOnVpnPackageForUser(mUserId);
|
||||
return mVpnManager.getAlwaysOnVpnPackageForUser(mUserId);
|
||||
}
|
||||
|
||||
private boolean isVpnAlwaysOn() {
|
||||
|
||||
@@ -20,7 +20,6 @@ import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.VpnManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.RemoteException;
|
||||
@@ -177,9 +176,8 @@ public class ConfigDialogFragment extends InstrumentedDialogFragment implements
|
||||
return;
|
||||
}
|
||||
|
||||
final ConnectivityManager conn = ConnectivityManager.from(mContext);
|
||||
conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null,
|
||||
/* lockdownEnabled */ false, /* lockdownWhitelist */ null);
|
||||
mService.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null,
|
||||
/* lockdownEnabled */ false, /* lockdownAllowlist */ null);
|
||||
VpnUtils.setLockdownVpn(mContext, profile.key);
|
||||
} else {
|
||||
// update only if lockdown vpn has been changed
|
||||
|
||||
@@ -490,7 +490,7 @@ public class VpnSettings extends RestrictedSettingsFragment implements
|
||||
Set<AppVpnInfo> result = new ArraySet<>();
|
||||
for (UserHandle profile : mUserManager.getUserProfiles()) {
|
||||
final int profileId = profile.getIdentifier();
|
||||
final String packageName = mConnectivityManager.getAlwaysOnVpnPackageForUser(profileId);
|
||||
final String packageName = mVpnManager.getAlwaysOnVpnPackageForUser(profileId);
|
||||
if (packageName != null) {
|
||||
result.add(new AppVpnInfo(profileId, packageName));
|
||||
}
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package com.android.settings.vpn2;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.VpnManager;
|
||||
import android.os.RemoteException;
|
||||
import android.provider.Settings;
|
||||
@@ -43,15 +42,15 @@ public class VpnUtils {
|
||||
|
||||
public static void clearLockdownVpn(Context context) {
|
||||
KeyStore.getInstance().delete(Credentials.LOCKDOWN_VPN);
|
||||
// Always notify ConnectivityManager after keystore update
|
||||
getConnectivityManager(context).updateLockdownVpn();
|
||||
// Always notify VpnManager after keystore update
|
||||
getVpnManager(context).updateLockdownVpn();
|
||||
}
|
||||
|
||||
public static void setLockdownVpn(Context context, String lockdownKey) {
|
||||
KeyStore.getInstance().put(Credentials.LOCKDOWN_VPN, lockdownKey.getBytes(),
|
||||
KeyStore.UID_SELF, /* flags */ 0);
|
||||
// Always notify ConnectivityManager after keystore update
|
||||
getConnectivityManager(context).updateLockdownVpn();
|
||||
// Always notify VpnManager after keystore update
|
||||
getVpnManager(context).updateLockdownVpn();
|
||||
}
|
||||
|
||||
public static boolean isVpnLockdown(String key) {
|
||||
@@ -63,7 +62,7 @@ public class VpnUtils {
|
||||
if (getLockdownVpn() != null) {
|
||||
return true;
|
||||
}
|
||||
return getConnectivityManager(context).getAlwaysOnVpnPackageForUser(userId) != null
|
||||
return getVpnManager(context).getAlwaysOnVpnPackageForUser(userId) != null
|
||||
&& Settings.Secure.getIntForUser(context.getContentResolver(),
|
||||
Settings.Secure.ALWAYS_ON_VPN_LOCKDOWN, /* default */ 0, userId) != 0;
|
||||
}
|
||||
@@ -77,16 +76,12 @@ public class VpnUtils {
|
||||
return config != null ? config.user : null;
|
||||
}
|
||||
|
||||
private static ConnectivityManager getConnectivityManager(Context context) {
|
||||
return context.getSystemService(ConnectivityManager.class);
|
||||
}
|
||||
|
||||
private static VpnManager getVpnManager(Context context) {
|
||||
return context.getSystemService(VpnManager.class);
|
||||
}
|
||||
|
||||
public static boolean isAlwaysOnVpnSet(ConnectivityManager cm, final int userId) {
|
||||
return cm.getAlwaysOnVpnPackageForUser(userId) != null;
|
||||
public static boolean isAlwaysOnVpnSet(VpnManager vm, final int userId) {
|
||||
return vm.getAlwaysOnVpnPackageForUser(userId) != null;
|
||||
}
|
||||
|
||||
public static boolean disconnectLegacyVpn(Context context) {
|
||||
|
||||
Reference in New Issue
Block a user