summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorChristopher Tate <ctate@google.com>2010-03-30 13:17:23 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-03-30 13:17:23 -0700
commit4caee4f7199d43b98badb02c9b746af66062cef2 (patch)
tree2f86cde099635d98cc44e51eac687dd4ae629544 /cmds
parent2fa4ab04b43ea1e377d2921f6e5112025a6f1439 (diff)
parentb3f7fe44f5a3a6a4c04d4102eb61f29edf83129c (diff)
downloadframeworks_base-4caee4f7199d43b98badb02c9b746af66062cef2.zip
frameworks_base-4caee4f7199d43b98badb02c9b746af66062cef2.tar.gz
frameworks_base-4caee4f7199d43b98badb02c9b746af66062cef2.tar.bz2
am b3f7fe44: am 22375e4a: Merge "Make RestoreSession.getAvailableRestoreSets() asynchronous" into froyo
Merge commit 'b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c' into kraken * commit 'b3f7fe44f5a3a6a4c04d4102eb61f29edf83129c': 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);