diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/app/BackupAgent.java | 11 | ||||
| -rw-r--r-- | core/java/android/app/FullBackupAgent.java | 2 | ||||
| -rw-r--r-- | core/java/android/app/IBackupAgent.aidl | 7 | ||||
| -rw-r--r-- | core/java/android/backup/BackupHelperAgent.java | 4 | ||||
| -rw-r--r-- | core/java/android/backup/BackupHelperDispatcher.java | 3 | ||||
| -rw-r--r-- | core/java/android/backup/IBackupManager.aidl | 8 |
6 files changed, 23 insertions, 12 deletions
diff --git a/core/java/android/app/BackupAgent.java b/core/java/android/app/BackupAgent.java index 85c001c097c6..e8107756cc6f 100644 --- a/core/java/android/app/BackupAgent.java +++ b/core/java/android/app/BackupAgent.java @@ -78,11 +78,16 @@ public abstract class BackupAgent extends ContextWrapper { * * @param data An open, read-only ParcelFileDescriptor pointing to a full snapshot * of the application's data. + * @param appVersionCode The android:versionCode value of the application that backed + * up this particular data set. This makes it easier for an application's + * agent to distinguish among several possible older data versions when + * asked to perform the restore operation. * @param newState An open, read/write ParcelFileDescriptor pointing to an empty * file. The application should record the final backup state * here after restoring its data from dataFd. */ - public abstract void onRestore(BackupDataInput data, ParcelFileDescriptor newState) + public abstract void onRestore(BackupDataInput data, int appVersionCode, + ParcelFileDescriptor newState) throws IOException; @@ -121,13 +126,13 @@ public abstract class BackupAgent extends ContextWrapper { } } - public void doRestore(ParcelFileDescriptor data, + public void doRestore(ParcelFileDescriptor data, int appVersionCode, ParcelFileDescriptor newState) throws RemoteException { // !!! TODO - real implementation; for now just invoke the callbacks directly Log.v(TAG, "doRestore() invoked"); BackupDataInput input = new BackupDataInput(data.getFileDescriptor()); try { - BackupAgent.this.onRestore(input, newState); + BackupAgent.this.onRestore(input, appVersionCode, newState); } catch (IOException ex) { Log.d(TAG, "onRestore (" + BackupAgent.this.getClass().getName() + ") threw", ex); throw new RuntimeException(ex); diff --git a/core/java/android/app/FullBackupAgent.java b/core/java/android/app/FullBackupAgent.java index bc6bb151baf4..d89db9667473 100644 --- a/core/java/android/app/FullBackupAgent.java +++ b/core/java/android/app/FullBackupAgent.java @@ -53,6 +53,6 @@ public class FullBackupAgent extends BackupAgent { } @Override - public void onRestore(BackupDataInput data, ParcelFileDescriptor newState) { + public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) { } } diff --git a/core/java/android/app/IBackupAgent.aidl b/core/java/android/app/IBackupAgent.aidl index bb9f00830d8e..9b0550fce64b 100644 --- a/core/java/android/app/IBackupAgent.aidl +++ b/core/java/android/app/IBackupAgent.aidl @@ -51,9 +51,14 @@ interface IBackupAgent { * app's backup. This is to be a <i>replacement</i> of the app's * current data, not to be merged into it. * + * @param appVersionCode The android:versionCode attribute of the application + * that created this data set. This can help the agent distinguish among + * various historical backup content possibilities. + * * @param newState Read-write file, empty when onRestore() is called, * that is to be written with the state description that holds after * the restore has been completed. */ - void doRestore(in ParcelFileDescriptor data, in ParcelFileDescriptor newState); + void doRestore(in ParcelFileDescriptor data, int appVersionCode, + in ParcelFileDescriptor newState); } diff --git a/core/java/android/backup/BackupHelperAgent.java b/core/java/android/backup/BackupHelperAgent.java index f7eb1b88df47..3720d5088635 100644 --- a/core/java/android/backup/BackupHelperAgent.java +++ b/core/java/android/backup/BackupHelperAgent.java @@ -39,9 +39,9 @@ public class BackupHelperAgent extends BackupAgent { } @Override - public void onRestore(BackupDataInput data, ParcelFileDescriptor newState) + public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) throws IOException { - mDispatcher.performRestore(data, newState); + mDispatcher.performRestore(data, appVersionCode, newState); } public BackupHelperDispatcher getDispatcher() { diff --git a/core/java/android/backup/BackupHelperDispatcher.java b/core/java/android/backup/BackupHelperDispatcher.java index e9a8f71b4e1c..b25c3e3ed884 100644 --- a/core/java/android/backup/BackupHelperDispatcher.java +++ b/core/java/android/backup/BackupHelperDispatcher.java @@ -46,7 +46,8 @@ public class BackupHelperDispatcher { } } - public void performRestore(BackupDataInput input, ParcelFileDescriptor newState) + public void performRestore(BackupDataInput input, int appVersionCode, + ParcelFileDescriptor newState) throws IOException { boolean alreadyComplained = false; diff --git a/core/java/android/backup/IBackupManager.aidl b/core/java/android/backup/IBackupManager.aidl index efc664c54a24..d6283d048b7d 100644 --- a/core/java/android/backup/IBackupManager.aidl +++ b/core/java/android/backup/IBackupManager.aidl @@ -33,19 +33,19 @@ interface IBackupManager { * Tell the system service that the caller has made changes to its * data, and therefore needs to undergo an incremental backup pass. */ - oneway void dataChanged(String packageName); + void dataChanged(String packageName); /** * Notifies the Backup Manager Service that an agent has become available. This * method is only invoked by the Activity Manager. */ - oneway void agentConnected(String packageName, IBinder agent); + void agentConnected(String packageName, IBinder agent); /** * Notify the Backup Manager Service that an agent has unexpectedly gone away. * This method is only invoked by the Activity Manager. */ - oneway void agentDisconnected(String packageName); + void agentDisconnected(String packageName); /** * Schedule an immediate backup attempt for all pending updates. This is @@ -57,7 +57,7 @@ interface IBackupManager { * * <p>Callers must hold the android.permission.BACKUP permission to use this method. */ - oneway void backupNow(); + void backupNow(); /** * Identify the currently selected transport. Callers must hold the |
