Loading apex/jobscheduler/service/java/com/android/server/AppStateTrackerImpl.java +10 −71 Original line number Original line Diff line number Diff line Loading @@ -157,18 +157,12 @@ public class AppStateTrackerImpl implements AppStateTracker { @GuardedBy("mLock") @GuardedBy("mLock") boolean mForceAllAppStandbyForSmallBattery; boolean mForceAllAppStandbyForSmallBattery; /** * True if the forced app standby feature is enabled in settings */ @GuardedBy("mLock") boolean mForcedAppStandbyEnabled; /** /** * A lock-free set of (uid, packageName) pairs in background restricted mode. * A lock-free set of (uid, packageName) pairs in background restricted mode. * * * <p> * <p> * It's bascially shadowing the {@link #mRunAnyRestrictedPackages} together with * It's basically shadowing the {@link #mRunAnyRestrictedPackages}, any mutations on it would * the {@link #mForcedAppStandbyEnabled} - mutations on them would result in copy-on-write. * result in copy-on-write. * </p> * </p> */ */ volatile Set<Pair<Integer, String>> mBackgroundRestrictedUidPackages = Collections.emptySet(); volatile Set<Pair<Integer, String>> mBackgroundRestrictedUidPackages = Collections.emptySet(); Loading Loading @@ -200,10 +194,9 @@ public class AppStateTrackerImpl implements AppStateTracker { int TEMP_EXEMPTION_LIST_CHANGED = 5; int TEMP_EXEMPTION_LIST_CHANGED = 5; int EXEMPTED_BUCKET_CHANGED = 6; int EXEMPTED_BUCKET_CHANGED = 6; int FORCE_ALL_CHANGED = 7; int FORCE_ALL_CHANGED = 7; int FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED = 8; int IS_UID_ACTIVE_CACHED = 9; int IS_UID_ACTIVE_CACHED = 8; int IS_UID_ACTIVE_RAW = 10; int IS_UID_ACTIVE_RAW = 9; } } private final StatLogger mStatLogger = new StatLogger(new String[] { private final StatLogger mStatLogger = new StatLogger(new String[] { Loading @@ -215,7 +208,6 @@ public class AppStateTrackerImpl implements AppStateTracker { "TEMP_EXEMPTION_LIST_CHANGED", "TEMP_EXEMPTION_LIST_CHANGED", "EXEMPTED_BUCKET_CHANGED", "EXEMPTED_BUCKET_CHANGED", "FORCE_ALL_CHANGED", "FORCE_ALL_CHANGED", "FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED", "IS_UID_ACTIVE_CACHED", "IS_UID_ACTIVE_CACHED", "IS_UID_ACTIVE_RAW", "IS_UID_ACTIVE_RAW", Loading @@ -228,18 +220,10 @@ public class AppStateTrackerImpl implements AppStateTracker { } } void register() { void register() { mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.FORCED_APP_STANDBY_ENABLED), false, this); mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor( mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor( Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED), false, this); Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED), false, this); } } boolean isForcedAppStandbyEnabled() { return injectGetGlobalSettingInt(Settings.Global.FORCED_APP_STANDBY_ENABLED, 1) == 1; } boolean isForcedAppStandbyForSmallBatteryEnabled() { boolean isForcedAppStandbyForSmallBatteryEnabled() { return injectGetGlobalSettingInt( return injectGetGlobalSettingInt( Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, 0) == 1; Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, 0) == 1; Loading @@ -247,21 +231,7 @@ public class AppStateTrackerImpl implements AppStateTracker { @Override @Override public void onChange(boolean selfChange, Uri uri) { public void onChange(boolean selfChange, Uri uri) { if (Settings.Global.getUriFor(Settings.Global.FORCED_APP_STANDBY_ENABLED).equals(uri)) { if (Settings.Global.getUriFor( final boolean enabled = isForcedAppStandbyEnabled(); synchronized (mLock) { if (mForcedAppStandbyEnabled == enabled) { return; } mForcedAppStandbyEnabled = enabled; updateBackgroundRestrictedUidPackagesLocked(); if (DEBUG) { Slog.d(TAG, "Forced app standby feature flag changed: " + mForcedAppStandbyEnabled); } } mHandler.notifyForcedAppStandbyFeatureFlagChanged(); } else if (Settings.Global.getUriFor( Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED).equals(uri)) { Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED).equals(uri)) { final boolean enabled = isForcedAppStandbyForSmallBatteryEnabled(); final boolean enabled = isForcedAppStandbyForSmallBatteryEnabled(); synchronized (mLock) { synchronized (mLock) { Loading Loading @@ -515,7 +485,6 @@ public class AppStateTrackerImpl implements AppStateTracker { mFlagsObserver = new FeatureFlagsObserver(); mFlagsObserver = new FeatureFlagsObserver(); mFlagsObserver.register(); mFlagsObserver.register(); mForcedAppStandbyEnabled = mFlagsObserver.isForcedAppStandbyEnabled(); mForceAllAppStandbyForSmallBattery = mForceAllAppStandbyForSmallBattery = mFlagsObserver.isForcedAppStandbyForSmallBatteryEnabled(); mFlagsObserver.isForcedAppStandbyForSmallBatteryEnabled(); mStandbyTracker = new StandbyTracker(); mStandbyTracker = new StandbyTracker(); Loading Loading @@ -636,14 +605,10 @@ public class AppStateTrackerImpl implements AppStateTracker { /** /** * Update the {@link #mBackgroundRestrictedUidPackages} upon mutations on * Update the {@link #mBackgroundRestrictedUidPackages} upon mutations on * {@link #mRunAnyRestrictedPackages} or {@link #mForcedAppStandbyEnabled}. * {@link #mRunAnyRestrictedPackages}. */ */ @GuardedBy("mLock") @GuardedBy("mLock") private void updateBackgroundRestrictedUidPackagesLocked() { private void updateBackgroundRestrictedUidPackagesLocked() { if (!mForcedAppStandbyEnabled) { mBackgroundRestrictedUidPackages = Collections.emptySet(); return; } Set<Pair<Integer, String>> fasUidPkgs = new ArraySet<>(); Set<Pair<Integer, String>> fasUidPkgs = new ArraySet<>(); for (int i = 0, size = mRunAnyRestrictedPackages.size(); i < size; i++) { for (int i = 0, size = mRunAnyRestrictedPackages.size(); i < size; i++) { fasUidPkgs.add(mRunAnyRestrictedPackages.valueAt(i)); fasUidPkgs.add(mRunAnyRestrictedPackages.valueAt(i)); Loading Loading @@ -821,13 +786,14 @@ public class AppStateTrackerImpl implements AppStateTracker { private class MyHandler extends Handler { private class MyHandler extends Handler { private static final int MSG_UID_ACTIVE_STATE_CHANGED = 0; private static final int MSG_UID_ACTIVE_STATE_CHANGED = 0; // Unused ids 1, 2. private static final int MSG_RUN_ANY_CHANGED = 3; private static final int MSG_RUN_ANY_CHANGED = 3; private static final int MSG_ALL_UNEXEMPTED = 4; private static final int MSG_ALL_UNEXEMPTED = 4; private static final int MSG_ALL_EXEMPTION_LIST_CHANGED = 5; private static final int MSG_ALL_EXEMPTION_LIST_CHANGED = 5; private static final int MSG_TEMP_EXEMPTION_LIST_CHANGED = 6; private static final int MSG_TEMP_EXEMPTION_LIST_CHANGED = 6; private static final int MSG_FORCE_ALL_CHANGED = 7; private static final int MSG_FORCE_ALL_CHANGED = 7; private static final int MSG_USER_REMOVED = 8; private static final int MSG_USER_REMOVED = 8; private static final int MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED = 9; // Unused id 9. private static final int MSG_EXEMPTED_BUCKET_CHANGED = 10; private static final int MSG_EXEMPTED_BUCKET_CHANGED = 10; private static final int MSG_AUTO_RESTRICTED_BUCKET_FEATURE_FLAG_CHANGED = 11; private static final int MSG_AUTO_RESTRICTED_BUCKET_FEATURE_FLAG_CHANGED = 11; Loading Loading @@ -867,11 +833,6 @@ public class AppStateTrackerImpl implements AppStateTracker { obtainMessage(MSG_FORCE_ALL_CHANGED).sendToTarget(); obtainMessage(MSG_FORCE_ALL_CHANGED).sendToTarget(); } } public void notifyForcedAppStandbyFeatureFlagChanged() { removeMessages(MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED); obtainMessage(MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED).sendToTarget(); } public void notifyExemptedBucketChanged() { public void notifyExemptedBucketChanged() { removeMessages(MSG_EXEMPTED_BUCKET_CHANGED); removeMessages(MSG_EXEMPTED_BUCKET_CHANGED); obtainMessage(MSG_EXEMPTED_BUCKET_CHANGED).sendToTarget(); obtainMessage(MSG_EXEMPTED_BUCKET_CHANGED).sendToTarget(); Loading Loading @@ -966,22 +927,6 @@ public class AppStateTrackerImpl implements AppStateTracker { mStatLogger.logDurationStat(Stats.FORCE_ALL_CHANGED, start); mStatLogger.logDurationStat(Stats.FORCE_ALL_CHANGED, start); return; return; case MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED: // Feature flag for forced app standby changed. final boolean unblockAlarms; synchronized (mLock) { unblockAlarms = !mForcedAppStandbyEnabled; } for (Listener l : cloneListeners()) { l.updateAllJobs(); if (unblockAlarms) { l.unblockAllUnrestrictedAlarms(); } } mStatLogger.logDurationStat( Stats.FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED, start); return; case MSG_USER_REMOVED: case MSG_USER_REMOVED: handleUserRemoved(msg.arg1); handleUserRemoved(msg.arg1); return; return; Loading Loading @@ -1164,8 +1109,7 @@ public class AppStateTrackerImpl implements AppStateTracker { // If apps will be put into restricted standby bucket automatically on user-forced // If apps will be put into restricted standby bucket automatically on user-forced // app standby, instead of blocking alarms completely, let the restricted standby bucket // app standby, instead of blocking alarms completely, let the restricted standby bucket // policy take care of it. // policy take care of it. return (mForcedAppStandbyEnabled return (!mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && !mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && isRunAnyRestrictedLocked(uid, packageName)); && isRunAnyRestrictedLocked(uid, packageName)); } } } } Loading Loading @@ -1210,8 +1154,7 @@ public class AppStateTrackerImpl implements AppStateTracker { // If apps will be put into restricted standby bucket automatically on user-forced // If apps will be put into restricted standby bucket automatically on user-forced // app standby, instead of blocking jobs completely, let the restricted standby bucket // app standby, instead of blocking jobs completely, let the restricted standby bucket // policy take care of it. // policy take care of it. if (mForcedAppStandbyEnabled if (!mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && !mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && isRunAnyRestrictedLocked(uid, packageName)) { && isRunAnyRestrictedLocked(uid, packageName)) { return true; return true; } } Loading Loading @@ -1321,8 +1264,6 @@ public class AppStateTrackerImpl implements AppStateTracker { pw.println("Current AppStateTracker State:"); pw.println("Current AppStateTracker State:"); pw.increaseIndent(); pw.increaseIndent(); pw.println("Forced App Standby Feature enabled: " + mForcedAppStandbyEnabled); pw.print("Force all apps standby: "); pw.print("Force all apps standby: "); pw.println(isForceAllAppsStandbyEnabled()); pw.println(isForceAllAppsStandbyEnabled()); Loading Loading @@ -1400,8 +1341,6 @@ public class AppStateTrackerImpl implements AppStateTracker { synchronized (mLock) { synchronized (mLock) { final long token = proto.start(fieldId); final long token = proto.start(fieldId); proto.write(AppStateTrackerProto.FORCED_APP_STANDBY_FEATURE_ENABLED, mForcedAppStandbyEnabled); proto.write(AppStateTrackerProto.FORCE_ALL_APPS_STANDBY, proto.write(AppStateTrackerProto.FORCE_ALL_APPS_STANDBY, isForceAllAppsStandbyEnabled()); isForceAllAppsStandbyEnabled()); proto.write(AppStateTrackerProto.IS_SMALL_BATTERY_DEVICE, isSmallBatteryDevice()); proto.write(AppStateTrackerProto.IS_SMALL_BATTERY_DEVICE, isSmallBatteryDevice()); Loading apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +1 −3 Original line number Original line Diff line number Diff line Loading @@ -5379,9 +5379,7 @@ public class AlarmManagerService extends SystemService { @Override @Override public void unblockAllUnrestrictedAlarms() { public void unblockAllUnrestrictedAlarms() { // Called when: // Called when the power exemption list changes. // 1. Power exemption list changes, // 2. User FAS feature is disabled. synchronized (mLock) { synchronized (mLock) { sendAllUnrestrictedPendingBackgroundAlarmsLocked(); sendAllUnrestrictedPendingBackgroundAlarmsLocked(); } } Loading core/java/android/provider/Settings.java +0 −9 Original line number Original line Diff line number Diff line Loading @@ -14567,15 +14567,6 @@ public final class Settings { public static final String APP_AUTO_RESTRICTION_ENABLED = public static final String APP_AUTO_RESTRICTION_ENABLED = "app_auto_restriction_enabled"; "app_auto_restriction_enabled"; /** * Feature flag to enable or disable the Forced App Standby feature. * Type: int (0 for false, 1 for true) * Default: 1 * @hide */ @Readable public static final String FORCED_APP_STANDBY_ENABLED = "forced_app_standby_enabled"; /** /** * Whether or not to enable Forced App Standby on small battery devices. * Whether or not to enable Forced App Standby on small battery devices. * Type: int (0 for false, 1 for true) * Type: int (0 for false, 1 for true) packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +0 −3 Original line number Original line Diff line number Diff line Loading @@ -227,9 +227,6 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, dumpSetting(s, p, Settings.Global.APP_AUTO_RESTRICTION_ENABLED, Settings.Global.APP_AUTO_RESTRICTION_ENABLED, GlobalSettingsProto.App.AUTO_RESTRICTION_ENABLED); GlobalSettingsProto.App.AUTO_RESTRICTION_ENABLED); dumpSetting(s, p, Settings.Global.FORCED_APP_STANDBY_ENABLED, GlobalSettingsProto.App.FORCED_APP_STANDBY_ENABLED); dumpSetting(s, p, dumpSetting(s, p, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, GlobalSettingsProto.App.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED); GlobalSettingsProto.App.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED); Loading packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +0 −1 Original line number Original line Diff line number Diff line Loading @@ -285,7 +285,6 @@ public class SettingsBackupTest { Settings.Global.FANCY_IME_ANIMATIONS, Settings.Global.FANCY_IME_ANIMATIONS, Settings.Global.ONE_HANDED_KEYGUARD_SIDE, Settings.Global.ONE_HANDED_KEYGUARD_SIDE, Settings.Global.FORCE_ALLOW_ON_EXTERNAL, Settings.Global.FORCE_ALLOW_ON_EXTERNAL, Settings.Global.FORCED_APP_STANDBY_ENABLED, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, Settings.Global.WIFI_ON_WHEN_PROXY_DISCONNECTED, Settings.Global.WIFI_ON_WHEN_PROXY_DISCONNECTED, Settings.Global.FSTRIM_MANDATORY_INTERVAL, Settings.Global.FSTRIM_MANDATORY_INTERVAL, Loading Loading
apex/jobscheduler/service/java/com/android/server/AppStateTrackerImpl.java +10 −71 Original line number Original line Diff line number Diff line Loading @@ -157,18 +157,12 @@ public class AppStateTrackerImpl implements AppStateTracker { @GuardedBy("mLock") @GuardedBy("mLock") boolean mForceAllAppStandbyForSmallBattery; boolean mForceAllAppStandbyForSmallBattery; /** * True if the forced app standby feature is enabled in settings */ @GuardedBy("mLock") boolean mForcedAppStandbyEnabled; /** /** * A lock-free set of (uid, packageName) pairs in background restricted mode. * A lock-free set of (uid, packageName) pairs in background restricted mode. * * * <p> * <p> * It's bascially shadowing the {@link #mRunAnyRestrictedPackages} together with * It's basically shadowing the {@link #mRunAnyRestrictedPackages}, any mutations on it would * the {@link #mForcedAppStandbyEnabled} - mutations on them would result in copy-on-write. * result in copy-on-write. * </p> * </p> */ */ volatile Set<Pair<Integer, String>> mBackgroundRestrictedUidPackages = Collections.emptySet(); volatile Set<Pair<Integer, String>> mBackgroundRestrictedUidPackages = Collections.emptySet(); Loading Loading @@ -200,10 +194,9 @@ public class AppStateTrackerImpl implements AppStateTracker { int TEMP_EXEMPTION_LIST_CHANGED = 5; int TEMP_EXEMPTION_LIST_CHANGED = 5; int EXEMPTED_BUCKET_CHANGED = 6; int EXEMPTED_BUCKET_CHANGED = 6; int FORCE_ALL_CHANGED = 7; int FORCE_ALL_CHANGED = 7; int FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED = 8; int IS_UID_ACTIVE_CACHED = 9; int IS_UID_ACTIVE_CACHED = 8; int IS_UID_ACTIVE_RAW = 10; int IS_UID_ACTIVE_RAW = 9; } } private final StatLogger mStatLogger = new StatLogger(new String[] { private final StatLogger mStatLogger = new StatLogger(new String[] { Loading @@ -215,7 +208,6 @@ public class AppStateTrackerImpl implements AppStateTracker { "TEMP_EXEMPTION_LIST_CHANGED", "TEMP_EXEMPTION_LIST_CHANGED", "EXEMPTED_BUCKET_CHANGED", "EXEMPTED_BUCKET_CHANGED", "FORCE_ALL_CHANGED", "FORCE_ALL_CHANGED", "FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED", "IS_UID_ACTIVE_CACHED", "IS_UID_ACTIVE_CACHED", "IS_UID_ACTIVE_RAW", "IS_UID_ACTIVE_RAW", Loading @@ -228,18 +220,10 @@ public class AppStateTrackerImpl implements AppStateTracker { } } void register() { void register() { mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.FORCED_APP_STANDBY_ENABLED), false, this); mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor( mContext.getContentResolver().registerContentObserver(Settings.Global.getUriFor( Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED), false, this); Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED), false, this); } } boolean isForcedAppStandbyEnabled() { return injectGetGlobalSettingInt(Settings.Global.FORCED_APP_STANDBY_ENABLED, 1) == 1; } boolean isForcedAppStandbyForSmallBatteryEnabled() { boolean isForcedAppStandbyForSmallBatteryEnabled() { return injectGetGlobalSettingInt( return injectGetGlobalSettingInt( Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, 0) == 1; Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, 0) == 1; Loading @@ -247,21 +231,7 @@ public class AppStateTrackerImpl implements AppStateTracker { @Override @Override public void onChange(boolean selfChange, Uri uri) { public void onChange(boolean selfChange, Uri uri) { if (Settings.Global.getUriFor(Settings.Global.FORCED_APP_STANDBY_ENABLED).equals(uri)) { if (Settings.Global.getUriFor( final boolean enabled = isForcedAppStandbyEnabled(); synchronized (mLock) { if (mForcedAppStandbyEnabled == enabled) { return; } mForcedAppStandbyEnabled = enabled; updateBackgroundRestrictedUidPackagesLocked(); if (DEBUG) { Slog.d(TAG, "Forced app standby feature flag changed: " + mForcedAppStandbyEnabled); } } mHandler.notifyForcedAppStandbyFeatureFlagChanged(); } else if (Settings.Global.getUriFor( Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED).equals(uri)) { Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED).equals(uri)) { final boolean enabled = isForcedAppStandbyForSmallBatteryEnabled(); final boolean enabled = isForcedAppStandbyForSmallBatteryEnabled(); synchronized (mLock) { synchronized (mLock) { Loading Loading @@ -515,7 +485,6 @@ public class AppStateTrackerImpl implements AppStateTracker { mFlagsObserver = new FeatureFlagsObserver(); mFlagsObserver = new FeatureFlagsObserver(); mFlagsObserver.register(); mFlagsObserver.register(); mForcedAppStandbyEnabled = mFlagsObserver.isForcedAppStandbyEnabled(); mForceAllAppStandbyForSmallBattery = mForceAllAppStandbyForSmallBattery = mFlagsObserver.isForcedAppStandbyForSmallBatteryEnabled(); mFlagsObserver.isForcedAppStandbyForSmallBatteryEnabled(); mStandbyTracker = new StandbyTracker(); mStandbyTracker = new StandbyTracker(); Loading Loading @@ -636,14 +605,10 @@ public class AppStateTrackerImpl implements AppStateTracker { /** /** * Update the {@link #mBackgroundRestrictedUidPackages} upon mutations on * Update the {@link #mBackgroundRestrictedUidPackages} upon mutations on * {@link #mRunAnyRestrictedPackages} or {@link #mForcedAppStandbyEnabled}. * {@link #mRunAnyRestrictedPackages}. */ */ @GuardedBy("mLock") @GuardedBy("mLock") private void updateBackgroundRestrictedUidPackagesLocked() { private void updateBackgroundRestrictedUidPackagesLocked() { if (!mForcedAppStandbyEnabled) { mBackgroundRestrictedUidPackages = Collections.emptySet(); return; } Set<Pair<Integer, String>> fasUidPkgs = new ArraySet<>(); Set<Pair<Integer, String>> fasUidPkgs = new ArraySet<>(); for (int i = 0, size = mRunAnyRestrictedPackages.size(); i < size; i++) { for (int i = 0, size = mRunAnyRestrictedPackages.size(); i < size; i++) { fasUidPkgs.add(mRunAnyRestrictedPackages.valueAt(i)); fasUidPkgs.add(mRunAnyRestrictedPackages.valueAt(i)); Loading Loading @@ -821,13 +786,14 @@ public class AppStateTrackerImpl implements AppStateTracker { private class MyHandler extends Handler { private class MyHandler extends Handler { private static final int MSG_UID_ACTIVE_STATE_CHANGED = 0; private static final int MSG_UID_ACTIVE_STATE_CHANGED = 0; // Unused ids 1, 2. private static final int MSG_RUN_ANY_CHANGED = 3; private static final int MSG_RUN_ANY_CHANGED = 3; private static final int MSG_ALL_UNEXEMPTED = 4; private static final int MSG_ALL_UNEXEMPTED = 4; private static final int MSG_ALL_EXEMPTION_LIST_CHANGED = 5; private static final int MSG_ALL_EXEMPTION_LIST_CHANGED = 5; private static final int MSG_TEMP_EXEMPTION_LIST_CHANGED = 6; private static final int MSG_TEMP_EXEMPTION_LIST_CHANGED = 6; private static final int MSG_FORCE_ALL_CHANGED = 7; private static final int MSG_FORCE_ALL_CHANGED = 7; private static final int MSG_USER_REMOVED = 8; private static final int MSG_USER_REMOVED = 8; private static final int MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED = 9; // Unused id 9. private static final int MSG_EXEMPTED_BUCKET_CHANGED = 10; private static final int MSG_EXEMPTED_BUCKET_CHANGED = 10; private static final int MSG_AUTO_RESTRICTED_BUCKET_FEATURE_FLAG_CHANGED = 11; private static final int MSG_AUTO_RESTRICTED_BUCKET_FEATURE_FLAG_CHANGED = 11; Loading Loading @@ -867,11 +833,6 @@ public class AppStateTrackerImpl implements AppStateTracker { obtainMessage(MSG_FORCE_ALL_CHANGED).sendToTarget(); obtainMessage(MSG_FORCE_ALL_CHANGED).sendToTarget(); } } public void notifyForcedAppStandbyFeatureFlagChanged() { removeMessages(MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED); obtainMessage(MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED).sendToTarget(); } public void notifyExemptedBucketChanged() { public void notifyExemptedBucketChanged() { removeMessages(MSG_EXEMPTED_BUCKET_CHANGED); removeMessages(MSG_EXEMPTED_BUCKET_CHANGED); obtainMessage(MSG_EXEMPTED_BUCKET_CHANGED).sendToTarget(); obtainMessage(MSG_EXEMPTED_BUCKET_CHANGED).sendToTarget(); Loading Loading @@ -966,22 +927,6 @@ public class AppStateTrackerImpl implements AppStateTracker { mStatLogger.logDurationStat(Stats.FORCE_ALL_CHANGED, start); mStatLogger.logDurationStat(Stats.FORCE_ALL_CHANGED, start); return; return; case MSG_FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED: // Feature flag for forced app standby changed. final boolean unblockAlarms; synchronized (mLock) { unblockAlarms = !mForcedAppStandbyEnabled; } for (Listener l : cloneListeners()) { l.updateAllJobs(); if (unblockAlarms) { l.unblockAllUnrestrictedAlarms(); } } mStatLogger.logDurationStat( Stats.FORCE_APP_STANDBY_FEATURE_FLAG_CHANGED, start); return; case MSG_USER_REMOVED: case MSG_USER_REMOVED: handleUserRemoved(msg.arg1); handleUserRemoved(msg.arg1); return; return; Loading Loading @@ -1164,8 +1109,7 @@ public class AppStateTrackerImpl implements AppStateTracker { // If apps will be put into restricted standby bucket automatically on user-forced // If apps will be put into restricted standby bucket automatically on user-forced // app standby, instead of blocking alarms completely, let the restricted standby bucket // app standby, instead of blocking alarms completely, let the restricted standby bucket // policy take care of it. // policy take care of it. return (mForcedAppStandbyEnabled return (!mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && !mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && isRunAnyRestrictedLocked(uid, packageName)); && isRunAnyRestrictedLocked(uid, packageName)); } } } } Loading Loading @@ -1210,8 +1154,7 @@ public class AppStateTrackerImpl implements AppStateTracker { // If apps will be put into restricted standby bucket automatically on user-forced // If apps will be put into restricted standby bucket automatically on user-forced // app standby, instead of blocking jobs completely, let the restricted standby bucket // app standby, instead of blocking jobs completely, let the restricted standby bucket // policy take care of it. // policy take care of it. if (mForcedAppStandbyEnabled if (!mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && !mActivityManagerInternal.isBgAutoRestrictedBucketFeatureFlagEnabled() && isRunAnyRestrictedLocked(uid, packageName)) { && isRunAnyRestrictedLocked(uid, packageName)) { return true; return true; } } Loading Loading @@ -1321,8 +1264,6 @@ public class AppStateTrackerImpl implements AppStateTracker { pw.println("Current AppStateTracker State:"); pw.println("Current AppStateTracker State:"); pw.increaseIndent(); pw.increaseIndent(); pw.println("Forced App Standby Feature enabled: " + mForcedAppStandbyEnabled); pw.print("Force all apps standby: "); pw.print("Force all apps standby: "); pw.println(isForceAllAppsStandbyEnabled()); pw.println(isForceAllAppsStandbyEnabled()); Loading Loading @@ -1400,8 +1341,6 @@ public class AppStateTrackerImpl implements AppStateTracker { synchronized (mLock) { synchronized (mLock) { final long token = proto.start(fieldId); final long token = proto.start(fieldId); proto.write(AppStateTrackerProto.FORCED_APP_STANDBY_FEATURE_ENABLED, mForcedAppStandbyEnabled); proto.write(AppStateTrackerProto.FORCE_ALL_APPS_STANDBY, proto.write(AppStateTrackerProto.FORCE_ALL_APPS_STANDBY, isForceAllAppsStandbyEnabled()); isForceAllAppsStandbyEnabled()); proto.write(AppStateTrackerProto.IS_SMALL_BATTERY_DEVICE, isSmallBatteryDevice()); proto.write(AppStateTrackerProto.IS_SMALL_BATTERY_DEVICE, isSmallBatteryDevice()); Loading
apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +1 −3 Original line number Original line Diff line number Diff line Loading @@ -5379,9 +5379,7 @@ public class AlarmManagerService extends SystemService { @Override @Override public void unblockAllUnrestrictedAlarms() { public void unblockAllUnrestrictedAlarms() { // Called when: // Called when the power exemption list changes. // 1. Power exemption list changes, // 2. User FAS feature is disabled. synchronized (mLock) { synchronized (mLock) { sendAllUnrestrictedPendingBackgroundAlarmsLocked(); sendAllUnrestrictedPendingBackgroundAlarmsLocked(); } } Loading
core/java/android/provider/Settings.java +0 −9 Original line number Original line Diff line number Diff line Loading @@ -14567,15 +14567,6 @@ public final class Settings { public static final String APP_AUTO_RESTRICTION_ENABLED = public static final String APP_AUTO_RESTRICTION_ENABLED = "app_auto_restriction_enabled"; "app_auto_restriction_enabled"; /** * Feature flag to enable or disable the Forced App Standby feature. * Type: int (0 for false, 1 for true) * Default: 1 * @hide */ @Readable public static final String FORCED_APP_STANDBY_ENABLED = "forced_app_standby_enabled"; /** /** * Whether or not to enable Forced App Standby on small battery devices. * Whether or not to enable Forced App Standby on small battery devices. * Type: int (0 for false, 1 for true) * Type: int (0 for false, 1 for true)
packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +0 −3 Original line number Original line Diff line number Diff line Loading @@ -227,9 +227,6 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, dumpSetting(s, p, Settings.Global.APP_AUTO_RESTRICTION_ENABLED, Settings.Global.APP_AUTO_RESTRICTION_ENABLED, GlobalSettingsProto.App.AUTO_RESTRICTION_ENABLED); GlobalSettingsProto.App.AUTO_RESTRICTION_ENABLED); dumpSetting(s, p, Settings.Global.FORCED_APP_STANDBY_ENABLED, GlobalSettingsProto.App.FORCED_APP_STANDBY_ENABLED); dumpSetting(s, p, dumpSetting(s, p, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, GlobalSettingsProto.App.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED); GlobalSettingsProto.App.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED); Loading
packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +0 −1 Original line number Original line Diff line number Diff line Loading @@ -285,7 +285,6 @@ public class SettingsBackupTest { Settings.Global.FANCY_IME_ANIMATIONS, Settings.Global.FANCY_IME_ANIMATIONS, Settings.Global.ONE_HANDED_KEYGUARD_SIDE, Settings.Global.ONE_HANDED_KEYGUARD_SIDE, Settings.Global.FORCE_ALLOW_ON_EXTERNAL, Settings.Global.FORCE_ALLOW_ON_EXTERNAL, Settings.Global.FORCED_APP_STANDBY_ENABLED, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, Settings.Global.FORCED_APP_STANDBY_FOR_SMALL_BATTERY_ENABLED, Settings.Global.WIFI_ON_WHEN_PROXY_DISCONNECTED, Settings.Global.WIFI_ON_WHEN_PROXY_DISCONNECTED, Settings.Global.FSTRIM_MANDATORY_INTERVAL, Settings.Global.FSTRIM_MANDATORY_INTERVAL, Loading