Commit Graph

2243 Commits

Author SHA1 Message Date
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
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
Jeff Sharkey
4ca728c064 Detect removable and emulated secondary storage.
Also rename existing secondary storage API to match naming
convention in rest of class.

Bug: 11536709
Change-Id: I2684c817de4982b414893d2d9927a21e3f171d53
2014-01-15 17:00:56 -08:00
Ashok Bhat
a0545dd54f AArch64: Add AssetInputStream.getNativeAsset
This patch adds AssetInputStream.getNativeAsset. This function
returns asset pointer, which can then be passed to JNI functions.
Note that this function is hidden and not part of Android API.

This function will eventually replace getAssetInt,
once all the classes that use getAssetInt are changed
to use getNativeAsset instead.

Change-Id: I2a2b2e6864f1f57ae2b3a10c45559b3635266ed5
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
2014-01-15 14:21:59 +00:00
John Spurlock
88926a5482 am 4b67b88e: am cce06eda: am b3436359: am e05190ea: am 85f98508: Merge "Docfixes: three typos and escape */*." into klp-docs
* commit '4b67b88e344a147317fc6b32e5364d4cfabf1e1d':
  Docfixes: three typos and escape */*.
2014-01-14 20:04:25 +00:00
John Spurlock
b343635909 am e05190ea: am 85f98508: Merge "Docfixes: three typos and escape */*." into klp-docs
* commit 'e05190eae74be57dd517bb5afbccf901543329bf':
  Docfixes: three typos and escape */*.
2014-01-14 11:54:25 -08:00
John Spurlock
e05190eae7 am 85f98508: Merge "Docfixes: three typos and escape */*." into klp-docs
* commit '85f98508366e8422f71553d2a5e682eb804c7419':
  Docfixes: three typos and escape */*.
2014-01-14 19:50:38 +00:00
Narayan Kamath
3a248a1493 am ec70f809: am d34950cf: am 80b0496a: am 2db26788: am e71afc2e: Merge "Revert "Hide AssetInputStream.getAssetInt.""
* commit 'ec70f8091185cd68afd4fcda42b513111eae70e4':
  Revert "Hide AssetInputStream.getAssetInt."
2014-01-14 10:26:18 +00:00
Narayan Kamath
80b0496abe am 2db26788: am e71afc2e: Merge "Revert "Hide AssetInputStream.getAssetInt.""
* commit '2db26788ab367f08cb5378d77e22e8939e7a28c2':
  Revert "Hide AssetInputStream.getAssetInt."
2014-01-14 02:16:39 -08:00
Narayan Kamath
b1bd1fe7fd Revert "Hide AssetInputStream.getAssetInt."
This reverts commit 842d44ec17.

Change-Id: I188e49d3651fd4941491c239b6a7c9f475995187
2014-01-14 10:08:45 +00:00
Narayan Kamath
271b28ac31 am 80213160: am ac8ccc3c: Merge "Hide AssetInputStream.getAssetInt."
* commit '8021316010fb4bd18a29751949eb2cda66199b6e':
  Hide AssetInputStream.getAssetInt.
2014-01-14 01:51:14 -08:00
Narayan Kamath
842d44ec17 Hide AssetInputStream.getAssetInt.
It returns a pointer to a private data structure, so there's
no sensible use for it. Also, the emergence of 64 bit processors
means that the return value isn't wide enough to represent
values in the native heap.

(cherry picked from commit f8f09a15a4)

Change-Id: I9c9b5bae6db8638e65dda60f924aa3dddd06813a
2014-01-14 09:34:00 +00:00
Narayan Kamath
f8f09a15a4 Hide AssetInputStream.getAssetInt.
It returns a pointer to a private data structure, so there's
no sensible use for it. Also, the emergence of 64 bit processors
means that the return value isn't wide enough to represent
values in the native heap.

Change-Id: If02d42a528b9d90f11cb25c3342404b7d5f7b625
2014-01-14 09:31:29 +00:00
Christopher Tate
1f5ca7fed2 am 7b3cfebc: am f1fbe113: am 4ba1bbad: am 5fbcb134: am 35b7de4c: Merge "Cursor leakage due to cancellation signal"
* commit '7b3cfebce3ab51e96d6c89317ea48b8bce640d9d':
  Cursor leakage due to cancellation signal
2014-01-10 00:07:09 +00:00
Christopher Tate
4ba1bbadb7 am 5fbcb134: am 35b7de4c: Merge "Cursor leakage due to cancellation signal"
* commit '5fbcb1347494e17dc9e9cd66d8e47a3972a8b90d':
  Cursor leakage due to cancellation signal
2014-01-09 12:47:50 -08:00
John Spurlock
3390018c6b Docfixes: three typos and escape */*.
Change-Id: I418d855b5d08a1a20eaca3d8e4d2e5d0fca23dd5
2014-01-06 11:44:42 -05:00
Peter Eliasson
55eda43af9 Cursor leakage due to cancellation signal
If a query call was cancelled, the cursor adaptor might leak. The
adaptor is now closed if any exception is thrown during query.

Change-Id: Ic4c2edeaf2fcef56b4ef59484a36d3233aa12dbc
2013-12-19 09:08:05 +01:00
Narayan Kamath
28635ca3e3 am 44291d9c: Merge "Use StrictJarFile instead of JarFile for cert collection."
* commit '44291d9c2722e0d22dc6f909585f4302abdce205':
  Use StrictJarFile instead of JarFile for cert collection.
2013-12-16 07:20:26 -08:00
Narayan Kamath
1f0299a9cb Use StrictJarFile instead of JarFile for cert collection.
This ensures that we use the same underlying zip
processing code as the runtimes.

bug: 10193060

(cherry picked from commit eb565dc527)

Change-Id: Iaaa26b02678278394619d0a41613d9ceeae3203c
2013-12-13 16:21:58 +00:00
Narayan Kamath
eb565dc527 Use StrictJarFile instead of JarFile for cert collection.
This ensures that we use the same underlying zip
processing code as the runtimes.

bug: 10193060

Change-Id: I0f287dd6fa95207cd02f648528ef6c08dd360a72
2013-12-12 17:53:48 +00:00
John Spurlock
cce137733b am e4f96e28: am 56979b22: am 125d133b: Fix bad @see links in Intent.java.
* commit 'e4f96e281f85078d5420fdc52e00da3c6392ba1a':
  Fix bad @see links in Intent.java.
2013-11-25 10:45:43 -08:00
John Spurlock
56979b2234 am 125d133b: Fix bad @see links in Intent.java.
* commit '125d133bcce56403a9b4d1cdbbc61a7cb1d7f8e1':
  Fix bad @see links in Intent.java.
2013-11-25 18:39:33 +00:00
John Spurlock
125d133bcc Fix bad @see links in Intent.java.
Change-Id: Ifa283214798f8d2de4f8bdb17ed78609a7d43293
2013-11-25 11:58:37 -05:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Christopher Tate
63e1883d96 am a5acd62b: am 6e5cf573: am 99437f25: Merge "Ensure recipient can be launched before attempting broadcast delivery" into klp-dev
* commit 'a5acd62bdefe5b616c0ea080434e9dd221169527':
  Ensure recipient can be launched before attempting broadcast delivery
2013-11-14 15:49:15 -08:00
Christopher Tate
99437f252b Merge "Ensure recipient can be launched before attempting broadcast delivery" into klp-dev 2013-11-14 22:59:20 +00:00
Christopher Tate
ba629da331 Ensure recipient can be launched before attempting broadcast delivery
User removal or eviction inherently races with broadcast delivery.  This
patch introduces a latest-possible recheck of the availbility of the
target application before attempting to send it a broadcast.

Once the process has actually been spun up the system is essentially
committed to presenting it as a running application, and there is no
later check of the availability of the app: the failure mode for
continuing to attempt delivery is a crash *in the app process*,
and is user-visible.

We now check the app+userid existence of the intended recipient
just prior to committing to launch its process for receipt, and
if it is no longer available we simply skip that receiver and
continue normally.

Bug 11652784
Bug 11272019
Bug 8263020

Change-Id: Ib19ba2af493250890db7371c1a9f853772db1af0
2013-11-14 12:37:31 -08:00
Matthew Williams
ee7081d1ed Resolve build breakage for merge of fix to b/11559103
Change-Id: Ib42eb48a234f53d34d23f5c661331b2f37be4209
2013-11-14 11:52:58 -08:00
Matthew Williams
bef1f9a370 am 72402f9d: am 09d8e3cf: am c68bb182: Merge "SyncManager now returns copy on getCurrentSyncs()" into klp-dev
* commit '72402f9de7b108d77316e3c93399b07a2f98c42a':
  SyncManager now returns copy on getCurrentSyncs()
2013-11-14 09:32:02 -08:00
Matthew Williams
a7456e46f4 SyncManager now returns copy on getCurrentSyncs()
Bug:11559103
Added a new getCurrentSyncsCopy() that is public. The other version
is needed for internal SSE calls.

Change-Id: I0287f039a6f75abf04b65b85cb30f78353aeef4f
2013-11-13 18:17:54 -08:00
Alan Viverette
fadfbf1ae0 Merge "Add support for using ColorStateList as GradientDrawable's stroke" 2013-11-05 02:44:31 +00:00
Alan Viverette
a211dd28b9 Add support for using ColorStateList as GradientDrawable's stroke
Refactors isOpaque() so that ColorStateList APIs previously added
on master branch are no longer needed.

Change-Id: I104c9a14ef81db6c4cf141e8fd0ebbd20bd52ee9
2013-11-04 13:46:29 -08:00
Jeff Sharkey
e11b6b036b am b9c28ce9: am 2903d6fa: am c09b6a46: Merge "Better enforcement in DocumentsProvider.call()." into klp-dev
* commit 'b9c28ce9d4f5539e2118822750fa008d5fe77c29':
  Better enforcement in DocumentsProvider.call().
2013-10-31 18:01:56 -07:00
Jeff Sharkey
8a2998eade Better enforcement in DocumentsProvider.call().
Use ContentProvider.enforceWritePermissionInner() to handle all edge
cases around checking if caller has write permissions.  This fixes
bug where call() would throw if caller and provider were the same app.

Bug: 11464234
Change-Id: Iace8e0e4243d56ed1cdcc9680383103975107036
2013-10-31 14:55:44 -07:00