diff options
author | 2021-04-08 02:24:38 +0000 | |
---|---|---|
committer | 2021-04-08 02:24:38 +0000 | |
commit | cebea4ced8ef5774de7c77ab09613ab3aab5e6ac (patch) | |
tree | 8bd4c3d34a1cc8fbf8a1fc71077d51d4683cbd11 | |
parent | 3d8971e4fa88d355fb157d323e6ed2aaa23d23e5 (diff) | |
parent | 98b41398e7acd4244191672d6f18b645bacb2823 (diff) |
Merge "Adding a shell command to AlarmManager" into sc-dev
-rw-r--r-- | apex/jobscheduler/framework/java/android/app/IAlarmManager.aidl | 1 | ||||
-rw-r--r-- | apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/apex/jobscheduler/framework/java/android/app/IAlarmManager.aidl b/apex/jobscheduler/framework/java/android/app/IAlarmManager.aidl index 2f21ce395df5..a10cbbee19d1 100644 --- a/apex/jobscheduler/framework/java/android/app/IAlarmManager.aidl +++ b/apex/jobscheduler/framework/java/android/app/IAlarmManager.aidl @@ -42,4 +42,5 @@ interface IAlarmManager { AlarmManager.AlarmClockInfo getNextAlarmClock(int userId); long currentNetworkTimeMillis(); boolean canScheduleExactAlarms(); + int getConfigVersion(); } diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java index 901daa73afb3..08e1a952603c 100644 --- a/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java +++ b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java @@ -538,6 +538,7 @@ public class AlarmManagerService extends SystemService { public long PRIORITY_ALARM_DELAY = DEFAULT_PRIORITY_ALARM_DELAY; private long mLastAllowWhileIdleWhitelistDuration = -1; + private int mVersion = 0; Constants() { updateAllowWhileIdleWhitelistDurationLocked(); @@ -546,6 +547,12 @@ public class AlarmManagerService extends SystemService { } } + public int getVersion() { + synchronized (mLock) { + return mVersion; + } + } + public void start() { mInjector.registerDeviceConfigListener(this); onPropertiesChanged(DeviceConfig.getProperties(DeviceConfig.NAMESPACE_ALARM_MANAGER)); @@ -568,6 +575,7 @@ public class AlarmManagerService extends SystemService { public void onPropertiesChanged(@NonNull DeviceConfig.Properties properties) { boolean standbyQuotaUpdated = false; synchronized (mLock) { + mVersion++; for (String name : properties.getKeyset()) { if (name == null) { continue; @@ -749,6 +757,9 @@ public class AlarmManagerService extends SystemService { pw.increaseIndent(); + pw.print("version", mVersion); + pw.println(); + pw.print(KEY_MIN_FUTURITY); pw.print("="); TimeUtils.formatDuration(MIN_FUTURITY, pw); @@ -2219,6 +2230,13 @@ public class AlarmManagerService extends SystemService { } @Override + public int getConfigVersion() { + getContext().enforceCallingOrSelfPermission(Manifest.permission.DUMP, + "getConfigVersion"); + return mConstants.getVersion(); + } + + @Override protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { if (!DumpUtils.checkDumpAndUsageStatsPermission(getContext(), TAG, pw)) return; @@ -4698,6 +4716,10 @@ public class AlarmManagerService extends SystemService { final String tz = getNextArgRequired(); getBinderService().setTimeZone(tz); return 0; + case "get-config-version": + final int version = getBinderService().getConfigVersion(); + pw.println(version); + return 0; default: return handleDefaultCommands(cmd); } @@ -4718,6 +4740,10 @@ public class AlarmManagerService extends SystemService { pw.println(" since the Epoch."); pw.println(" set-timezone TZ"); pw.println(" Set the system timezone to TZ where TZ is an Olson id."); + pw.println(" get-config-version"); + pw.println(" Returns an integer denoting the version of device_config keys the" + + " service is sync'ed to. As long as this returns the same version, the values" + + " of the config are guaranteed to remain the same."); } } } |