Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 907a67b4 authored by Piyush Singhania's avatar Piyush Singhania Committed by Android (Google) Code Review
Browse files

Merge "Cleanup the flag android.app.job.Flags.ignore_important_while_foreground." into main

parents 1d62de1c eea0a1da
Loading
Loading
Loading
Loading
+3 −27
Original line number Diff line number Diff line
@@ -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)
@@ -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
+0 −3
Original line number Diff line number Diff line
@@ -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();
+1 −14
Original line number Diff line number Diff line
@@ -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;
@@ -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
+2 −4
Original line number Diff line number Diff line
@@ -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;
            }
+0 −11
Original line number Diff line number Diff line
@@ -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