summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+}