diff options
| author | 2019-05-16 12:21:16 -0700 | |
|---|---|---|
| committer | 2019-05-17 14:25:56 -0700 | |
| commit | 7b14a6640447a411b467f9833629434b304f3998 (patch) | |
| tree | f03c838a2f6ac28aa5abe0bcd529ea7ac3b76dd6 | |
| parent | 34bc57f73887bda3b362b90ede3f9a58f907e088 (diff) | |
Change idleness according to screen status
- Unlike DeviceIdlenessTracker, CarIdlenessTracker didn't listen to
screen status change.
- android.jobscheduler.cts.DeviceStatesTest#testDeviceChangeIdleActiveState
fails due to the above reason.
- It is natural to exit idle when screen is turned on, unless forced idle
is set or car is in garage mode.
Bug: 130662327
Test: Run CtsJobSchedulerTestCases
Change-Id: I8c04c619b34b9e72027914e080aa0f4ef7519422
| -rw-r--r-- | services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java b/services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java index 596a4c02e780..82c33f548c15 100644 --- a/services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java +++ b/services/core/java/com/android/server/job/controllers/idle/CarIdlenessTracker.java @@ -20,9 +20,9 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; - import android.util.Log; import android.util.Slog; + import com.android.server.am.ActivityManagerService; import com.android.server.job.JobSchedulerService; @@ -67,6 +67,9 @@ public final class CarIdlenessTracker extends BroadcastReceiver implements Idlen IntentFilter filter = new IntentFilter(); + // Screen state + filter.addAction(Intent.ACTION_SCREEN_ON); + // State of GarageMode filter.addAction(ACTION_GARAGE_MODE_ON); filter.addAction(ACTION_GARAGE_MODE_OFF); @@ -97,6 +100,9 @@ public final class CarIdlenessTracker extends BroadcastReceiver implements Idlen } else if (action.equals(ACTION_UNFORCE_IDLE)) { logIfDebug("Unforcing idle..."); setForceIdleState(false); + } else if (action.equals(Intent.ACTION_SCREEN_ON)) { + logIfDebug("Screen is on..."); + handleScreenOn(); } else if (action.equals(ACTION_GARAGE_MODE_ON)) { logIfDebug("GarageMode is on..."); mGarageModeOn = true; @@ -147,9 +153,23 @@ public final class CarIdlenessTracker extends BroadcastReceiver implements Idlen } } - private void logIfDebug(String msg) { + private void handleScreenOn() { + if (mForced || mGarageModeOn) { + // Even though screen is on, the device remains idle + logIfDebug("Screen is on, but device cannot exit idle"); + } else if (mIdle) { + // Exiting idle + logIfDebug("Device is exiting idle"); + mIdle = false; + } else { + // Already in non-idle state. Nothing to do + logIfDebug("Device is already non-idle"); + } + } + + private static void logIfDebug(String msg) { if (DEBUG) { Slog.v(TAG, msg); } } -}
\ No newline at end of file +} |