DO NOT MERGE Back-port ag/2491664

Bug: 62196835
Test: Verify overlays disappear on a11y capabilities
dialog.

Change-Id: Icbd00799e4b12cde9d17d3d0abbd38d9643b26c4
This commit is contained in:
Phil Weaver
2017-07-11 11:34:40 -07:00
parent ea55e6331e
commit 9a14484b38
2 changed files with 12 additions and 1 deletions

View File

@@ -67,6 +67,7 @@
<uses-permission android:name="android.permission.ACCESS_NOTIFICATIONS" />
<uses-permission android:name="android.permission.REBOOT" />
<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
<uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" />
<application android:label="@string/settings_label"
android:icon="@mipmap/ic_launcher_settings"

View File

@@ -31,6 +31,8 @@ import android.provider.Settings;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -44,6 +46,8 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
public class ToggleAccessibilityServicePreferenceFragment
extends ToggleFeaturePreferenceFragment implements DialogInterface.OnClickListener {
@@ -159,7 +163,7 @@ public class ToggleAccessibilityServicePreferenceFragment
if (info == null) {
return null;
}
return new AlertDialog.Builder(getActivity())
AlertDialog ad = new AlertDialog.Builder(getActivity())
.setTitle(getString(R.string.enable_service_title,
info.getResolveInfo().loadLabel(getPackageManager())))
.setIconAttribute(android.R.attr.alertDialogIcon)
@@ -168,6 +172,12 @@ public class ToggleAccessibilityServicePreferenceFragment
.setPositiveButton(android.R.string.ok, this)
.setNegativeButton(android.R.string.cancel, this)
.create();
Window window = ad.getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.privateFlags |= PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
window.setAttributes(params);
return ad;
}
case DIALOG_ID_DISABLE_WARNING: {
mShownDialogId = DIALOG_ID_DISABLE_WARNING;