Loading AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,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" Loading src/com/android/settings/Utils.java +0 −14 Original line number Diff line number Diff line Loading @@ -1285,20 +1285,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(); Loading src/com/android/settings/accessibility/AccessibilityServiceWarning.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -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); Loading src/com/android/settings/accessibility/ShortcutServicePickerFragment.java +0 −17 Original line number Diff line number Diff line Loading @@ -16,7 +16,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; Loading Loading @@ -146,22 +145,6 @@ public class ShortcutServicePickerFragment extends DefaultAppPickerFragment { return AccessibilityServiceWarning.createCapabilitiesDialog(getActivity(), info, this); } @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(); Loading src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +0 −10 Original line number Diff line number Diff line Loading @@ -48,8 +48,6 @@ import com.android.settingslib.accessibility.AccessibilityUtils; import java.util.List; import static com.android.settings.Utils.setOverlayAllowed; public class ToggleAccessibilityServicePreferenceFragment extends ToggleFeaturePreferenceFragment implements DialogInterface.OnClickListener { Loading @@ -72,8 +70,6 @@ public class ToggleAccessibilityServicePreferenceFragment private int mShownDialogId; private final IBinder mToken = new Binder(); @Override public int getMetricsCategory() { return MetricsEvent.ACCESSIBILITY_SERVICE; Loading @@ -96,18 +92,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(); } Loading Loading
AndroidManifest.xml +1 −0 Original line number Diff line number Diff line Loading @@ -83,6 +83,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" Loading
src/com/android/settings/Utils.java +0 −14 Original line number Diff line number Diff line Loading @@ -1285,20 +1285,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(); Loading
src/com/android/settings/accessibility/AccessibilityServiceWarning.java +8 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading Loading @@ -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); Loading
src/com/android/settings/accessibility/ShortcutServicePickerFragment.java +0 −17 Original line number Diff line number Diff line Loading @@ -16,7 +16,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; Loading Loading @@ -146,22 +145,6 @@ public class ShortcutServicePickerFragment extends DefaultAppPickerFragment { return AccessibilityServiceWarning.createCapabilitiesDialog(getActivity(), info, this); } @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(); Loading
src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +0 −10 Original line number Diff line number Diff line Loading @@ -48,8 +48,6 @@ import com.android.settingslib.accessibility.AccessibilityUtils; import java.util.List; import static com.android.settings.Utils.setOverlayAllowed; public class ToggleAccessibilityServicePreferenceFragment extends ToggleFeaturePreferenceFragment implements DialogInterface.OnClickListener { Loading @@ -72,8 +70,6 @@ public class ToggleAccessibilityServicePreferenceFragment private int mShownDialogId; private final IBinder mToken = new Binder(); @Override public int getMetricsCategory() { return MetricsEvent.ACCESSIBILITY_SERVICE; Loading @@ -96,18 +92,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(); } Loading