summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Victor Chang <vichang@google.com> 2016-05-31 09:51:44 +0000
committer android-build-merger <android-build-merger@google.com> 2016-05-31 09:51:44 +0000
commitd6d2497ebe90e74f0ee7ddfdd2a00f4cb2f25dce (patch)
tree3eec9483a3a6e1c4be9d32c99adb941d6ac860c7
parent76366146c6c2732a4c5790c36a3a08139b2ada2c (diff)
parent98801e9f2bec03faf9be0c8bb961150004d309ff (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.xml1
-rw-r--r--packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java16
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());