diff options
author | Chalard Jean <jchalard@google.com> | 2019-05-27 11:10:51 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2019-05-27 11:10:51 -0700 |
commit | f592232744e69741a43065bad0401d50dea263ea (patch) | |
tree | 7033d9d4857abe635dab069746430247fd940dbc /packages/VpnDialogs | |
parent | ebcee43b8618d7a8c57654cb0674205b121d0251 (diff) | |
parent | f03e28b18b9fea5cd0c1bd2571a4ca9f152e1029 (diff) |
Merge "Protect VPN dialogs against overlay." into qt-dev am: e02360b53a am: aa57c60fca
am: f03e28b18b
Change-Id: If25794f4ac543deb68d6087854ae040b8205db9b
Diffstat (limited to 'packages/VpnDialogs')
3 files changed, 11 insertions, 3 deletions
diff --git a/packages/VpnDialogs/AndroidManifest.xml b/packages/VpnDialogs/AndroidManifest.xml index 9f6ba03a10d9..469bdc69c78a 100644 --- a/packages/VpnDialogs/AndroidManifest.xml +++ b/packages/VpnDialogs/AndroidManifest.xml @@ -22,6 +22,7 @@ <uses-permission android:name="android.permission.CONTROL_VPN" /> <uses-permission android:name="android.permission.CONTROL_ALWAYS_ON_VPN" /> <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" /> + <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/> <application android:label="VpnDialogs" android:allowBackup="false"> diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java index 846fcf867e32..4d95ef13a2a8 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/AlwaysOnDisconnectedDialog.java @@ -16,6 +16,10 @@ package com.android.vpndialogs; +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; @@ -31,7 +35,6 @@ import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.util.Log; import android.view.View; -import android.view.WindowManager; import android.widget.TextView; import com.android.internal.app.AlertActivity; @@ -74,8 +77,9 @@ public class AlwaysOnDisconnectedDialog extends AlertActivity setupAlert(); getWindow().setCloseOnTouchOutside(false); - getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); + getWindow().setType(TYPE_SYSTEM_ALERT); + getWindow().addFlags(FLAG_ALT_FOCUSABLE_IM); + getWindow().addPrivateFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); } @Override diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java index 989470fdb2e9..48adb9ba3f63 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java @@ -16,6 +16,8 @@ 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; @@ -79,6 +81,7 @@ public class ConfirmDialog extends AlertActivity setupAlert(); getWindow().setCloseOnTouchOutside(false); + getWindow().addPrivateFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); Button button = mAlert.getButton(DialogInterface.BUTTON_POSITIVE); button.setFilterTouchesWhenObscured(true); } |