summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2010-03-30 13:13:52 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-03-30 13:13:52 -0700
commitb3f7fe44f5a3a6a4c04d4102eb61f29edf83129c (patch)
tree7d22d070d522c8e9bbfe44113f4e44e761069a44 /cmds
parent454a956b52884083e3436fe2ea7e478df2bcbeea (diff)
parent22375e4a736c0d646c3cf0905c15126f7f4107c2 (diff)
downloadframeworks_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.java27
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);