diff options
Diffstat (limited to 'src/com/android')
7 files changed, 17 insertions, 46 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index fc482f3e..415d99bc 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -269,11 +269,6 @@ public class GrantPermissionsActivity extends OverlayTouchActivity @Override public void onPermissionGrantResult(String name, boolean granted, boolean doNotAskAgain) { - if (isObscuredTouch()) { - showOverlayDialog(); - finish(); - return; - } GroupState groupState = mRequestGrantPermissionGroups.get(name); if (groupState.mGroup != null) { if (granted) { diff --git a/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java b/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java index e4cbff3a..b23ab2e2 100644 --- a/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java +++ b/src/com/android/packageinstaller/permission/ui/OverlayTouchActivity.java @@ -16,24 +16,30 @@ package com.android.packageinstaller.permission.ui; import android.app.Activity; -import android.content.Intent; -import android.view.MotionEvent; +import android.app.AppOpsManager; +import android.os.Binder; +import android.os.IBinder; public class OverlayTouchActivity extends Activity { + private final IBinder mToken = new Binder(); - private boolean mObscuredTouch; - - public boolean isObscuredTouch() { - return mObscuredTouch; + @Override + protected void onResume() { + super.onResume(); + setOverlayAllowed(false); } @Override - public boolean dispatchTouchEvent(MotionEvent event) { - mObscuredTouch = (event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) != 0; - return super.dispatchTouchEvent(event); + protected void onPause() { + super.onPause(); + setOverlayAllowed(true); } - public void showOverlayDialog() { - startActivity(new Intent(this, OverlayWarningDialog.class)); + private void setOverlayAllowed(boolean allowed) { + AppOpsManager appOpsManager = getSystemService(AppOpsManager.class); + if (appOpsManager != null) { + appOpsManager.setUserRestriction(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, + !allowed, mToken); + } } } diff --git a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java index 71e8d04e..d5e649ee 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/AppPermissionsFragment.java @@ -283,12 +283,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader return false; } - OverlayTouchActivity activity = (OverlayTouchActivity) getActivity(); - if (activity.isObscuredTouch()) { - activity.showOverlayDialog(); - return false; - } - addToggledGroup(group); if (LocationUtils.isLocationGroupAndProvider(group.getName(), group.getApp().packageName)) { diff --git a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java index e1b2f5f1..ccf864fb 100644 --- a/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/handheld/PermissionAppsFragment.java @@ -335,12 +335,6 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple return false; } - OverlayTouchActivity activity = (OverlayTouchActivity) getActivity(); - if (activity.isObscuredTouch()) { - activity.showOverlayDialog(); - return false; - } - addToggledGroup(app.getPackageName(), app.getPermissionGroup()); if (LocationUtils.isLocationGroupAndProvider(mPermissionApps.getGroupName(), diff --git a/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java index 91116130..5bb0d01c 100644 --- a/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java @@ -279,12 +279,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader return false; } - OverlayTouchActivity activity = (OverlayTouchActivity) getActivity(); - if (activity.isObscuredTouch()) { - activity.showOverlayDialog(); - return false; - } - addToggledGroup(group); if (LocationUtils.isLocationGroupAndProvider(group.getName(), group.getApp().packageName)) { diff --git a/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java index e2f48182..1f4228bb 100644 --- a/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/television/PermissionAppsFragment.java @@ -323,12 +323,6 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple return false; } - OverlayTouchActivity activity = (OverlayTouchActivity) getActivity(); - if (activity.isObscuredTouch()) { - activity.showOverlayDialog(); - return false; - } - if (LocationUtils.isLocationGroupAndProvider(mPermissionApps.getGroupName(), app.getPackageName())) { LocationUtils.showLocationDialog(getContext(), app.getLabel()); diff --git a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java index aba97fc8..6ea34628 100644 --- a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java +++ b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java @@ -197,12 +197,6 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment { return; } - OverlayTouchActivity activity = (OverlayTouchActivity) getActivity(); - if (activity.isObscuredTouch()) { - activity.showOverlayDialog(); - return; - } - addToggledGroup(group); if (LocationUtils.isLocationGroupAndProvider(group.getName(), group.getApp().packageName)) { |