Use a long for restore token

This commit is contained in:
Dan Egnor
2009-06-26 13:20:02 -07:00
parent 040441fa99
commit 156411df46
3 changed files with 12 additions and 14 deletions

View File

@@ -205,9 +205,9 @@ public final class Bmgr {
} }
private void doRestore() { private void doRestore() {
int token; long token;
try { try {
token = Integer.parseInt(nextArg()); token = Long.parseLong(nextArg());
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
showUsage(); showUsage();
return; return;

View File

@@ -45,7 +45,7 @@ interface IRestoreSession {
* @param observer If non-null, this binder points to an object that will receive * @param observer If non-null, this binder points to an object that will receive
* progress callbacks during the restore operation. * progress callbacks during the restore operation.
*/ */
int performRestore(int token, IRestoreObserver observer); int performRestore(long token, IRestoreObserver observer);
/** /**
* End this restore session. After this method is called, the IRestoreSession binder * End this restore session. After this method is called, the IRestoreSession binder

View File

@@ -138,10 +138,12 @@ class BackupManagerService extends IBackupManager.Stub {
private class RestoreParams { private class RestoreParams {
public IBackupTransport transport; public IBackupTransport transport;
public IRestoreObserver observer; public IRestoreObserver observer;
public long token;
RestoreParams(IBackupTransport _transport, IRestoreObserver _obs) { RestoreParams(IBackupTransport _transport, IRestoreObserver _obs, long _token) {
transport = _transport; transport = _transport;
observer = _obs; observer = _obs;
token = _token;
} }
} }
@@ -347,9 +349,8 @@ class BackupManagerService extends IBackupManager.Stub {
case MSG_RUN_RESTORE: case MSG_RUN_RESTORE:
{ {
int token = msg.arg1;
RestoreParams params = (RestoreParams)msg.obj; RestoreParams params = (RestoreParams)msg.obj;
(new PerformRestoreThread(params.transport, params.observer, token)).start(); (new PerformRestoreThread(params.transport, params.observer, params.token)).start();
break; break;
} }
} }
@@ -761,7 +762,7 @@ class BackupManagerService extends IBackupManager.Stub {
class PerformRestoreThread extends Thread { class PerformRestoreThread extends Thread {
private IBackupTransport mTransport; private IBackupTransport mTransport;
private IRestoreObserver mObserver; private IRestoreObserver mObserver;
private int mToken; private long mToken;
private RestoreSet mImage; private RestoreSet mImage;
private File mStateDir; private File mStateDir;
@@ -776,7 +777,7 @@ class BackupManagerService extends IBackupManager.Stub {
} }
PerformRestoreThread(IBackupTransport transport, IRestoreObserver observer, PerformRestoreThread(IBackupTransport transport, IRestoreObserver observer,
int restoreSetToken) { long restoreSetToken) {
mTransport = transport; mTransport = transport;
mObserver = observer; mObserver = observer;
mToken = restoreSetToken; mToken = restoreSetToken;
@@ -847,9 +848,7 @@ class BackupManagerService extends IBackupManager.Stub {
} }
} }
// STOPSHIP TODO: pick out the set for this token (instead of images[0]) if (!mTransport.startRestore(mToken, restorePackages.toArray(new PackageInfo[0]))) {
long token = images[0].token;
if (!mTransport.startRestore(token, restorePackages.toArray(new PackageInfo[0]))) {
// STOPSHIP TODO: Handle the failure somehow? // STOPSHIP TODO: Handle the failure somehow?
Log.e(TAG, "Error starting restore operation"); Log.e(TAG, "Error starting restore operation");
return; return;
@@ -1198,7 +1197,7 @@ class BackupManagerService extends IBackupManager.Stub {
} }
} }
public int performRestore(int token, IRestoreObserver observer) public int performRestore(long token, IRestoreObserver observer)
throws android.os.RemoteException { throws android.os.RemoteException {
mContext.enforceCallingPermission("android.permission.BACKUP", "performRestore"); mContext.enforceCallingPermission("android.permission.BACKUP", "performRestore");
@@ -1206,8 +1205,7 @@ class BackupManagerService extends IBackupManager.Stub {
for (int i = 0; i < mRestoreSets.length; i++) { for (int i = 0; i < mRestoreSets.length; i++) {
if (token == mRestoreSets[i].token) { if (token == mRestoreSets[i].token) {
Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE); Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
msg.obj = new RestoreParams(mRestoreTransport, observer); msg.obj = new RestoreParams(mRestoreTransport, observer, token);
msg.arg1 = token;
mBackupHandler.sendMessage(msg); mBackupHandler.sendMessage(msg);
return 0; return 0;
} }