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

Commit b33febb8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Explicitly ensure the standby bucket is updated in testing."

parents 427046cb 2c5045d4
Loading
Loading
Loading
Loading
+37 −32
Original line number Diff line number Diff line
@@ -1679,9 +1679,17 @@ public final class QuotaController extends StateController {
            // Update job bookkeeping out of band.
            JobSchedulerBackgroundThread.getHandler().post(() -> {
                final int bucketIndex = JobSchedulerService.standbyBucketToBucketIndex(bucket);
                updateStandbyBucket(userId, packageName, bucketIndex);
            });
        }
    }

    @VisibleForTesting
    void updateStandbyBucket(
            final int userId, final @NonNull String packageName, final int bucketIndex) {
        if (DEBUG) {
                    Slog.i(TAG, "Moving pkg " + string(userId, packageName) + " to bucketIndex "
                            + bucketIndex);
            Slog.i(TAG, "Moving pkg " + string(userId, packageName)
                    + " to bucketIndex " + bucketIndex);
        }
        List<JobStatus> restrictedChanges = new ArrayList<>();
        synchronized (mLock) {
@@ -1693,8 +1701,7 @@ public final class QuotaController extends StateController {
                JobStatus js = jobs.valueAt(i);
                // Effective standby bucket can change after this in some situations so
                // use the real bucket so that the job is tracked by the controllers.
                        if ((bucketIndex == RESTRICTED_INDEX
                                || js.getStandbyBucket() == RESTRICTED_INDEX)
                if ((bucketIndex == RESTRICTED_INDEX || js.getStandbyBucket() == RESTRICTED_INDEX)
                        && bucketIndex != js.getStandbyBucket()) {
                    restrictedChanges.add(js);
                }
@@ -1711,8 +1718,6 @@ public final class QuotaController extends StateController {
        if (restrictedChanges.size() > 0) {
            mStateChangedListener.onRestrictedBucketChanged(restrictedChanges);
        }
            });
        }
    }

    private final class DeleteTimingSessionsFunctor implements Consumer<List<TimingSession>> {
+3 −0
Original line number Diff line number Diff line
@@ -284,6 +284,8 @@ public class QuotaControllerTest {
                return UsageStatsManager.STANDBY_BUCKET_FREQUENT;
            case RARE_INDEX:
                return UsageStatsManager.STANDBY_BUCKET_RARE;
            case RESTRICTED_INDEX:
                return UsageStatsManager.STANDBY_BUCKET_RESTRICTED;
            default:
                return UsageStatsManager.STANDBY_BUCKET_NEVER;
        }
@@ -292,6 +294,7 @@ public class QuotaControllerTest {
    private void setStandbyBucket(int bucketIndex) {
        when(mUsageStatsManager.getAppStandbyBucket(eq(SOURCE_PACKAGE), eq(SOURCE_USER_ID),
                anyLong())).thenReturn(bucketIndexToUsageStatsBucket(bucketIndex));
        mQuotaController.updateStandbyBucket(SOURCE_USER_ID, SOURCE_PACKAGE, bucketIndex);
    }

    private void setStandbyBucket(int bucketIndex, JobStatus... jobs) {