Merge "Revert "Delete VPN methods in ConnectivityManager.""

This commit is contained in:
Nataniel Borges
2021-02-19 15:32:46 +00:00
committed by Gerrit Code Review
3 changed files with 81 additions and 5 deletions

View File

@@ -1069,6 +1069,58 @@ public class ConnectivityManager {
} }
} }
/**
* Calls VpnManager#isAlwaysOnVpnPackageSupportedForUser.
* @deprecated TODO: remove when callers have migrated to VpnManager.
* @hide
*/
@Deprecated
public boolean isAlwaysOnVpnPackageSupportedForUser(int userId, @Nullable String vpnPackage) {
return getVpnManager().isAlwaysOnVpnPackageSupportedForUser(userId, vpnPackage);
}
/**
* Calls VpnManager#setAlwaysOnVpnPackageForUser.
* @deprecated TODO: remove when callers have migrated to VpnManager.
* @hide
*/
@Deprecated
public boolean setAlwaysOnVpnPackageForUser(int userId, @Nullable String vpnPackage,
boolean lockdownEnabled, @Nullable List<String> lockdownAllowlist) {
return getVpnManager().setAlwaysOnVpnPackageForUser(userId, vpnPackage, lockdownEnabled,
lockdownAllowlist);
}
/**
* Calls VpnManager#getAlwaysOnVpnPackageForUser.
* @deprecated TODO: remove when callers have migrated to VpnManager.
* @hide
*/
@Deprecated
public String getAlwaysOnVpnPackageForUser(int userId) {
return getVpnManager().getAlwaysOnVpnPackageForUser(userId);
}
/**
* Calls VpnManager#isVpnLockdownEnabled.
* @deprecated TODO: remove when callers have migrated to VpnManager.
* @hide
*/
@Deprecated
public boolean isVpnLockdownEnabled(int userId) {
return getVpnManager().isVpnLockdownEnabled(userId);
}
/**
* Calls VpnManager#getVpnLockdownAllowlist.
* @deprecated TODO: remove when callers have migrated to VpnManager.
* @hide
*/
@Deprecated
public List<String> getVpnLockdownAllowlist(int userId) {
return getVpnManager().getVpnLockdownAllowlist(userId);
}
/** /**
* Adds or removes a requirement for given UID ranges to use the VPN. * Adds or removes a requirement for given UID ranges to use the VPN.
* *
@@ -3114,6 +3166,16 @@ public class ConnectivityManager {
} }
} }
/**
* Calls VpnManager#updateLockdownVpn.
* @deprecated TODO: remove when callers have migrated to VpnManager.
* @hide
*/
@Deprecated
public boolean updateLockdownVpn() {
return getVpnManager().updateLockdownVpn();
}
/** /**
* Set sign in error notification to visible or invisible * Set sign in error notification to visible or invisible
* *
@@ -4475,6 +4537,8 @@ public class ConnectivityManager {
try { try {
mService.factoryReset(); mService.factoryReset();
mTetheringManager.stopAllTethering(); mTetheringManager.stopAllTethering();
// TODO: Migrate callers to VpnManager#factoryReset.
getVpnManager().factoryReset();
} catch (RemoteException e) { } catch (RemoteException e) {
throw e.rethrowFromSystemServer(); throw e.rethrowFromSystemServer();
} }
@@ -4768,6 +4832,15 @@ public class ConnectivityManager {
return new TestNetworkManager(ITestNetworkManager.Stub.asInterface(tnBinder)); return new TestNetworkManager(ITestNetworkManager.Stub.asInterface(tnBinder));
} }
/**
* Temporary hack to shim calls from ConnectivityManager to VpnManager. We cannot store a
* private final mVpnManager because ConnectivityManager is initialized before VpnManager.
* @hide TODO: remove.
*/
public VpnManager getVpnManager() {
return mContext.getSystemService(VpnManager.class);
}
/** @hide */ /** @hide */
public ConnectivityDiagnosticsManager createDiagnosticsManager() { public ConnectivityDiagnosticsManager createDiagnosticsManager() {
return new ConnectivityDiagnosticsManager(mContext, mService); return new ConnectivityDiagnosticsManager(mContext, mService);

View File

@@ -23,7 +23,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.VpnManager; import android.net.ConnectivityManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.provider.Settings; import android.provider.Settings;
@@ -42,7 +42,7 @@ public class AlwaysOnDisconnectedDialog extends AlertActivity
private static final String TAG = "VpnDisconnected"; private static final String TAG = "VpnDisconnected";
private VpnManager mService; private ConnectivityManager mService;
private int mUserId; private int mUserId;
private String mVpnPackage; private String mVpnPackage;
@@ -51,8 +51,8 @@ public class AlwaysOnDisconnectedDialog extends AlertActivity
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mUserId = UserHandle.myUserId(); mUserId = UserHandle.myUserId();
final VpnManager vm = getSystemService(VpnManager.class); final ConnectivityManager cm = getSystemService(ConnectivityManager.class);
mVpnPackage = vm.getAlwaysOnVpnPackageForUser(mUserId); mVpnPackage = cm.getAlwaysOnVpnPackageForUser(mUserId);
if (mVpnPackage == null) { if (mVpnPackage == null) {
finish(); finish();
return; return;

View File

@@ -21,6 +21,7 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.VpnManager; import android.net.VpnManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
@@ -44,6 +45,7 @@ public class ConfirmDialog extends AlertActivity
private String mPackage; private String mPackage;
private ConnectivityManager mCm; // TODO: switch entirely to VpnManager once VPN code moves
private VpnManager mVm; private VpnManager mVm;
public ConfirmDialog() { public ConfirmDialog() {
@@ -58,6 +60,7 @@ public class ConfirmDialog extends AlertActivity
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mPackage = getCallingPackage(); mPackage = getCallingPackage();
mCm = getSystemService(ConnectivityManager.class);
mVm = getSystemService(VpnManager.class); mVm = getSystemService(VpnManager.class);
if (mVm.prepareVpn(mPackage, null, UserHandle.myUserId())) { if (mVm.prepareVpn(mPackage, null, UserHandle.myUserId())) {
@@ -69,7 +72,7 @@ public class ConfirmDialog extends AlertActivity
finish(); finish();
return; return;
} }
final String alwaysOnVpnPackage = mVm.getAlwaysOnVpnPackageForUser(UserHandle.myUserId()); final String alwaysOnVpnPackage = mCm.getAlwaysOnVpnPackageForUser(UserHandle.myUserId());
// Can't prepare new vpn app when another vpn is always-on // Can't prepare new vpn app when another vpn is always-on
if (alwaysOnVpnPackage != null && !alwaysOnVpnPackage.equals(mPackage)) { if (alwaysOnVpnPackage != null && !alwaysOnVpnPackage.equals(mPackage)) {
finish(); finish();