diff options
| author | Christopher Tate <ctate@google.com> | 2010-03-30 13:13:52 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-03-30 13:13:52 -0700 |
| commit | b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c (patch) | |
| tree | 7d22d070d522c8e9bbfe44113f4e44e761069a44 /cmds | |
| parent | 454a956b52884083e3436fe2ea7e478df2bcbeea (diff) | |
| parent | 22375e4a736c0d646c3cf0905c15126f7f4107c2 (diff) | |
| download | frameworks_base-b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c.zip frameworks_base-b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c.tar.gz frameworks_base-b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c.tar.bz2 | |
am 22375e4a: Merge "Make RestoreSession.getAvailableRestoreSets() asynchronous" into froyo
Merge commit '22375e4a736c0d646c3cf0905c15126f7f4107c2' into froyo-plus-aosp
* commit '22375e4a736c0d646c3cf0905c15126f7f4107c2':
Make RestoreSession.getAvailableRestoreSets() asynchronous
Diffstat (limited to 'cmds')
| -rw-r--r-- | cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java index fa8a7c8..5612158 100644 --- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java +++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java @@ -254,11 +254,13 @@ public final class Bmgr { private void doListRestoreSets() { try { - RestoreSet[] sets = mRestore.getAvailableRestoreSets(); - if (sets == null || sets.length == 0) { - System.out.println("No restore sets available"); + RestoreObserver observer = new RestoreObserver(); + int err = mRestore.getAvailableRestoreSets(observer); + if (err != 0) { + System.out.println("Unable to request restore sets"); } else { - printRestoreSets(sets); + observer.waitForCompletion(); + printRestoreSets(observer.sets); } } catch (RemoteException e) { System.err.println(e.toString()); @@ -274,6 +276,16 @@ public final class Bmgr { class RestoreObserver extends IRestoreObserver.Stub { boolean done; + RestoreSet[] sets = null; + + public void restoreSetsAvailable(RestoreSet[] result) { + synchronized (this) { + sets = result; + done = true; + this.notify(); + } + } + public void restoreStarting(int numPackages) { System.out.println("restoreStarting: " + numPackages + " packages"); } @@ -359,8 +371,11 @@ public final class Bmgr { System.err.println(BMGR_NOT_RUNNING_ERR); return; } - RestoreSet[] sets = mRestore.getAvailableRestoreSets(); - if (sets != null) { + RestoreSet[] sets = null; + int err = mRestore.getAvailableRestoreSets(observer); + if (err != 0) { + observer.waitForCompletion(); + sets = observer.sets; for (RestoreSet s : sets) { if (s.token == token) { System.out.println("Scheduling restore: " + s.name); |
