Commit Graph

3240 Commits

Author SHA1 Message Date
Adam Powell
2ed547e55f Add alternate intents and refinement callbacks to ChooserActivity
Allow a calling app to supply an array of additional Intents to the
system ChooserActivity.

The chooser will present a merged list of targets that can handle any
of the Intents supplied, including both the standard EXTRA_INTENT as
well as any of the intents supplied in EXTRA_ALTERNATE_INTENTS. These are
treated as ordered; EXTRA_INTENT is considered the first/primary
Intent and EXTRA_ALTERNATE_INTENTS are sorted most important first.

Targets are queried for all supplied Intents. If the same component is
returned for more than one Intent, the target is associated with the
most important Intent that matched.

This allows calling apps to supply several different payloads for an
action depending on what the intended targets are able to support. For
example, an app performing ACTION_SEND may supply image/jpeg data to
compatible targets or a hosted web link to targets that only support
text/plain. The user will have the opportunity to pick from a single
merged list of choices using the best available payload, and will not
be bothered with the implementation details of how the payload will be
delivered to the recipient.

If the calling app wishes to provide further disambiguation or
refinement after the user makes a choice, for example to let the user
choose which of the source intents to send from the primary or
alternates, show a progress dialog as a full-resolution version of a
photo is downloaded from the server before being sent along or while
reticulating splines, the caller can supply an IntentSender to
ACTION_CHOOSER including the extra EXTRA_REFINEMENT_INTENT_SENDER.
This should be the IntentSender obtained from a PendingIntent pointing
at an activity to launch to perform the refinement.

The refinement activity should report that it is finished by obtaining
the ResultReceiver from EXTRA_RESULT_RECEIVER. Available intents to
send to the selected target will be contained in EXTRA_INTENT and
EXTRA_ALTERNATE_INTENTS.

To complete the refinement and send the result along to the chosen
target, the refinement activity should select one of the supplied
intents and send it to the ResultReceiver in a Bundle with the key
EXTRA_INTENT and the result code RESULT_OK. To cancel the refinement,
and let the user select another choice, send RESULT_CANCEL.

While refinement activities cannot modify the filterEquals-affecting
fields of the Intent they return, they may modify extras to provide
additional or altered details to the final recipient. These extras
will be filled into the Intent sent to the final target.

Change-Id: I7ad4739eadd1a0e307675847ccf47ea948918a3a
2015-05-06 13:23:36 -07:00
Alan Viverette
261208e002 Merge "Add API for obtaining changing configurations bitmask from Theme" into mnc-dev 2015-05-05 16:50:29 +00:00
Alan Viverette
c1d527926e Add API for obtaining changing configurations bitmask from Theme
Required to know when to reload the system context's theme in response
to configuration changes, and thus needed to support the DayNight theme.

Bug: 20267825
Change-Id: I7df5e28b7a6d8b611ea030032544cf4800788514
2015-05-05 09:49:03 -07:00
Svet Ganov
4a64b19f23 Merge "Permission UI - legacy apps support" into mnc-dev 2015-05-05 15:34:10 +00:00
Svet Ganov
019d230499 Permission UI - legacy apps support
Change-Id: Id3f98c138422d33868363d587dd196898b42a0d4
2015-05-05 08:33:04 -07:00
Matthew Williams
303650c9cd Add full backup criteria to android manifest
BUG: 20010079
Api change: ApplicationInfo now has a fullBackupContent int
where -1 is (off) 0 is (on) and >0 indicates an xml
resource that should be parsed in order for a developer
to indicate exactly which files they want to include/exclude
from the backup set.
dd: https://docs.google.com/document/d/1dnNctwhWOI-_qtZ7I3iNRtrbShmERj2GFTzwV4xXtOk/edit#heading=h.wcfw1q2pbmae

Change-Id: I90273dc0aef5e9a3230c6b074a45e8f5409ed5ce
2015-05-03 16:19:27 -07:00
Fabrice Di Meglio
83bb765b04 Merge "Add IntentFilter auto verification - part 7" into mnc-dev 2015-05-01 18:27:32 +00:00
Fabrice Di Meglio
1de3f0dcaf Add IntentFilter auto verification - part 7
- update packages priming so that it effectively save its data
- use ArraySet instead of ArrayList for list of domains (a set
is preferable as we dont want duplicates)

See bug #19628909

Change-Id: I52085f4bc28dcbc7fbc02ba0898abcd4ae9cf1e2
2015-05-01 11:24:44 -07:00
Alan Viverette
8310f87d96 Merge "ActionBar SearchView's default hint shouldn't override SearchableInfo" into mnc-dev 2015-04-30 15:59:21 +00:00
Jeff Sharkey
e31b820dad New "frozen" state during app move/upgrade.
This replaces mOperationPending, which was in an odd place.  It adds
a new PackageSetting.frozen flag that is a last-ditch effort to
prevent ActivityManager from starting an app while it's being moved
or upgraded.

Also provides clearer guarding around all upgrades by freezing,
killing, upgrading, then unfreezing.

Bug: 20275579
Change-Id: I28bb0359a6f4e05080fb336b18dd2a249509d989
2015-04-29 22:03:37 -07:00
Jeff Sharkey
50a0545479 Returning to wizard, split move events.
Finish wiring up notifications to jump back into in-progress wizard
flow, using moveId as identifier.

Split move events back into separate creation and progress events,
and pass details as bundle to pass extra stuff like UUID.  Null
package still means moving primary storage.

Add explicit "volume forgotten" event for PackageManager to clean
up internal state with.

Plumb through internal path reported by vold, and bring back FUSE
bypass rewriting optimization.

Bug: 19993667
Change-Id: I0f43edbba36c58c5cd33550022c54c4eb9f01a48
2015-04-29 17:24:12 -07:00
Dianne Hackborn
f7b795ca1a Merge "Update use of procstate for services." into mnc-dev 2015-04-30 00:08:45 +00:00
Dianne Hackborn
d69e4c1460 Update use of procstate for services.
Now that we have a separate foreground service proc state
(above a sleeping top app), update various system services
to put their bindings into this state when appropriate.

There are two new bind flags for this -- one that just always
makes it a foreground service, another that only does it when
the device is awake (useful for things like the wallpaper).

And with all of that, tweak network policy manager to only
include apps that are at least foreground service state when
in power save and device idle modes.  This will allow us to
further reduce the set of apps that have network access
(in particular not giving access to the current top app when
the screen is off), hopefully leading to even better battery
life.

Change-Id: I91d85a5c5ed64e856149e9a5d94a634a7925ec7f
2015-04-29 17:04:50 -07:00
Alan Viverette
b4004dfc84 ActionBar SearchView's default hint shouldn't override SearchableInfo
Moves the queryHint to defaultQueryHint, specifies the override order
as queryHint > SearchableInfo > defaultQueryHint.

Cleans up annotations and comments for several related methods.

Bug: 20614122
Change-Id: Ib58ec309e6814cd512df147d789ec0cd546018af
2015-04-29 16:55:42 -07:00
Alan Viverette
0f1a3972c1 Merge "Stash modulation alpha until ColorStateList has resolved base color" into mnc-dev 2015-04-29 23:53:19 +00:00
Alan Viverette
f601440e21 Stash modulation alpha until ColorStateList has resolved base color
Fixes an issue where specifying an explicit modulation alpha and a
theme-dependent base color discarded the modulation alpha during
applyTheme().

Sets the YOU MESSED UP YOUR THEME color to magenta, which matches the
behavior for RippleDrawable and should expose any remaining issues in
a painfully obvious way.

Bug: 20690409
Change-Id: I7a44f4bc4a5a85be6d3f27087b2d6c9ea12e1d29
2015-04-29 15:36:11 -07:00
Ben Kwa
94d07cb7ef Merge "Properly unparcel the PFDs passed to android.content.ContentProviderProxy.openFile." into mnc-dev 2015-04-29 22:12:08 +00:00
Ben Kwa
192b3d4f90 Properly unparcel the PFDs passed to
android.content.ContentProviderProxy.openFile.

BUG=20693984

Change-Id: Id089d218057d5439da1bd5bf0ce3991059c1ecad
2015-04-29 13:30:25 -07:00
Jeff Sharkey
b36586a7c9 Split some VolumeInfo state into VolumeRecord.
VolumeRecord is a historical record of a volume that we've seen in
the past.  It's now surfaced outside the framework for SystemUI to
drive the notifications that bug users to reinsert missing private
volumes.

Show progress notifications for both storage and package movement
operations.  Notify when an empty disk is inserted (no usable volumes)
which launches into the normal format flow.

Add API to forget volumes.

Bug: 20275424, 20275424
Change-Id: I75602c17fdcd4d1f1f62324e1a08c4a33093eefa
2015-04-28 22:02:36 -07:00
Fabrice Di Meglio
9f7e39fc9d Use Default Browser App for IntentResolution when needed
- add MATCH_ALL as a new flag for telling that all results need to
be returned (even if there is some sort of filtering done).
- take into account the default Browser App for Intent resolution
- also, dont do any domain verification priming for non system app

See bug #20144393

Change-Id: Iddd1f2029e3bbf3b99ebc5f416dc7f17e5bad10c
2015-04-28 17:37:18 -07:00
Svet Ganov
a2147ec975 Handle null projection properly if provider app op is not enabled.
Change-Id: I00b757ef73bf4dd58217ba748520c3504350d4ba
2015-04-28 00:04:00 +00:00
Jeff Sharkey
620b32b316 Package and storage movement callbacks.
Since package and primary storage movement can take quite awhile,
we want to have SystemUI surface progress and allow the Settings
app to be torn down while the movement proceeds in the background.

Movement requests now return a unique ID that identifies an ongoing
operation, and interested parties can observe ongoing progress and
final status.  Internally, progress and status are overloaded so
the values 0-100 are progress, and any values outside that range
are terminal status.

Add explicit constants for special-cased volume UUIDs, and change
the APIs to accept VolumeInfo to reduce confusion.  Internally the
UUID value "null" means internal storage, and "primary_physical"
means the current primary physical volume.  These values are used
for both package and primary storage movement destinations.

Persist the current primary storage location in MountService
metadata, since it can be moved over time.

Surface disk scanned events with separate volume count so we can
determine when it's partitioned successfully.  Also send broadcast
to support TvSettings launching into adoption flow.

Bug: 19993667
Change-Id: Ic8a4034033c3cb3262023dba4a642efc6795af10
2015-04-23 20:32:17 -07:00
Svet Ganov
112de0d41b Merge "Return an empty cursor when a content provider app op is disabled" 2015-04-23 18:12:52 +00:00
Svet Ganov
7271f3e4cb Return an empty cursor when a content provider app op is disabled
bug:17446599

Change-Id: Ic1790c9afbee5eec1dc28e1d53ce82288d4b4f86
2015-04-23 10:26:59 -07:00
Mike Lockwood
60a6df9b95 Merge "Add Context.MIDI_Service to the public API" 2015-04-23 00:12:57 +00:00
Mike Lockwood
ec32ac95dc Add Context.MIDI_Service to the public API
I forgot this when the rest of MidiManager was made public.

Change-Id: Ic5f8e2674d5b8e13bd88feebf3cf219f7af7fbcc
2015-04-22 15:33:34 -07:00
Todd Kennedy
7f95a00ec0 Add hardware feature describing a car
We need to define a hardware feature for when Android is running
embedded on a vehicle's headunit. This is not applicable when
running Android on a phone and projecting onto a headunit.

Bug: 20016089
Change-Id: I70e94564f7493afe70a49bf582a627c5ea9f0a60
2015-04-22 14:28:25 -07:00
Neil Fuller
52dbaa08cd Merge "Add checks for types in Parcel / avoid class initialization" 2015-04-22 13:30:02 +00:00
Alex Klyubin
d14a15a754 Merge "Document that WebView doesn't honor "uses cleartext traffic" flag." 2015-04-21 22:11:34 +00:00
Alex Klyubin
fbf4599a8e Document that WebView doesn't honor "uses cleartext traffic" flag.
Bug: 19215516
Change-Id: I5dbbaa03f3cae007c0b9b68fcf8cc8f250c16a62
2015-04-21 14:50:39 -07:00
Neil Fuller
44e440cc7e Add checks for types in Parcel / avoid class initialization
Make Parcel more stringent to avoid initializing classes
that are not related to Parcelable.

Two new checks:
1) That the class found on the stream implements Parcelable.
2) That the type of the CREATOR field declared on the class
found on the stream actually implements Parcelable.Creator.

For (1) the new check that a class in the stream is actually
Parcelable. This will affect handling of invalid streams or
code that didn't obey the requirements.

For (2) this change could break some apps that had a CREATOR
field in a Parcelable class that was not declared to be
(at least) a Parcelable.Creator: it is no longer sufficient
for the type to implement Parcelable.Creator, the field
must be declared as such.

This change includes doc updates for Parcelable to make
the requirement around the declared type of the CREATOR
field more concrete.

This change also makes the generics slightly tidier/explicit,
annotates code as unchecked where needed and removes some
assumptions that can not be guaranteed with Java's type
system and the current definitions.

For example, there's no guarantee right now that
Parcelable.Creator returns objects that are actually
Parcelable, or that the CREATOR object associated
with a Parcelable will return objects of the surrounding
class. The first we can't do something about without
breaking the public API (due to implementations like
TextUtils.CHAR_SEQUENCE_CREATOR). The second is
currently typically implicitly enforced with an implicit
cast in the (app's) calling code (e.g. callers to
readParcelable() that causes a language-introduced cast
to the type expected). A larger refactoring of Parcel
would be required to ensure that the class that is
produced by Creator is of a type compatible with the
class that declared CREATOR, and is not a goal for this
change.

A fix is included for a class that doesn't implement
Parcelable like it should and would probably fail
check (1).

Bug: 1171613
Change-Id: I31d07516efee29a320e80f4bc4f96aaac628f81c
2015-04-21 11:32:44 +01:00
Sunny Goyal
5892c9a2e2 Potential fix for apps disappearing in launcher on system server crash
Based on Ifda3fda209141b361a286fc033217acfa0ec196e

Bug: 20420558
Change-Id: Icfcaf585b8a19853fe2c0fd0e4f06a2efc087938
2015-04-20 13:53:06 -07:00
Jeff Sharkey
529f91fc8e Always send volume UUID with installd commands.
Since packages can be moved to other volumes, all relevant commands
to installd now require an explicit volume UUID parameter.

Bug: 20275577
Change-Id: Ie84f5bc43c7aada5800b8d71692c7928b42b965e
2015-04-18 21:11:58 -07:00
Svet Ganov
16a1689950 Add OP_READ_PHONE_STATE app op - framework
The READ_PHONE_STATE permission protects PII information and
is in the Phone group. This change is adding the corrseponding
app op for gating access to the API guarded by READ_POHNE state
which will be used instead as an access control for legacy apps.

Change-Id: I2ff895a5a0e529f26ec0ad706266a30d829268ba
2015-04-17 20:43:56 +00:00
Wale Ogunwale
6041cc1a07 Merge "Added attribute showForAllUsers that deprecates showOnLockScreen" 2015-04-16 22:35:35 +00:00
Alex Klyubin
35075a0765 Merge "Document usesCleartextTraffic app-level attribute." 2015-04-16 22:28:06 +00:00
Jonathan Basseri
9a1c9b67c4 Adding Carrier Config API.
UICC privileged carrier apps will extend CarrierConfigService to provide
carrier-specific configuration. Apps/services will use
CarrierConfigManager to read the current configuration.

CarrierConfigManager also defines the set of configuration variables and
their default values.

Bug: b/19483786
Change-Id: I027211b43276afd6fe893ae50048c52f2aed5cf5
2015-04-16 11:40:33 -07:00
Wale Ogunwale
6dfdfd6741 Added attribute showForAllUsers that deprecates showOnLockScreen
The new name is more meaningful to what the attribute actually does.

Also, force the FLAG_SHOWN_WHEN_LOCKED flag for windows that belong
to acitivties with the showForAllUsers attribute set.

Bug: 20227306
Change-Id: Ifd49166c3ec0e67ae43addc0fb30038523332ea5
2015-04-16 10:59:16 -07:00
Jeff Sharkey
bd3af28fdc Merge "Candidate volumes for packages, fix symlink." 2015-04-16 05:50:16 +00:00
Jeff Sharkey
e2d45be4da Candidate volumes for packages, fix symlink.
Add API to determine the possible candidate volumes that a package
can be moved to.  For example, it currently knows that we need to
move ASEC-based apps through internal storage before migrating them
to a private volume.

Comparator for consistent VolumeInfo ordering when displayed in UI.

Fix native library symlink to be volume UUID aware.

Bug: 19993667
Change-Id: I68d5fac5f0f776ac1c7dd15e7a984bfe2704f3f7
2015-04-15 22:21:49 -07:00
Alex Klyubin
e35cefbf23 Document usesCleartextTraffic app-level attribute.
This updates the documentation of the application element of
AndroidManifest.xml to mention the new android:usesCleartextTraffic
attribute.

This also updates the Javadoc of
android.security.NetworkSecurityPolicy and ApplicationInfo to match.

Bug: 19215516
Change-Id: I5c221b56addae8988b4db51994d18ae379d0fbe3
2015-04-15 14:37:05 -07:00
Craig Mautner
15df08abd8 Introduce android:lockTaskMode
The ability for tasks to be started in locktask mode or pinned is
dependent on the value of android:lockTaskMode for the root activity
of the task.

For bug 19995702

Change-Id: I514a144a3a0ff7dbdd4987da5361b94bdfe9a437
2015-04-15 14:27:56 -07:00
Paul McLean
55787399c9 Merge "Audio Devices Enumeration/Notification API" 2015-04-15 21:08:27 +00:00
Paul McLean
a33be211e7 Audio Devices Enumeration/Notification API
Change-Id: I4eecfa43e4fecfe309ddd805ed193d078b10d5e6
2015-04-15 10:56:49 -06:00
Amith Yamasani
d1500d8ff1 Merge "Always set the dataDir for the given userId" 2015-04-14 23:45:13 +00:00
Amith Yamasani
1742cfbd8a Always set the dataDir for the given userId
Don't try to optimize for userId != 0 when generating the
ApplicationInfo.

Change-Id: I2eb2d43f36677a781643a1e86a19c8850d517411
2015-04-14 15:41:20 -07:00
Adam Powell
ecee322e59 Add ComponentName.createRelative methods
In a number of places, it's convenient to be able to refer to
ComponentName classes with relative package paths as they are
interpreted in manifest parsing. Express the official (yet simple)
policy for this in a simple pair of factory methods for ComponentName.

Change-Id: I81a40c81b7975445dd9f06292363b69bb072b16d
2015-04-14 15:20:16 -07:00
Adam Powell
2442841819 Implement ChooserTargetService querying for ChooserActivity
First cut at querying services provided by apps that offer
ChooserTargetServices. This first implementation provides no ranking.

Bind to a limit of 5 ChooserTargetServices and offer the
ChooserTargets they provide as options in the system
ChooserActivity. The chooser now presents targets as a grid and
displays the activity icon from the referrer activity.

Change-Id: I45db829f184fc78d4f18d42b2a60b25bc301eba8
2015-04-13 16:51:16 -07:00
Clara Bayarri
28e7ba6644 Merge "Show and trigger activities that implement Text Processing actions" 2015-04-12 19:46:42 +00:00
Jim Miller
ce7eb6daf0 Clean up FingerprintManager API and make it public.
Change-Id: I6a99dccd485c053cb47dbd0ec08b41a2dc5b17c8
2015-04-11 12:34:56 -07:00