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

Commit 40b31088 authored by Bagus Maulana's avatar Bagus Maulana
Browse files

Remove idle requirement for full backup on Wear

Bug: 269323514
Test: atest BackupFrameworksServicesRoboTests
Change-Id: I2793f9afaa17f5fe62af5831d522328d23e4d62a
(cherry picked from commit ef459c38bbacbbee80bd4df6bf737558593598c9)
parent faec5869
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);