This reverts commit 6c4d904851.
Going with a different tactic that doesn't dump stuff on
PackageManagerService.
Bug: 3214719
Change-Id: I0bbeccf3c21d264deda4256eb53713d2c98284f4
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
(Cherrypick from master to gingerbread)
Change-Id: Ie20b0bd2420345ce6eda178f854680b558f6372a
This gives NFC service a handle to the application context.
Deprecate NfcAdapter.getDefaultAdapter(), it does not provide a context.
Using this method will print a warning, and will later throw an exception
if a method that requires a context is called. No 2.3 API's will fail, but
new API's that do require a context might fail.
Also add helper NfcAdapter.getDefaultAdapter(Context).
Change-Id: I9a6378de4ef4b61ad922f8d53e64e2a1a1d5d60c
Merge commit '236568999411214ef440cabc6d12e3bf5f19d8f4' into gingerbread-plus-aosp
* commit '236568999411214ef440cabc6d12e3bf5f19d8f4':
Fix issue #3126018: No way to specify NativeActivity's native method
3094621: add "wipe sd card" option to factory data reset
3094609: collapse unmount/format into one command
Also since we have decided that it is important to consider
the Crespo storage as internal storage, DevicePolicyManager
gets a new API to be able to wipe it. (No big deal, since
all of the work for this is now done in the implementation
of the new UI.)
Change-Id: I32a77c410f710a87dcdcbf6586c09bd2e48a8807
Merge commit '736f5ec476526f3431d81dec5fb695bdee27e21a' into gingerbread-plus-aosp
* commit '736f5ec476526f3431d81dec5fb695bdee27e21a':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
Specifically, corrects and improves the overview and the documentation
for the NotificationManager.notify(String, int, Notification) method
to reflect the fact that the pair (tag, id) is used for notification
matching.
Change-Id: Ic088a56f457285523d90d296853685393b8c3412
gingerbread.
(for more detailed comments, please see the dependent CL
Change-Id: Ib90eb9e647f543312c865d3bbf9a06fb867a648b )
2 changes in this CL.
1. add 2 new columns to downloads table in downloads.db:
mediaprovider_uri = downloaded file's content_uri in mediaprovider db
deleted = flag is set to true if a file is to be deleted
2. download UI app shows only those files whose 'deleted' flag is not set
Change-Id: I47c5f72b0a0b354fac3abe3a97752130b8189794
- Add the second half of the new NFC API: NfcAdapter, Tag, NdefTag,
RawTagConnection, NdefTagConnection.
- Add implementations for all of the new NFC API.
Change-Id: I8da9fd1d2971ed2c8b76f2a93f207fa9e305b0f6
Signed-off-by: Nick Pelly <npelly@google.com>
Merge commit 'b8f7a4831ac26d0447fd8a2982416b2627a286b5' into gingerbread-plus-aosp
* commit 'b8f7a4831ac26d0447fd8a2982416b2627a286b5':
bug:3082865 don't use IN to construct sql to delete downloads
DownloadManager should not use IN clause when constructing
SQL to delete downloaded files Dowload app.
Lexer code in Download app doesn't know how to parse it.
Real fix is to fix Lexer.
But seriously real fix is to get rid of this complexity -
that I am planning for next version.
also, the following 2 are identical, in terms of SQL performance
WHERE _id IN (?, ?, ?)
WHERE (_id = ? OR _id = ? OR _id = ?)
Change-Id: Icca659a17c412247a193879e8d2f34e1b43ec9e5
Make a member final, line up some comments, and also cache the
expected stat size, not just the mtime.
Change-Id: Ifcc37bd3ab99787280e506deb682200a16da512e
Merge commit 'd8d60da616343b3520b666c385d0005db860be83' into gingerbread-plus-aosp
* commit 'd8d60da616343b3520b666c385d0005db860be83':
Update DownloadManager API to support bulk actions.
This includes querying by ID, removing and restarting downloads (the
latter is not a public API). The methods all use varargs to support
this without undue syntactic pain.
Change-Id: I768005c539d2395cf26587d3a8c425cd01ad9cd2
Merge commit '9d6824cd53960b4562ea3c55876b40ca21710050' into gingerbread-plus-aosp
* commit '9d6824cd53960b4562ea3c55876b40ca21710050':
Make Activity.removeDialog() less strict.