diff options
| author | 2016-05-31 09:51:44 +0000 | |
|---|---|---|
| committer | 2016-05-31 09:51:44 +0000 | |
| commit | d6d2497ebe90e74f0ee7ddfdd2a00f4cb2f25dce (patch) | |
| tree | 3eec9483a3a6e1c4be9d32c99adb941d6ac860c7 | |
| parent | 76366146c6c2732a4c5790c36a3a08139b2ada2c (diff) | |
| parent | 98801e9f2bec03faf9be0c8bb961150004d309ff (diff) | |
Merge "Finish ConfirmDialog when another vpn app is always-on" into nyc-dev
am: 98801e9f2b
* commit '98801e9f2bec03faf9be0c8bb961150004d309ff':
Finish ConfirmDialog when another vpn app is always-on
Change-Id: If8de5a6c200953599bc3965da57b0de2b1dfb76e
| -rw-r--r-- | packages/VpnDialogs/AndroidManifest.xml | 1 | ||||
| -rw-r--r-- | packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java | 16 |
2 files changed, 17 insertions, 0 deletions
diff --git a/packages/VpnDialogs/AndroidManifest.xml b/packages/VpnDialogs/AndroidManifest.xml index 08257b63a7ff..a3d27ce8a3da 100644 --- a/packages/VpnDialogs/AndroidManifest.xml +++ b/packages/VpnDialogs/AndroidManifest.xml @@ -20,6 +20,7 @@ package="com.android.vpndialogs"> <uses-permission android:name="android.permission.CONTROL_VPN" /> + <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" /> <application android:label="VpnDialogs" android:allowBackup="false" > diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java index badc31e6df92..72ce9c4efdc0 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java @@ -60,6 +60,12 @@ public class ConfirmDialog extends AlertActivity finish(); return; } + final String alwaysOnVpnPackage = getAlwaysOnVpnPackage(); + // Can't prepare new vpn app when another vpn is always-on + if (alwaysOnVpnPackage != null && !alwaysOnVpnPackage.equals(mPackage)) { + finish(); + return; + } View view = View.inflate(this, R.layout.confirm, null); ((TextView) view.findViewById(R.id.warning)).setText( Html.fromHtml(getString(R.string.warning, getVpnLabel()), @@ -76,6 +82,16 @@ 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()); |