From d439404c9988df6001e4ff8bce31537e2692660e Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 19 Oct 2017 09:30:56 -0400 Subject: Import Android SDK Platform P [4402356] /google/data/ro/projects/android/fetch_artifact \ --bid 4386628 \ --target sdk_phone_armv7-win_sdk \ sdk-repo-linux-sources-4402356.zip AndroidVersion.ApiLevel has been modified to appear as 28 Change-Id: Ie49e24e1f4ae9dc96306111e953d3db1e1495b53 --- .../server/job/controllers/TimeController.java | 32 ++++++++++++++-------- 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'com/android/server/job/controllers/TimeController.java') diff --git a/com/android/server/job/controllers/TimeController.java b/com/android/server/job/controllers/TimeController.java index d90699a6..ee4c606f 100644 --- a/com/android/server/job/controllers/TimeController.java +++ b/com/android/server/job/controllers/TimeController.java @@ -110,7 +110,7 @@ public final class TimeController extends StateController { maybeUpdateAlarmsLocked( job.hasTimingDelayConstraint() ? job.getEarliestRunTime() : Long.MAX_VALUE, job.hasDeadlineConstraint() ? job.getLatestRunTimeElapsed() : Long.MAX_VALUE, - job.getSourceUid()); + new WorkSource(job.getSourceUid(), job.getSourcePackageName())); } } @@ -156,6 +156,7 @@ public final class TimeController extends StateController { synchronized (mLock) { long nextExpiryTime = Long.MAX_VALUE; int nextExpiryUid = 0; + String nextExpiryPackageName = null; final long nowElapsedMillis = SystemClock.elapsedRealtime(); Iterator it = mTrackedJobs.iterator(); @@ -171,10 +172,13 @@ public final class TimeController extends StateController { } else { // Sorted by expiry time, so take the next one and stop. nextExpiryTime = job.getLatestRunTimeElapsed(); nextExpiryUid = job.getSourceUid(); + nextExpiryPackageName = job.getSourcePackageName(); break; } } - setDeadlineExpiredAlarmLocked(nextExpiryTime, nextExpiryUid); + setDeadlineExpiredAlarmLocked(nextExpiryTime, nextExpiryPackageName != null + ? new WorkSource(nextExpiryUid, nextExpiryPackageName) + : new WorkSource(nextExpiryUid)); } } @@ -200,6 +204,7 @@ public final class TimeController extends StateController { final long nowElapsedMillis = SystemClock.elapsedRealtime(); long nextDelayTime = Long.MAX_VALUE; int nextDelayUid = 0; + String nextDelayPackageName = null; boolean ready = false; Iterator it = mTrackedJobs.iterator(); while (it.hasNext()) { @@ -221,13 +226,16 @@ public final class TimeController extends StateController { if (nextDelayTime > jobDelayTime) { nextDelayTime = jobDelayTime; nextDelayUid = job.getSourceUid(); + nextDelayPackageName = job.getSourcePackageName(); } } } if (ready) { mStateChangedListener.onControllerStateChanged(); } - setDelayExpiredAlarmLocked(nextDelayTime, nextDelayUid); + setDelayExpiredAlarmLocked(nextDelayTime, nextDelayPackageName != null + ? new WorkSource(nextDelayUid, nextDelayPackageName) + : new WorkSource(nextDelayUid)); } } @@ -241,12 +249,12 @@ public final class TimeController extends StateController { } private void maybeUpdateAlarmsLocked(long delayExpiredElapsed, long deadlineExpiredElapsed, - int uid) { + WorkSource ws) { if (delayExpiredElapsed < mNextDelayExpiredElapsedMillis) { - setDelayExpiredAlarmLocked(delayExpiredElapsed, uid); + setDelayExpiredAlarmLocked(delayExpiredElapsed, ws); } if (deadlineExpiredElapsed < mNextJobExpiredElapsedMillis) { - setDeadlineExpiredAlarmLocked(deadlineExpiredElapsed, uid); + setDeadlineExpiredAlarmLocked(deadlineExpiredElapsed, ws); } } @@ -255,11 +263,11 @@ public final class TimeController extends StateController { * delay will expire. * This alarm will wake up the phone. */ - private void setDelayExpiredAlarmLocked(long alarmTimeElapsedMillis, int uid) { + private void setDelayExpiredAlarmLocked(long alarmTimeElapsedMillis, WorkSource ws) { alarmTimeElapsedMillis = maybeAdjustAlarmTime(alarmTimeElapsedMillis); mNextDelayExpiredElapsedMillis = alarmTimeElapsedMillis; updateAlarmWithListenerLocked(DELAY_TAG, mNextDelayExpiredListener, - mNextDelayExpiredElapsedMillis, uid); + mNextDelayExpiredElapsedMillis, ws); } /** @@ -267,11 +275,11 @@ public final class TimeController extends StateController { * deadline will expire. * This alarm will wake up the phone. */ - private void setDeadlineExpiredAlarmLocked(long alarmTimeElapsedMillis, int uid) { + private void setDeadlineExpiredAlarmLocked(long alarmTimeElapsedMillis, WorkSource ws) { alarmTimeElapsedMillis = maybeAdjustAlarmTime(alarmTimeElapsedMillis); mNextJobExpiredElapsedMillis = alarmTimeElapsedMillis; updateAlarmWithListenerLocked(DEADLINE_TAG, mDeadlineExpiredListener, - mNextJobExpiredElapsedMillis, uid); + mNextJobExpiredElapsedMillis, ws); } private long maybeAdjustAlarmTime(long proposedAlarmTimeElapsedMillis) { @@ -283,7 +291,7 @@ public final class TimeController extends StateController { } private void updateAlarmWithListenerLocked(String tag, OnAlarmListener listener, - long alarmTimeElapsed, int uid) { + long alarmTimeElapsed, WorkSource ws) { ensureAlarmServiceLocked(); if (alarmTimeElapsed == Long.MAX_VALUE) { mAlarmService.cancel(listener); @@ -292,7 +300,7 @@ public final class TimeController extends StateController { Slog.d(TAG, "Setting " + tag + " for: " + alarmTimeElapsed); } mAlarmService.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, alarmTimeElapsed, - AlarmManager.WINDOW_HEURISTIC, 0, tag, listener, null, new WorkSource(uid)); + AlarmManager.WINDOW_HEURISTIC, 0, tag, listener, null, ws); } } -- cgit v1.2.3