Disable the control of draw over permission for SystemUI

Bug: 31077838
Test: make SettingsTests && adb install -r \
${OUT}/data/app/SettingsTests/SettingsTests.apk \
&& adb shell am instrument -w  \
'com.android.settings.tests/android.support.test.runner.AndroidJUnitRunner'

Change-Id: I760590f5558f2d686ffbfe78234a8b08e13883fd
This commit is contained in:
jackqdyulei
2016-09-19 10:00:49 -07:00
parent ad7023a406
commit 0162daa651
3 changed files with 74 additions and 1 deletions

View File

@@ -23,6 +23,9 @@ import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.applications.ApplicationsState.AppFilter;
import java.util.ArrayList;
import java.util.List;
/*
* Connects info of apps that draw overlay to the ApplicationsState. Wraps around the generic
* AppStateAppOpsBridge class to tailor to the semantics of SYSTEM_ALERT_WINDOW. Also provides app
@@ -62,6 +65,13 @@ public class AppStateOverlayBridge extends AppStateAppOpsBridge {
}
public static class OverlayState extends AppStateAppOpsBridge.PermissionState {
public final boolean controlEnabled;
private static final List<String> DISABLE_PACKAGE_LIST = new ArrayList<>();
static {
DISABLE_PACKAGE_LIST.add("com.android.systemui");
}
public OverlayState(PermissionState permissionState) {
super(permissionState.packageName, permissionState.userHandle);
@@ -69,6 +79,7 @@ public class AppStateOverlayBridge extends AppStateAppOpsBridge {
this.appOpMode = permissionState.appOpMode;
this.permissionDeclared = permissionState.permissionDeclared;
this.staticPermissionGranted = permissionState.staticPermissionGranted;
controlEnabled = !DISABLE_PACKAGE_LIST.contains(permissionState.packageName);
}
}