Commit Graph

2276 Commits

Author SHA1 Message Date
Narayan Kamath
a393735a5d am 2589067d: am 9fc8e6fe: am f61add84: am 2000fe58: Merge "Make getAssetInt throw unconditionally."
* commit '2589067d10b5f6a67eb1f789b4cf5943914dd9d2':
  Make getAssetInt throw unconditionally.
2014-02-27 13:25:43 +00:00
Narayan Kamath
9fc8e6fe8f am f61add84: am 2000fe58: Merge "Make getAssetInt throw unconditionally."
* commit 'f61add84c28be06c190d5594a41a7ef84b7666fe':
  Make getAssetInt throw unconditionally.
2014-02-27 13:19:15 +00:00
RoboErik
8fb4cf1ef4 Merge "Move Session apis to android.media.session" 2014-02-26 18:13:35 +00:00
RoboErik
2f5b057da7 Move Session apis to android.media.session
This is to make it easier to distinguish the new apis from the old
ones.

Change-Id: Ic5eaf65e8bd054a844f87b9118c4bb18f30ac8a7
2014-02-25 16:01:55 -08:00
Narayan Kamath
2d19d202bd Make getAssetInt throw unconditionally.
All callers have been moved over to getNativeAsset, and
this method has been hidden from the public API internally.

Change-Id: I5f29b5ddb4449adadf426e49a4085c7320289a15
2014-02-25 15:48:07 +00:00
Kenny Guy
e21c52a8c9 Merge "Hide managed profiles from user switchers." 2014-02-25 13:01:38 +00:00
Kenny Guy
1a447535ce Hide managed profiles from user switchers.
Hide managed profiles from lockscreen user switcher on tablets.
Hide managed profiles from power menu user switcher on phones.
Add flag to enable multi user ui turned off by default.

Change-Id: I4c69a6f7b0f39c249fc85fd940318df1ddab073f
2014-02-24 19:24:42 +00:00
Nicolas Prevot
531270a4a1 Adding the requiredForProfile flag.
Enabling to use requiredForProfile in application manifests
It determines which applications will be installed for managed profiles
and for restricted profiles

Change-Id: I14b4de2c9f41c2bbf5cd9fd0ca6caf5ce2d04131
2014-02-24 18:03:14 +00:00
Sander Alewijnse
627de95925 Merge "Enables a profile owner or device owner to set and clear default intent handler activities." 2014-02-24 10:16:28 +00:00
Alan Viverette
cc3f33853b Allow alpha modulation in ColorStateList items
This makes it much easier to define a disabled state color as an alpha
modulation of some base color.

Change-Id: Ie2ecf40b1f6560fcd8eda208d780616dddfc0d08
2014-02-22 16:52:46 -08:00
Elliott Hughes
449e46600f am 0047d3e0: am e253b514: am 29d60b95: am 8d41e653: Merge "Miscellaneous small documentation fixes."
* commit '0047d3e025b43fd2dc05734f7ea6229291445046':
  Miscellaneous small documentation fixes.
2014-02-21 17:37:54 +00:00
Elliott Hughes
e253b514f4 am 29d60b95: am 8d41e653: Merge "Miscellaneous small documentation fixes."
* commit '29d60b95fa8019c0542f46551057c4d376bb8a7a':
  Miscellaneous small documentation fixes.
2014-02-21 17:28:51 +00:00
Elliott Hughes
8d41e653ba Merge "Miscellaneous small documentation fixes." 2014-02-21 17:19:21 +00:00
Sander Alewijnse
f475ca33d9 Enables a profile owner or device owner to set and clear default intent handler activities.
Those intent handlers are persistent preferences. They will remain the default intent
handler even if the set of potential event handlers for the intent filter changes
and if the intent preferences are reset.

Change-Id: Id0cfae46f93c10d89e441f272096a205ec518dd0
2014-02-21 15:24:20 +00:00
Matt Casey
59270bffe5 Merge "Add more MediaStore constants for playback intents" 2014-02-21 01:18:24 +00:00
Matt Casey
bd7bcf0fba Add more MediaStore constants for playback intents
Constants are derived from this doc:
https://docs.google.com/a/google.com/document/d/1lmlFcTeefLDRp_bpMrXk3yK9nKxoTVfpcShanpLxiMg/edit#heading=h.b16863tyyjzv

That doc contains the full explanation of these changes.

I'm making this change on behalf of {elmas,pengr} who don't have
android source access but designed this in collaboration with
rharagutchi on the play music team. I'll probably have to route any
significant questions through them.

Bug: 12874557
Change-Id: I85a4bee57a2bde519da0dc6de2cad9d036da225c
2014-02-20 17:06:09 -08:00
Justin Koh
0be0a5039b am 7206ac56: am a79ac472: am 744d3473: Merge "Add hardware feature describing a watch." into klp-modular-dev
* commit '7206ac561291298f08809614be95963966a72ca8':
  Add hardware feature describing a watch.
2014-02-20 23:01:25 +00:00
Justin Koh
a79ac472d7 am 744d3473: Merge "Add hardware feature describing a watch." into klp-modular-dev
* commit '744d3473f8a0f9f95e3fdf83670faf6d1551839e':
  Add hardware feature describing a watch.
2014-02-20 17:41:31 +00:00
RoboErik
3328868544 Merge "Initial round of MediaSession APIs" 2014-02-20 00:25:10 +00:00
RoboErik
01fe661ae5 Initial round of MediaSession APIs
This is far from complete but puts the basic components in place
for an app to interact with media sessions.

Change-Id: Icfe313f90ad76ae56badbe42b0e43fc5f68db36f
2014-02-19 13:41:37 -08:00
Justin Koh
b5731f091c Add hardware feature describing a watch.
Add hardware feature describing a watch so that hardware can specify that
it is a device that is worn on the body (perhaps the wrist).

Change-Id: I9d4cb7e86067f6ad41b39bcc545222b3b0fbf890
2014-02-18 18:12:24 -08:00
Adam Lesinski
5441745eff am 019b1f26: am 2ea983a5: am 3d9bcb90: Create FEATURE_ constants for print and backup
* commit '019b1f2668ac17f5e52b6ce32a524d26134a062a':
  Create FEATURE_ constants for print and backup
2014-02-18 23:03:37 +00:00
Adam Lesinski
2ea983a567 am 3d9bcb90: Create FEATURE_ constants for print and backup
* commit '3d9bcb90ee6c0ffff93642539ae64fb672c7f14a':
  Create FEATURE_ constants for print and backup
2014-02-18 22:57:37 +00:00
Adam Lesinski
3d9bcb90ee Create FEATURE_ constants for print and backup
Bug:13079822

Change-Id: I6f4b759951d45989e8aad4011fae431ee2ecae0c
2014-02-18 14:33:00 -08:00
Deepanshu Gupta
857ba4af85 Fix layoutlib by avoiding Java7 calls
This change also fixes a NPE in TypedArray caused by changes in the
framework.

Change-Id: Ie64237c567fa16c35c807db22ce9a4b609ee411d
2014-02-17 10:43:01 -08:00
Narayan Kamath
8c1fc83445 am 28879bbf: am be57fca4: Merge "Extended locales in AAPT / AssetManager."
* commit '28879bbfe89dc4bf2067a7183975ecffb82f68e6':
  Extended locales in AAPT / AssetManager.
2014-02-17 11:06:38 +00:00
Narayan Kamath
788fa41482 Extended locales in AAPT / AssetManager.
Support 3 letter language codes, script codes &
variants. The bulk of the changes are related to
the implementation of command line filtering of
locales etc. The previous code assumed that the
value of each "axis" (locale, density, size etc.)
could be represented by a 4 byte type. This is
no longer the case.

This change introduces a new class, AaptLocaleValue
which holds a (normalized) locale parsed from a
directory name or a filter string. This class takes
responsibility for parsing locales as well as
writing them to ResTable_config structures, which is
their representation in the resource table.

This includes minor changes at the java / JNI level
for AssetManager. We now call locale.toLanguageTag()
to give the native layer a well formed BCP-47 tag.
I've removed some duplicated parsing code in
AssetManager.cpp and replaced them with functions on
ResTable_config. The native getLocales function has
been changed to return well formed BCP-47 locales as
well, so that the corresponding java function can use
Locale.forLanguageTag to construct a Locale object
out of it.

Finally, this change introduces default and copy
constructors for ResTable_config to prevent having
to memset() the associated memory to 0 on every
stack allocation.

(cherry-picked from commit 91447d88f2)

Change-Id: I1b43086860661012f949fb8e5deb7df44519b854
2014-02-14 14:08:57 +00:00
Nick Kralevich
d5c8044e7e resolved conflicts for merge of 1cbea39f to master
Change-Id: Ib33484546c6a03cbc4cd96e97d9d785d68e10700
2014-02-12 14:41:25 -08:00
Nick Kralevich
dd3d95f182 resolved conflicts for merge of 4ad93639 to klp-modular-dev-plus-aosp
Change-Id: I7ad222301ec0b863d48a1a9a839469436c385ea0
2014-02-12 11:05:59 -08:00
Kenny Guy
826e51c4da Merge "Add concepts of related users and managed profiles to user manager." 2014-02-11 19:27:36 +00:00
Kenny Guy
a52dc3eb40 Add concepts of related users and managed profiles to user manager.
Related users are a group that will share things like notifications.
Managed profiles are a profile of another user.

Change-Id: I2d0532f1abf939810f0fa3fc7c77ad13fa567833
2014-02-11 15:33:14 +00:00
Narayan Kamath
91447d88f2 Extended locales in AAPT / AssetManager.
Support 3 letter language codes, script codes &
variants. The bulk of the changes are related to
the implementation of command line filtering of
locales etc. The previous code assumed that the
value of each "axis" (locale, density, size etc.)
could be represented by a 4 byte type. This is
no longer the case.

This change introduces a new class, AaptLocaleValue
which holds a (normalized) locale parsed from a
directory name or a filter string. This class takes
responsibility for parsing locales as well as
writing them to ResTable_config structures, which is
their representation in the resource table.

This includes minor changes at the java / JNI level
for AssetManager. We now call locale.toLanguageTag()
to give the native layer a well formed BCP-47 tag.
I've removed some duplicated parsing code in
AssetManager.cpp and replaced them with functions on
ResTable_config. The native getLocales function has
been changed to return well formed BCP-47 locales as
well, so that the corresponding java function can use
Locale.forLanguageTag to construct a Locale object
out of it.

Finally, this change introduces default and copy
constructors for ResTable_config to prevent having
to memset() the associated memory to 0 on every
stack allocation.

Change-Id: I899a56a9a182ee6be52b9389d1ae59266f5482e9
2014-02-10 15:50:16 +00:00
Alan Viverette
8eea3ea559 Add APIs for obtaining themed Drawable from Theme, Context
BUG: 12611005
Change-Id: Ic0057be4e4c2d0c61ce02a019b3f7d0625e3a016
2014-02-03 18:42:24 -08:00
Mårten Kongstad
48d22323ce Runtime resource overlay, iteration 2
Support any number of overlay packages. Support any target package.

UPDATED PACKAGE MATCHING
------------------------
In Runtime resource overlay, iteration 1, only a single overlay package
was considered. Package matching was based on file paths:
/vendor/overlay/system/framework-res.apk corresponded to
/system/framework-res.apk. Introduce a more flexible matching scheme
where any package is an overlay package if its manifest includes

    <overlay targetPackage="com.target.package"/>

For security reasons, an overlay package must fulfill certain criteria
to take effect: see below.

THE IDMAP TOOL AND IDMAP FILES
------------------------------
Idmap files are created by the 'idmap' binary; idmap files must be
present when loading packages. For the Android system, Zygote calls
'idmap' as part of the resource pre-loading. For application packages,
'idmap' is invoked via 'installd' during package installation (similar
to 'dexopt').

UPDATED FLOW
------------
The following is an outline of the start-up sequences for the Android
system and Android apps. Steps marked with '+' are introduced by this
commit.

Zygote initialization
   Initial AssetManager object created
+    idmap --scan creates idmaps for overlays targeting 'android', \
           stores list of overlays in /data/resource-cache/overlays.list
   AssetManager caches framework-res.apk
+  AssetManager caches overlay packages listed in overlays.list

Android boot
   New AssetManager's ResTable acquired
     AssetManager re-uses cached framework-res.apk
+    AssetManager re-uses cached 'android' overlays (if any)

App boot
   ActivityThread prepares AssetManager to load app.apk
+  ActivityThread prepares AssetManager to load app overlays (if any)
   New AssetManager's ResTable acquired as per Android boot

SECURITY
--------
Overlay packages are required to be pre-loaded (in /vendor/overlay).
These packages are trusted by definition. A future iteration of runtime
resource overlay may add support for downloaded overlays, which would
likely require target and overlay signatures match for the overlay to
be trusted.

LOOKUP PRIORITY
---------------
During resource lookup, packages are sequentially queried to provide a
best match, given the constraints of the current configuration. If any
package provide a better match than what has been found so far, it
replaces the previous match. The target package is always queried last.

When loading a package with more than one overlay, the order in which
the overlays are added become significant if several packages overlay
the same resource.

Had downloaded overlays been supported, the install time could have been
used to determine the load order. Regardless, for pre-installed
overlays, the install time is randomly determined by the order in which
the Package Manager locates the packages during initial boot. To support
a well-defined order, pre-installed overlay packages are expected to
define an additional 'priority' attribute in their <overlay> tags:

    <overlay targetPackage="com.target.package" priority="1234"/>

Pre-installed overlays are loaded in order of their priority attributes,
sorted in ascending order.

Assigning the same priority to several overlays targeting the same base
package leads to undefined behaviour. It is the responsibility of the
vendor to avoid this.

The following example shows the ResTable and PackageGroups after loading
an application and two overlays. The resource lookup framework will
query the packages in the order C, B, A.

        +------+------+-     -+------+------+
        | 0x01 |      |  ...  |      | 0x7f |
        +------+------+-     -+------+------+
            |                           |
        "android"                Target package A
                                        |
                       Pre-installed overlay B (priority 1)
                                        |
                       Pre-installed overlay C (priority 2)

Change-Id: If49c963149369b1957f7d2303b3dd27f669ed24e
2014-02-03 11:20:30 +01:00
Alan Viverette
edc4664d60 Fix broken build in BridgeResources
Change-Id: Iec58a2acda6b9538bcb5974d3d5c45ea6e53eac5
2014-02-01 01:43:16 -08:00
Craig Mautner
624e98f539 am d5f1fcb7: am 56bf2f67: Merge "Clarify FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET usage" into klp-modular-dev
* commit 'd5f1fcb7a4d6cc11b727bdf79fab7693a5dd7117':
  Clarify FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET usage
2014-01-31 19:32:18 +00:00
Craig Mautner
d5f1fcb7a4 am 56bf2f67: Merge "Clarify FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET usage" into klp-modular-dev
* commit '56bf2f670c800f569fc72102e79fd555b6102677':
  Clarify FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET usage
2014-01-31 19:26:17 +00:00
Craig Mautner
e1f3fa2482 Clarify FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET usage
Fixes bug 12592453.

Change-Id: Ib64559727d59b3433c3753f9fda88329effc7e26
2014-01-31 11:20:40 -08:00
Alan Viverette
562a6a8d83 Improve encapsulation of Resources
Change-Id: Ic408915d2695ac8906231da1d2dc127f94bdd0cc
2014-01-31 11:18:28 -08:00
Narayan Kamath
90b8eaa68b am 797b5adc: am 77a1986c: am 49b7ba4d: Merge "AArch64: Make AssetManager and related classes 64-bit compatible"
* commit '797b5adcb4ead3c687db3d9fd831dff93760dd4a':
  AArch64: Make AssetManager and related classes 64-bit compatible
2014-01-31 17:12:42 +00:00
Narayan Kamath
797b5adcb4 am 77a1986c: am 49b7ba4d: Merge "AArch64: Make AssetManager and related classes 64-bit compatible"
* commit '77a1986c69760583f05eabbf7dac7c25dd8b7e7b':
  AArch64: Make AssetManager and related classes 64-bit compatible
2014-01-31 16:29:23 +00:00
Ashok Bhat
896043d67d AArch64: Make AssetManager and related classes 64-bit compatible
Following changes have been done:

[x] Long is used to store native pointers as pointers can be
    64-bit.

[x] AssetManager openAsset native function returned -1 if
    file name was empty and java function considered any
    non-zero value as success. This has been fixed by native
    function throwing Illegal Argument Exception as well.

[x] AssetManager incRefsLocked and decRefsLocked now accept
    long as input to support 64-bit native references.

[x] AssetManager incRefsLocked method incorrecly used
    'this.hashCode()' instead of the passed parameter id.
    This has been fixed.

[x] Some minor changes have been done to conform with
    standard JNI practice (e.g. use of jint instead of int
    in JNI function prototypes)

Change-Id: I095b9f900d49e51f43ad6afc47cbc23116a6a64a
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-31 14:14:29 +00:00
Dianne Hackborn
31d9989e75 Merge "Add app version codes to procstats." 2014-01-24 23:30:51 +00:00
Narayan Kamath
01664b3709 am 5d094b94: am aa43eb51: am 7866f2fc: am 8005b9af: am 3c30eff6: Merge "Remove unused field from AssetManager."
* commit '5d094b947b328d2631a0203c1527b0c7c20ce219':
  Remove unused field from AssetManager.
2014-01-24 09:52:55 +00:00
Narayan Kamath
7866f2fcfa am 8005b9af: am 3c30eff6: Merge "Remove unused field from AssetManager."
* commit '8005b9af11ea366672d739769510240f931f3050':
  Remove unused field from AssetManager.
2014-01-24 01:42:08 -08:00
Dianne Hackborn
8472e6189c Add app version codes to procstats.
Now the per-package proc stats data is also per-app-version-code.

In addition to changing the data structure to have one more
SparseArray and passing a version code all over, this also required
improving how we reset the stats so that we can prune a multi-package
process record back to a single package.  Otherwise, as you install
updates to apps, the proc stats data would continue to explode as
the data for each of those app's processes got turned to a
multi-package due to tracking the old and new versions at the
same time.

This also bumps the checkin version code, since the package entries
also include a new field for the app version code.

Change-Id: I80de36addb0a75c7b08aef747c6f6c8012d01ee4
2014-01-23 18:00:11 -08:00
Narayan Kamath
2f756cbb5a Remove unused field from AssetManager.
This field was introduced in commit 4bdd33b81a17 but wasn't
used there (or since).

Change-Id: I0615e98b8990d42da6b85f8094ab19eb0465fd9e
2014-01-22 11:09:09 +00:00
Narayan Kamath
2ba4efff8b Hide AssetInputStream.getAssetInt (Take 2)
This reverts commit b1bd1fe7fd.
2014-01-20 10:18:44 +00:00
Narayan Kamath
6606d16e09 am 6706888e: am 775667c0: am 03e8be75: am 8796ab7f: am bb35356d: Merge changes Id54087dd,I946325e4,I2a2b2e68
* commit '6706888e24aee04c2c914c44e5ef5b1510cf8013':
  AArch64: Use long for pointers in BitmapRegionDecoder
  AArch64: Use long for pointers in Movie class
  AArch64: Add AssetInputStream.getNativeAsset
2014-01-16 15:57:47 +00:00
Narayan Kamath
03e8be757d am 8796ab7f: am bb35356d: Merge changes Id54087dd,I946325e4,I2a2b2e68
* commit '8796ab7f22d3e9f5b85571e8851851c023416f96':
  AArch64: Use long for pointers in BitmapRegionDecoder
  AArch64: Use long for pointers in Movie class
  AArch64: Add AssetInputStream.getNativeAsset
2014-01-16 07:35:06 -08:00