am 9c3cee98: API CHANGE: Backup/restore API changes requested by the API Council
Merge commit '9c3cee9824026764275e4d84ba9b5d9fdc5da690' into kraken * commit '9c3cee9824026764275e4d84ba9b5d9fdc5da690': API CHANGE: Backup/restore API changes requested by the API Council
This commit is contained in:
@@ -27412,17 +27412,6 @@
|
|||||||
<parameter name="context" type="android.content.Context">
|
<parameter name="context" type="android.content.Context">
|
||||||
</parameter>
|
</parameter>
|
||||||
</constructor>
|
</constructor>
|
||||||
<method name="beginRestoreSession"
|
|
||||||
return="android.app.backup.RestoreSession"
|
|
||||||
abstract="false"
|
|
||||||
native="false"
|
|
||||||
synchronized="false"
|
|
||||||
static="false"
|
|
||||||
final="false"
|
|
||||||
deprecated="not deprecated"
|
|
||||||
visibility="public"
|
|
||||||
>
|
|
||||||
</method>
|
|
||||||
<method name="dataChanged"
|
<method name="dataChanged"
|
||||||
return="void"
|
return="void"
|
||||||
abstract="false"
|
abstract="false"
|
||||||
@@ -27447,6 +27436,19 @@
|
|||||||
<parameter name="packageName" type="java.lang.String">
|
<parameter name="packageName" type="java.lang.String">
|
||||||
</parameter>
|
</parameter>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="requestRestore"
|
||||||
|
return="int"
|
||||||
|
abstract="false"
|
||||||
|
native="false"
|
||||||
|
synchronized="false"
|
||||||
|
static="false"
|
||||||
|
final="false"
|
||||||
|
deprecated="not deprecated"
|
||||||
|
visibility="public"
|
||||||
|
>
|
||||||
|
<parameter name="observer" type="android.app.backup.RestoreObserver">
|
||||||
|
</parameter>
|
||||||
|
</method>
|
||||||
</class>
|
</class>
|
||||||
<class name="FileBackupHelper"
|
<class name="FileBackupHelper"
|
||||||
extends="android.app.backup.FileBackupHelperBase"
|
extends="android.app.backup.FileBackupHelperBase"
|
||||||
@@ -27540,41 +27542,6 @@
|
|||||||
>
|
>
|
||||||
</constructor>
|
</constructor>
|
||||||
</class>
|
</class>
|
||||||
<class name="RestoreSession"
|
|
||||||
extends="java.lang.Object"
|
|
||||||
abstract="false"
|
|
||||||
static="false"
|
|
||||||
final="false"
|
|
||||||
deprecated="not deprecated"
|
|
||||||
visibility="public"
|
|
||||||
>
|
|
||||||
<method name="endRestoreSession"
|
|
||||||
return="void"
|
|
||||||
abstract="false"
|
|
||||||
native="false"
|
|
||||||
synchronized="false"
|
|
||||||
static="false"
|
|
||||||
final="false"
|
|
||||||
deprecated="not deprecated"
|
|
||||||
visibility="public"
|
|
||||||
>
|
|
||||||
</method>
|
|
||||||
<method name="restorePackage"
|
|
||||||
return="int"
|
|
||||||
abstract="false"
|
|
||||||
native="false"
|
|
||||||
synchronized="false"
|
|
||||||
static="false"
|
|
||||||
final="false"
|
|
||||||
deprecated="not deprecated"
|
|
||||||
visibility="public"
|
|
||||||
>
|
|
||||||
<parameter name="packageName" type="java.lang.String">
|
|
||||||
</parameter>
|
|
||||||
<parameter name="observer" type="android.app.backup.RestoreObserver">
|
|
||||||
</parameter>
|
|
||||||
</method>
|
|
||||||
</class>
|
|
||||||
<class name="SharedPreferencesBackupHelper"
|
<class name="SharedPreferencesBackupHelper"
|
||||||
extends="android.app.backup.FileBackupHelperBase"
|
extends="android.app.backup.FileBackupHelperBase"
|
||||||
abstract="false"
|
abstract="false"
|
||||||
|
|||||||
@@ -278,8 +278,8 @@ public final class Bmgr {
|
|||||||
System.out.println("restoreStarting: " + numPackages + " packages");
|
System.out.println("restoreStarting: " + numPackages + " packages");
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onUpdate(int nowBeingRestored) {
|
public void onUpdate(int nowBeingRestored, String currentPackage) {
|
||||||
System.out.println("onUpdate: " + nowBeingRestored);
|
System.out.println("onUpdate: " + nowBeingRestored + " = " + currentPackage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restoreFinished(int error) {
|
public void restoreFinished(int error) {
|
||||||
|
|||||||
@@ -114,9 +114,46 @@ public class BackupManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restore the calling application from backup. The data will be restored from the
|
||||||
|
* current backup dataset if the application has stored data there, or from
|
||||||
|
* the dataset used during the last full device setup operation if the current
|
||||||
|
* backup dataset has no matching data. If no backup data exists for this application
|
||||||
|
* in either source, a nonzero value will be returned.
|
||||||
|
*
|
||||||
|
* <p>If this method returns zero (meaning success), the OS will attempt to retrieve
|
||||||
|
* a backed-up dataset from the remote transport, instantiate the application's
|
||||||
|
* backup agent, and pass the dataset to the agent's
|
||||||
|
* {@link android.app.backup.BackupAgent#onRestore(BackupDataInput, int, android.os.ParcelFileDescriptor) onRestore()}
|
||||||
|
* method.
|
||||||
|
*
|
||||||
|
* @return Zero on success; nonzero on error.
|
||||||
|
*/
|
||||||
|
public int requestRestore(RestoreObserver observer) {
|
||||||
|
int result = -1;
|
||||||
|
checkServiceBinder();
|
||||||
|
if (sService != null) {
|
||||||
|
RestoreSession session = null;
|
||||||
|
try {
|
||||||
|
String transport = sService.getCurrentTransport();
|
||||||
|
IRestoreSession binder = sService.beginRestoreSession(transport);
|
||||||
|
session = new RestoreSession(mContext, binder);
|
||||||
|
result = session.restorePackage(mContext.getPackageName(), observer);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.w(TAG, "restoreSelf() unable to contact service");
|
||||||
|
} finally {
|
||||||
|
if (session != null) {
|
||||||
|
session.endRestoreSession();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Begin the process of restoring data from backup. See the
|
* Begin the process of restoring data from backup. See the
|
||||||
* {@link android.app.backup.RestoreSession} class for documentation on that process.
|
* {@link android.app.backup.RestoreSession} class for documentation on that process.
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
public RestoreSession beginRestoreSession() {
|
public RestoreSession beginRestoreSession() {
|
||||||
RestoreSession session = null;
|
RestoreSession session = null;
|
||||||
|
|||||||
@@ -37,8 +37,9 @@ interface IRestoreObserver {
|
|||||||
*
|
*
|
||||||
* @param nowBeingRestored The index, between 1 and the numPackages parameter
|
* @param nowBeingRestored The index, between 1 and the numPackages parameter
|
||||||
* to the restoreStarting() callback, of the package now being restored.
|
* to the restoreStarting() callback, of the package now being restored.
|
||||||
|
* @param currentPackage The name of the package now being restored.
|
||||||
*/
|
*/
|
||||||
void onUpdate(int nowBeingRestored);
|
void onUpdate(int nowBeingRestored, String curentPackage);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The restore operation has completed.
|
* The restore operation has completed.
|
||||||
|
|||||||
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package android.app.backup;
|
package android.app.backup;
|
||||||
|
|
||||||
|
import java.lang.String;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback class for receiving progress reports during a restore operation. These
|
* Callback class for receiving progress reports during a restore operation. These
|
||||||
* methods will all be called on your application's main thread.
|
* methods will all be called on your application's main thread.
|
||||||
@@ -32,17 +34,23 @@ public abstract class RestoreObserver {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* An indication of which package is being restored currently, out of the
|
* An indication of which package is being restored currently, out of the
|
||||||
* total number provided in the restoreStarting() callback. This method
|
* total number provided in the {@link #restoreStarting(int)} callback. This method
|
||||||
* is not guaranteed to be called.
|
* is not guaranteed to be called: if the transport is unable to obtain
|
||||||
|
* data for one or more of the requested packages, no onUpdate() call will
|
||||||
|
* occur for those packages.
|
||||||
*
|
*
|
||||||
* @param nowBeingRestored The index, between 1 and the numPackages parameter
|
* @param nowBeingRestored The index, between 1 and the numPackages parameter
|
||||||
* to the restoreStarting() callback, of the package now being restored.
|
* to the {@link #restoreStarting(int)} callback, of the package now being
|
||||||
|
* restored. This may be non-monotonic; it is intended purely as a rough
|
||||||
|
* indication of the backup manager's progress through the overall restore process.
|
||||||
|
* @param currentPackage The name of the package now being restored.
|
||||||
*/
|
*/
|
||||||
void onUpdate(int nowBeingRestored) {
|
void onUpdate(int nowBeingRestored, String currentPackage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The restore operation has completed.
|
* The restore process has completed. This method will always be called,
|
||||||
|
* even if no individual package restore operations were attempted.
|
||||||
*
|
*
|
||||||
* @param error Zero on success; a nonzero error code if the restore operation
|
* @param error Zero on success; a nonzero error code if the restore operation
|
||||||
* as a whole failed.
|
* as a whole failed.
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ import android.os.RemoteException;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for applications to use when managing a restore session.
|
* Interface for managing a restore session.
|
||||||
|
* @hide
|
||||||
*/
|
*/
|
||||||
public class RestoreSession {
|
public class RestoreSession {
|
||||||
static final String TAG = "RestoreSession";
|
static final String TAG = "RestoreSession";
|
||||||
@@ -44,8 +45,6 @@ public class RestoreSession {
|
|||||||
* and a String array under the key "names" whose entries are the user-meaningful
|
* and a String array under the key "names" whose entries are the user-meaningful
|
||||||
* text corresponding to the backup sets at each index in the tokens array.
|
* text corresponding to the backup sets at each index in the tokens array.
|
||||||
* On error, returns null.
|
* On error, returns null.
|
||||||
*
|
|
||||||
* {@hide}
|
|
||||||
*/
|
*/
|
||||||
public RestoreSet[] getAvailableRestoreSets() {
|
public RestoreSet[] getAvailableRestoreSets() {
|
||||||
try {
|
try {
|
||||||
@@ -68,8 +67,6 @@ public class RestoreSession {
|
|||||||
* the restore set that should be used.
|
* the restore set that should be used.
|
||||||
* @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.
|
||||||
*
|
|
||||||
* {@hide}
|
|
||||||
*/
|
*/
|
||||||
public int restoreAll(long token, RestoreObserver observer) {
|
public int restoreAll(long token, RestoreObserver observer) {
|
||||||
int err = -1;
|
int err = -1;
|
||||||
@@ -164,7 +161,7 @@ public class RestoreSession {
|
|||||||
mAppObserver.restoreStarting(msg.arg1);
|
mAppObserver.restoreStarting(msg.arg1);
|
||||||
break;
|
break;
|
||||||
case MSG_UPDATE:
|
case MSG_UPDATE:
|
||||||
mAppObserver.onUpdate(msg.arg1);
|
mAppObserver.onUpdate(msg.arg1, (String)msg.obj);
|
||||||
break;
|
break;
|
||||||
case MSG_RESTORE_FINISHED:
|
case MSG_RESTORE_FINISHED:
|
||||||
mAppObserver.restoreFinished(msg.arg1);
|
mAppObserver.restoreFinished(msg.arg1);
|
||||||
@@ -181,9 +178,9 @@ public class RestoreSession {
|
|||||||
mHandler.obtainMessage(MSG_RESTORE_STARTING, numPackages, 0));
|
mHandler.obtainMessage(MSG_RESTORE_STARTING, numPackages, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onUpdate(int nowBeingRestored) {
|
public void onUpdate(int nowBeingRestored, String currentPackage) {
|
||||||
mHandler.sendMessage(
|
mHandler.sendMessage(
|
||||||
mHandler.obtainMessage(MSG_UPDATE, nowBeingRestored, 0));
|
mHandler.obtainMessage(MSG_UPDATE, nowBeingRestored, 0, currentPackage));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void restoreFinished(int error) {
|
public void restoreFinished(int error) {
|
||||||
|
|||||||
@@ -1618,7 +1618,7 @@ class BackupManagerService extends IBackupManager.Stub {
|
|||||||
|
|
||||||
if (mObserver != null) {
|
if (mObserver != null) {
|
||||||
try {
|
try {
|
||||||
mObserver.onUpdate(count);
|
mObserver.onUpdate(count, packageName);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Slog.d(TAG, "Restore observer died in onUpdate");
|
Slog.d(TAG, "Restore observer died in onUpdate");
|
||||||
mObserver = null;
|
mObserver = null;
|
||||||
|
|||||||
Reference in New Issue
Block a user