OSDN Git Service

Back-port ag/2491664
authorPhil Weaver <pweaver@google.com>
Wed, 12 Jul 2017 21:07:07 +0000 (14:07 -0700)
committerandroid-build-team Robot <android-build-team-robot@google.com>
Thu, 27 Jul 2017 00:27:30 +0000 (00:27 +0000)
Bug: 62196835
Test: Verify overlays disappear on a11y capabilities
dialog.

Change-Id: Ic675012dd9faa8e53d1d4b126b3ba68fecdab992
(cherry picked from commit e76e053595660ed2a75adb33ee124a7bfbed164b)

AndroidManifest.xml
src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java

index 2ec976d..c155cf7 100644 (file)
@@ -86,6 +86,7 @@
     <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS"/>
     <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS"/>
     <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
+    <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" />
 
     <application android:label="@string/settings_label"
             android:icon="@mipmap/ic_launcher_settings"
index 196a4ab..1f69768 100644 (file)
@@ -39,6 +39,8 @@ import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.MotionEvent;
 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;
@@ -55,6 +57,8 @@ import com.android.settingslib.accessibility.AccessibilityUtils;
 
 import java.util.List;
 
+import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
 public class ToggleAccessibilityServicePreferenceFragment
         extends ToggleFeaturePreferenceFragment implements DialogInterface.OnClickListener {
 
@@ -178,6 +182,10 @@ public class ToggleAccessibilityServicePreferenceFragment
 
                 ad.create();
                 ad.getButton(AlertDialog.BUTTON_POSITIVE).setOnTouchListener(filterTouchListener);
+                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: {