diff options
author | Lorenzo Colitti <lorenzo@google.com> | 2021-02-04 17:43:29 +0900 |
---|---|---|
committer | Lorenzo Colitti <lorenzo@google.com> | 2021-02-08 19:25:40 +0900 |
commit | a5e942370fe014c4b167469fc17b9eb5a953293d (patch) | |
tree | f6a04ae93a7c536aa3265ebf526e66043bc56de9 /packages/VpnDialogs/src | |
parent | 9ce4107f11009a8fa3078a9ea5b026f321b41ee3 (diff) |
Switch VpnDialogs from IConnectivityManager to IVpnManager.
The VPN code is moving out of ConnectivityService to a new
VpnManagerService. Update VpnDialogs to call into the new
service.
Bug: 173331190
Test: builds, boots
Test: atest HostsideVpnTests
Change-Id: I173ed0c3e39afb91c0dde1426dc492e9225afb00
Diffstat (limited to 'packages/VpnDialogs/src')
3 files changed, 19 insertions, 56 deletions
diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java index 4d95ef13a2a8..6dcad255eee4 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java @@ -20,14 +20,11 @@ import static android.view.WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; -import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; -import android.net.IConnectivityManager; +import android.net.ConnectivityManager; import android.os.Bundle; -import android.os.RemoteException; -import android.os.ServiceManager; import android.os.UserHandle; import android.provider.Settings; import android.text.SpannableStringBuilder; @@ -45,7 +42,7 @@ public class AlwaysOnDisconnectedDialog extends AlertActivity private static final String TAG = "VpnDisconnected"; - private IConnectivityManager mService; + private ConnectivityManager mService; private int mUserId; private String mVpnPackage; @@ -53,10 +50,9 @@ public class AlwaysOnDisconnectedDialog extends AlertActivity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mService = IConnectivityManager.Stub.asInterface( - ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); mUserId = UserHandle.myUserId(); - mVpnPackage = getAlwaysOnVpnPackage(); + final ConnectivityManager cm = getSystemService(ConnectivityManager.class); + mVpnPackage = cm.getAlwaysOnVpnPackageForUser(mUserId); if (mVpnPackage == null) { finish(); return; @@ -102,15 +98,6 @@ public class AlwaysOnDisconnectedDialog extends AlertActivity } } - private String getAlwaysOnVpnPackage() { - try { - return mService.getAlwaysOnVpnPackage(mUserId); - } catch (RemoteException e) { - Log.e(TAG, "Can't getAlwaysOnVpnPackage()", e); - return null; - } - } - private CharSequence getVpnLabel() { try { return VpnConfig.getVpnLabel(this, mVpnPackage); diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java index e66f2cc17a7f..aab01d03b96d 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java @@ -18,15 +18,12 @@ package com.android.vpndialogs; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; -import android.content.Context; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; -import android.net.IConnectivityManager; +import android.net.ConnectivityManager; 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.Html; @@ -48,7 +45,8 @@ public class ConfirmDialog extends AlertActivity private String mPackage; - private IConnectivityManager mService; + private ConnectivityManager mCm; // TODO: switch entirely to VpnManager once VPN code moves + private VpnManager mVm; public ConfirmDialog() { this(VpnManager.TYPE_VPN_SERVICE); @@ -62,10 +60,10 @@ public class ConfirmDialog extends AlertActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPackage = getCallingPackage(); - mService = IConnectivityManager.Stub.asInterface( - ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); + mCm = getSystemService(ConnectivityManager.class); + mVm = getSystemService(VpnManager.class); - if (prepareVpn()) { + if (mVm.prepareVpn(mPackage, null, UserHandle.myUserId())) { setResult(RESULT_OK); finish(); return; @@ -74,7 +72,7 @@ public class ConfirmDialog extends AlertActivity finish(); return; } - final String alwaysOnVpnPackage = getAlwaysOnVpnPackage(); + final String alwaysOnVpnPackage = mCm.getAlwaysOnVpnPackageForUser(UserHandle.myUserId()); // Can't prepare new vpn app when another vpn is always-on if (alwaysOnVpnPackage != null && !alwaysOnVpnPackage.equals(mPackage)) { finish(); @@ -97,24 +95,6 @@ public class ConfirmDialog extends AlertActivity button.setFilterTouchesWhenObscured(true); } - private String getAlwaysOnVpnPackage() { - try { - return mService.getAlwaysOnVpnPackage(UserHandle.myUserId()); - } catch (RemoteException e) { - Log.e(TAG, "fail to call getAlwaysOnVpnPackage", e); - // Fallback to null to show the dialog - return null; - } - } - - private boolean prepareVpn() { - try { - return mService.prepareVpn(mPackage, null, UserHandle.myUserId()); - } catch (RemoteException e) { - throw new IllegalStateException(e); - } - } - private CharSequence getVpnLabel() { try { return VpnConfig.getVpnLabel(this, mPackage); @@ -146,10 +126,10 @@ public class ConfirmDialog extends AlertActivity @Override public void onClick(DialogInterface dialog, int which) { try { - if (mService.prepareVpn(null, mPackage, UserHandle.myUserId())) { + if (mVm.prepareVpn(null, mPackage, UserHandle.myUserId())) { // Authorize this app to initiate VPN connections in the future without user // intervention. - mService.setVpnPackageAuthorization(mPackage, UserHandle.myUserId(), mVpnType); + mVm.setVpnPackageAuthorization(mPackage, UserHandle.myUserId(), mVpnType); setResult(RESULT_OK); } } catch (Exception e) { diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java index 01dca7e30e64..1fc74f704f62 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java @@ -16,13 +16,11 @@ package com.android.vpndialogs; -import android.content.Context; import android.content.DialogInterface; -import android.net.IConnectivityManager; +import android.net.VpnManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; -import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; import android.util.Log; @@ -41,7 +39,7 @@ public class ManageDialog extends AlertActivity implements private VpnConfig mConfig; - private IConnectivityManager mService; + private VpnManager mVm; private TextView mDuration; private TextView mDataTransmitted; @@ -55,11 +53,9 @@ public class ManageDialog extends AlertActivity implements super.onCreate(savedInstanceState); try { + mVm = getSystemService(VpnManager.class); - mService = IConnectivityManager.Stub.asInterface( - ServiceManager.getService(Context.CONNECTIVITY_SERVICE)); - - mConfig = mService.getVpnConfig(UserHandle.myUserId()); + mConfig = mVm.getVpnConfig(UserHandle.myUserId()); // mConfig can be null if we are a restricted user, in that case don't show this dialog if (mConfig == null) { @@ -118,9 +114,9 @@ public class ManageDialog extends AlertActivity implements } else if (which == DialogInterface.BUTTON_NEUTRAL) { final int myUserId = UserHandle.myUserId(); if (mConfig.legacy) { - mService.prepareVpn(VpnConfig.LEGACY_VPN, VpnConfig.LEGACY_VPN, myUserId); + mVm.prepareVpn(VpnConfig.LEGACY_VPN, VpnConfig.LEGACY_VPN, myUserId); } else { - mService.prepareVpn(mConfig.user, VpnConfig.LEGACY_VPN, myUserId); + mVm.prepareVpn(mConfig.user, VpnConfig.LEGACY_VPN, myUserId); } } } catch (Exception e) { |