From 37ad35f8d766af41a00541a0ff6952e98b722ac9 Mon Sep 17 00:00:00 2001 From: alinasuarez Date: Fri, 6 Aug 2021 18:47:14 +0000 Subject: [PATCH] Add AlarmManager and JobScheduler constants Add Settings constants to control the enabling of the AlarmManager and JobScheduler economic policies of TARE. If disabled, it will clean up and drop as much as possible. The default value is set to 0/false. Bug: 195767742 Test: look at dumpsys output after changing setting constant value Change-Id: Ieec58c271520c2ba02798ffeb67935801dcc38eb --- core/java/android/provider/Settings.java | 48 +++++++++++++++++++ .../validators/GlobalSettingsValidators.java | 4 ++ .../android/provider/SettingsBackupTest.java | 4 ++ 3 files changed, 56 insertions(+) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 4dfa6c30a5e7c..7a031e33e542c 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -13510,6 +13510,54 @@ public final class Settings { */ public static final int DEFAULT_ENABLE_TARE = 0; + /** + * Whether to enable the TARE AlarmManager economic policy or not. + * 1 means enable, 0 means disable. + * + * @hide + */ + public static final String ENABLE_TARE_ALARM_MANAGER = "enable_tare_alarm_manager"; + + /** + * Default value for {@link #ENABLE_TARE_ALARM_MANAGER}. + * + * @hide + */ + public static final int DEFAULT_ENABLE_TARE_ALARM_MANAGER = 0; + + /** + * Settings for AlarmManager's TARE EconomicPolicy (list of its economic factors). + * + * Keys are listed in {@link android.app.tare.EconomyManager}. + * + * @hide + */ + public static final String TARE_ALARM_MANAGER_CONSTANTS = "tare_alarm_manager_constants"; + + /** + * Whether to enable the TARE JobScheduler economic policy or not. + * 1 means enable, 0 means disable. + * + * @hide + */ + public static final String ENABLE_TARE_JOB_SCHEDULER = "enable_tare_job_scheduler"; + + /** + * Default value for {@link #ENABLE_TARE_JOB_SCHEDULER}. + * + * @hide + */ + public static final int DEFAULT_ENABLE_TARE_JOB_SCHEDULER = 0; + + /** + * Settings for JobScheduler's TARE EconomicPolicy (list of its economic factors). + * + * Keys are listed in {@link android.app.tare.EconomyManager}. + * + * @hide + */ + public static final String TARE_JOB_SCHEDULER_CONSTANTS = "tare_job_scheduler_constants"; + /** * Whether or not to enable the User Absent, Radios Off feature on small battery devices. * Type: int (0 for false, 1 for true) diff --git a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java index 9bc8e657daa34..fe48575c40c98 100644 --- a/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java +++ b/packages/SettingsProvider/src/android/provider/settings/validators/GlobalSettingsValidators.java @@ -118,6 +118,10 @@ public class GlobalSettingsValidators { VALIDATORS.put(Global.CLOCKWORK_SYSUI_PACKAGE_NAME, ANY_STRING_VALIDATOR); VALIDATORS.put(Global.CLOCKWORK_HOME_READY, ANY_STRING_VALIDATOR); VALIDATORS.put(Global.ENABLE_TARE, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.ENABLE_TARE_ALARM_MANAGER, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.ENABLE_TARE_JOB_SCHEDULER, BOOLEAN_VALIDATOR); + VALIDATORS.put(Global.TARE_ALARM_MANAGER_CONSTANTS, ANY_STRING_VALIDATOR); + VALIDATORS.put(Global.TARE_JOB_SCHEDULER_CONSTANTS, ANY_STRING_VALIDATOR); VALIDATORS.put(Global.PRIVATE_DNS_MODE, ANY_STRING_VALIDATOR); VALIDATORS.put(Global.PRIVATE_DNS_SPECIFIER, ANY_STRING_VALIDATOR); VALIDATORS.put(Global.SOFT_AP_TIMEOUT_ENABLED, BOOLEAN_VALIDATOR); diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index ec2ec668d2d99..b2100629a394b 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -266,6 +266,8 @@ public class SettingsBackupTest { Settings.Global.ENABLE_EPHEMERAL_FEATURE, Settings.Global.ENABLE_RESTRICTED_BUCKET, Settings.Global.ENABLE_TARE, + Settings.Global.ENABLE_TARE_ALARM_MANAGER, + Settings.Global.ENABLE_TARE_JOB_SCHEDULER, Settings.Global.DYNAMIC_POWER_SAVINGS_ENABLED, Settings.Global.DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD, Settings.Global.SMART_REPLIES_IN_NOTIFICATIONS_FLAGS, @@ -474,6 +476,8 @@ public class SettingsBackupTest { Settings.Global.SYS_UIDCPUPOWER, Settings.Global.SYS_TRACED, Settings.Global.FPS_DEVISOR, + Settings.Global.TARE_ALARM_MANAGER_CONSTANTS, + Settings.Global.TARE_JOB_SCHEDULER_CONSTANTS, Settings.Global.TCP_DEFAULT_INIT_RWND, Settings.Global.TETHER_DUN_APN, Settings.Global.TETHER_DUN_REQUIRED,