summaryrefslogtreecommitdiffstats
path: root/core/java/android/backup
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2009-06-17 17:55:20 -0700
committerJoe Onorato <joeo@android.com>2009-06-17 17:57:30 -0700
commit83248c432ffe2e2a17abbc8e4960c26574b46bca (patch)
tree9e8de2f1eb84d52481573c9c1d824c6be4a6fdc0 /core/java/android/backup
parent6ce1983a2b5e9f5e735ac09b270b400084edb7db (diff)
downloadframeworks_base-83248c432ffe2e2a17abbc8e4960c26574b46bca.zip
frameworks_base-83248c432ffe2e2a17abbc8e4960c26574b46bca.tar.gz
frameworks_base-83248c432ffe2e2a17abbc8e4960c26574b46bca.tar.bz2
backup fixes:
- BackupTestAgent calls the DispatchHelper - Make BackupAgent.onRestore take a BackupDataInput, not just a generic ParcelFileDescriptor.
Diffstat (limited to 'core/java/android/backup')
-rw-r--r--core/java/android/backup/BackupDataOutput.java4
-rw-r--r--core/java/android/backup/RestoreHelperDispatcher.java17
2 files changed, 18 insertions, 3 deletions
diff --git a/core/java/android/backup/BackupDataOutput.java b/core/java/android/backup/BackupDataOutput.java
index 1348d81..a6d5bec 100644
--- a/core/java/android/backup/BackupDataOutput.java
+++ b/core/java/android/backup/BackupDataOutput.java
@@ -24,13 +24,11 @@ import java.io.IOException;
/** @hide */
public class BackupDataOutput {
int mBackupWriter;
- private Context mContext;
public static final int OP_UPDATE = 1;
public static final int OP_DELETE = 2;
- public BackupDataOutput(Context context, FileDescriptor fd) {
- mContext = context;
+ public BackupDataOutput(FileDescriptor fd) {
if (fd == null) throw new NullPointerException();
mBackupWriter = ctor(fd);
if (mBackupWriter == 0) {
diff --git a/core/java/android/backup/RestoreHelperDispatcher.java b/core/java/android/backup/RestoreHelperDispatcher.java
index 8fcade4..5928914 100644
--- a/core/java/android/backup/RestoreHelperDispatcher.java
+++ b/core/java/android/backup/RestoreHelperDispatcher.java
@@ -16,11 +16,15 @@
package android.backup;
+import android.util.Log;
+
import java.io.IOException;
import java.util.HashMap;
/** @hide */
public class RestoreHelperDispatcher {
+ private static final String TAG = "RestoreHelperDispatcher";
+
HashMap<String,RestoreHelper> mHelpers = new HashMap<String,RestoreHelper>();
public void addHelper(String keyPrefix, RestoreHelper helper) {
@@ -28,8 +32,11 @@ public class RestoreHelperDispatcher {
}
public void dispatch(BackupDataInput input) throws IOException {
+ boolean alreadyComplained = false;
+
BackupDataInputStream stream = new BackupDataInputStream(input);
while (input.readNextHeader()) {
+
String rawKey = input.getKey();
int pos = rawKey.indexOf(':');
if (pos > 0) {
@@ -39,6 +46,16 @@ public class RestoreHelperDispatcher {
stream.dataSize = input.getDataSize();
stream.key = rawKey.substring(pos+1);
helper.restoreEntity(stream);
+ } else {
+ if (!alreadyComplained) {
+ Log.w(TAG, "Couldn't find helper for: '" + rawKey + "'");
+ alreadyComplained = true;
+ }
+ }
+ } else {
+ if (!alreadyComplained) {
+ Log.w(TAG, "Entity with no prefix: '" + rawKey + "'");
+ alreadyComplained = true;
}
}
input.skipEntityData(); // In case they didn't consume the data.