History log of /frameworks/base/core/java/android/app/backup/BackupManager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
899edf6f4fef302ff219ee346b47afc5c8b640aa 24-Feb-2016 Sergey Poromov <poromov@google.com> Fix NPE when null BackupObserver is passed into BackupManager#requestBackup()

BackupManagerService has the null check, but it doesn't work
because passed BackupObserver object is wrapped into
this BackupObserverWrapper.
This was found during GTS testing.

Bug: 27334738
Change-Id: I16dc0230824b326d3fae1f8489f58b0c0d4e1c7c
/frameworks/base/core/java/android/app/backup/BackupManager.java
86cfe51863ae67d3bf783bb507595c236176651e 29-Jan-2016 Sergey Poromov <poromov@google.com> Merge "Fix BackupManager to really send MSG_RESULT when onResult is called."
4b51d99a019f9b14e5698ba16e9540c179bdcd05 29-Jan-2016 Sergey Poromov <poromov@google.com> Fix BackupManager to really send MSG_RESULT when onResult is called.

Previously it send MSG_FINISHED.
I'm surprised why backup test app was successfully receiving appropriate callbacks...

Change-Id: Ia4950579a3dbf8b7383b8e48dd29b94bdd765cd8
/frameworks/base/core/java/android/app/backup/BackupManager.java
872d3b6e19933af6fa9ae65214b9f6df04fc3222 12-Jan-2016 Sergey Poromov <poromov@google.com> Quota exceeded API in BackupAgent

Should be also implemented in GMS BackupTransport.

Bug: 25693504
Change-Id: I6e4b2edb6d62addca0aced3e801d7629fb9394ca
/frameworks/base/core/java/android/app/backup/BackupManager.java
9448196076d5a5266b3ae7e4945216b30ee88aa7 07-Jan-2016 Sergey Poromov <poromov@google.com> Add BackupManager#isAppEligibleForBackup() method to Backup API.

Check is done only in framework.
Transport still can deny backup for the package.

Bug: 26443192
Change-Id: Ifcde67a4d11725aa4b15ab4f57d740f55ab2b265
/frameworks/base/core/java/android/app/backup/BackupManager.java
fe06bf64d204c459699b0bf6465f9fb69208345e 15-Dec-2015 Sergey Poromov <poromov@google.com> Introduce BackupManager#requestBackup & BackupObserver API

Introduces a way to request immediate backup for list of packages
and receive callbacks on backup progress.

Bug: 25688526
Change-Id: Ib826933d44f4ebf2b981f8be366215b2d37847e2
/frameworks/base/core/java/android/app/backup/BackupManager.java
511d02fcc37dce092e17354d53023db44817ebe6 09-Apr-2015 Christopher Tate <ctate@google.com> Add system API for querying the available restore dataset for a package

Bug 20123585

Change-Id: Ife6e77a224b5d4175178aacdb7c285e9944b9eab
/frameworks/base/core/java/android/app/backup/BackupManager.java
9e079298edd022c43a960729442a53557fd16e45 10-Sep-2014 Christopher Tate <ctate@google.com> Fix BackupManager.isBackupEnabled()

It wasn't properly lazy-initializing the service binder, so it always
thought the backend service didn't exist, and so always returned false.

Also directly validated that every usage of sService in the module is
now correctly lazy-initialized.

Bug 16661321

Change-Id: If5fbb18aef81bfa8fd70eb40a1f6af54cc96d804
/frameworks/base/core/java/android/app/backup/BackupManager.java
a63246d6daa02c6f3e4e78d0072d991387e14c87 15-Aug-2014 Christopher Tate <ctate@google.com> Tighten restore-at-install behavior

Harden the guarantee that if we're asked about a possible restore,
we always ALWAYS report back to the package manager. This involved
closing "should never happen" edge cases around provisioning/auto-restore
setting that nevertheless were happening.

Also, on the auto-restore setting front, make sure to plumb that
system API through appropriately, since going behind its back and
manipulating the secure setting directly would cause things to get
out of step.

Bug 17060654

Change-Id: I52ca9c1ffbfc0bd6b57196157500d0868bfc2989
/frameworks/base/core/java/android/app/backup/BackupManager.java
2e5979236ccc06beec8b8f7f631f31bdedc79614 07-Aug-2014 Christopher Tate <ctate@google.com> Mark beginRestoreSession() as system API

Bug 16874911

Change-Id: Idb06ebf2d0f54bb13af1d2eeacf0d7b06fda68db
/frameworks/base/core/java/android/app/backup/BackupManager.java
d5cf722ae62d06d1fb6a9505c6f4c403a5d14a37 30-Jul-2014 Christopher Tate <ctate@google.com> Reify the transport lookup/selection API

Introduce a stable BackupTransport interface class for transport
implementations to derive from.

Make the interface for viewing/selecting the active backup transport
part of the stable API.

Make restore-related classes (RestoreSession, RestoreSet) stable API.

Express backup manager APIs needed for transport operation as
@SystemApi methods in BackupManager.

Bug 16661321

Change-Id: I423b87ae8f45c1b77831d4f8ffd97715484c2d2b
/frameworks/base/core/java/android/app/backup/BackupManager.java
f5491fc1b61088843f280a6b55c1a995e2e6f939 25-May-2012 Christopher Tate <ctate@google.com> Prevent construction/use of invalid restore session proxies

Possible (rare) null return was not being handled. Fixes
bug 6554812.

Change-Id: I470e916f2156ff7ed2947d6ce21ef2816fc7f97d
/frameworks/base/core/java/android/app/backup/BackupManager.java
61fd1e8d8c3ccf2d6b7d4af1c19e8f0988d5a1ec 26-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross references, Project ACRE, round 3

Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
/frameworks/base/core/java/android/app/backup/BackupManager.java
44ab8453e1c4c46790f792a46d026fa1017d8cfe 17-Nov-2010 Chris Tate <ctate@google.com> Permission fix: don't require BACKUP perm for self-restores

The public API is not supposed to require the BACKUP permission in order
for an application to restore its own last-known-good backup data. However,
as currently implemented, BackupManager.requestRestore() [the public API
in question] depends on private Backup Manager methods that *do* enforce
that permission. The net result is that the method cannot be successfully
used by third party applications: it will throw an exception if attempted.
This CL restructures the permission checking involved.

First, the underlying beginRestoreSession() operation can now be passed a
'null' transport name; if this is done, then the restore session is begun
on whatever the currently-active transport is. Looking up the name of the
active transport is one of the permission-guarded actions that was required
with the initial implementation.

Second, a package name can now be passed to beginRestoreSession(). If
this is done, then the restore session can only be used to perform a
single-package restore of that one application. The BACKUP permission is
not required if the caller is tying the restore to its own package name.

In combination, these changes permit BackupManager.requestRestore() to
function without the calling app needing to hold any special permission.
The no-permission case is intentionally quite narrow: the caller must
hold the permission unless they both (a) pass 'null' for the transport
name, thereby accepting whatever the currently active transport is, and
(b) pass their own package name to restrict the restore session only
to their own app.

External bug http://code.google.com/p/android/issues/detail?id=10094
Internal bug 3197202

Change-Id: Ibc9d652323f2da03727d850f991b4096af6520d2
/frameworks/base/core/java/android/app/backup/BackupManager.java
d17da43c82c4edb97514d6138bc208eeba321636 30-Apr-2010 Scott Main <smain@google.com> docs: revise and add documentation for backup APIs

Change-Id: I0b015a6de16da07ccd31756b8d2329dc2785c2f7
/frameworks/base/core/java/android/app/backup/BackupManager.java
4e14a829129feee14ebe453f61a124784c870610 08-Apr-2010 Christopher Tate <ctate@google.com> SDK: more backup/restore documentation work

Still not complete, but here's a lot more of the necessary documentation.
Submitting a checkpoint seems prudent.

Bug #2465360

Change-Id: Ifff60d57e4b24cee21f3a34f5f50e290d377c386
/frameworks/base/core/java/android/app/backup/BackupManager.java
cc84c69726507a85116f5664e20e2ebfac76edbe 29-Mar-2010 Christopher Tate <ctate@google.com> API CHANGE: rename BackupHelperAgent => BackupAgentHelper per API Council

Part of bug #2545514

Change-Id: Ic775e3b942c485252149c1b6c15c88517fa4e3e5
/frameworks/base/core/java/android/app/backup/BackupManager.java
9c3cee9824026764275e4d84ba9b5d9fdc5da690 26-Mar-2010 Christopher Tate <ctate@google.com> API CHANGE: Backup/restore API changes requested by the API Council

* @hide the android.app.backup.RestoreSession class and functionality

* Provide a public method on android.app.backup.BackupManager that apps
can use to request a restore pass of their last-known-good dataset.
The new method is called requestRestore().

* Provide the name of the package being restored, not just its ordinal,
in the RestoreObserver's onUpdate() callback.

Part of bug #2545514

Change-Id: I9689bf8d6e2b808b4ee412424a36a835be0a5ca8
/frameworks/base/core/java/android/app/backup/BackupManager.java
3de55bcd34afd5871816526294f9514d1adf3fe5 13-Mar-2010 Christopher Tate <ctate@google.com> API CHANGE: expose the backup-related ApplicationInfo flag masks

Fixes bug #2507582 by doing the following:

- Un-@hide the FLAG_ALLOW_BACKUP, FLAG_KILL_AFTER_RESTORE, and
FLAG_RESTORE_ANY_VERSION mask constants in ApplicationInfo. These
correspond, respectively, to the <application> manifest tag's
android:allowBackup, android:killAfterRestore, and
android:restoreAnyVersion attributes.

- Remove the android:restoreNeedsApplication attribute and the
corresponding FLAG_RESTORE_NEEDS_APPLICATION constant [which was still
marked @hide]. We now always use the application's own Application
class when performing a normal restore. In the future when we support
an externalized full-filesystem backup/restore operation, we will use
an OS-defined agent class with a base-class Application instance, but
this will not happen until a future release.

Also expands real documentation on the above ApplicationInfo constants;
that work is part of bug #2465360

Change-Id: I735d07a963ae80a01343637d83bef84e4c23fdcc
/frameworks/base/core/java/android/app/backup/BackupManager.java
4528186e0d65fc68ef0dd1941aa2ac8aefcd55a3 06-Mar-2010 Christopher Tate <ctate@google.com> Refactor android.backup => android.app.backup

Change-Id: I0b21316ff890d7f3c7d4b82837bb60670724c2e8
/frameworks/base/core/java/android/app/backup/BackupManager.java