diff options
Diffstat (limited to 'cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java')
-rw-r--r-- | cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java index 01083f1608a..68caa26607c 100644 --- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java +++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java @@ -171,9 +171,7 @@ public final class Bmgr { if (sets == null || sets.length == 0) { System.out.println("No restore sets available"); } else { - for (RestoreSet s : sets) { - System.out.println(" " + s.token + " : " + s.name); - } + printRestoreSets(sets); } } catch (RemoteException e) { System.err.println(e.toString()); @@ -181,6 +179,12 @@ public final class Bmgr { } } + private void printRestoreSets(RestoreSet[] sets) { + for (RestoreSet s : sets) { + System.out.println(" " + s.token + " : " + s.name); + } + } + class RestoreObserver extends IRestoreObserver.Stub { boolean done; public void restoreStarting(int numPackages) { @@ -212,6 +216,7 @@ public final class Bmgr { RestoreObserver observer = new RestoreObserver(); try { + boolean didRestore = false; int curTransport = mBmgr.getCurrentTransport(); mRestore = mBmgr.beginRestoreSession(curTransport); if (mRestore == null) { @@ -223,9 +228,18 @@ public final class Bmgr { if (s.token == token) { System.out.println("Scheduling restore: " + s.name); mRestore.performRestore(token, observer); + didRestore = true; break; } } + if (!didRestore) { + if (sets == null || sets.length == 0) { + System.out.println("No available restore sets; no restore performed"); + } else { + System.out.println("No matching restore set token. Available sets:"); + printRestoreSets(sets); + } + } mRestore.endRestoreSession(); } catch (RemoteException e) { System.err.println(e.toString()); |