Commit Graph

2087 Commits

Author SHA1 Message Date
Jeff Sharkey
9e2c661b3b Merge "Fix getCallingPackage() to handle reentrance." into klp-dev 2013-09-10 04:41:53 +00:00
Jeff Sharkey
72e2e3577b Fix getCallingPackage() to handle reentrance.
Keep any previous value in the stack frame and restore when the
current call is finished.

Bug: 10659409
Change-Id: I02b760ae9ca06a4b3602725e02f649f1ada460a0
2013-09-09 18:52:48 -07:00
Jeff Sharkey
ff44ed58a1 Merge "Disabled states, more UX work, bug fixes." into klp-dev 2013-09-10 00:08:17 +00:00
Jeff Sharkey
3f4c205fd3 Disabled states, more UX work, bug fixes.
Fix drawable state to correctly show dimmed disabled state.  Update
disabled state for all children to grey out text.

Block multi-selection of documents not matching MIME filter.  Load
thumbnails in parallel.  Show thumbnails in list mode based on MIME
type to match spec.

Give each footer a unique view type to avoid recycler crashes.

Show breadcrumb icons in recent create paths.  Fix timestamp bug when
querying/updating recent paths.

Make ContentProviderClient.closeQuietly() really be quiet.

Bug: 10668364, 10510022, 10668701, 10534224, 10667726
Change-Id: I3c705412fb211519f15ad41a273a7533b878e9e5
2013-09-09 16:55:35 -07:00
Matthew Williams
d8abd6a163 Preserve CTS fail behaviour on null bundle for old API
For ContentResolver.requestSync() a null bundle should not be
allowed. However we don't want to enforce this for the new API,
so we remove this check from the SyncRequest.Builder#build()

Change-Id: I69353d24edbd686da6ded2856c0920315cb76e85
2013-09-09 14:35:27 -07:00
Dianne Hackborn
38ed2a471a Work on issue #10130785: Restore silence and vibrate settings...
...in settings > sound

Add a new ContentProvider API to canonicalize URIs, so they can
be transported across backup/restore.

Change-Id: Ie5af3662f6822a32310e49c7f1e1ff084986c56e
2013-09-06 16:39:59 -07:00
Dianne Hackborn
1d0b177754 Fix issue #10560472: ApplicationInfo.manageSpaceActivity not parsed...
...correctly with overloaded resources

Change this attribute and a few other manifest attributes to allow
them to change based on platform SDK version.

Clean up a little more the whole mess with native vs. java config
bit masks.

Change-Id: Ia0baa3f7aed00bcb432701bcf99a9112124d6519
2013-09-06 14:02:54 -07:00
Jeff Sharkey
911d7f411f Provide calling package to ContentProviders.
The calling package is important for ContentProviders that want to
grant Uri permissions as a side effect of operations, so offer it
through a new API.  Validates the provided package against the
calling UID before returning.

Bug: 10626527
Change-Id: I7277880eebbd48444c024bcf5f69199133cd59e4
2013-09-06 08:08:18 -07:00
Michael Wright
86974463e9 Merge "Added support for supports-input manifest element" into klp-dev 2013-09-06 01:29:35 +00:00
Michael Wright
eaeb190486 Added support for supports-input manifest element
Change-Id: Ifa7c87908081585c1940b5a47fdf5138a287d9ea
2013-09-05 18:15:57 -07:00
Amith Yamasani
f1eebfc2cf Merge "Remove unused APIs and rename others based on API review" into klp-dev 2013-09-05 22:48:17 +00:00
Amith Yamasani
d304af6989 Remove unused APIs and rename others based on API review
Restrictions challenge is only to be used by device admins.

Bug: 10461761
Change-Id: I3db1249e2ce99f386602de59ed930302bb0a97fb
2013-09-05 09:30:23 -07:00
Chet Haase
e8222dddaf Change build version from KEY_LIME_PIE to KITKAT
Issue #10631619 Change build version to KitKat

Change-Id: I6ad13f6169ad74204078d36929479998b498ad8b
2013-09-05 08:44:33 -07:00
John Spurlock
eebf6895fd Merge "Revert "Re-@hide activity-level FLAG_IMMERSIVE and helpers."" into klp-dev 2013-09-05 02:44:29 +00:00
John Spurlock
322d77185d Revert "Re-@hide activity-level FLAG_IMMERSIVE and helpers."
This reverts commit 5e777f6685.

Change-Id: I6dc00f376cbbe34dafde3470d8e06c9123f81d8d
2013-09-05 02:39:46 +00:00
John Spurlock
631228b024 Merge "Re-@hide activity-level FLAG_IMMERSIVE and helpers." into klp-dev 2013-09-05 02:09:29 +00:00
Dianne Hackborn
b811e64cb3 Fix issue #10461600: KLP API Review: UndoManager
Hide, hide, hide!

Change-Id: Ie04825723d9392a4258e2d738828201ee387f7c6
2013-09-04 17:43:56 -07:00
John Spurlock
5e777f6685 Re-@hide activity-level FLAG_IMMERSIVE and helpers.
Un-@hidden in api 18, but probably should not have been.

The framework currently takes no action based on the flag,
making the docs misleading.

Bug:10460791
Change-Id: If6cc8791a85710897c8fe77cf6682d1460e3416e
2013-09-04 15:28:50 +00:00
Adam Skory
16731d4dc0 Add provideAssistData attr to public.xml
http://ag/323631 added the provideAssistData
attribute to the Service manifest tag.

It did not, however, add that attribute to
public.xml - making it impossible to actually
build a service that defines said tag.

So, add it.

Now that the attribute is where it should be,
restore @link notation to ServiceInfo.java
without breaking the offline docs build
( see http://ag//340279 ).

Also, make some log warnings related to
providing assist data slightly more verbose.

Bug: 10573008
Change-Id: Ie2bcb411c182d69738a2fa4a74de3171b9b9c455
2013-09-04 12:30:47 +01:00
Dianne Hackborn
d318e0b19f Fix issue #10461469: KLP API Review: EXTRA_SHUTDOWN_USERSPACE_ONLY
Maybe adding more words will make it more clear. :)

Change-Id: Ie729eaba1df542d4ffcd0502ccba3807d641fd72
2013-09-03 14:55:01 -07:00
Matthew Williams
9d7c4d4a6e Merge "DO NOT MERGE. Remove service component for KLP." into klp-dev 2013-08-30 21:39:15 +00:00
Alan Viverette
083199efed Merge "Update captioning APIs" into klp-dev 2013-08-30 21:34:43 +00:00
Matthew Williams
6222288bfb DO NOT MERGE. Remove service component for KLP.
1) As discussed, lack of internal clients -> remove SyncService
component from KLP. This CL reverts that addition.
2) Also includes javadoc cleanup of existing API.
3) Fix naming of allowMetered() -> disallowMetered() in API
4) Removed one-off sync in the future, as it doesn't make sense
for sync adapters.

Change-Id: I1b17094e6edafb2955cdfb99f39b44274fbe86f9
2013-08-30 21:28:53 +00:00
Amith Yamasani
79a45c6f18 Merge "Improve Intent disambig dialog behavior" into klp-dev 2013-08-29 21:45:04 +00:00
Martijn Coenen
c9c5d57e4e Merge "Add requireDeviceUnlock attribute for NFC HCE." into klp-dev 2013-08-29 19:56:01 +00:00
Alan Viverette
69ce69b0e1 Update captioning APIs
CaptioningManager is now a first-class service in Context and can
have listeners added to it to monitor changes.

BUG: 10260603, 10461210
Change-Id: I2df5b2997537bb343d902b7ace3343ad483f3717
2013-08-29 12:23:48 -07:00
Jeff Sharkey
aeb16e2435 Stronger DocumentsProvider contract.
Using a contract class requires that a provider implement it exactly
with little help. This change introduces a DocumentsProvider abstract
class that provides a client-side implementation of the contract that
greatly reduces developer burden, and improves correctness.

This also moves to first-class DocumentRoot objects, and moves calls
with complex side effects to be ContentProvider.call() invocations,
offering more granular permission control over Uri operations that
shouldn't be available through Uri grants.

This new design also relaxes the requirement that root information be
burned into every Uri.  Migrate ExternalDocumentsProvider and
DocumentsUI to adopt new API.

Bug: 10497206
Change-Id: I6f2b3f519bfd62a9d693223ea5628a971ce2e743
2013-08-28 20:49:42 -07:00
Martijn Coenen
df4d1d624d Add requireDeviceUnlock attribute for NFC HCE.
Also added AID description, and renamed PackageManager
feature. The old name has to stay at least for a bit,
because we are already deploying apps in our builds that
use the constant.

Bug: 10461409
Bug: 10461753
Change-Id: I7a5bb023bb567dd8b0a17e8e54e9559d7fcf64f5
2013-08-28 11:18:58 -07:00
Amith Yamasani
e9ecc8b499 Improve Intent disambig dialog behavior
Keep track of last chosen activity for a particular intent, similar
to how it is tracked for "Always" choices.
Pre-select the last chosen activity if previously the user picked
"Just once".
Downgrade "Always" to "Last chosen" if there's a new kid on the block,
instead of removing it entirely.
Add methods to set and get last chosen entry.

UI - switch from Grid to List.

Bug: 9958096

Change-Id: Ied57147739a3ade1d36c3a7ec1e8ce77e5c5bb16
2013-08-27 18:05:00 -07:00
Ying Wang
9436631333 Fix docs build.
Change-Id: I3299e59fd90141fee324129ff3b251bdf8f60f10
2013-08-23 22:20:03 -07:00
Jeff Brown
511cd35fcc Docs changes pursuant to API review feedback.
Change-Id: I74c51791192f7fefad4e299d25c91438cbf6ab73
2013-08-23 17:44:47 -07:00
Jeff Sharkey
bd3b902567 Add CancellationSignal support to file operations.
Since ContentProvider file operations can end up doing substantial
network I/O before returning the file, allow clients to cancel their
file requests with CancellationSignal.

Ideally this would only be needed for openFile(), but ContentResolver
heavily relies on openAssetFile() and openTypedAssetFile() for common
cases.

Also improve documentation to mention reliable ParcelFileDescriptors
and encourage developers to move away from "rw" combination modes,
since they restrict provider flexibility.  Mention more about places
where pipes or socket pairs could be returned.

Improve DocumentsContract documentation.

Bug: 10329944
Change-Id: I49b2825ea433eb051624c4da3b77612fe3ffc99c
2013-08-23 11:27:25 -07:00
Jeff Sharkey
d1da67017f Merge "Richer ParcelFileDescriptor close events." into klp-dev 2013-08-17 00:05:36 +00:00
Jeff Sharkey
da5a3e12f4 Richer ParcelFileDescriptor close events.
When reading from the end of a pipe or socket, there is no way to
tell if the other end has finished successfully, encountered an error,
or outright crashed.  To solve this, we create a second socketpair()
as a communication channel between the two ends of a pipe or
socket pair, sending a status code with details about why the
ParcelFileDescriptor was closed.

The writer end of a pipe or socket can closeWithError() to send a
message to the reader end.  When the reader encounters EOF, they
call checkError() to detect if any error occured.  This also detects
the case where the remote process died without sending a success
message.

This design is also extended to support regular files on disk, using
the communication channel above to detect various remote close events
or crashes, and delivering that event to a supplied OnCloseListener.

Replaces JNI with best-practice Libcore.os calls, and deprecates
some flags to match Context.

Bug: 10330121
Change-Id: I8cfa1e4fb6f57397667c7f785106193e0faccad3
2013-08-16 14:34:43 -07:00
Jeff Sharkey
a5599ef636 Documents management mode; API adjustment.
Create documents manage mode to support Downloads and transient
storage devices.  Locks user into requested backend root, and forces
file sizes on and sorting by last modified.

Separate API constants for Documents versus Roots, and give concrete
MIME types for roots.

Treat null sizes as unknown.  Documents are always enabled in list
so that divider is drawn.  Mark external storage file as writable.

Bug: 10329983, 10332993, 10332952
Change-Id: I05f4fdf5b04041a38e1ba7fb30202a3b0c615bf6
2013-08-15 16:25:30 -07:00
Craig Mautner
31678b52e4 Fix Configuration layout direction comparison.
If the Configuration layout direction is not changing don't indicate
that it has changed. When the indication is made incorrectly it
causes the window manager to believe that the configuration has
changed and it will start freezing the screen and setting up
animations. Bad jank is the result.

In Configuration.updateFrom() anytime that the screenLayouts were
different the code was setting ActivityInfo.CONFIG_LAYOUT_DIRECTION
in the return bitmask. Even if the only difference was between
UNDEFINED fields. This fix makes sure that the layout direction
field has actually changed before setting
ActivityInfo.CONFIG_LAYOUT_DIRECTION in the return bitmask.

In Configuration.diff() if the passed Configuration had
SCREENLAYOUT_LAYOUTDIR_UNDEFINED the code was setting
ActivityInfo.CONFIG_LAYOUT_DIRECTION in the return bitmask. This fix
makes sure that if the passed Configuration has fields set to
SCREENLAYOUT_*_UNDEFINED then corresponding bits will no longer be set
in the returned bitmask.

Fixes bug 10291622.
Fixes bug 10247094.

Change-Id: If26de662206fe85dc4671adbae39dfb99dc1038c
2013-08-13 09:23:13 -07:00
Jeff Sharkey
08da7a1143 API to discover granted Uri permissions.
Now that granted Uri permissions can be persisted across reboots,
offer APIs to discover them. Returns incoming or outgoing grants
matching the requested flags and mask. Add helper method to discover
"open" documents using this new API and filtering for non-documents.

Require that callers own at least of the filtering packages to avoid
exposing all grants. Switch internal grant tracking to use ArrayMap.

Change-Id: I0a755f221d0d160b411f8d3cfc48279b64345733
2013-08-11 20:56:15 -07:00
Jeff Sharkey
1abdb71230 APIs for multiple external storage devices.
Provide developer APIs to discover application-specific paths on
secondary external storage devices.  Covers files, cache, and OBB
directories.  Apps will not have write access outside their package-
specific directories on secondary devices, so only primary storage is
exposed through Environment.

Creation of .nomedia files will be handled by FUSE daemon in future
change.

Change-Id: Ifcce6201a686d80269d7285adb597c008cf8fa7c
2013-08-11 17:07:44 -07:00
Amith Yamasani
d8415f4bf0 Developer option to force RTL layout
Make sure screen layout changes are taken into account in Configuration diffs.
Initialize the SystemProperty from Global settings on startup of
ActivityManagerService.

TextUtils checks the override flag to decide if the default layout direction
should be forced to RTL.

Bug: 10244047
Change-Id: I23a2583d790a355060d0d898ba44e5f7dc896b46
2013-08-08 13:42:02 -07:00
Ben Murdoch
3650382175 Fix the build
Change-Id: If34523c4b25b3d60edc00b0f37b636bedfc756c2
2013-08-08 12:16:10 +01:00
Matt Casey
77ece7b192 Merge "Extend assist context to foreground services" 2013-08-08 09:33:08 +00:00
Ben Gruver
e64ff1b31a Merge "Improve the logic for determining whether the caller is a system app" 2013-08-08 00:09:23 +00:00
Ben Gruver
dd72c9ed55 Improve the logic for determining whether the caller is a system app
Bug: 10024554
Change-Id: I742e918840a98dd83d713bdf7a43a919674e65fe
2013-08-07 13:59:17 -07:00
David Christie
f45c9a0c6a Unhide Context.APP_OPS_SERVICE
Change-Id: Iab3e3fb2a32c3407c61abb694e21d84b50579d4f
2013-08-07 11:44:54 -07:00
Adam Skory
dfc7fd7818 Extend assist context to foreground services
Add Service.onProvideAssistData(Bundle) which will be
called on foreground Services that have the new attr
in their manifest of provideAssistData = true;

Rename private reference to e.g. "getTopActivityExtras"
as "getAssistContextExtras" - do not rename the relevant
permission, since it is already public.

In ActivityManagerService, request extras both from the
top activity and from any foreground services with the
above attribute. Extend PendingActivityExtras as
PendingAssistExtras with a list of Services from which
extras are expected.

Reduce the timeout to or reporting extras from 4 sec to
just 500 ms.

Bug: 9526331
Change-Id: Ia03b96e8189033a68ae9c514c8cea0199a19bce8
2013-08-07 02:20:44 +01:00
Dianne Hackborn
221ea892dc Start restricting service calls with implicit intents.
The bindService() and startService() calls have always had
undefined behavior when used with an implicit Intent and there
are multiple matching services.  Because of this, it is not
safe for applications to use such Intents when interacting with
services, yet the platform would merrily go about doing... something.

In KLP I want to cause this case to be invalid, resulting in
an exception thrown back to the app.  Unfortunately there are
lots of (scary) things relying on this behavior, so we can't
immediately turn it into an exception, even one qualified by the
caller's target SDK version.

In this change, we start loggin a WTF when such a call happens,
and clean up some stuff in Bluetooth that was doing this behavior.

Change-Id: I62e25d07890588d2362104e20b054aebb6c0e007
2013-08-05 16:53:26 -07:00
Elliott Hughes
89a8250e24 am 710f3e2c: am 60ae2617: Merge "If frameworks wants ASCII casing, it should explicity ask for it."
* commit '710f3e2cc6bc2cdc2f2cddb2190823ea31efd52a':
  If frameworks wants ASCII casing, it should explicity ask for it.
2013-08-02 17:58:33 -07:00
Elliott Hughes
cb64d43062 If frameworks wants ASCII casing, it should explicity ask for it.
http://elliotth.blogspot.com/2012/01/beware-convenience-methods.html

Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Iaab02e718a7be7bda22e626dca05d79bfd2a8fc4
2013-08-02 15:12:32 -07:00
Jeff Sharkey
7e258b31e7 XML metadata for storage backend; custom icons.
Introduce XML metadata for storage backends, used to indicate if
custom roots should be queried, and provide any custom MIME type
icons inside that backend.

Parse metadata and resolve custom icons in UI.

Change-Id: Iec026c0b10845edff7a345d9389691ddf2c87a0e
2013-08-01 11:34:56 -07:00
Jean-Baptiste Queru
cb9accefb1 am 46aae98b: am f2d643cf: Merge "Fixed a leaked partial wakelock in AbstractThreadedSyncAdapter."
* commit '46aae98b41fe6e6b61aeddff3ad3f41bc4ceace3':
  Fixed a leaked partial wakelock in AbstractThreadedSyncAdapter.
2013-07-30 15:34:26 -07:00