List apps which requested the TURN_SCREEN_ON appOp permission
Bug: 272053372 Test: manually installed an app which requests the permission and verified it shows up correctly in Settings > Apps > special app access > Turn screen on Test: atest AppFilterRegistryTest Test: atest TurnScreenOnDetailsTest Test: m -j RunSettingsRoboTests Test: adb shell am start -a android.settings.TURN_SCREEN_ON_SETTINGS Change-Id: I7c47d4b1c0b33c7ba6209bb64acf93cb07d9a717
This commit is contained in:
@@ -30,6 +30,7 @@ import com.android.settings.applications.AppStateMediaManagementAppsBridge;
|
||||
import com.android.settings.applications.AppStateNotificationBridge;
|
||||
import com.android.settings.applications.AppStateOverlayBridge;
|
||||
import com.android.settings.applications.AppStatePowerBridge;
|
||||
import com.android.settings.applications.AppStateTurnScreenOnBridge;
|
||||
import com.android.settings.applications.AppStateUsageBridge;
|
||||
import com.android.settings.applications.AppStateWriteSettingsBridge;
|
||||
import com.android.settings.nfc.AppStateNfcTagAppsBridge;
|
||||
@@ -67,6 +68,7 @@ public class AppFilterRegistry {
|
||||
FILTER_LONG_BACKGROUND_TASKS,
|
||||
FILTER_APPS_CLONE,
|
||||
FILTER_APPS_NFC_TAG,
|
||||
FILTER_APPS_TURN_SCREEN_ON,
|
||||
})
|
||||
@interface FilterType {}
|
||||
|
||||
@@ -98,8 +100,9 @@ public class AppFilterRegistry {
|
||||
public static final int FILTER_LONG_BACKGROUND_TASKS = 24;
|
||||
public static final int FILTER_APPS_CLONE = 25;
|
||||
public static final int FILTER_APPS_NFC_TAG = 26;
|
||||
private static final int NUM_FILTER_ENTRIES = 27;
|
||||
// Next id: 27. If you add an entry here, please change NUM_FILTER_ENTRIES.
|
||||
public static final int FILTER_APPS_TURN_SCREEN_ON = 27;
|
||||
private static final int NUM_FILTER_ENTRIES = 28;
|
||||
// Next id: 28. If you add an entry here, please change NUM_FILTER_ENTRIES.
|
||||
|
||||
private static AppFilterRegistry sRegistry;
|
||||
|
||||
@@ -271,6 +274,12 @@ public class AppFilterRegistry {
|
||||
AppStateNfcTagAppsBridge.FILTER_APPS_NFC_TAG,
|
||||
FILTER_APPS_NFC_TAG,
|
||||
R.string.change_nfc_tag_apps_title);
|
||||
|
||||
// Apps that are allowed to turn the screen on.
|
||||
mFilters[FILTER_APPS_TURN_SCREEN_ON] = new AppFilterItem(
|
||||
AppStateTurnScreenOnBridge.FILTER_TURN_SCREEN_ON_APPS,
|
||||
FILTER_APPS_TURN_SCREEN_ON,
|
||||
R.string.turn_screen_on_title);
|
||||
}
|
||||
|
||||
public static AppFilterRegistry getInstance() {
|
||||
@@ -313,6 +322,8 @@ public class AppFilterRegistry {
|
||||
return FILTER_APPS_CLONE;
|
||||
case ManageApplications.LIST_TYPE_NFC_TAG_APPS:
|
||||
return FILTER_APPS_NFC_TAG;
|
||||
case ManageApplications.LIST_TYPE_TURN_SCREEN_ON:
|
||||
return FILTER_APPS_TURN_SCREEN_ON;
|
||||
default:
|
||||
return FILTER_APPS_ALL;
|
||||
}
|
||||
|
@@ -110,6 +110,7 @@ import com.android.settings.Settings.MediaManagementAppsActivity;
|
||||
import com.android.settings.Settings.NotificationAppListActivity;
|
||||
import com.android.settings.Settings.NotificationReviewPermissionsActivity;
|
||||
import com.android.settings.Settings.OverlaySettingsActivity;
|
||||
import com.android.settings.Settings.TurnScreenOnSettingsActivity;
|
||||
import com.android.settings.Settings.UsageAccessSettingsActivity;
|
||||
import com.android.settings.Settings.WriteSettingsActivity;
|
||||
import com.android.settings.SettingsActivity;
|
||||
@@ -129,6 +130,7 @@ import com.android.settings.applications.AppStateNotificationBridge;
|
||||
import com.android.settings.applications.AppStateNotificationBridge.NotificationsSentState;
|
||||
import com.android.settings.applications.AppStateOverlayBridge;
|
||||
import com.android.settings.applications.AppStatePowerBridge;
|
||||
import com.android.settings.applications.AppStateTurnScreenOnBridge;
|
||||
import com.android.settings.applications.AppStateUsageBridge;
|
||||
import com.android.settings.applications.AppStateUsageBridge.UsageState;
|
||||
import com.android.settings.applications.AppStateWriteSettingsBridge;
|
||||
@@ -142,6 +144,7 @@ import com.android.settings.applications.appinfo.ExternalSourcesDetails;
|
||||
import com.android.settings.applications.appinfo.LongBackgroundTasksDetails;
|
||||
import com.android.settings.applications.appinfo.ManageExternalStorageDetails;
|
||||
import com.android.settings.applications.appinfo.MediaManagementAppsDetails;
|
||||
import com.android.settings.applications.appinfo.TurnScreenOnDetails;
|
||||
import com.android.settings.applications.appinfo.WriteSettingsDetails;
|
||||
import com.android.settings.core.InstrumentedFragment;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
@@ -268,6 +271,7 @@ public class ManageApplications extends InstrumentedFragment
|
||||
public static final int LIST_TYPE_LONG_BACKGROUND_TASKS = 16;
|
||||
public static final int LIST_TYPE_CLONED_APPS = 17;
|
||||
public static final int LIST_TYPE_NFC_TAG_APPS = 18;
|
||||
public static final int LIST_TYPE_TURN_SCREEN_ON = 19;
|
||||
|
||||
// List types that should show instant apps.
|
||||
public static final Set<Integer> LIST_TYPES_WITH_INSTANT = new ArraySet<>(Arrays.asList(
|
||||
@@ -569,6 +573,8 @@ public class ManageApplications extends InstrumentedFragment
|
||||
return SettingsEnums.CLONED_APPS;
|
||||
case LIST_TYPE_NFC_TAG_APPS:
|
||||
return SettingsEnums.CONFIG_NFC_TAG_APP_PREF;
|
||||
case LIST_TYPE_TURN_SCREEN_ON:
|
||||
return SettingsEnums.SETTINGS_TURN_SCREEN_ON_ACCESS;
|
||||
default:
|
||||
return SettingsEnums.PAGE_UNKNOWN;
|
||||
}
|
||||
@@ -739,6 +745,9 @@ public class ManageApplications extends InstrumentedFragment
|
||||
startAppInfoFragment(ChangeNfcTagAppsStateDetails.class,
|
||||
R.string.change_nfc_tag_apps_title);
|
||||
break;
|
||||
case LIST_TYPE_TURN_SCREEN_ON:
|
||||
startAppInfoFragment(TurnScreenOnDetails.class, R.string.turn_screen_on_title);
|
||||
break;
|
||||
// TODO: Figure out if there is a way where we can spin up the profile's settings
|
||||
// process ahead of time, to avoid a long load of data when user clicks on a managed
|
||||
// app. Maybe when they load the list of apps that contains managed profile apps.
|
||||
@@ -1066,6 +1075,8 @@ public class ManageApplications extends InstrumentedFragment
|
||||
screenTitle = R.string.cloned_apps_dashboard_title;
|
||||
} else if (className.equals(ChangeNfcTagAppsActivity.class.getName())) {
|
||||
screenTitle = R.string.change_nfc_tag_apps_title;
|
||||
} else if (className.equals(TurnScreenOnSettingsActivity.class.getName())) {
|
||||
screenTitle = R.string.turn_screen_on_title;
|
||||
} else {
|
||||
if (screenTitle == -1) {
|
||||
screenTitle = R.string.all_apps;
|
||||
@@ -1276,6 +1287,8 @@ public class ManageApplications extends InstrumentedFragment
|
||||
mExtraInfoBridge = new AppStateClonedAppsBridge(mContext, mState, this);
|
||||
} else if (mManageApplications.mListType == LIST_TYPE_NFC_TAG_APPS) {
|
||||
mExtraInfoBridge = new AppStateNfcTagAppsBridge(mContext, mState, this);
|
||||
} else if (mManageApplications.mListType == LIST_TYPE_TURN_SCREEN_ON) {
|
||||
mExtraInfoBridge = new AppStateTurnScreenOnBridge(mContext, mState, this);
|
||||
} else {
|
||||
mExtraInfoBridge = null;
|
||||
}
|
||||
@@ -1830,6 +1843,9 @@ public class ManageApplications extends InstrumentedFragment
|
||||
holder.setSummary(
|
||||
ChangeNfcTagAppsStateDetails.getSummary(mContext, entry));
|
||||
break;
|
||||
case LIST_TYPE_TURN_SCREEN_ON:
|
||||
holder.setSummary(TurnScreenOnDetails.getSummary(mContext, entry));
|
||||
break;
|
||||
default:
|
||||
holder.updateSizeText(entry, mManageApplications.mInvalidSizeStr, mWhichSize);
|
||||
break;
|
||||
|
@@ -33,6 +33,7 @@ import com.android.settings.Settings.NotificationAppListActivity
|
||||
import com.android.settings.Settings.NotificationReviewPermissionsActivity
|
||||
import com.android.settings.Settings.OverlaySettingsActivity
|
||||
import com.android.settings.Settings.StorageUseActivity
|
||||
import com.android.settings.Settings.TurnScreenOnSettingsActivity
|
||||
import com.android.settings.Settings.UsageAccessSettingsActivity
|
||||
import com.android.settings.Settings.WriteSettingsActivity
|
||||
import com.android.settings.applications.appinfo.AppLocaleDetails
|
||||
@@ -51,6 +52,7 @@ import com.android.settings.applications.manageapplications.ManageApplications.L
|
||||
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_NOTIFICATION
|
||||
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_OVERLAY
|
||||
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_STORAGE
|
||||
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_TURN_SCREEN_ON
|
||||
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_USAGE_ACCESS
|
||||
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_WIFI_ACCESS
|
||||
import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_WRITE_SETTINGS
|
||||
@@ -88,6 +90,7 @@ object ManageApplicationsUtil {
|
||||
LongBackgroundTasksActivity::class to LIST_TYPE_LONG_BACKGROUND_TASKS,
|
||||
ClonedAppsListActivity::class to LIST_TYPE_CLONED_APPS,
|
||||
ChangeNfcTagAppsActivity::class to LIST_TYPE_NFC_TAG_APPS,
|
||||
TurnScreenOnSettingsActivity::class to LIST_TYPE_TURN_SCREEN_ON,
|
||||
)
|
||||
|
||||
@JvmField
|
||||
|
Reference in New Issue
Block a user