Loading apex/jobscheduler/framework/java/android/app/job/JobInfo.java +3 −27 Original line number Diff line number Diff line Loading @@ -875,14 +875,10 @@ public class JobInfo implements Parcelable { * * @deprecated Use {@link #isExpedited()} instead. */ @FlaggedApi(Flags.FLAG_IGNORE_IMPORTANT_WHILE_FOREGROUND) @Deprecated public boolean isImportantWhileForeground() { if (Flags.ignoreImportantWhileForeground()) { return false; } return (flags & FLAG_IMPORTANT_WHILE_FOREGROUND) != 0; } /** * @see JobInfo.Builder#setPrefetch(boolean) Loading Loading @@ -2216,31 +2212,11 @@ public class JobInfo implements Parcelable { */ @Deprecated public Builder setImportantWhileForeground(boolean importantWhileForeground) { if (Flags.ignoreImportantWhileForeground()) { Log.w(TAG, "Requested important-while-foreground flag for job" + mJobId + " is ignored and takes no effect"); return this; } if (importantWhileForeground) { mFlags |= FLAG_IMPORTANT_WHILE_FOREGROUND; if (mPriority == PRIORITY_DEFAULT) { // The default priority for important-while-foreground is HIGH, but only change // this if .setPriority() hasn't been called yet. mPriority = PRIORITY_HIGH; } } else { if (mPriority == PRIORITY_HIGH && (mFlags & FLAG_IMPORTANT_WHILE_FOREGROUND) != 0) { // Reset the priority for the job, but only change this if .setPriority() // hasn't been called yet. mPriority = PRIORITY_DEFAULT; } mFlags &= (~FLAG_IMPORTANT_WHILE_FOREGROUND); } return this; } /** * Setting this to true indicates that this job is designed to prefetch * content that will make a material improvement to the experience of Loading apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +0 −3 Original line number Diff line number Diff line Loading @@ -5965,9 +5965,6 @@ public class JobSchedulerService extends com.android.server.SystemService pw.print(Flags.FLAG_DO_NOT_FORCE_RUSH_EXECUTION_AT_BOOT, Flags.doNotForceRushExecutionAtBoot()); pw.println(); pw.print(android.app.job.Flags.FLAG_IGNORE_IMPORTANT_WHILE_FOREGROUND, android.app.job.Flags.ignoreImportantWhileForeground()); pw.println(); pw.print(android.app.job.Flags.FLAG_GET_PENDING_JOB_REASONS_API, android.app.job.Flags.getPendingJobReasonsApi()); pw.println(); Loading apex/jobscheduler/service/java/com/android/server/job/controllers/DeviceIdleJobsController.java +1 −14 Original line number 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 android.annotation.NonNull; import android.app.job.JobInfo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading Loading @@ -222,30 +221,18 @@ public final class DeviceIdleJobsController extends StateController { } private boolean updateTaskStateLocked(JobStatus task, final long nowElapsed) { final boolean allowInIdle = (!android.app.job.Flags.ignoreImportantWhileForeground() && ((task.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0)) && (mForegroundUids.get(task.getSourceUid()) || isTempWhitelistedLocked(task)); final boolean whitelisted = isWhitelistedLocked(task); final boolean enableTask = !mDeviceIdleMode || whitelisted || allowInIdle; final boolean enableTask = !mDeviceIdleMode || whitelisted; return task.setDeviceNotDozingConstraintSatisfied(nowElapsed, enableTask, whitelisted); } @Override public void maybeStartTrackingJobLocked(JobStatus jobStatus, JobStatus lastJob) { if (!android.app.job.Flags.ignoreImportantWhileForeground() && (jobStatus.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0) { mAllowInIdleJobs.add(jobStatus); } updateTaskStateLocked(jobStatus, sElapsedRealtimeClock.millis()); } @Override public void maybeStopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob) { if (!android.app.job.Flags.ignoreImportantWhileForeground() && (jobStatus.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0) { mAllowInIdleJobs.remove(jobStatus); } } @Override Loading apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java +2 −4 Original line number Diff line number Diff line Loading @@ -847,10 +847,8 @@ public final class QuotaController extends StateController { final boolean isInPrivilegedState = mTopAppCache.get(jobStatus.getSourceUid()) || isTopStartedJobLocked(jobStatus) || isUidInForeground(jobStatus.getSourceUid()); final boolean isJobImportant = jobStatus.getEffectivePriority() >= JobInfo.PRIORITY_HIGH || (!android.app.job.Flags.ignoreImportantWhileForeground() && (jobStatus.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0); final boolean isJobImportant = jobStatus.getEffectivePriority() >= JobInfo.PRIORITY_HIGH; if (isInPrivilegedState && isJobImportant) { return mConstants.RUNTIME_FREE_QUOTA_MAX_LIMIT_MS; } Loading apex/jobscheduler/service/java/com/android/server/job/restrictions/ThermalStatusRestriction.java +0 −11 Original line number Diff line number Diff line Loading @@ -119,17 +119,6 @@ public class ThermalStatusRestriction extends JobRestriction { || (mService.isCurrentlyRunningLocked(job) && mService.isJobInOvertimeLocked(job)); } if (Flags.thermalRestrictionsToFgsJobs()) { // Only let foreground jobs run if: // 1. They haven't previously run // 2. They're already running and aren't yet in overtime if (bias >= JobInfo.BIAS_FOREGROUND_SERVICE && job.getJob().isImportantWhileForeground()) { return job.getNumPreviousAttempts() > 0 || (mService.isCurrentlyRunningLocked(job) && mService.isJobInOvertimeLocked(job)); } } if (priority == JobInfo.PRIORITY_HIGH) { return !mService.isCurrentlyRunningLocked(job) || mService.isJobInOvertimeLocked(job); Loading Loading
apex/jobscheduler/framework/java/android/app/job/JobInfo.java +3 −27 Original line number Diff line number Diff line Loading @@ -875,14 +875,10 @@ public class JobInfo implements Parcelable { * * @deprecated Use {@link #isExpedited()} instead. */ @FlaggedApi(Flags.FLAG_IGNORE_IMPORTANT_WHILE_FOREGROUND) @Deprecated public boolean isImportantWhileForeground() { if (Flags.ignoreImportantWhileForeground()) { return false; } return (flags & FLAG_IMPORTANT_WHILE_FOREGROUND) != 0; } /** * @see JobInfo.Builder#setPrefetch(boolean) Loading Loading @@ -2216,31 +2212,11 @@ public class JobInfo implements Parcelable { */ @Deprecated public Builder setImportantWhileForeground(boolean importantWhileForeground) { if (Flags.ignoreImportantWhileForeground()) { Log.w(TAG, "Requested important-while-foreground flag for job" + mJobId + " is ignored and takes no effect"); return this; } if (importantWhileForeground) { mFlags |= FLAG_IMPORTANT_WHILE_FOREGROUND; if (mPriority == PRIORITY_DEFAULT) { // The default priority for important-while-foreground is HIGH, but only change // this if .setPriority() hasn't been called yet. mPriority = PRIORITY_HIGH; } } else { if (mPriority == PRIORITY_HIGH && (mFlags & FLAG_IMPORTANT_WHILE_FOREGROUND) != 0) { // Reset the priority for the job, but only change this if .setPriority() // hasn't been called yet. mPriority = PRIORITY_DEFAULT; } mFlags &= (~FLAG_IMPORTANT_WHILE_FOREGROUND); } return this; } /** * Setting this to true indicates that this job is designed to prefetch * content that will make a material improvement to the experience of Loading
apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java +0 −3 Original line number Diff line number Diff line Loading @@ -5965,9 +5965,6 @@ public class JobSchedulerService extends com.android.server.SystemService pw.print(Flags.FLAG_DO_NOT_FORCE_RUSH_EXECUTION_AT_BOOT, Flags.doNotForceRushExecutionAtBoot()); pw.println(); pw.print(android.app.job.Flags.FLAG_IGNORE_IMPORTANT_WHILE_FOREGROUND, android.app.job.Flags.ignoreImportantWhileForeground()); pw.println(); pw.print(android.app.job.Flags.FLAG_GET_PENDING_JOB_REASONS_API, android.app.job.Flags.getPendingJobReasonsApi()); pw.println(); Loading
apex/jobscheduler/service/java/com/android/server/job/controllers/DeviceIdleJobsController.java +1 −14 Original line number 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 android.annotation.NonNull; import android.app.job.JobInfo; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; Loading Loading @@ -222,30 +221,18 @@ public final class DeviceIdleJobsController extends StateController { } private boolean updateTaskStateLocked(JobStatus task, final long nowElapsed) { final boolean allowInIdle = (!android.app.job.Flags.ignoreImportantWhileForeground() && ((task.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0)) && (mForegroundUids.get(task.getSourceUid()) || isTempWhitelistedLocked(task)); final boolean whitelisted = isWhitelistedLocked(task); final boolean enableTask = !mDeviceIdleMode || whitelisted || allowInIdle; final boolean enableTask = !mDeviceIdleMode || whitelisted; return task.setDeviceNotDozingConstraintSatisfied(nowElapsed, enableTask, whitelisted); } @Override public void maybeStartTrackingJobLocked(JobStatus jobStatus, JobStatus lastJob) { if (!android.app.job.Flags.ignoreImportantWhileForeground() && (jobStatus.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0) { mAllowInIdleJobs.add(jobStatus); } updateTaskStateLocked(jobStatus, sElapsedRealtimeClock.millis()); } @Override public void maybeStopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob) { if (!android.app.job.Flags.ignoreImportantWhileForeground() && (jobStatus.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0) { mAllowInIdleJobs.remove(jobStatus); } } @Override Loading
apex/jobscheduler/service/java/com/android/server/job/controllers/QuotaController.java +2 −4 Original line number Diff line number Diff line Loading @@ -847,10 +847,8 @@ public final class QuotaController extends StateController { final boolean isInPrivilegedState = mTopAppCache.get(jobStatus.getSourceUid()) || isTopStartedJobLocked(jobStatus) || isUidInForeground(jobStatus.getSourceUid()); final boolean isJobImportant = jobStatus.getEffectivePriority() >= JobInfo.PRIORITY_HIGH || (!android.app.job.Flags.ignoreImportantWhileForeground() && (jobStatus.getFlags() & JobInfo.FLAG_IMPORTANT_WHILE_FOREGROUND) != 0); final boolean isJobImportant = jobStatus.getEffectivePriority() >= JobInfo.PRIORITY_HIGH; if (isInPrivilegedState && isJobImportant) { return mConstants.RUNTIME_FREE_QUOTA_MAX_LIMIT_MS; } Loading
apex/jobscheduler/service/java/com/android/server/job/restrictions/ThermalStatusRestriction.java +0 −11 Original line number Diff line number Diff line Loading @@ -119,17 +119,6 @@ public class ThermalStatusRestriction extends JobRestriction { || (mService.isCurrentlyRunningLocked(job) && mService.isJobInOvertimeLocked(job)); } if (Flags.thermalRestrictionsToFgsJobs()) { // Only let foreground jobs run if: // 1. They haven't previously run // 2. They're already running and aren't yet in overtime if (bias >= JobInfo.BIAS_FOREGROUND_SERVICE && job.getJob().isImportantWhileForeground()) { return job.getNumPreviousAttempts() > 0 || (mService.isCurrentlyRunningLocked(job) && mService.isJobInOvertimeLocked(job)); } } if (priority == JobInfo.PRIORITY_HIGH) { return !mService.isCurrentlyRunningLocked(job) || mService.isJobInOvertimeLocked(job); Loading