diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-21 21:02:12 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-21 21:02:12 +0000 |
commit | 6436a0c1661cc766629e796f24184e4811233088 (patch) | |
tree | c28aa5f3e34d9a2317bf825fa6a46a8965ceb10a | |
parent | 0c4154d40ce29adadd82b1d242ec3c66a12bffaa (diff) | |
parent | c7c38f8f42a4af94c87add0f31af286d67285dad (diff) | |
download | packages_apps_Settings-android-8.0.0_r31.tar.gz packages_apps_Settings-android-8.0.0_r31.tar.bz2 packages_apps_Settings-android-8.0.0_r31.zip |
Merge cherrypicks of [2938809, 2937688, 2938829, 2938790, 2938791, 2938792, 2938793, 2938849, 2938850, 2938737, 2938738, 2938739, 2938740, 2938741, 2938204, 2938205, 2938206, 2938207, 2938208, 2938830, 2938831, 2938832, 2938794, 2937966, 2938889, 2938810, 2938833] into oc-r5-releaseandroid-8.0.0_r31
Change-Id: I4cfd65c9cbae505992105574469ede9b5ae6180f
5 files changed, 9 insertions, 44 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c596152452..25216db214 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -82,6 +82,7 @@ <uses-permission android:name="android.permission.MANAGE_NOTIFICATIONS"/> <uses-permission android:name="android.permission.DELETE_PACKAGES"/> <uses-permission android:name="android.permission.MANAGE_APP_OPS_RESTRICTIONS"/> + <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/> <application android:label="@string/settings_label" android:icon="@drawable/ic_launcher_settings" diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 8a77fea726..2068909111 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -1297,22 +1297,6 @@ public final class Utils extends com.android.settingslib.Utils { return info.enabled ? R.string.installed : R.string.disabled; } - /** - * Control if other apps can display overlays. By default this is allowed. Be sure to - * re-enable overlays, as the effect is system-wide. - */ - public static void setOverlayAllowed(Context context, IBinder token, boolean allowed) { - AppOpsManager appOpsManager = context.getSystemService(AppOpsManager.class); - if (appOpsManager != null) { - appOpsManager.setUserRestriction(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, - !allowed, token); - appOpsManager.setUserRestriction(AppOpsManager.OP_TOAST_WINDOW, - !allowed, token); - } - } - - - private static boolean isVolumeValid(VolumeInfo volume) { return (volume != null) && (volume.getType() == VolumeInfo.TYPE_PRIVATE) && volume.isMountedReadable(); diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java index e0d2c69c97..4ad2ed51ae 100644 --- a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java +++ b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java @@ -27,6 +27,8 @@ import android.text.BidiFormatter; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; +import android.view.Window; +import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -37,6 +39,8 @@ import com.android.settings.R; import java.util.List; import java.util.Locale; +import static android.view.WindowManager.LayoutParams.PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; + /** * Utility class for creating the dialog that asks users for explicit permission to grant * all of the requested capabilities to an accessibility service before the service is enabled @@ -65,6 +69,10 @@ public class AccessibilityServiceWarning { return false; }; + Window window = ad.getWindow(); + WindowManager.LayoutParams params = window.getAttributes(); + params.privateFlags |= PRIVATE_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; + window.setAttributes(params); ad.create(); ad.getButton(AlertDialog.BUTTON_POSITIVE).setOnTouchListener(filterTouchListener); ad.setCanceledOnTouchOutside(true); diff --git a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java index 38e6b0f070..07f4c37cab 100644 --- a/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java +++ b/src/com/android/settings/accessibility/ShortcutServicePickerFragment.java @@ -17,8 +17,6 @@ package com.android.settings.accessibility; import static android.content.DialogInterface.BUTTON_POSITIVE; -import static com.android.settings.Utils.setOverlayAllowed; - import android.accessibilityservice.AccessibilityServiceInfo; import android.app.Activity; import android.app.Dialog; @@ -148,22 +146,6 @@ public class ShortcutServicePickerFragment extends DefaultAppPickerFragment { } @Override - public void onResume() { - super.onResume(); - if (mToken != null) { - setOverlayAllowed(getActivity(), mToken, false); - } - } - - @Override - public void onPause() { - super.onPause(); - if (mToken != null) { - setOverlayAllowed(getActivity(), mToken, true); - } - } - - @Override public void onClick(DialogInterface dialog, int which) { final Fragment fragment = getTargetFragment(); if ((which == BUTTON_POSITIVE) && (fragment instanceof DefaultAppPickerFragment)) { diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index da4bdcf6fb..3b2e2f73b1 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -16,8 +16,6 @@ package com.android.settings.accessibility; -import static com.android.settings.Utils.setOverlayAllowed; - import android.accessibilityservice.AccessibilityServiceInfo; import android.app.Activity; import android.app.AlertDialog; @@ -73,8 +71,6 @@ public class ToggleAccessibilityServicePreferenceFragment private int mShownDialogId; - private final IBinder mToken = new Binder(); - @Override public int getMetricsCategory() { return MetricsEvent.ACCESSIBILITY_SERVICE; @@ -105,18 +101,12 @@ public class ToggleAccessibilityServicePreferenceFragment public void onResume() { mSettingsContentObserver.register(getContentResolver()); updateSwitchBarToggleSwitch(); - if (mToken != null) { - setOverlayAllowed(getActivity(), mToken, false); - } super.onResume(); } @Override public void onPause() { mSettingsContentObserver.unregister(getContentResolver()); - if (mToken != null) { - setOverlayAllowed(getActivity(), mToken, true); - } super.onPause(); } |