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

Commit 83dbf79e authored by Bagus Maulana's avatar Bagus Maulana Committed by Android (Google) Code Review
Browse files

Merge "Remove idle requirement for full backup on Wear"

parents 42599d01 40b31088
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.SparseArray;

@@ -52,13 +53,15 @@ public class FullBackupJob extends JobService {
        JobInfo.Builder builder = new JobInfo.Builder(getJobIdForUserId(userId), sIdleService);
        final BackupManagerConstants constants = userBackupManagerService.getConstants();
        synchronized (constants) {
            builder.setRequiresDeviceIdle(true)
                    .setRequiredNetworkType(constants.getFullBackupRequiredNetworkType())
            builder.setRequiredNetworkType(constants.getFullBackupRequiredNetworkType())
                    .setRequiresCharging(constants.getFullBackupRequireCharging());
        }
        if (minDelay > 0) {
            builder.setMinimumLatency(minDelay);
        }
        if (!ctx.getPackageManager().hasSystemFeature(PackageManager.FEATURE_WATCH)) {
            builder.setRequiresDeviceIdle(true);
        }

        Bundle extraInfo = new Bundle();
        extraInfo.putInt(USER_ID_EXTRA_KEY, userId);
+22 −0
Original line number Diff line number Diff line
@@ -19,10 +19,13 @@ package com.android.server.backup;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;

import android.annotation.UserIdInt;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;
@@ -86,6 +89,25 @@ public class FullBackupJobTest {
        assertThat(mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserTwoId))).isNotNull();
    }

    @Test
    public void testSchedule_notWatch_requiresDeviceIdle() {
        shadowOf(mContext.getPackageManager())
                .setSystemFeature(PackageManager.FEATURE_WATCH, false);
        FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService);

        JobInfo pendingJob = mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId));
        assertThat(pendingJob.isRequireDeviceIdle()).isTrue();
    }

    @Test
    public void testSchedule_isWatch_doesNotRequireDeviceIdle() {
        shadowOf(mContext.getPackageManager()).setSystemFeature(PackageManager.FEATURE_WATCH, true);
        FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService);

        JobInfo pendingJob = mShadowJobScheduler.getPendingJob(getJobIdForUserId(mUserOneId));
        assertThat(pendingJob.isRequireDeviceIdle()).isFalse();
    }

    @Test
    public void testCancel_afterCancelling_jobDoesntExist() {
        FullBackupJob.schedule(mUserOneId, mContext, 0, mUserBackupManagerService);