diff options
author | Shreyas Basarge <snb@google.com> | 2017-01-11 17:15:58 +0000 |
---|---|---|
committer | Shreyas Basarge <snb@google.com> | 2017-01-19 22:13:01 +0000 |
commit | 38e7486d3870797f7cc6e2cd2f5b59462a66b1a6 (patch) | |
tree | 03c22a4d2f3c60e19c4390c77d6e2fe30066b6f3 /cmds/bmgr | |
parent | 0ae1a7d9e97b99b63397030fee4deec3f5eb47b2 (diff) |
Non incremental backup flag for requestBackup
This cl adds a new requestBackup API to
BackupManager that takes in an int flag
to indicate whether the caller wants the
entire key value set to be passed to the
transport and not just a diff.
Change-Id: Ia225797a58c4431fe742f2f116b257d006b30cd1
Bug: 33749084
Ref: go/request-backup-api-changes
Test: GTS Test at ag/1774002
Diffstat (limited to 'cmds/bmgr')
-rw-r--r-- | cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java index 5bf80765a7de..780db5e26c35 100644 --- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java +++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java @@ -270,7 +270,7 @@ public final class Bmgr { } } - private void backupNowAllPackages() { + private void backupNowAllPackages(boolean nonIncrementalBackup) { int userId = UserHandle.USER_SYSTEM; IPackageManager mPm = IPackageManager.Stub.asInterface(ServiceManager.getService("package")); @@ -297,14 +297,19 @@ public final class Bmgr { System.err.println(BMGR_NOT_RUNNING_ERR); } } - backupNowPackages(packages); + backupNowPackages(packages, nonIncrementalBackup); } } - private void backupNowPackages(List<String> packages) { + private void backupNowPackages(List<String> packages, boolean nonIncrementalBackup) { + int flags = 0; + if (nonIncrementalBackup) { + flags |= BackupManager.FLAG_NON_INCREMENTAL_BACKUP; + } try { BackupObserver observer = new BackupObserver(); - int err = mBmgr.requestBackup(packages.toArray(new String[packages.size()]), observer); + int err = mBmgr.requestBackup(packages.toArray(new String[packages.size()]), observer, + flags); if (err == 0) { // Off and running -- wait for the backup to complete observer.waitForCompletion(); @@ -320,24 +325,31 @@ public final class Bmgr { private void doBackupNow() { String pkg; boolean backupAll = false; + boolean nonIncrementalBackup = false; ArrayList<String> allPkgs = new ArrayList<String>(); while ((pkg = nextArg()) != null) { if (pkg.equals("--all")) { backupAll = true; + } else if (pkg.equals("--non-incremental")) { + nonIncrementalBackup = true; + } else if (pkg.equals("--incremental")) { + nonIncrementalBackup = false; } else { allPkgs.add(pkg); } } if (backupAll) { if (allPkgs.size() == 0) { - System.out.println("Running backup for all packages."); - backupNowAllPackages(); + System.out.println("Running " + (nonIncrementalBackup ? "non-" : "") + + "incremental backup for all packages."); + backupNowAllPackages(nonIncrementalBackup); } else { System.err.println("Provide only '--all' flag or list of packages."); } } else if (allPkgs.size() > 0) { - System.out.println("Running backup for " + allPkgs.size() +" requested packages."); - backupNowPackages(allPkgs); + System.out.println("Running " + (nonIncrementalBackup ? "non-" : "") + + "incremental backup for " + allPkgs.size() +" requested packages."); + backupNowPackages(allPkgs, nonIncrementalBackup); } else { System.err.println("Provide '--all' flag or list of packages."); } |