summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eric Jeong <ericjeong@google.com> 2019-05-16 12:21:16 -0700
committer Eric Jeong <ericjeong@google.com> 2019-05-17 14:25:56 -0700
commit7b14a6640447a411b467f9833629434b304f3998 (patch)
treef03c838a2f6ac28aa5abe0bcd529ea7ac3b76dd6
parent34bc57f73887bda3b362b90ede3f9a58f907e088 (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.java26
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
+}