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

Commit 4ccfedcf authored by Bernardo Rufino's avatar Bernardo Rufino Committed by Android (Google) Code Review
Browse files

Merge "[KV] PerformBackupTask => KeyValueBackupTask"

parents 60d71277 cc714c1c
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -9258,20 +9258,20 @@ PLcom/android/server/backup/internal/BackupRequest;->toString()Ljava/lang/String
PLcom/android/server/backup/internal/BackupState;-><init>(Ljava/lang/String;I)V
PLcom/android/server/backup/internal/BackupState;->values()[Lcom/android/server/backup/internal/BackupState;
PLcom/android/server/backup/internal/Operation;-><init>(ILcom/android/server/backup/BackupRestoreTask;I)V
PLcom/android/server/backup/internal/PerformBackupTask;-><init>(Lcom/android/server/backup/BackupManagerService;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/ArrayList;Lcom/android/server/backup/DataChangedJournal;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZ)V
PLcom/android/server/backup/internal/PerformBackupTask;->backupPm()V
PLcom/android/server/backup/internal/PerformBackupTask;->beginBackup()V
PLcom/android/server/backup/internal/PerformBackupTask;->clearAgentState()V
PLcom/android/server/backup/internal/PerformBackupTask;->execute()V
PLcom/android/server/backup/internal/PerformBackupTask;->executeNextState(Lcom/android/server/backup/internal/BackupState;)V
PLcom/android/server/backup/internal/PerformBackupTask;->finalizeBackup()V
PLcom/android/server/backup/internal/PerformBackupTask;->invokeAgentForBackup(Ljava/lang/String;Landroid/app/IBackupAgent;)I
PLcom/android/server/backup/internal/PerformBackupTask;->invokeNextAgent()V
PLcom/android/server/backup/internal/PerformBackupTask;->operationComplete(J)V
PLcom/android/server/backup/internal/PerformBackupTask;->registerTask()V
PLcom/android/server/backup/internal/PerformBackupTask;->revertAndEndBackup()V
PLcom/android/server/backup/internal/PerformBackupTask;->unregisterTask()V
PLcom/android/server/backup/internal/PerformBackupTask;->writeWidgetPayloadIfAppropriate(Ljava/io/FileDescriptor;Ljava/lang/String;)V
PLcom/android/server/backup/internal/KeyValueBackupTask;-><init>(Lcom/android/server/backup/BackupManagerService;Lcom/android/server/backup/transport/TransportClient;Ljava/lang/String;Ljava/util/List;Lcom/android/server/backup/DataChangedJournal;Landroid/app/backup/IBackupObserver;Landroid/app/backup/IBackupManagerMonitor;Lcom/android/server/backup/internal/OnTaskFinishedListener;Ljava/util/List;ZZ)V
PLcom/android/server/backup/internal/KeyValueBackupTask;->backupPm()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->beginBackup()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->clearAgentState()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->execute()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->executeNextState(Lcom/android/server/backup/internal/BackupState;)V
PLcom/android/server/backup/internal/KeyValueBackupTask;->finalizeBackup()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->invokeAgentForBackup(Ljava/lang/String;Landroid/app/IBackupAgent;)I
PLcom/android/server/backup/internal/KeyValueBackupTask;->invokeNextAgent()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->operationComplete(J)V
PLcom/android/server/backup/internal/KeyValueBackupTask;->registerTask()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->revertAndEndBackup()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->unregisterTask()V
PLcom/android/server/backup/internal/KeyValueBackupTask;->writeWidgetPayloadIfAppropriate(Ljava/io/FileDescriptor;Ljava/lang/String;)V
PLcom/android/server/backup/internal/ProvisionedObserver;-><init>(Lcom/android/server/backup/BackupManagerService;Landroid/os/Handler;)V
PLcom/android/server/backup/internal/RunBackupReceiver;-><init>(Lcom/android/server/backup/BackupManagerService;)V
PLcom/android/server/backup/internal/RunBackupReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
+2 −2
Original line number Diff line number Diff line
@@ -154,7 +154,7 @@ public class BackupHandler extends Handler {
                                caller ->
                                        transportManager
                                                .disposeOfTransportClient(transportClient, caller);
                        PerformBackupTask.start(
                        KeyValueBackupTask.start(
                                backupManagerService,
                                transportClient,
                                transport.transportDirName(),
@@ -410,7 +410,7 @@ public class BackupHandler extends Handler {
                backupManagerService.setBackupRunning(true);
                backupManagerService.getWakelock().acquire();

                PerformBackupTask.start(
                KeyValueBackupTask.start(
                        backupManagerService,
                        params.transportClient,
                        params.dirName,
+18 −18
Original line number Diff line number Diff line
@@ -168,8 +168,8 @@ import java.util.concurrent.atomic.AtomicInteger;
// TODO: Stop poking into BMS state and doing things for it (e.g. synchronizing on public locks)
// TODO: Consider having the caller responsible for some clean-up (like resetting state)
// TODO: Distinguish between cancel and time-out where possible for logging/monitoring/observing
public class PerformBackupTask implements BackupRestoreTask, Runnable {
    private static final String TAG = "PerformBackupTask";
public class KeyValueBackupTask implements BackupRestoreTask, Runnable {
    private static final String TAG = "KeyValueBackupTask";
    private static final boolean DEBUG = BackupManagerService.DEBUG || true;
    private static final boolean MORE_DEBUG = BackupManagerService.MORE_DEBUG || false;
    private static final int THREAD_PRIORITY = Process.THREAD_PRIORITY_BACKGROUND;
@@ -181,7 +181,7 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
    public static final String NEW_STATE_FILE_SUFFIX = ".new";

    /**
     * Creates a new {@link PerformBackupTask} for key-value backup operation, spins up a new
     * Creates a new {@link KeyValueBackupTask} for key-value backup operation, spins up a new
     * dedicated thread and kicks off the operation in it.
     *
     * @param backupManagerService The {@link BackupManagerService} system service.
@@ -201,13 +201,13 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
     * @param userInitiated Whether this was user-initiated or not.
     * @param nonIncremental If {@code true}, this will be a complete backup for each package,
     *     otherwise it will be just an incremental one over the current dataset.
     * @return The {@link PerformBackupTask} that was started.
     * @return The {@link KeyValueBackupTask} that was started.
     */
    public static PerformBackupTask start(
    public static KeyValueBackupTask start(
            BackupManagerService backupManagerService,
            TransportClient transportClient,
            String transportDirName,
            ArrayList<BackupRequest> queue,
            List<BackupRequest> queue,
            @Nullable DataChangedJournal dataChangedJournal,
            IBackupObserver observer,
            IBackupManagerMonitor monitor,
@@ -215,8 +215,8 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
            List<String> pendingFullBackups,
            boolean userInitiated,
            boolean nonIncremental) {
        PerformBackupTask task =
                new PerformBackupTask(
        KeyValueBackupTask task =
                new KeyValueBackupTask(
                        backupManagerService,
                        transportClient,
                        transportDirName,
@@ -245,8 +245,8 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
    private final boolean mNonIncremental;
    private final int mCurrentOpToken;
    private final File mStateDir;
    private final ArrayList<BackupRequest> mOriginalQueue;
    private final ArrayList<BackupRequest> mQueue;
    private final List<BackupRequest> mOriginalQueue;
    private final List<BackupRequest> mQueue;
    private final List<String> mPendingFullBackups;
    @Nullable private final DataChangedJournal mJournal;
    private IBackupManagerMonitor mMonitor;
@@ -285,11 +285,11 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
    @Nullable private volatile RemoteCall mPendingCall;

    @VisibleForTesting
    public PerformBackupTask(
    public KeyValueBackupTask(
            BackupManagerService backupManagerService,
            TransportClient transportClient,
            String transportDirName,
            ArrayList<BackupRequest> queue,
            List<BackupRequest> queue,
            @Nullable DataChangedJournal journal,
            IBackupObserver observer,
            IBackupManagerMonitor monitor,
@@ -453,7 +453,7 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
        }
        File pmState = new File(mStateDir, PACKAGE_MANAGER_SENTINEL);
        try {
            IBackupTransport transport = mTransportClient.connectOrThrow("PBT.beginBackup()");
            IBackupTransport transport = mTransportClient.connectOrThrow("KVBT.beginBackup()");
            String transportName = transport.name();
            EventLog.writeEvent(EventLogTags.BACKUP_START, transportName);

@@ -696,7 +696,7 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
        // If everything actually went through and this is the first time we've
        // done a backup, we can now record what the current backup dataset token
        // is.
        String callerLogString = "PBT.finalizeBackup()";
        String callerLogString = "KVBT.finalizeBackup()";
        if ((mBackupManagerService.getCurrentToken() == 0) && (mStatus
                == BackupTransport.TRANSPORT_OK)) {
            mBackupManagerService.addBackupTrace("success; recording token");
@@ -843,7 +843,7 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
                            ParcelFileDescriptor.MODE_TRUNCATE);

            IBackupTransport transport =
                    mTransportClient.connectOrThrow("PBT.invokeAgentForBackup()");
                    mTransportClient.connectOrThrow("KVBT.invokeAgentForBackup()");

            final long quota = transport.getBackupQuota(packageName, false /* isFullBackup */);
            callingAgent = true;
@@ -1043,7 +1043,7 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
        mStatus = BackupTransport.TRANSPORT_OK;
        long size = 0;
        try {
            IBackupTransport transport = mTransportClient.connectOrThrow("PBT.handleAgentResult()");
            IBackupTransport transport = mTransportClient.connectOrThrow("KVBT.handleAgentResult()");
            size = mBackupDataFile.length();
            if (size > 0) {
                if (MORE_DEBUG) {
@@ -1191,7 +1191,7 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
            if (mAgentBinder != null) {
                try {
                    IBackupTransport transport =
                            mTransportClient.connectOrThrow("PBT.handleAgentResult()");
                            mTransportClient.connectOrThrow("KVBT.handleAgentResult()");
                    long quota = transport.getBackupQuota(mCurrentPackage.packageName, false);
                    mAgentBinder.doQuotaExceeded(size, quota);
                } catch (Exception e) {
@@ -1287,7 +1287,7 @@ public class PerformBackupTask implements BackupRestoreTask, Runnable {
        long delay;
        try {
            IBackupTransport transport =
                    mTransportClient.connectOrThrow("PBT.revertAndEndBackup()");
                    mTransportClient.connectOrThrow("KVBT.revertAndEndBackup()");
            delay = transport.requestBackupTime();
        } catch (Exception e) {
            Slog.w(TAG, "Unable to contact transport for recommended backoff: " + e.getMessage());
+9 −10
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ import com.android.server.testing.shadows.ShadowAppBackupUtils;
import com.android.server.testing.shadows.ShadowBackupPolicyEnforcer;
import com.android.server.testing.shadows.ShadowBinder;
import com.android.server.testing.shadows.ShadowKeyValueBackupJob;
import com.android.server.testing.shadows.ShadowPerformBackupTask;
import com.android.server.testing.shadows.ShadowKeyValueBackupTask;
import java.io.File;
import java.util.List;
import org.junit.After;
@@ -72,7 +72,6 @@ import org.robolectric.shadows.ShadowContextWrapper;
import org.robolectric.shadows.ShadowLooper;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.shadows.ShadowSettings;
import org.robolectric.shadows.ShadowSystemClock;

@RunWith(FrameworkRobolectricTestRunner.class)
@Config(
@@ -668,7 +667,7 @@ public class BackupManagerServiceTest {
    }

    private void tearDownForRequestBackup() {
        ShadowPerformBackupTask.reset();
        ShadowKeyValueBackupTask.reset();
    }

    @Test
@@ -755,12 +754,12 @@ public class BackupManagerServiceTest {

        assertThat(result).isEqualTo(BackupManager.SUCCESS);
        verify(mObserver).onResult(PACKAGE_1, BackupManager.ERROR_BACKUP_NOT_ALLOWED);
        // TODO: We probably don't need to kick-off PerformBackupTask when list is empty
        // TODO: We probably don't need to kick-off KeyValueBackupTask when list is empty
        tearDownForRequestBackup();
    }

    @Test
    @Config(shadows = ShadowPerformBackupTask.class)
    @Config(shadows = ShadowKeyValueBackupTask.class)
    public void testRequestBackup_whenPackageIsKeyValue() throws Exception {
        setUpForRequestBackup(PACKAGE_1);
        BackupManagerService backupManagerService = createBackupManagerServiceForRequestBackup();
@@ -769,15 +768,15 @@ public class BackupManagerServiceTest {

        mShadowBackupLooper.runToEndOfTasks();
        assertThat(result).isEqualTo(BackupManager.SUCCESS);
        ShadowPerformBackupTask shadowTask = ShadowPerformBackupTask.getLastCreated();
        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
        assertThat(shadowTask.getQueue()).containsExactly(new BackupRequest(PACKAGE_1));
        assertThat(shadowTask.getPendingFullBackups()).isEmpty();
        // TODO: Assert more about PerformBackupTask
        // TODO: Assert more about KeyValueBackupTask
        tearDownForRequestBackup();
    }

    @Test
    @Config(shadows = ShadowPerformBackupTask.class)
    @Config(shadows = ShadowKeyValueBackupTask.class)
    public void testRequestBackup_whenPackageIsFullBackup() throws Exception {
        setUpForRequestBackup(PACKAGE_1);
        ShadowAppBackupUtils.setAppGetsFullBackup(PACKAGE_1);
@@ -787,10 +786,10 @@ public class BackupManagerServiceTest {

        mShadowBackupLooper.runToEndOfTasks();
        assertThat(result).isEqualTo(BackupManager.SUCCESS);
        ShadowPerformBackupTask shadowTask = ShadowPerformBackupTask.getLastCreated();
        ShadowKeyValueBackupTask shadowTask = ShadowKeyValueBackupTask.getLastCreated();
        assertThat(shadowTask.getQueue()).isEmpty();
        assertThat(shadowTask.getPendingFullBackups()).containsExactly(PACKAGE_1);
        // TODO: Assert more about PerformBackupTask
        // TODO: Assert more about KeyValueBackupTask
        tearDownForRequestBackup();
    }

+149 −149

File changed and moved.

Preview size limit exceeded, changes collapsed.

Loading