Loading services/core/java/com/android/server/am/ActivityManagerService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -14830,7 +14830,7 @@ public class ActivityManagerService extends IActivityManager.Stub .setPackage("android") .setPackage("android") .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); broadcastIntent(null, intent, null, null, 0, null, null, null, broadcastIntent(null, intent, null, null, 0, null, null, null, OP_NONE, null, true, false, UserHandle.USER_ALL); OP_NONE, null, false, false, UserHandle.USER_ALL); } finally { } finally { Binder.restoreCallingIdentity(ident); Binder.restoreCallingIdentity(ident); } } services/core/java/com/android/server/job/controllers/IdleController.java +27 −23 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.server.job.controllers; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; import android.app.AlarmManager; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; Loading Loading @@ -101,18 +100,19 @@ public final class IdleController extends StateController { final class IdlenessTracker extends BroadcastReceiver { final class IdlenessTracker extends BroadcastReceiver { private AlarmManager mAlarm; private AlarmManager mAlarm; private PendingIntent mIdleTriggerIntent; boolean mIdle; // After construction, mutations of idle/screen-on state will only happen boolean mScreenOn; // on the main looper thread, either in onReceive() or in an alarm callback. private boolean mIdle; private boolean mScreenOn; private AlarmManager.OnAlarmListener mIdleAlarmListener = () -> { handleIdleTrigger(); }; public IdlenessTracker() { public IdlenessTracker() { mAlarm = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); mAlarm = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(ActivityManagerService.ACTION_TRIGGER_IDLE) .setPackage("android") .setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); mIdleTriggerIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0); // At boot we presume that the user has just "interacted" with the // At boot we presume that the user has just "interacted" with the // device in some meaningful way. // device in some meaningful way. mIdle = false; mIdle = false; Loading Loading @@ -150,7 +150,7 @@ public final class IdleController extends StateController { } } mScreenOn = true; mScreenOn = true; //cancel the alarm //cancel the alarm mAlarm.cancel(mIdleTriggerIntent); mAlarm.cancel(mIdleAlarmListener); if (mIdle) { if (mIdle) { // possible transition to not-idle // possible transition to not-idle mIdle = false; mIdle = false; Loading @@ -169,8 +169,13 @@ public final class IdleController extends StateController { } } mScreenOn = false; mScreenOn = false; mAlarm.setWindow(AlarmManager.ELAPSED_REALTIME_WAKEUP, mAlarm.setWindow(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, mIdleWindowSlop, mIdleTriggerIntent); when, mIdleWindowSlop, "JS idleness", mIdleAlarmListener, null); } else if (action.equals(ActivityManagerService.ACTION_TRIGGER_IDLE)) { } else if (action.equals(ActivityManagerService.ACTION_TRIGGER_IDLE)) { handleIdleTrigger(); } } private void handleIdleTrigger() { // idle time starts now. Do not set mIdle if screen is on. // idle time starts now. Do not set mIdle if screen is on. if (!mIdle && !mScreenOn) { if (!mIdle && !mScreenOn) { if (DEBUG) { if (DEBUG) { Loading @@ -186,7 +191,6 @@ public final class IdleController extends StateController { } } } } } } } @Override @Override public void dumpControllerStateLocked(IndentingPrintWriter pw, public void dumpControllerStateLocked(IndentingPrintWriter pw, Loading Loading
services/core/java/com/android/server/am/ActivityManagerService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -14830,7 +14830,7 @@ public class ActivityManagerService extends IActivityManager.Stub .setPackage("android") .setPackage("android") .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); broadcastIntent(null, intent, null, null, 0, null, null, null, broadcastIntent(null, intent, null, null, 0, null, null, null, OP_NONE, null, true, false, UserHandle.USER_ALL); OP_NONE, null, false, false, UserHandle.USER_ALL); } finally { } finally { Binder.restoreCallingIdentity(ident); Binder.restoreCallingIdentity(ident); } }
services/core/java/com/android/server/job/controllers/IdleController.java +27 −23 Original line number Original line Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.server.job.controllers; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock; import android.app.AlarmManager; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Context; import android.content.Intent; import android.content.Intent; Loading Loading @@ -101,18 +100,19 @@ public final class IdleController extends StateController { final class IdlenessTracker extends BroadcastReceiver { final class IdlenessTracker extends BroadcastReceiver { private AlarmManager mAlarm; private AlarmManager mAlarm; private PendingIntent mIdleTriggerIntent; boolean mIdle; // After construction, mutations of idle/screen-on state will only happen boolean mScreenOn; // on the main looper thread, either in onReceive() or in an alarm callback. private boolean mIdle; private boolean mScreenOn; private AlarmManager.OnAlarmListener mIdleAlarmListener = () -> { handleIdleTrigger(); }; public IdlenessTracker() { public IdlenessTracker() { mAlarm = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); mAlarm = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(ActivityManagerService.ACTION_TRIGGER_IDLE) .setPackage("android") .setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); mIdleTriggerIntent = PendingIntent.getBroadcast(mContext, 0, intent, 0); // At boot we presume that the user has just "interacted" with the // At boot we presume that the user has just "interacted" with the // device in some meaningful way. // device in some meaningful way. mIdle = false; mIdle = false; Loading Loading @@ -150,7 +150,7 @@ public final class IdleController extends StateController { } } mScreenOn = true; mScreenOn = true; //cancel the alarm //cancel the alarm mAlarm.cancel(mIdleTriggerIntent); mAlarm.cancel(mIdleAlarmListener); if (mIdle) { if (mIdle) { // possible transition to not-idle // possible transition to not-idle mIdle = false; mIdle = false; Loading @@ -169,8 +169,13 @@ public final class IdleController extends StateController { } } mScreenOn = false; mScreenOn = false; mAlarm.setWindow(AlarmManager.ELAPSED_REALTIME_WAKEUP, mAlarm.setWindow(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, mIdleWindowSlop, mIdleTriggerIntent); when, mIdleWindowSlop, "JS idleness", mIdleAlarmListener, null); } else if (action.equals(ActivityManagerService.ACTION_TRIGGER_IDLE)) { } else if (action.equals(ActivityManagerService.ACTION_TRIGGER_IDLE)) { handleIdleTrigger(); } } private void handleIdleTrigger() { // idle time starts now. Do not set mIdle if screen is on. // idle time starts now. Do not set mIdle if screen is on. if (!mIdle && !mScreenOn) { if (!mIdle && !mScreenOn) { if (DEBUG) { if (DEBUG) { Loading @@ -186,7 +191,6 @@ public final class IdleController extends StateController { } } } } } } } @Override @Override public void dumpControllerStateLocked(IndentingPrintWriter pw, public void dumpControllerStateLocked(IndentingPrintWriter pw, Loading