Merge "Remove idle requirement for full backup on Wear"
This commit is contained in:
committed by
Android (Google) Code Review
commit
83dbf79e8e
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user