• Home
  • History
  • Annotate
  • only in /frameworks/base/core/java/android/util/
History log of /frameworks/base/core/java/android/util/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0ec652cf72bd8b7f619462f172ac0152d4d6c83d 12-Feb-2015 Adam Powell <adamp@google.com> Merge "Add DENSITY_280" into lmp-mr1-dev
f6d4045d6c386fe09eafb894aa1ff79ca6f04178 11-Feb-2015 Adam Powell <adamp@google.com> Add DENSITY_280

Bug 19350604

Change-Id: I94f5162c31f9c8853908d7c4699974c236cc7fe7
isplayMetrics.java
b6bdb0f02df1004307d25ae86e09cdbbc6865e75 05-Feb-2015 Adam Lesinski <adamlesinski@google.com> Make ArrayMap.EMPTY immutable

This is a regression from KitKat.

Bug:19271657
Change-Id: I11b8e4dd50f6a8d2b15fef66b44aa2d72b1f0349
rrayMap.java
df59053588501178263e0e8de37f23717e649ffc 22-Jan-2015 Lorenzo Colitti <lorenzo@google.com> Only try to fetch time from NTP if there is a network connection.

Bug: 19046107
Change-Id: Iff647ee33fe0eb9b530d7baad636d32b386e4fa7
tpTrustedTime.java
1e01d16982e6b22ec4c0e2d6dc1e261eb6f92c8e 05-Dec-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17323751: Additional items in aggregated battery stats

- Now aggregate number of times each process has crashed and ANRed.
- Now aggregate total number of connectivity changes.
- Now record connectivity changes in the history.

Crash and ANR counts are new entries at the end of "pr" in checkin.

Connectivity change counts is a new entry at the end of "m" in checkin.

Connectivity changes in the history checkin are Ecn and include the
type of connection and its state.

Change-Id: I0c01186446034cf6c3fb97d45f5e3b5c69a0438a
og.java
log.java
5e7a29f6774f0672a51761297e5c6dbdbc8f794d 13-Nov-2014 ztenghui <ztenghui@google.com> Fix the starting pen's position when a path close.

We have to cache the starting point for the latest "move", then apply it after
we close the path.

b/18214929

Change-Id: I8e8e5c810d720a1c194b8f59d74867a0efbb7662
athParser.java
9f357ae9f038b97e4426bf3707ca94624cdf5d75 31-Oct-2014 Christopher Lane <lanechr@google.com> Add convenience method for getting the complex unit type

Bug: 18193912
Change-Id: Ida29c12c6c3f07ac0657e70d2ab07f2fc4f2cb20
ypedValue.java
f2969405020a72e282c348a6ea201d56e9f8d4ba 30-Oct-2014 Alan Viverette <alanv@google.com> Distinguish unspecified and explicit null values in resources

BUG: 17919345
Change-Id: Ic4f04f7dd0f986f58a749b5950d80c1cfdb074ea
ypedValue.java
e67b8d28294d9af440d2ea23f1b2c68dfcba8b1b 27-Oct-2014 Jeff Sharkey <jsharkey@android.com> Merge "Reduce PackageManager RAM usage: ArrayMap/Set." into lmp-mr1-dev
1ac52667ee03af090bb13d1ccf45ee6f38ddee3c 24-Oct-2014 Alan Viverette <alanv@google.com> Merge "Add support for Explore by Touch to RadialTimePickerView" into lmp-mr1-dev
9f837a99d48c5bb8ad7fbc133943e5bf622ce065 24-Oct-2014 Jeff Sharkey <jsharkey@android.com> Reduce PackageManager RAM usage: ArrayMap/Set.

Transition PackageManager internals away from heavier HashMap/HashSet
to use drop-in ArrayMap/ArraySet replacements. Saves ~38% RAM and
thousands of objects on a typical device.

Bug: 18115729
Change-Id: Ie107d2fee4b7baa4e3c3923231b4be877d1a5d2f
rraySet.java
ffb46bf2956d89e3190007ccf2ef3ce3eed005fe 24-Oct-2014 Alan Viverette <alanv@google.com> Add support for Explore by Touch to RadialTimePickerView

Also adds IntArray, which is like LongArray for integers, and prevents
the AM/PM label text in the time picker header from wrapping.

BUG: 17468036
Change-Id: I7120089885709f23e20368927e4b3ed9db2e5393
ntArray.java
bbf8871e1c7ef762b3f9505cca924568c48e8be5 23-Oct-2014 Neil Fuller <nfuller@google.com> Deprecating FloatMath and Time

Bug: https://code.google.com/p/android/issues/detail?id=36199
Bug: https://code.google.com/p/android/issues/detail?id=37653
Bug: https://code.google.com/p/android/issues/detail?id=42750
Bug: https://code.google.com/p/android/issues/detail?id=61137
Bug: https://code.google.com/p/android/issues/detail?id=74754
Bug: https://code.google.com/p/android/issues/detail?id=76386
Bug: https://code.google.com/p/android/issues/detail?id=76439
Bug: https://code.google.com/p/android/issues/detail?id=77836
Change-Id: Ic9b57d8a575f93b2258a5481df0ed6b3a952f636
loatMath.java
897f6daeffe965d546ebdc9a05c99a638b37f37d 08-Oct-2014 ztenghui <ztenghui@google.com> Support negative value in exponential data in the pathData.

Now "1e-5" will not be separated as "1e" and "-5".

Add one test for this use case.
Make sure we print out the pathData when path parsing has error.

b/17919923

Change-Id: I10a00ce21166cfb5a009c49c1a93f40eeb956d83
athParser.java
4cc3e2704a93197213ca0978b8c940abcb59e49a 07-Oct-2014 ztenghui <ztenghui@google.com> Support dot separation as the svg path data did.

Like "0.0.0" will be separated to "0.0 .0" now, just to make sure we are more
complied with svg path data.

b/17892882

Change-Id: Id7b64e9882f5174aa794a0256e2a29d66c724876
athParser.java
c520aa89a33ddb7c065ef06bcd2d2dbf96e1f989 02-Oct-2014 vandwalle <vandwalle@google.com> add millisecond timestamp to locallog

Change-Id: I33d8672efd2747ed3f49dd8d5bcd5f47bf418053
ocalLog.java
8d05172112436a81bed6e4a0810f8914509d8a4d 01-Oct-2014 Dianne Hackborn <hackbod@google.com> More work on issue #17656716: Unhandled exception in Window Manager

Fix Slog.wtf to not acquire the activity manager lock in its code
path, so that it can never deadlock. This was the original intention
of it, but part was missed.

Now we can put back in the code to detect when strict mode data is
getting large (a little more targeted now to the actual problem),
and use Slog.wtf to report it. And as a bonus, when this happens
we will now clear all of the collected violations, to avoid getting
in to the bad case where IPCs start failing. So this should be
good enough for L to fix the problem, with wtf reports for us to
see if the underlying issue is still happening.

Finally, switch a butch of stuff in the system process from Log.wtf
to Slog.wtf, since many of those are deadlocks waiting to happen.

Oh and fix a crash in the settings provider I noticed in APR.

Change-Id: I307d51b7a4db238fd1e5fe2f3f9bf1b9c6f1c041
log.java
d561913798c6ee3c987f39fa19f70e53eeb93ce6 26-Sep-2014 Philip Nowell <pnowell@google.com> Corrects a typo that identified XXXHIGH as 560 dpi instead of 640.

Change-Id: I8b5ac84431d378f0e43be8d19920fd6ba335ebc6
isplayMetrics.java
0f491d7513f41449ce50095958f4dd7f5e17df91 10-Sep-2014 Lajos Molnar <lajos@google.com> add android.util.SizeF.parseSizeF()

Bug: 17190665
Change-Id: Ic1b0087dfd40b86aaeb4687a1a3024c1ab54018f
izeF.java
5ef33984d0cc50bf4654b0d8e9557ac34d44fddd 05-Sep-2014 Jeff Sharkey <jsharkey@android.com> Move Size parceling to Bundle.

Size itself shouldn't be Parcelable, since that would be a layering
violation.

Bug: 17390381
Change-Id: Ica62709bd889db51c916c550a0146714b002baa3
ize.java
izeF.java
3e9a13438dce2f4a7a437e9b5bbd222128c39d52 29-Aug-2014 Michael Wright <michaelwr@google.com> Use a linear spline if there's a non-monotonic brightness curve

Some devices may contain things like transflective displays where
they actually want the backlight brightness to decrease in the face
of high ambient light scenarios. In the interest of time, just use a
linear interpolation based on the brightness control points for these
cases but in the future we should consider adding a non-monotonic
cubic spline.

Bug: 15611140
Change-Id: I8fcee061b18c8ae9cc9a1b38d8b850aaec4478ce
pline.java
5b836f29a3f56f9d13b6004417330c41ec0c18ae 27-Aug-2014 Jeff Sharkey <jsharkey@android.com> Define EXTRA_SIZE for ContentProviders.

Also make Size and SizeF parcelable.

Bug: 17205016
Change-Id: Ide397b84864f6cad7f8d89e66b6c8697a3ad335b
ize.java
izeF.java
5232271a41323594ae406be7476b6ca2f08af3d8 27-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #17146552: system anr

Add a safe path for Slog.wtf that doesn't acquire an activity manager
lock or block in any way.

Change-Id: I8fef8251a0cb85081442cae55d85063944248d15
og.java
log.java
4e9c07c0de199169374bded403805c92f1c1c6c1 26-Aug-2014 Adam Lesinski <adamlesinski@google.com> Add indexOf method to ArrayMap & ArraySet

Getting the indexOf is useful for doing compound operations
like:

int i = set.indexOf(key);
if (i >= 0) {
Object o = set.valueAt(i);
o.blah();
set.removeAt(i);
}

Change-Id: I3d4b77d1461ba969fc6b4d332d52d4d084b5b53c
rrayMap.java
rraySet.java
9c3e74f1f77d3b29ad47d2c74b0a0061e67c76f1 14-Aug-2014 Dianne Hackborn <hackbod@google.com> Fix issue #16794553: Duplicate ArrayMap entries in Bundle...

...can lead to launching of un-exported activities

We now validate the array map after unparcelling to make sure there
are no duplicate keys.

And to make up for the performance overhead this introduces, I switched
the parcelling/unparcelling code to write keys as explicit string
objects rather than generic values. There was no reason to use generic
values since the write method itself only accepts an array map with
String keys.

Change-Id: I57bda9eb79ceaaa9c1b94ad49d9e462b52102149
rrayMap.java
a3fb40d5f492825bb86769f541620baca5616e05 13-Aug-2014 Dianne Hackborn <hackbod@google.com> Add 560dpi, and some other stuff.

Like new settings actions for some of the new settings panels.
And fix voice interaction services so they require a recognizer.
And tweak array map doc to be correct.

Blah blah blah.

Change-Id: Ib5e66b574b10e7b3fa39723b21046a74e6ead204
rrayMap.java
isplayMetrics.java
a95c8abb366d9c39450513335f550b56da13b30a 23-Jul-2014 ztenghui <ztenghui@google.com> API REVIEW: VectorDrawable

- Merge <size> and <viewport> attributes all in to top-level <vector> tag
- Indent attributes under <group> in java doc.
- Updata android:stroke to be android:strokeColor, likewise android:fill
- Instead of android:clipToPath, make this a different clip-path tag.
- Document units of the various attributes
- Add example code for defining a VectorDrawable resource

More than that:
= Refactor the code to better support clipPath as a sub-class.
= Update all the xml files to use the new attributes and clip-path tag.

TODO:
-- Remove clipToPath, since that should happen on build break Friday.

bug:16488254

Change-Id: I6db5680ef83cb26c8f064a60fc7d6e7142974b0f
athParser.java
3b852e3489e995600fce19dfdbf3a5d769374d74 25-Jun-2014 Neil Fuller <nfuller@google.com> Rewriting android.text.format.Time without the native _tz functions

(cherry picked from commit d7f0849b8c053ccc6abf0dc7d5bc07da502782a4)
Bug: 15765976

Change-Id: I00f72bd1043ef20f22d25559206b2f741334ba9c
imeFormatException.java
5a836f74df027bb568da17fbde4e641b6a56d2a9 22-Jul-2014 ztenghui <ztenghui@google.com> Add negative sign separation support in the pathData

bug:14585171

Change-Id: I61dec27856be09c44bb1d32ff61b3c3cd458cc34
athParser.java
0debc9aff4c0cbc28e083a948081d91b0f171319 17-Jul-2014 Adam Lesinski <adamlesinski@google.com> First iteration of a public UsageStats API

UsageStats API that allows apps to get a list of packages that have been
recently used, along with basic stats like how long they have been in
the foreground and the most recent time they were running.

Bug: 15165667

Change-Id: I2a2d1ff69bd0b5703ac3d9de1780df42ad90d439
tomicFile.java
61a5a3f2c38ca908b7a607e7bc19b8553f59780e 16-Jul-2014 Jeff Davidson <jpd@google.com> Remove obsolete remark from XXHDPI comment.

XXHDPI screens now make up 15% of all Android devices, so developers
should be encouraged to include assets at this density.

Change-Id: I9d845769233a71dd954b5f35246aabb774a1c40d
isplayMetrics.java
78a130144bdd047665f00782c481d31edb3e5fb7 16-Jul-2014 Jeff Sharkey <jsharkey@android.com> Mark resource-only splits as hasCode=false.

PackageManagerService now skips dexopt for split APKs that don't
declare they have code. Also surface more detailed error messages
in logs.

Bug: 14975160
Change-Id: Ie6078dba724815020cee59b7fc52317e88ca097a
xceptionUtils.java
a10311434778ea1be1621c2251c0c8c2966f337b 13-Jul-2014 Jeff Sharkey <jsharkey@android.com> Package installation listener events.

Flesh out implementation of install session observers. Carve out 20%
of published install progress for final system operations such as
dexopt, etc.

Add dumpsys output for active install sessions. Create explicit
fsync() instead of overriding meaning of flush(). Hack to throw
IOExceptions over Binder calls.

Bug: 14975160, 15348430
Change-Id: I874457e40c45d2661bc0a526df9285ffea4bb77c
xceptionUtils.java
b1a236b85fa8f3f46e3f6b76a7bf6f72faf9ee5d 11-Jul-2014 Lajos Molnar <lajos@google.com> add utility methods to util.Range, Rational and Size

Bug: 12065651
Bug: 11990470
Change-Id: I0d0929ea0289ac5de5c17cca90f25abc4e9dfd7a
ange.java
ational.java
ize.java
497175beffe26336c092ee11a67b90f79dcdaca7 01-Jul-2014 Dianne Hackborn <hackbod@google.com> Rework network stats to use proc state for fg/bg.

Switch to using the process state to determine whether a
process should be foreground or background, instead of the
boolean foreground given by the activity manager.

This is for battery save mode, where we can now allow more apps
to havenetwork access: everything whose process state is at
least IMPORTANT_FOREGROUND, which allows music playback
and other use-visible things to continue to have network
access.

Note this also impact the traditional background data disabled
state, where now we allow anything top or better to have
network access. This automatically includes all persistent
processes, the current top activity, and any other processes
hosting the top activity or being used by the top activity.
So it broadens the set of apps that get network access, but I
think this increases it to a reasonable set of things that may
actually be needed for the foreground app to work correctly.

Change-Id: Icb609a2cea280dc3fa3e83417f478ed77f3685aa
rraySet.java
eb034fbca40006c55db143047eb628c4b657730a 09-Jun-2014 ztenghui <ztenghui@google.com> AVD now support path morphing.

Basically extended the ValueAnimator to support a new type: pathType.
Add the PathDataEvaluator internally to interpolate path data.
Update test to show the path morphing.

Change-Id: I89db0199cbc12e3041790a6115f3f50b80213cdb
athParser.java
cf4832f69c8786b098ce18c24319021f8cd6733a 17-Jun-2014 ztenghui <ztenghui@google.com> Add path support into xml files for PathInterpolator and ObjectAnimator.

The test case is showing that AnimatedVectorDrawable is able to use path to
define time interpolator and object movement now.

Change-Id: If3c0418265d0fd762c8f5f0bb8c39cce3ad34ef3
athParser.java
5af1edc4bbcd8ece7d9c1d270ffc0a4e7d44dc4f 16-Jun-2014 Narayan Kamath <narayan@google.com> am 5a44bdc8: am 8382b0d3: am ab9a19e3: Merge "Remove some pointless code."

* commit '5a44bdc828cba61aa055e2d71b3af62f39100179':
Remove some pointless code.
5a44bdc828cba61aa055e2d71b3af62f39100179 16-Jun-2014 Narayan Kamath <narayan@google.com> am 8382b0d3: am ab9a19e3: Merge "Remove some pointless code."

* commit '8382b0d3c6639ee0eeadec02983bfceaf5ba0a32':
Remove some pointless code.
d9d0bb64e74d363a027d24e93ccb67e46fb256ba 13-Jun-2014 Narayan Kamath <narayan@google.com> Remove some pointless code.

Unnecessary disk reads for values that are never
used (and cached elsewhere, so that optimization is
rendered pointless).

Change-Id: Ic14a8b53a96908bb03eae28759d7be2c217e8125
imeUtils.java
007bfb14d2d720cdd699cfbb36ce206246901cef 06-Jun-2014 Igor Murashkin <iam@google.com> util: Make Rational a Number/Comparable; add Range#inRange

* Also changes Rational to reduce the numerator/denominator by
its greatest common divisor at construction time (e.g. (2/4 -> 1/2)).

Bug: 15432042
Change-Id: Ib827abccf44a040667e5931cf9442afc86b57e2d
ange.java
ational.java
72f9f0a96e4476ef231d5001cb30521ad4ce5b1e 15-May-2014 Igor Murashkin <iam@google.com> camera2: Move parameters around to different packages

* Camera-specific params to android.hardware.camera2.params
* Remove android.hardware.camera2.Size
* Move Rational to android.util

Bug: 14628001
Change-Id: Ie7a82bf9f4a0d8c18e0dc3a1581123c0d95da3f0
ational.java
3c40a046cf0ea7b6af01ec93e5276eccb3234bfe 23-Apr-2014 Igor Murashkin <iam@google.com> camera2: Update native<->managed camera metadata marshalers

* Improve existing marshalers:
- each managed/native type combination can be queried marshal support
- marshalers can recursively call other marshalers for nested types
- support marshaling/unmarshaling generic classes by using super type tokens

* Add new marshalers for:
- ColorSpaceTransform
- MeteringRectangle
- Parcelable
- Range<T>
- ReprocessFormatsMap
- RggbChannelVector
- SizeF
- StreamConfiguration
- StreamConfigurationDuration

Batteries included; so are unit tests.

Bug: 14628001
Change-Id: I38d3e646ccfb3953898cd6f750c33e4097328482
ange.java
315c329544d7c593d1072b071cbb92d9afe74021 10-May-2014 John Reck <jreck@google.com> Add TimeInterpolator support to RNA

Bug: 14678626

Change-Id: I6554e7fcd42c49fac3618ca792083bb68e358f55
imeUtils.java
b3a78b2ca9655396e2d73950221d187b7e5bb3ba 17-Apr-2014 Igor Murashkin <iam@google.com> camera2: Add re-usable data types for camera metadata key/values

Adds new types to public API:
* ColorSpaceTransform
* Range<T>
* SizeF (android.util)
* MeteringRectangle

Minor changes to:
* Size (docs and move to android.util)
* Preconditions (@hide)

Adds helper class:
* HashCodeHelpers

Change-Id: Ied6749a19234f3af9da838f365f8d68d90251aaf
ange.java
ize.java
izeF.java
293513a59d36cd96a3e474dde5981380d372d8c9 30-Apr-2014 Bill Yi <byi@google.com> Merge commit '0b62467b142b61ee1e449ba958ba37dfd961ef56' into HEAD
95df2024ed327baea9d4f2caf26f0e1a0caf3b6d 26-Apr-2014 Mark Salyzyn <salyzyn@google.com> am a19b9c41: am dfdeabf9: am ac732708: Merge "EventLog: event log translation errors"

* commit 'a19b9c413b3e7f3b6038b06c51d01bab1e0bfda9':
EventLog: event log translation errors
a19b9c413b3e7f3b6038b06c51d01bab1e0bfda9 26-Apr-2014 Mark Salyzyn <salyzyn@google.com> am dfdeabf9: am ac732708: Merge "EventLog: event log translation errors"

* commit 'dfdeabf9ba40ea7f082acf7eba6fe086d2e643fb':
EventLog: event log translation errors
747802f8aa4d373885161724d9c2c61dcd4f8010 25-Apr-2014 Mark Salyzyn <salyzyn@google.com> EventLog: event log translation errors

- Deal with L using v3 event log format, or K using v1 or v2 event log format

Change-Id: Id4fb205f51b7e506135888d565acf1604497b91f
ventLog.java
a3bb66a75ef746fc77e9c9dd466afdef7a56996c 23-Apr-2014 Selim Gurun <sgurun@google.com> Tune down the linkify false positive rate

Bug: 14066316

Tune down the false positive rate by restricting gTLD pattern a little bit.

Change-Id: I7bd39633d3267930593bd7231f764c110293301f
atterns.java
c726f6b537c5913600bc35ff866f1fb32800b9be 18-Apr-2014 Mark Salyzyn <salyzyn@google.com> am b90e504e: am 649da9b5: am 5a47a9f6: Merge "Native Runtime: Add LOG_ID_CRASH"

* commit 'b90e504ec17a7f509521c21f2b937a2ebefaf6ab':
Native Runtime: Add LOG_ID_CRASH
b90e504ec17a7f509521c21f2b937a2ebefaf6ab 18-Apr-2014 Mark Salyzyn <salyzyn@google.com> am 649da9b5: am 5a47a9f6: Merge "Native Runtime: Add LOG_ID_CRASH"

* commit '649da9b505498ff87d75da56d376d46c22e50782':
Native Runtime: Add LOG_ID_CRASH
69eb6f57e34fb78050adcedcda8479cf2ad0c418 09-Apr-2014 Mark Salyzyn <salyzyn@google.com> Native Runtime: Add LOG_ID_CRASH

Change-Id: I4e3a82636901c5169cc6b714a4fec815cd757c58
og.java
b4f27c95bcfd4ceb5ced42efcf20bcd2faa2b626 29-Mar-2014 Selim Gurun <sgurun@google.com> Merge "Support for new gTLDs"
b080c3c54a79493863aee3f4ba5d96307ac500ec 13-Feb-2014 Selim Gurun <sgurun@google.com> Support for new gTLDs

Bug: 13006774

Add support for new generic Top-Level Domains (gTLDs) from ICANN
and deprecate the public APIs that depend on them. Due to the
fast profileration of gTLDs, it has become hard to keep this API
up-to-date. Further it already fails to recognize internal domains.
We thus replace them with simple "any letter sequence" regexps.

This CL is almost same as Ib6cb5360bbb4a02b14bb34acb30d1cc8ddec771b.
The difference is that the values of the public gTLD strings are only
deprecated and not modified.

Change-Id: I37c130ace9068b80eeaec3282a77450517ed7794
atterns.java
776abc24cdd18610232a50b997cce3cffa74609b 07-Mar-2014 Adam Lesinski <adamlesinski@google.com> Uses VMRuntime.newUnpaddedArray for ideal array sizes

Bug:13028925

Change-Id: I0a9301248b10a339afbdc5e4ffe3310ac4fa1fb7
rrayMap.java
rraySet.java
ontainerHelpers.java
ongArray.java
ongSparseArray.java
ongSparseLongArray.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
parseLongArray.java
5632dc1cf0b4bded368dd53ab425e725f37dfeb8 26-Mar-2014 Selim Gurun <sgurun@google.com> Merge "Revert "Support for new gTLDs""
a739994d60880a786ec9e281e3235e54824daa90 26-Mar-2014 Selim Gurun <sgurun@google.com> Revert "Support for new gTLDs"

This reverts commit d3ff8bdf92c23d596f3e4701455223f9e3ac8873.

Change-Id: I2006c4fcca54a4bc3b680ea0b0600b359cac6ca3
atterns.java
5579eb9b1664343804b24378a71fc38607284ac6 26-Mar-2014 Selim Gurun <sgurun@google.com> Merge "Support for new gTLDs"
d3ff8bdf92c23d596f3e4701455223f9e3ac8873 13-Feb-2014 Selim Gurun <sgurun@google.com> Support for new gTLDs

Bug: 13006774

Add support for new generic Top-Level Domains (gTLDs) from ICANN
and deprecate the public APIs that depend on them. Due to the
fast profileration of gTLDs, it has become hard to keep this API
up-to-date. Further it already fails to recognize internal domains.
We thus replace them with simple "any letter sequence" regexps.

Change-Id: Ib6cb5360bbb4a02b14bb34acb30d1cc8ddec771b
atterns.java
8e3feb15c5aec2c72b0ef120a1da325e1e8f0dda 24-Feb-2014 Svetoslav <svetoslavganov@google.com> Added accessibility APIs for introspecting interactive windows.

1. The old introspection model was allowing querying only the active window
which is the one the user is touching or the focused one if no window is
touched. This was limiting as auto completion drop downs were not inspectable,
there was not way to know when the IME toggles, non-focusable windows were
not inspectable if the user taps them as until a screen-reader starts
introspecting the users finger is up, accessibility focus was limited to
only one window and the user couldn't use gestures to visit the whole UI,
and other things I can't remember right now.

The new APIs allow getting all interactive windows, i.e. ones that a
sighted user can interact with. This prevents an accessibility service
from interacting with content a sighter user cannot. The list of windows
can be obtained from an accessibility service or the host window from an
accessibility node info. Introspecting windows obey the same rules for
introspecting node, i.e. the service has to declare this capability
in its manifest.

When some windows change accessibility services receive a new type
of event. Initially the types of windows is very limited. We provide
the bounds in screen, layer, and some other properties which are
enough for a client to determined the spacial and hierarchical
relationship of the windows.

2. Update the documentation in AccessibilityService for newer event types.

3. LongArray was not removing elements properly.

4. Composite accessibility node ids were not properly constructed as they
are composed of two ints, each taking 32 bits. However, the values for
undefined were -1 so composing a 64 long from -1, -1 prevents from getting
back these values when unpacking.

5. Some apps were generating inconsistent AccessibilityNodeInfo tree. Added
a check that enforces such trees to be well formed on dev builds.

6. Removed an necessary code for piping the touch exploration state to
the policy as it should just use the AccessibilityManager from context.

7. When view's visibility changed it was not firing an event to notify
clients it disappeared/appeared. Also ViewGroup was sending accessibility
events for changes if the view is included for accessibility but this is
wrong as there may be a service that want all nodes, hence events from them.
The accessibility manager service takes care of delivering events from
not important for accessibility nodes only to services that want such.

8. Several places were asking for prefetching of sibling but not predecessor
nodes which resulted in prefetching of unconnected subtrees.

9. The local AccessibilityManager implementation was relying on the backing
service being ready when it is created but it can be fetched from a context
before that. If that happens the local manager was in a broken state forever.
Now it is more robust and starts working properly once the backing service
is up. Several places were lacking locking.

bug:13331285

Change-Id: Ie51166d4875d5f3def8d29d77973da4b9251f5c8
ongArray.java
6934a165170c1da527cb2be6697974d2fbde5ad3 13-Mar-2014 Narayan Kamath <narayan@google.com> am 194e77aa: am 0f3fd6c6: Merge "Remove stray logging statement."

* commit '194e77aafe32cacc00f69b25bec6eeea67eb0205':
Remove stray logging statement.
2802c173d3a61727592e8908a261be33cfd974a9 11-Mar-2014 Narayan Kamath <narayan@google.com> am ad35099a: am b485d8e1: am 194e77aa: am 0f3fd6c6: Merge "Remove stray logging statement."

* commit 'ad35099a87b52e1df86237911eecda5e12961ee4':
Remove stray logging statement.
b485d8e1e405296307197ae07c6ed214be3b4f58 11-Mar-2014 Narayan Kamath <narayan@google.com> am 194e77aa: am 0f3fd6c6: Merge "Remove stray logging statement."

* commit '194e77aafe32cacc00f69b25bec6eeea67eb0205':
Remove stray logging statement.
c3955e7e5a79f450c34e3b8052f1bb692b639580 11-Mar-2014 Narayan Kamath <narayan@google.com> Remove stray logging statement.

bug: https://code.google.com/p/android/issues/detail?id=66974
Change-Id: Ie34c102de143cf6aeb16c78778dda3ef5e928380
atterns.java
801b3542c72c06cf1d6ea794f516ae966c8a3d9b 07-Mar-2014 Calin Juravle <calin@google.com> am 7a4172d1: am f11cc165: Merge "Fixed a possible infinite loop in JsonReader#skipValue()"

* commit '7a4172d190871c6b17124bf86374304cef727984':
Fixed a possible infinite loop in JsonReader#skipValue()
a1226a7a8a9923fb230ca5657c249aa4f7fdbe43 20-Feb-2014 Narayan Kamath <narayan@google.com> Make LruCache.resize(int) public

bug: https://code.google.com/p/android/issues/detail?id=65062
bug: https://code.google.com/p/android/issues/detail?id=35349
Change-Id: Ia271bc45ba2b4c0f81b61b6147be5530ee2dfd67
ruCache.java
2f825260f69c47cd61f2e85f4c2fd7869bc1f212 19-Feb-2014 Calin Juravle <calin@google.com> am fbd855cb: am 78f522d1: am 7a4172d1: am f11cc165: Merge "Fixed a possible infinite loop in JsonReader#skipValue()"

* commit 'fbd855cb60fc3b7e219ead013511a51d17a4482d':
Fixed a possible infinite loop in JsonReader#skipValue()
78f522d16e6e0305c61d13d8ca5dd75c792420c8 19-Feb-2014 Calin Juravle <calin@google.com> am 7a4172d1: am f11cc165: Merge "Fixed a possible infinite loop in JsonReader#skipValue()"

* commit '7a4172d190871c6b17124bf86374304cef727984':
Fixed a possible infinite loop in JsonReader#skipValue()
8fbcc6b4cdeed1ad119c28327a0f4f0a579cd24b 18-Feb-2014 Calin Juravle <calin@google.com> Fixed a possible infinite loop in JsonReader#skipValue()

Bug: https://code.google.com/p/android/issues/detail?id=65846

Change-Id: Idaa0e75fc5612550c4b9ccb9afa5535ea5b189df
sonReader.java
eaf2ac464b1cd741d7d0fe700771b1b7c00ddb29 07-Feb-2014 Dianne Hackborn <hackbod@google.com> Battery stats: more events, fixes.

Add new history events for top application package and
foreground application packages.

Doing this involved a fair amount of improvement to history
events. The event code is now separated out to have "start"
and "finish" identifies, and we use that to now keep track
of which events are active. With that, when resetting the
stats, we can spit out all of the currently active events at
the front of the new history.

Also fixed some problems when I re-arranged the history delta
int bits that were conflicting with the packing of the battery
status bits. These packing structures are changed to work
together correctly.

Change-Id: Ic8b815060dd8a50ff4a0a209efc2e1044215cd88
parseBooleanArray.java
d16c409e55e3d0fbe3e6d18ceca5806415ed1c92 28-Jan-2014 Jeff Brown <jeffbrown@google.com> am 065d998a: Merge "Hide an old debug function." into klp-modular-dev

* commit '065d998a4c3d597e924f42635d1a3699a6fcf34b':
Hide an old debug function.
8aca9e335f9b2eb060878b2e6cbe241928d83dc9 24-Jan-2014 Jeff Brown <jeffbrown@google.com> Hide an old debug function.

Change-Id: If12b967955847d257dac0431dabe0dca41865b58
ypedValue.java
db24d142f5202c79128d98cd031be8c34c0731f7 28-Nov-2013 Alan Viverette <alanv@google.com> Fix LongArray.addAll() to use correct arraycopy argument order

BUG: 11709513
Change-Id: I831e74ccb008739ab315c68618c04f870f9a36a5
ongArray.java
1f57ad47b5a0000b47c24f29332b1128d7c6f74f 22-Nov-2013 Newton Allen <newt@google.com> am 27bd4440: am 28029658: Fix javadoc typo in SparseArray.

* commit '27bd44401e48b5b676a1ce5e4940aff3200fb536':
Fix javadoc typo in SparseArray.
27bd44401e48b5b676a1ce5e4940aff3200fb536 22-Nov-2013 Newton Allen <newt@google.com> am 28029658: Fix javadoc typo in SparseArray.

* commit '2802965888566244d8642ba32775b7b2a3cec655':
Fix javadoc typo in SparseArray.
2802965888566244d8642ba32775b7b2a3cec655 21-Nov-2013 Newton Allen <newt@google.com> Fix javadoc typo in SparseArray.

Change-Id: Ie69b2cf96dae95b6ebe7b7797d3755749aec9f35
(cherry picked from commit ebb47950f21d3c41955a591000dfb1f195e746fe)
ongSparseArray.java
ongSparseLongArray.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
parseLongArray.java
ebb47950f21d3c41955a591000dfb1f195e746fe 21-Nov-2013 Newton Allen <newt@google.com> Fix javadoc typo in SparseArray.

Change-Id: Ie69b2cf96dae95b6ebe7b7797d3755749aec9f35
ongSparseArray.java
ongSparseLongArray.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
parseLongArray.java
6090995951c6e2e4dcf38102f01793f8a94166e1 19-Nov-2013 John Spurlock <jspurlock@google.com> Remove unused imports from frameworks/base.

Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
ventLogTags.java
ocalLog.java
ongSparseLongArray.java
log.java
fe2737282fe3eac6b7e7b3863f82f6a6cc191af8 08-Nov-2013 Alan Viverette <alanv@google.com> Merge "Add methods for removing children and actions from A11y nodes"
f0aed09ed8153043e40b3ac99788d47ba0831306 07-Nov-2013 Alan Viverette <alanv@google.com> Add methods for removing children and actions from A11y nodes

BUG: 11421730
Change-Id: Ide396e6a0fec871395a9cadf8880c16d0de08294
ongArray.java
9aaf4e13f0abac9bdee001eb513746c851f22051 06-Nov-2013 Adam Lesinski <adamlesinski@google.com> am 35040fdc: am 1aac29c3: Merge "Fix off-by-one issue when removing from Iterator" into klp-dev

* commit '35040fdc428669bf7e3a1ec9ea388fb49ede32df':
Fix off-by-one issue when removing from Iterator
83c7ac3b8e5faadb73313c73d401803d5d52f55f 01-Nov-2013 Adam Lesinski <adamlesinski@google.com> Fix off-by-one issue when removing from Iterator

MapCollections' iterator removes the preceding element
which causes IndexOutOfBoundsExceptions to be thrown
when removing the first element while iterating.

bug:11477476
Change-Id: Ifc8fcf0ca1651e759f3b2ab8356404564e9f7d0b
apCollections.java
9039b9a7efd6d42e842de35d2246971e74753035 18-Oct-2013 Dianne Hackborn <hackbod@google.com> am 63a16e0e: am 6834ae69: Merge "Fix issue #11256132: Add density bucket for all real numbers between 0 and ∞..." into klp-dev

* commit '63a16e0e0c4a9691a35f815d5422bdf0fa72efda':
Fix issue #11256132: Add density bucket for all real numbers between 0 and ∞...
09acb7ca897c9f49dd65b7173688e4ca63ca5dd3 18-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11256132: Add density bucket for all real numbers between 0 and ∞...

Well, how about 400. 400 is a real number.

Change-Id: I29ac61b7d629d582c7b68367365a7f81fcf679a2
isplayMetrics.java
9aded5abd65a2c69090abece37a7825a52ca3af0 15-Oct-2013 Dianne Hackborn <hackbod@google.com> am 827c5af0: am e49a107a: Merge "Fix issue #11223335: APR: Lots of failures in procstats due to..." into klp-dev

* commit '827c5af02de29424ea80f1ccfe525e681d0b74f0':
Fix issue #11223335: APR: Lots of failures in procstats due to...
878deb3c7b33a0c508137143c776e07bab0296cf 15-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11223335: APR: Lots of failures in procstats due to...

...bad cleanup of crashing processes

We now have a special path for crashing processes, to silently
clean up their state.

Also some tweaks to Log/Slog.wtf to get better stack crawl
summaries in APR.

Change-Id: Ieced26989907a6e7615b6fa033813fced78d7474
og.java
log.java
495fe22d680c1674598184d08a01d5b961c13fc5 04-Oct-2013 Dianne Hackborn <hackbod@google.com> am 2d3f995a: am d585f954: Merge "Fix issue #10921903: CTS: android.os.cts.ParcelTest#testReadBundle..." into klp-dev

* commit '2d3f995a65f2acd60559b1db57ae3ab2346a1df0':
Fix issue #10921903: CTS: android.os.cts.ParcelTest#testReadBundle...
4a7d824c3b41eafc4ff91d3253ff8a9ebd60a454 03-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10921903: CTS: android.os.cts.ParcelTest#testReadBundle...

...fails from KRS84 across all platforms

My fix for issue #10807048 was wrong, wrong, wrong. The problem was
actually just a stupid mistake in ArrayMap.erase(). This makes it
all right.

Change-Id: I762f7a2d5100bceb86a091ab3d6368edc21b4266
rrayMap.java
1d536848af1531dd14af52000f5ab505162bf123 02-Oct-2013 Dianne Hackborn <hackbod@google.com> am 239dc099: am 164371fb: Fix issue #11005453: [SUW] G+ profile creation for new user broken

* commit '239dc099a0d56eba3c7a537df23ef3c5046b2667':
Fix issue #11005453: [SUW] G+ profile creation for new user broken
164371fb759bad6854570af0fca60d9a01e17235 02-Oct-2013 Dianne Hackborn <hackbod@google.com> Fix issue #11005453: [SUW] G+ profile creation for new user broken

The main problem here was a mistake when turning a single process
structure to a multi-package-process structure with a common
process. When we cloned the original process state, if there were
any services already created for the process for that package, they
would be left with their process pointer still referencing the
original now common process instead of the package-specific process,
allowing the active counts to get bad. Now we switch any of those
processes over to the new package-specific process.

There was also another smaller issue with how ServiceRecord is
associated with a ServiceState -- we could be waiting for an
old ServiceRecord to be destroyed while at the same time creating
a new ServiceRecord for that same service class. These would share
the same ServiceState, so when the old record finally finished
destroying itself it would trample over whatever the new service
is doing.

This is fixed by changing the model to instead of using an "active"
reference count, we have an object identifying the current owner
of the ServiceState. Then when the old ServiceRecord is cleaning
up, we know if it is still the owner at that point.

Also some other small things along the way -- new Log.wtfStack()
method that is convenient, new suite of Slog.wtf methods, fixed
some services to use Slog.wtf when catching exceptions being
returned to the caller so that we actually know about them.

Change-Id: I75674ce38050b6423fd3c6f43d1be172b470741f
og.java
log.java
e713f57a6ebbeb6571226422c42c2c3d6c113a9a 25-Sep-2013 Elliott Hughes <enh@google.com> am d82b1c3b: am 9d8721f8: Merge "Remove dead code."

* commit 'd82b1c3bf2abbc1582c90362267650cf05d38cd5':
Remove dead code.
4b395a36252d93ae16e08916385786d6ac5959c1 25-Sep-2013 Elliott Hughes <enh@google.com> Remove dead code.

This hasn't been used since at least 2011, and we're no longer
shipping the data supporting it either.

Change-Id: Ibe42057650b49794c65d6f0d54ed7a492f3b594b
harsetUtils.java
5771302ca13c31cb85f17bc58da8f6f8227c9b85 08-Sep-2013 Flavio Lerda <flerda@google.com> Document the order of values returned by keyAt().

The values returned by keyAt() are currently guaranteed to be in
ascending order. This is helpful to users of the API to be able to make
assumptions about the keys and values when iterating over one of the
sparse array implementations.

This commit adds documentation about this.

Change-Id: I3d7eb78e115ce174f1167b83904b44bf5120b223
ongSparseArray.java
ongSparseLongArray.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
parseLongArray.java
a6c767b2d8239a80c53577ce59daea3001ab0bce 06-Sep-2013 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #10491028: iabv2 test apps that contain subscription SKUs..." into klp-dev
8fd3751be2fbe57ca16dd53527107a55d8e9825f 06-Sep-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10491028: iabv2 test apps that contain subscription SKUs...

...crash on launch

You got some values in my keys!

Change-Id: I2636c72843e0c0900ccdd9acba771c1b61e70b39
apCollections.java
1487466dc2ce14cccf0ff2bd2f824238aaa0044e 19-Jul-2013 Adam Powell <adamp@google.com> Add View#cancelPendingInputEvents API

This API allows an application to cancel deferred high-level input
events already in flight. It forms one tool of several to help apps
debounce input events and prevent things like multiple startActivity
calls, FragmentTransactions, etc. from executing when only one was
desired since it's otherwise not desirable for things like click
events to fire synchronously.

Change-Id: I60b12cd5350898065f0019d616e24d779eb8cff9
uperNotCalledException.java
253fb7f6c3c026f92f0698f59e013e38085f7662 30-Aug-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #10549094 KLP API Review: android.util.LayoutDirection

- use constant class instead of an interface
- make it final

Change-Id: I1bde76eb84cd92427e4e1fc2483cdecec429ae99
ayoutDirection.java
89a8250e242ee1d0b5b853154723b448d732b356 03-Aug-2013 Elliott Hughes <enh@google.com> 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.
cb64d430627b71221c588ef5f23599dd34a89ee9 02-Aug-2013 Elliott Hughes <enh@google.com> 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
ebugUtils.java
3f5a90b2fbba2a83a8a2c5babd5d466a5e0ad2aa 25-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Add automatic Drawable mirroring capability when in RTL layout direction

- default value is "no mirroring"
- introduce android:autoMirrored as a new attribute for Drawable,
BitmapDrawable, LayerDrawable, StateListDrawable and NinePatchDrawable
- setting android:autoMirrored="true" means that the drawable will
be mirrored when the layout direction is RTL (right-to-left)
- also fix an issue with ImageView drawable layout direction not
updated correctly when RTL properties were changed

See bug #7034321 Need Drawable RTL support

Change-Id: If595ee5106c786f38e786d3a032e182f784a9d97
ayoutDirection.java
8b7bc13e217034e0ddd00f9033463190f50dce88 01-Aug-2013 Dianne Hackborn <hackbod@google.com> Fix issue #10115327: MapCollections need to implement equals

Change-Id: I8e7b6dd092442f3870aa1a36bd2a7cd974177146
apCollections.java
62d708f4dd8e2a8554df4967837df9896efeff7c 26-Jul-2013 Dianne Hackborn <hackbod@google.com> Okay, I give in, add null key support to ArrayMap and ArraySet.

Change-Id: Iac5035f9c5884a9f9d5acb38132bb128d7a55249
rrayMap.java
rraySet.java
450d8c5b7c936b00fd0d40b5d68670df0fe56daa 20-Jul-2013 Dianne Hackborn <hackbod@google.com> Fix issue #9940105: IllegalArgumentException in ArrayMap

Try to deal with unmarshalling old parcels. Turns out someone
was writing a parcel to disk storing a Bundle. Naughty, naughty.
This helps us not completely keel over.

Change-Id: Id343da2690b7bab89f6c3cb6fad1b92f270dad03
rrayMap.java
b87655b3e551c6a32f34084c8533800bbd1aff7d 18-Jul-2013 Dianne Hackborn <hackbod@google.com> Switch Bundle's implementation over to ArrayMap.

That was... um... easier than I thought it was going to be.

Change-Id: Id8f2211c1d5f8145e0bb009dca0f62a590f2b860
rrayMap.java
3e82ba1a67b0c756ab6a289985f4cfc53725b311 16-Jul-2013 Dianne Hackborn <hackbod@google.com> Make ArrayMap public! :)

Also do some tweaking of the various container classes
to synchronize them with the support lib and make it
easier to copy code between the two.

And update activity/fragment to use ArrayMap.

Change-Id: I3cfe82392a17119dfc72c3d9961f64e1914f42be
rrayMap.java
rraySet.java
ontainerHelpers.java
ongSparseArray.java
ongSparseLongArray.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
parseLongArray.java
b993f41eb2f165425dfdf0f93ea0b1e354eca837 13-Jul-2013 Dianne Hackborn <hackbod@google.com> Update SparseArray docs to be more informative.

Change-Id: I5d8d17d46a69ccdcf6b29f93be3d44addd80ab61
rrayMap.java
rraySet.java
ongSparseArray.java
ongSparseLongArray.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
parseLongArray.java
8c84109b9fbbf473b225707a38261ff5f99d95fb 24-Jun-2013 Dianne Hackborn <hackbod@google.com> Use FastPrintWriter... everywhere.

One problem this turned up is, because FastPrintWriter does
its own buffering, a lot of code that used to use PrintWriter
would fail -- if it pointed to a StringWriter, there was no
buffering, so it could just immediately get the result. Now
you need to first flush the FastPrintWriter.

Also added some new constructors to specify the size of buffer
that FastPrintWriter should use.

Change-Id: If48cd28d7be0b6b3278bbb69a8357e6ce88cf54a
og.java
4b9a4d16872bbb50712e007b419ac0b35ff1582d 12-Jun-2013 Svetoslav Ganov <svetoslavganov@google.com> Print - platform APIs

Related changes:
Skia (inlcude PDF APIs): https://googleplex-android-review.googlesource.com/#/c/305814/
Canvas to PDF: https://googleplex-android-review.googlesource.com/#/c/319367/
Settings (initial version): https://googleplex-android-review.googlesource.com/#/c/306077/
Build: https://googleplex-android-review.googlesource.com/#/c/292437/
Sample print services: https://googleplex-android-review.googlesource.com/#/c/281785/

Change-Id: I104d12efd12577f05c7b9b2a5e5e49125c0f09da
imedRemoteCaller.java
a17c0f5e164729210210ad3f75aea72ed34ca330 21-Jun-2013 Dianne Hackborn <hackbod@google.com> More procstats work: separate global proc account, more dumping.

We now keep track of the time actually process run independently
of the time packages run in process, so we can give an accurate
summary of how long each physical process runs.

New command line options can be supplied to restrict printing to
a specific package, dump in a new csv format, control what is
printed in the csv format, and print a checkin report.

Add toString methods to ArrayMap and ArraySet.

Change-Id: I47b8f68472592ecc0088c5286d3564aa615f4e0a
rrayMap.java
rraySet.java
21ab6f49910a6f319bc7b9d3964086cb1ffe09d0 11-Jun-2013 Dianne Hackborn <hackbod@google.com> ArrayMap is great, so how about ArraySet!

Also a few little tweaks to the ArrayMap implementation. Note that
these are fairly parallel implementations; I looked at what I could
abstract out as a base class, but there isn't really all that much without
making the resulting code more general and thus slower. If we kept
the data structure for ArraySet the same as map, where the array has
two values per entry, then they could probably share a lot of code.
I couldn't really bring myself to do that at this point, though...

Change-Id: I9e0dd8baa8e1febcc1033ecef61623ad59ce4aae
rrayMap.java
rraySet.java
f4130cf35fa128e36f96e55955d4f5db86197e4a 07-Jun-2013 Chet Haase <chet@google.com> Additional functionality and performance for ArrayMap

Added equals() and hashCode() to ArrayMap to allow equals() tests
of maps with the same key/value pairs to return true.

Changed putAll() to handle the case of an empty map faster, just copying
the arrays instead of adding elements one by one.

Added to ArrayMapTests to test new equals() and copy constructor
functionality.

Issue #9299310 Optimize ArrayMap copy constructor

Change-Id: I1186a0eddd1fd53a0f380c2f3972fc1942cdf879
rrayMap.java
08735185f8105710e18ad02297461bec9268e514 04-Jun-2013 Chet Haase <chet@google.com> Use ArrayMap instead of HashMap in transitions

The new ArrayMap class is more efficient for small collections.
Transitions use maps all over the place to collect/use property
values in setting up the transition animations. Changing to ArrayMap
should be more efficient, especially in terms of memory allocations
and GCs.

Issue #9276256 Transitions: Reduce memory allocations

Change-Id: I07b7d4ba68d5a207808eca11943aa3578fa90e3e
rrayMap.java
390517be2d60dd6e6264150c190c372d89bb331a 31-May-2013 Dianne Hackborn <hackbod@google.com> Clean up some temporary allocations.

Yay to ArrayMap, letting me get rid of a bunch of temporary
iterators in core code paths like updateOomAdj. (Now I definitely
need an ArraySet to finish that up.)

Also clean up various other things that are doing unnecessary
allocations, clean up some debug output, make more of the debug
output respect package filtering.

Change-Id: Ib4979faf4de8c7912739bc0937c3fa9e7bfcde67
rrayMap.java
f4bf0ae2a7c2d9d92c5c8abdb82baa53b4c9ccda 21-May-2013 Dianne Hackborn <hackbod@google.com> New ArrayMap class.

This is a new kind of key/value mapping that stores its data
as an array, so it doesn't need to create an extra Entry object
for every mapping placed in to it. It is also optimized to reduce
memory overhead in other ways, by keeping the base object small,
being fairly aggressive about keeping the array data structures
small, etc.

There are some unit and performance tests dropped in to some
random places; they will need to be put somewhere else once I
decided what we are going to do with this for the next release
(for example if we make it public the unit tests should go in
to CTS).

Switch IntentResolver to using ArrayMap instead of HashMap.

Also get rid of a bunch of duplicate implementations of binarySearch,
and add an optimization to the various sparse arrays where you can
supply an explicit 0 capacity to prevent it from doing an initial
array allocation; use this new optimization in a few places where it
makes sense.

Change-Id: I01ef2764680f8ae49938e2a2ed40dc01606a056b
rrayMap.java
ongSparseArray.java
ongSparseLongArray.java
apCollections.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
parseLongArray.java
032d8e3890335e96b16bfa3fbd7706fbb0f2d2c0 26-Apr-2013 Elliott Hughes <enh@google.com> am 0bb497b8: Merge "Use the newer ZoneInfoDB API."

* commit '0bb497b8d1bac2206df89a878ecb7e356d21fe99':
Use the newer ZoneInfoDB API.
48289433d878d679ecae0cd7d74371d6440285e3 26-Apr-2013 Elliott Hughes <enh@google.com> Use the newer ZoneInfoDB API.

Change-Id: I846c720ae6c262afb4fd7f8a749008c837e76cc4
imeUtils.java
696b15e52659abdf8852dc60f09fe79edba435e0 19-Apr-2013 Philip Milne <pmilne@google.com> am 68711f93: Merge "Revert "Simple MVC based binding mechanism for android controls."" into jb-mr2-dev

* commit '68711f936381310fad783f2500e59dc2f272618a':
Revert "Simple MVC based binding mechanism for android controls."
ab104ba6d437ebfa3a6315f93258432091b11e95 19-Apr-2013 Philip Milne <pmilne@google.com> Revert "Simple MVC based binding mechanism for android controls."

Fix for bug 8656899 API REVIEW:
android.util.PropertyValueModel/ValueModel,
android.widget.ValueEditor etc

Revert the change that added this API to remove it outright.

This reverts commit 989709a973448980f36dacd587b0a58f89ffa11e

Change-Id: I9018cd8dadb1b1a54ad8749c816bd02bb7e7a38b
ropertyValueModel.java
alueModel.java
1e61ea82f423f4149fc19868fc0eca42fbb5d986 30-Mar-2013 Elliott Hughes <enh@google.com> am 55e9d98d: Merge "Clarify the documentation of SparseArray.indexOfValue."

* commit '55e9d98d990f7a015d4c10f5e5a92ae131637073':
Clarify the documentation of SparseArray.indexOfValue.
eff1151d6c66bb7ab4fcf1a2ce0f92c2770ae886 29-Mar-2013 kmccormick <kmccormick@google.com> am 0de7af1e: am c9c63003: am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs

* commit '0de7af1e18a72a979baa9711e4e980b21cf80255':
Doc update: misc fixes
0de7af1e18a72a979baa9711e4e980b21cf80255 29-Mar-2013 kmccormick <kmccormick@google.com> am c9c63003: am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs

* commit 'c9c63003b2e30c068a1bc9eba7683b75ca272180':
Doc update: misc fixes
c9c63003b2e30c068a1bc9eba7683b75ca272180 29-Mar-2013 kmccormick <kmccormick@google.com> am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs

* commit 'fd245a2ed78fd2b39c6d09ad0b1d84c275544c33':
Doc update: misc fixes
50e27c813522e1772e3bd406c5e0d6d7dee14cc0 29-Mar-2013 kmccormick <kmccormick@google.com> Doc update: misc fixes

"Bug: 3424410"

Some of these had already been fixed.

Change-Id: I1d0ab3a8fa51aa308186059db4186e7a7d24e9f8
ttributeSet.java
58aff7debfdab8ca99dd6bfcfa0c7bebdf2d303b 27-Mar-2013 Elliott Hughes <enh@google.com> Clarify the documentation of SparseArray.indexOfValue.

Bug: https://code.google.com/p/android/issues/detail?id=53297
Change-Id: I28725a2d03d4c11948bfe4fb90d730c86bf41481
parseArray.java
6c8cd01ad509df75be5c50f2ff2cd2c902dd9194 26-Feb-2013 Elliott Hughes <enh@google.com> am c22657f8: am 3f5778c8: Merge "Fix incorrect FloatMath documentation."

* commit 'c22657f8b1e3b9198f1e7795a06a6f59b5cd9c80':
Fix incorrect FloatMath documentation.
f732a2f83f43769653f9dc5975faf1d6d0bd19f6 26-Feb-2013 Elliott Hughes <enh@google.com> Fix incorrect FloatMath documentation.

Change-Id: I30bbe500e634b73f3456ccc797106ad261fd0ce7
loatMath.java
fb053cde74483f901462b5a034dd2be90a5af0da 22-Feb-2013 Wink Saville <wink@google.com> am f7bf667d: am b5a1ce2f: Merge "Allow three digit phone numbers"

* commit 'f7bf667d4a5e8e3fca75640f6352724826705128':
Allow three digit phone numbers
a37fc575a4ac40f3ff2e9a9f2108b577a649db73 19-Sep-2012 Bin Zhu <bin.zhu@sonyericsson.com> Allow three digit phone numbers

The comment for the PHONE pattern says:

"<digit><digit|sdd>+<digit>"

But the actual pattern requires that the string contains
more than that. A phone number should be allowed to be
three digits.

Change-Id: I86d2f3d634cd0c1654dad9814906f151055dc23a
atterns.java
56a2301c7a1169a0692cadaeb48b9a6385d700f5 13-Feb-2013 Dianne Hackborn <hackbod@google.com> Implement issue #6646859: 4K!!!! 4K!!!! 4K!!!!

Change-Id: Ib05a2eb6a03db50074805a437a3639a7d10684a0
isplayMetrics.java
dda73b5dcd92006762a1c71e2fb352e64fa265ef 19-Jan-2013 Jeff Sharkey <jsharkey@android.com> Add LongSparseLongArray with tests.

Change-Id: Iae32ba7647601c587e30834379d7d3c2235c75b0
ongSparseLongArray.java
60fba77035ba02b211e352dc1fbbafcbe3583b46 14-Dec-2012 Svetoslav Ganov <svetoslavganov@google.com> Simplification of the Pools implementation.

Now instead of a link list of holder objects the pool is backed by
an array of the max size.

Change-Id: Iad1f4f2766d42e8c438cc8efbc72e1e5756b0baf
ools.java
be922dc976b1ce1735dcc0cf49509a2149766c96 01-Dec-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding pool management via the poolable APIs to some classes.

1. Removed the support for infinite pool size which nobody was using and
does not make sense.

2. Update some classes in ViewGroup to use the poolable APIs.

Change-Id: Ifdb8c10968cd06fe53085ec9d3d649f7c9a944b7
ools.java
5c1eb690bb1422697f85162d66a64797a076badb 29-Nov-2012 Dianne Hackborn <hackbod@google.com> am 84ea428d: am ed8c323a: am 38e84700: Merge "Fix issue #7585876: When changing the font settings, the movie..." into jb-mr1.1-dev

* commit '84ea428d24dedc4b9a44bf6b2c9419b3545a03b8':
Fix issue #7585876: When changing the font settings, the movie...
84ea428d24dedc4b9a44bf6b2c9419b3545a03b8 29-Nov-2012 Dianne Hackborn <hackbod@google.com> am ed8c323a: am 38e84700: Merge "Fix issue #7585876: When changing the font settings, the movie..." into jb-mr1.1-dev

* commit 'ed8c323a6c776540de356d6fc7d902cc5916fef5':
Fix issue #7585876: When changing the font settings, the movie...
ed8c323a6c776540de356d6fc7d902cc5916fef5 29-Nov-2012 Dianne Hackborn <hackbod@google.com> am 38e84700: Merge "Fix issue #7585876: When changing the font settings, the movie..." into jb-mr1.1-dev

* commit '38e847004978031c2b914714e92bc5407ba3ce65':
Fix issue #7585876: When changing the font settings, the movie...
7ac8bbddfcaa2539f6311be54323d22f2dcc4a35 29-Nov-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7585876: When changing the font settings, the movie...

...just keeps attempting to load and doesn't play on the TV

Change-Id: Ifcdc969a037a113224632f907d55f60a168dd05a
isplayMetrics.java
abae2a1b891772d36d8f781adfcc8969e551691f 28-Nov-2012 Svetoslav Ganov <svetoslavganov@google.com> Simplification of the poolable management utils.

Before to implement a pool of objects, the pooled class had to implement an
interface which was leaking the pool management APIs. This requires
hiding APIs - inconvenient at best. Further, each client had to
implement the chaining of pooled instances which means adding a couple
of member variables which are manipulated by the implemented interface
methods. As a consequence the client is aware of how pooling is
implemented which is error prone and breaks encapsulation. Now the
pool objects are responsible for managing pooling state via reusable
wrapper objects and the clients are oblivious of how pooling is done.
Creating a thin cached wrapper for each pooled object has minimal
performance impact while making the code more maintainable. Actually
implementing of the old version of the APIs was taking as much code
as implementing the pooling yourself.

Also clients had to implement a poolable manager whose responsibility
was to create new instances and provide callbacks when an instance
is added to or removed from the pool. Now, the clinet class should
create a static member for the pool and expose obtain/aquire and
release/recycle methods in which it should create a new instance if
the pool did not return one and clear the state of the host when
it is returned to the pool. Updated the JavaDoc with a best practice.

The pooling was composed of several interfaces and classes scattered
over a few files, now all this is in a single small file.

Update all usages of the pooling APIs in the framework.

Also one had to write a poolable
manager which

Change-Id: Ib8dc286040eb3d7cb7d9668ba76fead05cb97647
initePool.java
ool.java
oolable.java
oolableManager.java
ools.java
ynchronizedPool.java
3b2b3aaf9f37dd8e971f2846236dc551d5e38666 27-Nov-2012 Chet Haase <chet@google.com> am 47a8e863: Merge "Fix infinite recursive loop DO NOT MERGE" into jb-mr1.1-dev

* commit '47a8e863e32dc634aa1df79d805f4a366e13d4e9':
Fix infinite recursive loop DO NOT MERGE
6ead9418ff2ae1633b6393625e33697bcd1f4093 23-Nov-2012 László Dávid <laszlo.david@gmail.com> Fix infinite recursive loop DO NOT MERGE

FindBugs description:

There is an apparent recursive loop at IntProperty.java
in method set(Object, Integer)

This method unconditionally invokes itself. This would seem
to indicate an infinite recursive loop that will result in a stack overflow.

Note: Checked into AOSP. Cherry-picking for mr1.1.

Issue #7621806 IntProperty has infinite recursion bug

Change-Id: I2f52dd3689198cb948925aa65dd9c95be7888fe7
ntProperty.java
62d3fd89ec74d5c5c5933d6e973b1e05df0e2d2e 27-Nov-2012 Chet Haase <chet@android.com> am 161194da: am d8a6b544: am 21243369: Merge "Fix infinite recursive loop"

* commit '161194daad7cee031475648be294e5e9d4bc6d68':
Fix infinite recursive loop
2124336984cb6c189f03c271636a1cc8babb2371 27-Nov-2012 Chet Haase <chet@android.com> Merge "Fix infinite recursive loop"
c40d1153e060fdd2024be84cf22d4b856efa02e0 27-Nov-2012 Scott Kennedy <skennedy@google.com> Unhide SparseLongArray

Because it's useful.

Change-Id: I6c71a49eed2c0c366e8afa874ebbc48cfe816a90
parseLongArray.java
c5d43f76fd7c3ccb91f1b75618a9c9e8f202505b 23-Nov-2012 László Dávid <laszlo.david@gmail.com> Fix infinite recursive loop

FindBugs description:

There is an apparent recursive loop at IntProperty.java
in method set(Object, Integer)

This method unconditionally invokes itself. This would seem
to indicate an infinite recursive loop that will result in a stack overflow.

Change-Id: I2f52dd3689198cb948925aa65dd9c95be7888fe7
ntProperty.java
8bf1cb378b6ce7b60ddba67bd8f542a7a1e4f94e 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am 20586fa0: Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev

* commit '20586fa0353f63453766140b32a4778793ce2b43':
Fix bug #7173351 API REVIEW: android.util.LocaleUtil
ad31d027ca0fecb780f3b8618712e1e69a447536 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am 684f1078: am 20586fa0: Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev

* commit '684f10788707f154e54a614b2d60cc28542aee3a':
Fix bug #7173351 API REVIEW: android.util.LocaleUtil
20586fa0353f63453766140b32a4778793ce2b43 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev
d3d9f3f1004dfee2649a26cfe8dba948cd364904 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7173351 API REVIEW: android.util.LocaleUtil

Change-Id: I08fd491eff714059e9ec874fadebe7eb556c34d5
ocaleUtil.java
417e267a7507abfaddf9303dd2e925438bb7f0a6 18-Sep-2012 Philip Milne <pmilne@google.com> Merge "Revert "Simple MVC based binding mechanism for android controls." Do not merge." into jb-mr1-dev
8e1c2b6b71c4e3649dcf59a0b5a33e3e3fe1051a 17-Sep-2012 Philip Milne <pmilne@dhcp-172-18-103-220.mtv.corp.google.com> Revert "Simple MVC based binding mechanism for android controls." Do not merge.

This reverts commit 989709a973448980f36dacd587b0a58f89ffa11e.

Change-Id: Ifc2c511b0d99d4a3a164b4a2281ca140015b366d
ropertyValueModel.java
alueModel.java
e6e6197d7c2eb5c29224bcddb0131a302267f6de 14-Sep-2012 Jeff Sharkey <jsharkey@android.com> Actually move to Global settings.

Also add better ConnectivityService logging.

Bug: 7157464
Change-Id: Ia235a7e62ed809240913c4782920c1410c7d597d
tpTrustedTime.java
023c05a341b87d0899c89bf355b6ae27d138bb03 14-Sep-2012 Jeff Sharkey <jsharkey@android.com> Move to Global.NETSTATS and Global.NTP constants.

Bug: 7157464
Change-Id: Ief10fd37940f62420f5684940994c9f93802e0be
tpTrustedTime.java
162fabbcf81157fddab1c38de09bdabaff8c068a 07-Sep-2012 Jeff Sharkey <jsharkey@android.com> Let Pair represent null values.

Bug: 7121262
Change-Id: I067ea0a4af40a0e8935a9408404df7a2e851e22c
air.java
a492c3a7b2c18426fd0cb4d017eacbc368195dc5 24-Aug-2012 Jeff Brown <jeffbrown@google.com> Initial draft of high-level multi-display APIs.

This patch introduces the ability to create a Context that
is bound to a Display. The context gets its configuration and
metrics from that display and is able to provide a WindowManager
that is bound to the display.

To make it easier to use, we also add a new kind of Dialog
called a Presentation. Presentation takes care of setting
up the context as needed and watches for significant changes
in the display configuration. If the display is removed,
then the presentation simply dismisses itself.

Change-Id: Idc54b4ec84b1ff91505cfb78910cf8cd09696d7d
isplayMetrics.java
e2c279e8a1abc2cc7bc87b94a514a563b814cdc1 22-Aug-2012 Jeff Brown <jeffbrown@google.com> Add FloatMath.pow.

Change-Id: I5c584f4894caba47fccfa22ba95f8665990d516c
loatMath.java
1a30b55036c2279d72ba69cb1107ec5f6f40d5e9 16-Aug-2012 Jeff Brown <jeffbrown@google.com> Use spline interpolation for auto-brightness.

Strictly speaking, this is a change in behavior for all products.
Instead of using discrete zones, they will all now use spline
interpolation. We could make this behavior configurable
but there seems to be little point to it. The range of brightness
values used will be more or less the same as before, it's just
that what used to be the brightness value for all levels within
a particular zone now becomes the brightness value for the
highest level in that zone and lower values are used for lower
levels within the zone.

Change-Id: I39804ee630ba55f018e1e53c0576b28e7bd27931
pline.java
270e3381e7053c3b15aa8f508c9df9d98032cd62 16-Aug-2012 Jeff Brown <jeffbrown@google.com> Add FloatMath.hypot.

Change-Id: I6a5a7ea2254300614dbbf540f40e39dbec2d2900
loatMath.java
9630704ed3b265f008a8f64ec60a33cf9dcd3345 28-Jul-2012 Jeff Brown <jeffbrown@google.com> Power manager rewrite.

The major goal of this rewrite is to make it easier to implement
power management policies correctly. According, the new
implementation primarily uses state-based rather than event-based
triggers for applying changes to the current power state.

For example, when an application requests that the proximity
sensor be used to manage the screen state (by way of a wake lock),
the power manager makes note of the fact that the set of
wake locks changed. Then it executes a common update function
that recalculates the entire state, first looking at wake locks,
then considering user activity, and eventually determining whether
the screen should be turned on or off. At this point it may
make a request to a component called the DisplayPowerController
to asynchronously update the display's powe state. Likewise,
DisplayPowerController makes note of the updated power request
and schedules its own update function to figure out what needs
to be changed.

The big benefit of this approach is that it's easy to mutate
multiple properties of the power state simultaneously then
apply their joint effects together all at once. Transitions
between states are detected and resolved by the update in
a consistent manner.

The new power manager service has is implemented as a set of
loosely coupled components. For the most part, information
only flows one way through these components (by issuing a
request to that component) although some components support
sending a message back to indicate when the work has been
completed. For example, the DisplayPowerController posts
a callback runnable asynchronously to tell the PowerManagerService
when the display is ready. An important feature of this
approach is that each component neatly encapsulates its
state and maintains its own invariants. Moreover, we do
not need to worry about deadlocks or awkward mutual exclusion
semantics because most of the requests are asynchronous.

The benefits of this design are especially apparent in
the implementation of the screen on / off and brightness
control animations which are able to take advantage of
framework features like properties, ObjectAnimator
and Choreographer.

The screen on / off animation is now the responsibility
of the power manager (instead of surface flinger). This change
makes it much easier to ensure that the animation is properly
coordinated with other power state changes and eliminates
the cause of race conditions in the older implementation.

The because of the userActivity() function has been changed
so that it never wakes the device from sleep. This change
removes ambiguity around forcing or disabling user activity
for various purposes. To wake the device, use wakeUp().
To put it to sleep, use goToSleep(). Simple.

The power manager service interface and API has been significantly
simplified and consolidated. Also fixed some inconsistencies
related to how the minimum and maximum screen brightness setting
was presented in brightness control widgets and enforced behind
the scenes.

At present the following features are implemented:

- Wake locks.
- User activity.
- Wake up / go to sleep.
- Power state broadcasts.
- Battery stats and event log notifications.
- Dreams.
- Proximity screen off.
- Animated screen on / off transitions.
- Auto-dimming.
- Auto-brightness control for the screen backlight with
different timeouts for ramping up versus ramping down.
- Auto-on when plugged or unplugged.
- Stay on when plugged.
- Device administration maximum user activity timeout.
- Application controlled brightness via window manager.

The following features are not yet implemented:

- Reduced user activity timeout for the key guard.
- Reduced user activity timeout for the phone application.
- Coordinating screen on barriers with the window manager.
- Preventing auto-rotation during power state changes.
- Auto-brightness adjustment setting (feature was disabled
in previous version of the power manager service pending
an improved UI design so leaving it out for now).
- Interpolated brightness control (a proposed new scheme
for more compactly specifying auto-brightness levels
in config.xml).
- Button / keyboard backlight control.
- Change window manager to associated WorkSource with
KEEP_SCREEN_ON_FLAG wake lock instead of talking
directly to the battery stats service.
- Optionally support animating screen brightness when
turning on/off instead of playing electron beam animation
(config_animateScreenLights).

Change-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
imeUtils.java
5d728bb9ff8c6ad89d5a1b88b2804f954d45d763 08-Aug-2012 Jeff Brown <jeffbrown@google.com> Add FloatMath.exp.

Change-Id: I7f215e5fd4cb942ddee56eebaef04be565ac79f3
loatMath.java
dde331cebd87982faded6818ad5f9927ff994c96 03-Aug-2012 Dianne Hackborn <hackbod@google.com> We can now (kind-of) change screen density on the fly.

Preloaded drawables now have a density associated with them, so we
can load the correct drawable if we are using a different density.

Window manager now formally keeps track of the density for each
screen, allowing it to be overridden like you can already do with
size, and relies on this density to drive itself internally and
the configurations it reports.

There are a new set of Bitmap constructors where you provide a
DisplayMetrics so they can be constructed with the correct density.
(This will be for when you can have different windows in the same
app running at different densities.)

ActivityThread now watches for density changes, and pushes them
to the DENSITY_DEVICE and Bitmap global density values for that
process.

A new am command allows you to change the density.
isplayMetrics.java
6a916ed0c0f5c5c5ec53f11087265eb13fc34ff1 01-Aug-2012 Jeff Sharkey <jsharkey@android.com> Merge "Add trimToSize() to public API." into jb-mr1-dev
d96b585f5c40ee0d1232630ac0124d4610341577 28-Jul-2012 Jeff Sharkey <jsharkey@android.com> Add trimToSize() to public API.

Bug: 6602490
Bug: http://code.google.com/p/android/issues/detail?id=35349
Change-Id: Ib3bc7fee05bb0edc375ebee1c40a1d7bd82e2a17
ruCache.java
908aecc3a63c5520d5b11da14a9383f885b7d126 01-Aug-2012 Dianne Hackborn <hackbod@google.com> Start moving away from DisplayMetrics.DENSITY_DEVICE.

This puts in most of the infrastructure needed to allow us to
switch between different densities at run time. The main remaining
uses of the global are to initialize the Bitmap object (not sure
what to do about that since it doesn't have anything passed in
the constructor to get this information from), and being able to
load drawables if we need a different density than what was preloaded
by zygote.

Change-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848
isplayMetrics.java
39606a007a5b1309dd000234f2b8cf156c49fd0f 01-Aug-2012 Dianne Hackborn <hackbod@google.com> Make AtomicFile a public API. It's about time!

Change-Id: Ib34e294747405b7ab709cb0bbb2d9a0cc80ce86a
tomicFile.java
2bbc19ddbb1c53fae448c1250c52249f9af4176e 21-Jul-2012 Jeff Sharkey <jsharkey@android.com> Merge "Avoid emitting broken ASCII."
eaaf396169abdbd213565cacb37dc0c9c391b365 21-Jul-2012 Jeff Sharkey <jsharkey@android.com> Avoid emitting broken ASCII.

Bug: 6131887
Change-Id: Iff13573aad8128cc7ae3613ab718c81e6d0862a1
imeUtils.java
989709a973448980f36dacd587b0a58f89ffa11e 23-Jun-2012 Philip Milne <pmilne@google.com> Simple MVC based binding mechanism for android controls.

Change-Id: I80fe18e0e15f8a840d558de9863650505bd5fb00
ropertyValueModel.java
alueModel.java
d80e7fb3f8f18ca929ba4f39bfb805797bbb0dcd 19-Jun-2012 Dianne Hackborn <hackbod@google.com> am ecf5bc55: am fe54cb6f: Merge "Docs only: DENSITY_TV, not just for TVs any more!" into jb-dev

* commit 'ecf5bc551eddacfb4a4041d614f8fe50672659ae':
Docs only: DENSITY_TV, not just for TVs any more!
493861dfa011f482987c7a49d147d6e50a90c692 19-Jun-2012 Dianne Hackborn <hackbod@google.com> Docs only: DENSITY_TV, not just for TVs any more!

Change-Id: Id70e0bc179ab405fbb7f3b2cda7b75f44ff30b57
isplayMetrics.java
0f863886c83b375818c32bb266aa4bde36c186a6 11-May-2012 Wink Saville <wink@google.com> am 85dc303f: am e9aa4b27: Merge "Add additional debug for time zone handling." into jb-dev

* commit '85dc303f80d141d70af9ba2e105c1af49bf9a7ad':
Add additional debug for time zone handling.
26e1a02ba3183aba2ba262c6f60602e10dd792e3 11-May-2012 Wink Saville <wink@google.com> Add additional debug for time zone handling.

Change-Id: Ie46bba7e0ef7737a865f7efadbf963c2d14e488f
imeUtils.java
8396830d8fedc08c0a9de36bcce3c8b65691729f 04-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Hide RTL related APIs - DO NOT MERGE" into jb-dev
66388dcb09018933ccd1d38eae563f0890ba4f06 04-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Hide RTL related APIs - DO NOT MERGE

- fix bug #6441155 API review: @hide RTL layout APIs

Change-Id: I13c5ea5f579cecffed9d517f06180ab0576cd26a
ocaleUtil.java
ac3fcb1590e1da21324c13ce237ec48f2bf488bf 03-May-2012 Jeff Sharkey <jsharkey@android.com> Reduce persist threshold for lower warning/limit.

Default is 2MB persist threshold, but even that can be substantial
for devices on 100MB/month plans. This change gradually reduces the
persist threshold up to 8x lower (256kb outstanding) based on lowest
active policy.

Bug: 5382676
Change-Id: Ief4e8cdb169bfb151a3d1b45722a8eaa01926508
athUtils.java
25ba197fa7f29aed574f7d5e38975c5fda25e2ae 12-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Make public more RTL APIs

- LocaleUtil will help developers to get the layout direction from a Locale

Change-Id: I184ebcc9c208464b20f0454e7a915426640c74f0
ocaleUtil.java
85c738f6baad31a02354033db69a0867982b0071 01-Mar-2012 Wink Saville <wink@google.com> Merge "If no NITZ information use Country Code to set TimeZone."
a27421a306c49fbe9b3823b30f7ab1cd58b28854 01-Mar-2012 Wink Saville <wink@google.com> If no NITZ information use Country Code to set TimeZone.

This is not perfect and only works if the CC is known via
the GSM radio and is only accurate if there is one time zone
per country. This does nothing to resolve time zone problems
for wifi only devices.

So this is a partial fix for bug 2896745

Bug: 2896745
Change-Id: I78f013836c4e4870b8b1016a8312f5adbe0d31c9
imeUtils.java
3fb824bae3322252a68c1cf8537280a5d2bd356d 29-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5217606 LocaleUtils constants TEXT_LAYOUT_DIRECTION_LTR_DO_NOT_USE and TEXT_LAYOUT_DIRECTION_RTL_DO_NOT_USE should be renamed

- replace them by the View constants

Change-Id: I7c2bf0213319247d3db369b6f7c36771fdf3e509
ocaleUtil.java
9c1d2980f2c7c73f098d551499c4fd48cdc96b4d 10-Feb-2012 Dianne Hackborn <hackbod@google.com> Clean up and expose LongSparseArray.

Change-Id: I15ba98d65e790ba45391cc7714f60b6e7de6ebfc
ongSparseArray.java
d96e3dfa02b203b1fc826e80d6f9aa074ba9c250 26-Jan-2012 Dianne Hackborn <hackbod@google.com> Add xxhdpi; fix ActivityManager.getLauncherLargeIconSize() etc.

Change-Id: I519d6cdc527a402d93b98df17a64fc1da52ad598
isplayMetrics.java
470fd72a06390d7a6b854583afd0ed76ce0a03ee 18-Jan-2012 Robert Greenwalt <rgreenwalt@google.com> Log netd traffic nicely.

Create a LocalLog class for logging within a service for dumping in dumps.
Use it in the NativeDaemonConnector so we can get some insight into what
is happening in these lockups.

bug:5864209
Change-Id: I68ddc58847f3c8de613be9528570f8c3157d8274
ocalLog.java
e5360fbf3efe85427f7e7f59afe7bbeddb4949ac 01-Nov-2011 Jeff Brown <jeffbrown@google.com> Rewrite SQLite database wrappers.

The main theme of this change is encapsulation. This change
preserves all existing functionality but the implementation
is now much cleaner.

Instead of a "database lock", access to the database is treated
as a resource acquisition problem. If a thread's owns a database
connection, then it can access the database; otherwise, it must
acquire a database connection first, and potentially wait for other
threads to give up theirs. The SQLiteConnectionPool encapsulates
the details of how connections are created, configured, acquired,
released and disposed.

One new feature is that SQLiteConnectionPool can make scheduling
decisions about which thread should next acquire a database
connection when there is contention among threads. The factors
considered include wait queue ordering (fairness among peers),
whether the connection is needed for an interactive operation
(unfairness on behalf of the UI), and whether the primary connection
is needed or if any old connection will do. Thus one goal of the
new SQLiteConnectionPool is to improve the utilization of
database connections.

To emulate some quirks of the old "database lock," we introduce
the concept of the primary database connection. The primary
database connection is the one that is typically used to perform
write operations to the database. When a thread holds the primary
database connection, it effectively prevents other threads from
modifying the database (although they can still read). What's
more, those threads will block when they try to acquire the primary
connection, which provides the same kind of mutual exclusion
features that the old "database lock" had. (In truth, we
probably don't need to be requiring use of the primary database
connection in as many places as we do now, but we can seek to refine
that behavior in future patches.)

Another significant change is that native sqlite3_stmt objects
(prepared statements) are fully encapsulated by the SQLiteConnection
object that owns them. This ensures that the connection can
finalize (destroy) all extant statements that belong to a database
connection when the connection is closed. (In the original code,
this was very complicated because the sqlite3_stmt objects were
managed by SQLiteCompiledSql objects which had different lifetime
from the original SQLiteDatabase that created them. Worse, the
SQLiteCompiledSql finalizer method couldn't actually destroy the
sqlite3_stmt objects because it ran on the finalizer thread and
therefore could not guarantee that it could acquire the database
lock in order to do the work. This resulted in some rather
tortured logic involving a list of pending finalizable statements
and a high change of deadlocks or leaks.)

Because sqlite3_stmt objects never escape the confines of the
SQLiteConnection that owns them, we can also greatly simplify
the design of the SQLiteProgram, SQLiteQuery and SQLiteStatement
objects. They no longer have to wrangle a native sqlite3_stmt
object pointer and manage its lifecycle. So now all they do
is hold bind arguments and provide a fancy API.

All of the JNI glue related to managing database connections
and performing transactions is now bound to SQLiteConnection
(rather than being scattered everywhere). This makes sense because
SQLiteConnection owns the native sqlite3 object, so it is the
only class in the system that can interact with the native
SQLite database directly. Encapsulation for the win.

One particularly tricky part of this change is managing the
ownership of SQLiteConnection objects. At any given time,
a SQLiteConnection is either owned by a SQLiteConnectionPool
or by a SQLiteSession. SQLiteConnections should never be leaked,
but we handle that case too (and yell about it with CloseGuard).

A SQLiteSession object is responsible for acquiring and releasing
a SQLiteConnection object on behalf of a single thread as needed.
For example, the session acquires a connection when a transaction
begins and releases it when finished. If the session cannot
acquire a connection immediately, then the requested operation
blocks until a connection becomes available.

SQLiteSessions are thread-local. A SQLiteDatabase assigns a
distinct session to each thread that performs database operations.
This is very very important. First, it prevents two threads
from trying to use the same SQLiteConnection at the same time
(because two threads can't share the same session).
Second, it prevents a single thread from trying to acquire two
SQLiteConnections simultaneously from the same database (because
a single thread can't have two sessions for the same database which,
in addition to being greedy, could result in a deadlock).

There is strict layering between the various database objects,
objects at lower layers are not aware of objects at higher layers.
Moreover, objects at higher layers generally own objects at lower
layers and are responsible for ensuring they are properly disposed
when no longer needed (good for the environment).

API layer: SQLiteDatabase, SQLiteProgram, SQLiteQuery, SQLiteStatement.
Session layer: SQLiteSession.
Connection layer: SQLiteConnectionPool, SQLiteConnection.
Native layer: JNI glue.

By avoiding cyclic dependencies between layers, we make the
architecture much more intelligible, maintainable and robust.

Finally, this change adds a great deal of new debugging information.
It is now possible to view a list of the most recent database
operations including how long they took to run using
"adb shell dumpsys dbinfo". (Because most of the interesting
work happens in SQLiteConnection, it is easy to add debugging
instrumentation to track all database operations in one place.)

Change-Id: Iffb4ce72d8bcf20b4e087d911da6aa84d2f15297
ruCache.java
4c1e00a8c29e532a5b0fce755bead691797eff94 06-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Add textDirection="locale"

- also fix and update unit tests
- see bug #5242821

Change-Id: I29e029bab8ade336a430f9a2a5073caaf11b8dda
ocaleUtil.java
f3b4f3163b5b4c0a54a2643f07c97c47b14a1eb7 01-Dec-2011 Svetoslav Ganov <svetoslavganov@google.com> resolved conflicts for merge of 26f7a81f to master

Change-Id: I6bf5fd7c0de7945cef84602dbe3a7bbed587700f
d116d7c78a9c53f30a73bf273bd7618312cf3847 22-Nov-2011 Svetoslav Ganov <svetoslavganov@google.com> Fixing memory leaks in the accessiiblity layer.

1. AccessibilityInteractionConnections were removed from the
AccessiiblityManagerService but their DeathRecipents were
not unregistered, thus every removed interaction connection
was essentially leaking. Such connection is registered in
the system for every ViewRootImpl when accessiiblity is
enabled and inregistered when disabled.

2. Every AccessibilityEvent and AccessiilbityEventInfo obtained
from a widnow content querying accessibility service had a
handle to a binder proxy over which to make queries. Hoewever,
holding a proxy to a remote binder prevents the latter from
being garbage collected. Therefore, now the events and infos
have a connection id insteand and the hindden singleton
AccessiiblityInteaction client via which queries are made
has a registry with the connections. This class looks up
the connection given its id before making an IPC. Now the
connection is stored in one place and when an accessibility
service is disconnected the system sets the connection to
null so the binder object in the system process can be GCed.
Note that before this change a bad implemented accessibility
service could cache events or infos causing a leak in the
system process. This should never happen.

3. SparseArray was not clearing the reference to the last moved
element while garbage collecting thus causing a leak.

bug:5664337

Change-Id: Id397f614b026d43bd7b57bb7f8186bca5cdfcff9
parseArray.java
02db1b6c0081fe442534c8955c0c927c9ddccd46 17-Nov-2011 Jesse Wilson <jessewilson@google.com> Add a link from LruCache to the Android support package (compatibility library).

Change-Id: Ibd16410856cd8a0a991b4a403fedd9ac4e1ecaad
ruCache.java
021078554b902179442a345a9d080a165c3b5139 04-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Adding APIs to enable reporting virtual view hierarchies to accessibility serivces.

Added an interface that is the contract for a client to expose a virtual
view hierarchy to accessibility services. Clients impement this interface
and set it in the View that is the root of the virtual sub-tree. Adding
this finctionality via compostion as opposed to inheritance enables apps
to maintain backwards compatibility by setting the accessibility virtual
hierarchy provider on the View only if the API version is high enough.

bug:5382859

Change-Id: I7e3927b71a5517943c6cb071be2e87fba23132bf
parseLongArray.java
7810b5f8cffb3c2c98fd0df579f4da5a9ac6cc73 25-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5199577 TextView with android:password="true" is showing the "dots" on the left even if the password chars are RTL

- force TextView to LOCALE text heuristic when in "password" mode
- remove TEXT_LAYOUT_DIRECTION_UNKNOWN_DO_NOT_USE
- LocaleUtils.getLayoutDirectionFromLocale() returns "LTR" is locale is NULL or ROOT

Change-Id: I182c46aaf2d73c8b18967fffa230bfabec91ed06
ocaleUtil.java
7f9f99ea11051614a7727dfb9f9578b518e76e3c 11-Aug-2011 Xavier Ducrohet <xav@android.com> Make some methods/fields package private so that layoutlib can access them.

Change-Id: I4aeadfbaf8a4f6a459fa19937c21ac23d9e5fb64
mlPullAttributes.java
d1ad3c2c3a675c4018f0f43577b203858dad767a 22-Jul-2011 Jesse Wilson <jessewilson@google.com> Fix benign off-by-one in JsonReader.

The bug would have caused us to call fillBuffer() earlier than
necessary.

Change-Id: Ib0e4e54019394d7085913faf90c495d130e8bb75
sonReader.java
7a2c813d304b910b00046115efb0f462e6431a64 20-Jul-2011 Jesse Wilson <jessewilson@google.com> Skip byte order mark (BOM) in JsonReader

Bug: http://code.google.com/p/android/issues/detail?id=18508
Change-Id: I7652080d9ab475c75d0a811a6e2ede4975ebe063
sonReader.java
ba6e855453f055d358beead9cb50f3232a9e34e3 19-Jul-2011 Shimeng (Simon) Wang <swang@google.com> Merge "Add in i18n TLDs and new TLDs to the URL RegEx matcher."
52fc810f73e0d8e005281e80a981e1ceed855850 19-Jul-2011 Shimeng (Simon) Wang <swang@google.com> Add in i18n TLDs and new TLDs to the URL RegEx matcher.

also update APIs.

issue: 4384739
Change-Id: I946323d80f85fe43338fdc19c5858356faefa6cc
atterns.java
07229314aff0056dab21dc211468b7f6154f1350 19-Jul-2011 Bart Sears <bsears@google.com> Merge "Revert "Add in i18n TLDs and new TLDs to the URL RegEx matcher.""
89006fa55ccfd7d5eea6d490436575b6b7503580 19-Jul-2011 Bart Sears <bsears@google.com> Revert "Add in i18n TLDs and new TLDs to the URL RegEx matcher."

This reverts commit 6050cf65dbdf52f52325dc4513156f9404ffe9d8
atterns.java
35ca86d8a48e2c2edc12e21e087b76a2304c4cfe 19-Jul-2011 Shimeng (Simon) Wang <swang@google.com> Merge "Add in i18n TLDs and new TLDs to the URL RegEx matcher."
6050cf65dbdf52f52325dc4513156f9404ffe9d8 19-Jul-2011 Shimeng (Simon) Wang <swang@google.com> Add in i18n TLDs and new TLDs to the URL RegEx matcher.

issue: 4384739
Change-Id: I96f2263d9a14fc2560583e2719cf7c5ac5c46d9e
atterns.java
822036d00eecd5fb7c48260bdb7f649f627efbd2 19-Jul-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue # 5017868: Twitter crashes on start:"
a11c2f8674ab5b8834fb5cccce1060aa829a7f0a 18-Jul-2011 Jesse Wilson <jessewilson@google.com> Merge "Track line and column when parsing JSON."
febae4ed18953098fec2126c7f883213e14469c9 18-Jul-2011 Jesse Wilson <jessewilson@google.com> Track line and column when parsing JSON.

This is a prerequisite to skipping the BOM if it exists.
Bug: http://code.google.com/p/android/issues/detail?id=18508

Change-Id: I38b1c46f246d8526fa20859b50ca3e25c9f9b9d1
sonReader.java
1a1d731c9cc0209570472a9c8b6e59da0b545968 18-Jul-2011 Jesse Wilson <jessewilson@google.com> Merge "Always escape chars that JavaScript treats as newlines."
78f80b4e712519e2f918a096e574586d86fd689d 18-Jul-2011 Dianne Hackborn <hackbod@google.com> Fix issue # 5017868: Twitter crashes on start:

unable to resolve static field 106 (DEBUG) in Landroid/util/Config

Config was removed, but apparently some apps are actually using it.
Put it back.

Change-Id: Iebcb94b1158abc5e8c3dd9855068d2e9223d8999
onfig.java
0fc0edfd273f9d92b9f9fe4f49382b11104f55f0 18-Jul-2011 Jesse Wilson <jessewilson@google.com> Always escape chars that JavaScript treats as newlines.

Related GSON Bug: http://code.google.com/p/google-gson/issues/detail?id=341
Change-Id: I41b1615c4b3b4526f2223a75191f9b0699cdda12
sonWriter.java
35bfedeaba724aeadc6f6c890269cb6bf7ef42f5 15-Jul-2011 Svetoslav Ganov <svetoslavganov@google.com> Touch exploration separate setting and API to poll the latter state.

1. Seperated touch exploration to be a seperate setting rather being
magically enabled by the system of accessiiblity is on the there
is at leas one accessibility service that speaks enabled. Now
there is a setting for requesting touch exploration but still the
system will enabled it only if that makes sense i.e. accessibility
is on and one accessibility service that speaks is enabled.

2. Added public API for checking of touch exploration is enabled.

3. Added description attribute in accessibility service declaration
which will be shown to the user before enabling the service.

4. Added API for quick cloning of AccessibilityNodeInfo.

5. Added clone functionality to SparseArray, SparseIntArray, and
SparseBooleanArray.

bug:5034010
bug:5033928

Change-Id: Ia442edbe55c20309244061cd9d24e0545c01b54f
parseArray.java
parseBooleanArray.java
parseIntArray.java
104344e507610be42fb70c7deda3c422c543bfcb 10-Jul-2011 Jeff Sharkey <jsharkey@android.com> Cached NTP time for system services.

Uses NTP server and timeout from secure settings, or fallback to
defaults in resources. Update various system services to use cached
NTP time when fresh enough, or force updates as needed.

Bug: 4517273
Change-Id: Ie1c4c4883836013d02ca0bbd850cf8949f93b34b
tpTrustedTime.java
2b31d53161789358de57fd396716a6503855c5da 23-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix issue #4770360: older app compatibility mode is really tiny on ICS phones

We were applying the density compat mode scaling multiple times to
display metrics, causing bad values.

Change-Id: Iafafd9a5e94b9d774cd2715bf968e91602a1bd82
isplayMetrics.java
bec9be2f513617a35988a1cd225afd8f1f513867 17-Jun-2011 Romain Guy <romainguy@google.com> Merge "Prevent TweetDeck from crashing."
5d5d1ff2d5daadec48c6c95e86d6d644390c02e6 17-Jun-2011 Romain Guy <romainguy@google.com> Prevent TweetDeck from crashing.

Change-Id: I964d9152010060c3a2698cdb6c22ac21da1af8b0
initePool.java
c01924f156710e0c92bef13ec0b1a1e057b793d1 16-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Update getLayoutDirectionFromLocale() for using ICU

- now relying on ICU.getScript() and ICU.addLikelySubtags() for getting the locale script
- clean unit tests imports

Change-Id: Icdc45fa78490d1e2dde0e83bca0feea8aa205cdf
ocaleUtil.java
49e3b372ab288992a4705dfe7f37fbd732d06aed 16-Jun-2011 Kenny Root <kroot@google.com> Fix crash determining direction of invalid locale

The layoutlib is used in the SDK which might not have a default Locale,
so the language string will be some kind of junk. This causes a crash in
the new LocaleUtils

Change-Id: I24e5115c56e39d394dcf89ec6cff609525b3c73e
ocaleUtil.java
a47f45e4829f812ff47f9e5c9370b02284d92ae8 15-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Introduce LocalUtil and getLayoutDirectionFromLocale() now use likelySubtags

- move code from Configuration to LocaleUtil
- move unit tests

Change-Id: Ic14b0131894a0c5618f00d4acb3edb0daadefe01
ocaleUtil.java
a2f78a3617170aadf91be568e4fbbe56f9dbeebf 10-Jun-2011 Chet Haase <chet@google.com> Change Property.set() to throw UnsupportedOperationException by default

Change-Id: I2326e066e0b7ce63cbafe83a3a37b90a3d148c43
roperty.java
5732bf6cab588604758cbbaf28eebfe151463160 09-Jun-2011 Andy McFadden <fadden@android.com> Merge "Move CalendarUtils into Calendar app"
271c3aee1fa9f1981f025e84f6dfd18d64209bf4 09-Jun-2011 Andy McFadden <fadden@android.com> Move CalendarUtils into Calendar app

Bug 4575374

Change-Id: I325810002c63a82e712d7505327e77c388564d2c
alendarUtils.java
accb54c52f293558d67ff2d246bfa08248c8c072 09-Jun-2011 Chet Haase <chet@google.com> Change exception thrown when set() called on readonly Property.

Change-Id: I2669e32691c93dfaf07c34ca4d9fe5c6d47d5480
eflectiveProperty.java
b39f051631250c49936a475d0e64584afb7f1b93 24-May-2011 Chet Haase <chet@google.com> Add 'Property' object

This change adds a generic Property facility to the SDK, which allows an
easy way to reference fields (private or otherwise) in a general way.
For example, animations can use this facility to animate 'properties'
on target objects in a way that is more code- and compiler-friendly than
the existing String-based approach (for objects which have implemented
Properties, of course). The animator classes have been updated to use
this new approach (in addition to Strings, which are still more generally
useful for objects which have get/set functions but not Property objects).

The change also includes new Property objects on View (which can now be
used in creating animations on Views).

There is an unrelated change on GLES20RecordingCanvas to change the way we
cache bitmaps, which avoids spurious garbage by using an ArrayList instead of
a HashSet.

Change-Id: I167b43a3fca20e7695b1a23ca81274367539acda
loatProperty.java
ntProperty.java
oSuchPropertyException.java
roperty.java
eflectiveProperty.java
8643aa0179e598e78d938c59035389054535a229 20-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Interrogation of the view hierarchy from an AccessibilityService.

1. Views are represented as AccessibilityNodeInfos to AccessibilityServices.

2. An accessibility service receives AccessibilityEvents and can ask
for its source and gets an AccessibilityNodeInfo which can be used
to get its parent and children infos and so on.

3. AccessibilityNodeInfo contains some attributes and actions that
can be performed on the source.

4. AccessibilityService can request the system to preform an action
on the source of an AccessibilityNodeInfo.

5. ViewAncestor provides an interaction connection to the
AccessibiltyManagerService and an accessibility service uses
its connection to the latter to interact with screen content.

6. AccessibilityService can interact ONLY with the focused window
and all calls are routed through the AccessibilityManagerService
which imposes security.

7. Hidden APIs on AccessibilityService can find AccessibilityNodeInfos
based on some criteria. These API go through the AccessibilityManagerServcie
for security check.

8. Some actions are hidden and are exposes only to eng builds for UI testing.

Change-Id: Ie34fa4219f350eb3f4f6f9f45b24f709bd98783c
initePool.java
oolable.java
8a7d44e8248cf7078da6094068b039dacc0a3971 03-Jun-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 54cb63e2 to master

Change-Id: I5b741a1781e3f76c03fc1534ffce871117effd10
ed60f81940c5f2125518c7c31ad4f61b8a9baf3e 02-Jun-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 76450622 to master

Change-Id: I26ccd8f264e65f100d894f43cf597a781552db83
b96cbbd11c4590bec846212c33361e02293f18b5 27-May-2011 Dianne Hackborn <hackbod@google.com> Add "tv" density for 720p screens.

Change-Id: I028969b007f2fceea66947d77a2ae31ef1d1a630
isplayMetrics.java
81e56d535c853d73ff537357da5b935f51cb779d 26-May-2011 Dianne Hackborn <hackbod@google.com> Rework how we decide whether to use system or status bar.

The PhoneWindowManager is now responsible for determing this,
since it needs to do this before we can generate the configuration
since we need to take into account the system bar size we will use.

Also the Display should now report the screen height without
including the system bar.

Change-Id: I82dfcc5e327e4d13d82c373c6c870f557a99b757
isplayMetrics.java
dba50c7ed24e05ff349a94b8c4a6d9bb9050973b 19-May-2011 Joe Onorato <joeo@google.com> Reduce log spew.

Change-Id: I69c9d7227d6cb91eac3b9f18d9edaa121c86ad0f
og.java
aa9d84c37e05f696ec158dac98ce38cf41e18314 10-May-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 05be6d6f to master

Change-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212
e2515eebf42c763c0a2d9f873a153711778cfc17 28-Apr-2011 Dianne Hackborn <hackbod@google.com> Better compat mode part one: start scaling windows.

First step of improving app screen size compatibility mode. When
running in compat mode, an application's windows are scaled up on
the screen rather than being small with 1:1 pixels.

Currently we scale the application to fill the entire screen, so
don't use an even pixel scaling. Though this may have some
negative impact on the appearance (it looks okay to me), it has a
big benefit of allowing us to now treat these apps as normal
full-screens apps and do the normal transition animations as you
move in and out and around in them.

This introduces fun stuff in the input system to take care of
modifying pointer coordinates to account for the app window
surface scaling. The input dispatcher is told about the scale
that is being applied to each window and, when there is one,
adjusts pointer events appropriately as they are being sent
to the transport.

Also modified is CompatibilityInfo, which has been greatly
simplified to not be so insane and incomprehendible. It is
now simple -- when constructed it determines if the given app
is compatible with the current screen size and density, and
that is that.

There are new APIs on ActivityManagerService to put applications
that we would traditionally consider compatible with larger screens
in compatibility mode. This is the start of a facility to have
a UI affordance for a user to switch apps in and out of
compatibility.

To test switching of modes, there is a new variation of the "am"
command to do this: am screen-compat [on|off] [package]

This mode switching has the fundamentals of restarting activities
when it is changed, though the state still needs to be persisted
and the overall mode switch cleaned up.

For the few small apps I have tested, things mostly seem to be
working well. I know of one problem with the text selection
handles being drawn at the wrong position because at some point
the window offset is being scaled incorrectly. There are
probably other similar issues around the interaction between
two windows because the different window coordinate spaces are
done in a hacky way instead of being formally integrated into
the window manager layout process.

Change-Id: Ie038e3746b448135117bd860859d74e360938557
isplayMetrics.java
f055829f358f995efe3964706860f101a129f5e3 04-May-2011 Jeff Sharkey <jsharkey@android.com> Avoid throwing when forceRefresh() missing server.

Bug: 4377651
Change-Id: Ia950a1e62d39ce9148827ebb4535f6441911b195
tpTrustedTime.java
b7342acebcb7e5dc7da0cda77fbddf50e7dfdd7c 26-Apr-2011 Jeff Sharkey <jsharkey@android.com> Tests for ThrottleService, NTP into TrustedTime.

Wrote initial suite of tests for ThrottleService, checking a variety
of edge cases. Checks going over limits, updating policies, and reset
after cycle elapses.

Moved NTP code in ThrottleService into new TrustedTime interface,
which makes it easier to understand, and allows tests to provide custom
clocks.

Change-Id: I0d62b8b3a169516a2ab2d33025f6fe30dc792be8
tpTrustedTime.java
rustedTime.java
847cf342c956eac3dec03b7b29fcb188ffe8804f 21-Apr-2011 Jesse Wilson <jessewilson@google.com> Pool strings in JsonReader.

This yields a 10% improvement in parsing both Twitter and Google Reader
streams.

Change-Id: Ifc238777e929b5b3e9a4480098b315e418378f8b
http://b/3201883
sonReader.java
43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09 07-Apr-2011 Joe Onorato <joeo@google.com> Remove the deprecated things from Config.java. These haven't been working since before 1.0.

Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
onfig.java
08065b9f09ead8895d97b2971622af8c179e1768 02-Apr-2011 Brian Carlstrom <bdc@google.com> Tracking merge of dalvik-dev to master

git cherry-pick --no-commit a80febd83c8bf0b6717da2a7136179bdc906a5b7

git cherry-pick --no-commit 5e642b41cf44c5da7afdd95ab3d5e2bdbf7b31dd

git cherry-pick --no-commit 4886db14c9eee4b6fee69bd54c57c5af04709c4c

git cherry-pick --no-commit 560c685e448769904047507b9484ce8111967d7e

git cherry-pick --no-commit 63dde7a2fcfa53dc531558635b64cea613d3cdb4

git cherry-pick --no-commit 74e5cb91060a379d98dd3a333b5f231bfb4f502e

git cherry-pick --no-commit 1cc8c9708b555e2e338b7798d38887a2fefcfea6

git cherry-pick --no-commit 09625a21f5abe0c0db15757f58585d552d62c3d7

git cherry-pick --no-commit fcb02dfe0f5a2bb7c07e6d6fc69f756a484b5458

git cherry-pick --no-commit a68cb7fa3ab42854768b8145ff85231663770292

git cherry-pick --no-commit 716beb1c131dd2c6b805d4f681debaa20075010c

git cherry-pick --no-commit 8c29b1097a7afe3a77e27546a56e396f3620a4ec

git cherry-pick --no-commit 9c6a1a55d1c8086c1cc57464eea43725694ff70c

git cherry-pick --no-commit b14f5ea5c57acdd009ba5b51f1bbe430f3d353b8

Change-Id: I8cc94175441b009e23549762d6baee1dbace4881
imeUtils.java
ml.java
94e085fda059bf846cb3be519a7e71fc24d4e05e 16-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Don't leak JsonReaders in example code."
9d30ea033329f76ea9b20fa778f04cddd8fe710c 16-Mar-2011 Jesse Wilson <jessewilson@google.com> Don't leak JsonReaders in example code.

Change-Id: Id81fb44e26f895d7ac6ecf87eddfa9d14c643159
sonReader.java
a460c1871e594b8fc68f41f2694c04dd619032c5 16-Mar-2011 Jesse Wilson <jessewilson@google.com> Fix a bogus comment on LruCache.hitCount()

Change-Id: I219b65bd73b85a414c21d4c4abe59296c9c5945a
ruCache.java
dfed7c006a2f1c36c45043da7264c0a8a8f12bbf 26-Feb-2011 Jesse Wilson <jessewilson@google.com> Remove deprecated and unused entryEvicted method.

Change-Id: I30ccf3d798a3ebfc88a1b340efaaacf524d56fae
http://b/3461302
ruCache.java
27f4bd7a474c2b57be21b82b13b89473278f1272 07-Mar-2011 Jesse Wilson <jessewilson@google.com> Merge "Remove deprecated and unused entryEvicted method."
7719436342611a106df5d379fedf180a5dd0809e 28-Feb-2011 Xavier Ducrohet <xav@android.com> am b732b7b5: am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."

* commit 'b732b7b5e8192501360edc15fb8c6399d11fb97d':
GpsLocationProvider: Clean up HAL initialization/cleanup sequence
Fixed GSM encoded network initiated position request
Ensuring thread-safe usage of DateFormat.
Fixing infinite loop for zero duration.
Fix for an infinite loop while scrolling lists.
WAPPushManager, WAP Push over SMS message handler
Add --non-constant-id to aapt.
b732b7b5e8192501360edc15fb8c6399d11fb97d 28-Feb-2011 Xavier Ducrohet <xav@android.com> am ce57a7f3: am 6504490c: am dff6b8e7: Merge "Add --non-constant-id to aapt."

* commit 'ce57a7f35344e76689d30f45964d1e37b78280cb':
GpsLocationProvider: Clean up HAL initialization/cleanup sequence
Fixed GSM encoded network initiated position request
Ensuring thread-safe usage of DateFormat.
Fixing infinite loop for zero duration.
Fix for an infinite loop while scrolling lists.
WAPPushManager, WAP Push over SMS message handler
Add --non-constant-id to aapt.
6504490cde3ec5d48321d539e654d1f2072b33f9 28-Feb-2011 Xavier Ducrohet <xav@android.com> am dff6b8e7: Merge "Add --non-constant-id to aapt."

* commit 'dff6b8e71dda9f5d841fa26408714aec2aef1505':
GpsLocationProvider: Clean up HAL initialization/cleanup sequence
Fixed GSM encoded network initiated position request
Ensuring thread-safe usage of DateFormat.
Fixing infinite loop for zero duration.
Fix for an infinite loop while scrolling lists.
WAPPushManager, WAP Push over SMS message handler
Add --non-constant-id to aapt.
c4e6209c5294da5cbca75eafd0ba5d4c3ed9a5b1 26-Feb-2011 Jesse Wilson <jessewilson@google.com> Remove deprecated and unused entryEvicted method.

Change-Id: Id2ac0913968099eb0c8dfa762b87082ba6bd9cd9
http://b/3461302
ruCache.java
affe40af3c53440d8bfed2e14e8f28218200b206 26-Feb-2011 Jesse Wilson <jessewilson@google.com> Merge "Callback on any removal, not just evictions."
7db1b40a03ff04ac8b49b3b53839b3c5d1c6f16a 26-Feb-2011 Jesse Wilson <jessewilson@google.com> Callback on any removal, not just evictions.

Don't hold locks while running create or remove callbacks. That gets a bit
ugly because it means a create could be unwanted by the time it returns.

Change-Id: I14b2b3ed41a446750f8ee5a7e35cb8d801c4ce6d
http://b/3461302
ruCache.java
a0f8bc51aff98c2e23e73069e447f63397471a0a 24-Feb-2011 Jesse Wilson <jessewilson@google.com> Remove default constructors from static utility classes.

Change-Id: Id8dc55a30a03e1da87500b66c429de9268033b9e
http://b/3344646
onfig.java
ebugUtils.java
ventLog.java
tateSet.java
imeUtils.java
ml.java
d379d53a5ed3b1cb487f952bbc5614022d47384c 22-Feb-2011 Romain Guy <romainguy@google.com> Add missing docs to AttributeSet.

Change-Id: Ieabc9e63104d274e59c3bd9a4e7ec475c5e32c6b
ttributeSet.java
47f13e7c52b260858bab42217d2101741ea8bc46 22-Feb-2011 Jozef BABJAK <jozef.babjak@gmail.com> Fixing infinite loop for zero duration.

Change-Id: I837478c1598f1d2f99bf773597f0d66d0fc3cf1a
imeUtils.java
56b6ad3e28f9f86fb3186c96ddd8754e190afdf0 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Add a new method, LruCache.remove

Change-Id: Iae78a2ed4d719d4f14a4677ecb6fe5bc823bb660
http://b/3184897
ruCache.java
dfe515e49ae8a0275012b56a4a79d2dfcc017db2 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Remove LruCache.setMaxSize().

Dynamically changing a max cache size is clumsy; almost everyone
should set this when they create the cache.

Fix SQLiteDatabase to copy entries into a new cache when the size
is changed. In pratice this will always be immediately after the
SQLiteDatabase is created. Since the cache field is no longer
final, change the guard on the cache field to the SQLiteDatabase
instance itself.

Change-Id: I4e325f06edc551636723568a52770c0982e2d945
ruCache.java
c2c9a2492cc99e20d23d2d92df061f35a8b14304 11-Feb-2011 Jesse Wilson <jessewilson@google.com> Don't add setMaxSize() to the LruCache API. But do add maxSize().

Change-Id: I9697ab29491dabe85c2400defdde16b9abcd003a
ruCache.java
9b5a93550f3853b229ae9cfb5f6cf33091478023 10-Feb-2011 Jesse Wilson <jessewilson@google.com> Adopt LRU cache in SQLite.

Change-Id: I6b43dd8843d41726254bea3a175fe28f5f061ed7
http://b/3184897
ruCache.java
34895b09db3679c7d4e80d21198847d316e6b0c3 10-Feb-2011 Jesse Wilson <jessewilson@google.com> Document that LruCache is threadsafe.

Change-Id: Iae1421b8c768000e56806f6cd74aef7c69a78973
http://b/3184897
ruCache.java
543146a82b87b33973743cbd1880e899ebba30f5 08-Feb-2011 Jesse Wilson <jessewilson@google.com> Remove @Override that chokes Doclava.

Change-Id: I160aa2209d148c48f4ab8f4dc42ab77d300919de
ruCache.java
e2c1f4a0ee026e7a2a15d198dc3be4529896e9f6 07-Feb-2011 Jesse Wilson <jessewilson@google.com> New LRU cache class.

Change-Id: I0e6ea1e489c684b876aebd5857c6f16a21048a8d
http://b/3184897
ruCache.java
2c376fc46cd01b12e003a7bf83d82f527f6efaf1 29-Jan-2011 Jeff Brown <jeffbrown@google.com> Optimize IntentResolver to reduce lookup time by 50%.

IntentResolver frequently iterates over hundreds of different IntentFilters
and spends much of its time creating iterators and comparing strings.
This change avoids reduces the amount of garbage created by eschewing
iterators where possible. The FastImmutableArraySet type on its own
provides a 2.5x speed boost compared to repeatedly iterating over a HashSet.

In absolute terms, during orientation changes we spent about 160ms resolving
11 intents and performing 1129 calls to IntentFilter.match. Now we spend
half of that time.

Change-Id: Ia120e0082c8cf0b572a0317b9ef4a22c766dbad6
astImmutableArraySet.java
5d9d03a0234faa3cffd11502f973057045cafe82 24-Jan-2011 Dianne Hackborn <hackbod@google.com> Maybe fix issue #3093599: java.lang.IndexOutOfBoundsException...

...Invalid index 0, size is 0 at
android.app.ActivityThread.performPauseActivity(ActivityThread.java:2326)

It looks like if an arrow key is dispatched between the time the
list view is told its data set has changed and it does the resulting
layout pass, we could try to move the position to a now invalid
index. This may prevent that from happening.

Also put in a better error message if saving state of a fragment
whose target is no longer in the fragment manager.

And fix a bug in PackageManager where we could return a null from
queryIntentActivities().

And add a new API to find out whether a fragment is being removed,
to help fix issue #3306021: NPE at
android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)

Next, for new HC apps we can delay committing data to
storage until the activity is stopped.

Finally, use the new multi-threaded AyncTask executor in a few
places, so we don't have worked blocked by long-running tasks from
the application.

Change-Id: I27b2aafedf2e1bf3a2316309889613fa539760f3
ogWriter.java
c5a0ce242f3794972599163927b58bebf8c354b5 25-Jan-2011 Andy Stadler <stadler@google.com> Throw Base64DataException instead of IOException

* Define Base64DataException
* Throw it from Base64InputStream & Base64OutputStream
* This enables callers to disambiguate "bad data" from "broken stream",
which makes it more possible to do proper retry logic.

Bug: 3365205
Change-Id: I332e7c008f92b333400d1b4dcaef5aedc7c10ef4
ase64DataException.java
ase64InputStream.java
ase64OutputStream.java
eb97c0ddc063176c26065fc6855188edf0c16e03 10-Jan-2011 Jesse Wilson <jessewilson@google.com> Patch new JSON APIs with changes informed by GSON.

Change-Id: I86c12a123080cc06ab23d11d1563bb52c5902517
sonReader.java
sonWriter.java
alformedJsonException.java
aa5bb98120fb7c9f83e7ea7f72ba7e123edc3bf1 14-Dec-2010 Michael Chan <mchan@android.com> b/3279789 Fixed NPE in CalendarUtils$TimeZoneUtils$AsyncTZHandler.onQueryComplete

Null cursor was returned from query

Change-Id: I76a7d710b0764f52ed6ced23792717feb7b6ae08
alendarUtils.java
96abab264e4d96071dc169b4828e950c1ae59681 21-Dec-2010 Patrick Dubroy <dubroy@google.com> Merge "Ensure bitmaps aren't freed while referenced from a display list"
f890fab5a6715548e520a6f010a3bfe7607ce56e 20-Dec-2010 Patrick Dubroy <dubroy@google.com> Ensure bitmaps aren't freed while referenced from a display list

Also removes the reference queue finalizers. They aren't necessary
anymore now that Bitmaps are allocated in the heap.
inalizers.java
f5f75104868ce699db458ce6360f3843371e594f 23-Nov-2010 Bjorn Bringert <bringert@android.com> Fix issue #3224616: TimeUtils.formatDuration() can drop 0s.

Integrated from master.

Change-Id: Ie12dd25cce03c06fafb7df1335266322df43b038
imeUtils.java
a2ea747faaf5fcd437afbaaf4085cfc29e7c16b8 20-Dec-2010 Dianne Hackborn <hackbod@google.com> More cleanup of Loader APIs.

- Remove old method names.
- Introduce onXxx() hooks to Loader.
- Improve debugging.

Change-Id: I3fba072a05c7023aa7d2c3eb4e126feb514ab6d8
ebugUtils.java
26d8fa9dbf1dfd859d215525b17650266e9f9bb0 15-Dec-2010 Brad Fitzpatrick <bradfitz@android.com> Put Log.wtf's terrible failure in logcat -b main.

As discovered by jpa@, previously it was only in logcat -b events, not
-b main, which people don't typically watch.

Bug: 2964398
Change-Id: Id672dd936f1678dd347158428b0ca03e4ad1e2d4
og.java
93fbae34ce8b6a1907b6f1daf42f17e3f0025346 24-Nov-2010 Bjorn Bringert <bringert@android.com> Merge "Don't drop zeros in the second position in formatDuration()"
1b29825cca9edda7ae4b3a3f27420c42fd13eef8 24-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Misc Looper cleanups; add android.util.PrefixPrinter

Change-Id: I0b9adce46cb785b4dd4e6296e1f97c8bcf0dbfbf
refixPrinter.java
901b3796fd0954cc4b01bf95dbcbd88d87414e84 23-Nov-2010 Bjorn Bringert <bringert@android.com> Don't drop zeros in the second position in formatDuration()

Bug: 3223250
Change-Id: I462c96af51cc052f9df1dc3d2c668551b10155ea
imeUtils.java
cdcb73ef781b8f7d37d9f758409a0c7671517b37 23-Nov-2010 Brad Fitzpatrick <bradfitz@android.com> Cache WindowManager in StrictMode; add android.util.Singleton

Change-Id: I15a85461424de930710d4901658440b5d305cabb
ingleton.java
9d9b4e70a1e7f9ffb6cedd8a86fdd926f2a28202 18-Nov-2010 Jesse Wilson <jessewilson@google.com> Decode JSON literal types eagerly and with our own decoder.

Previously we relied on Double.parseDouble() to decode tokens. Since
that method is expensive, we deferred calling it unless absolutely
necessary.

Now we decode the literal type immediately. For efficiency we decode
the token right out of the char buffer. This makes things more
complicated but it saves many calls to charAt().

With this change overall performance is 7% faster for JSON documents
cited in the bug.

benchmark run ms linear runtime %
GsonParseFull no switch, no int parse 309 ============================ 93%
GsonParseFull baseline 330 ============================== 100%

http://b/3201883
Change-Id: I436b6769956b1357a17c807a327d3a234691c73f
sonReader.java
762b33f9494ba48aa1be3701d345b692e8432af9 09-Nov-2010 Jesse Wilson <jessewilson@google.com> am 2d2f10fa: am 28c74257: Add @Deprecated to match @deprecated where it\'s missing.

* commit '2d2f10fa3412adc07a08c25ba5d2df600fb654bf':
Add @Deprecated to match @deprecated where it's missing.
28c742573ccaeb55c16bc02fb25fdd86b8d1f76a 04-Nov-2010 Jesse Wilson <jessewilson@google.com> Add @Deprecated to match @deprecated where it's missing.

Change-Id: Ice95022671968386a601f32df7850f9baa1d2dd0
ventLogTags.java
0f2d6c69f315365a81c4e07065401aab69ed9282 08-Nov-2010 Tom O'Neill <tomo@google.com> Merge "Remove inappropriate conversion of IOException to AssertionError"
28e3f101707c7a03dcc774b9b0e6d95d68b3752d 05-Nov-2010 Tom O'Neill <tomo@google.com> Remove inappropriate conversion of IOException to AssertionError

An IOException is a recoverable condition, and AssertionError should be
used for non-recoverable conditions.

Fixes b/3169361

Change-Id: Ie71a537293e01ffb49c5f535412e2631e27c84c8
ml.java
079e23575024e103358c982152afb7a720ae1a8a 19-Oct-2010 Dianne Hackborn <hackbod@google.com> Add new fade in/out feature for drawable containers.

This is used to allow list view's pressed and activated indicators
to fade in an out, though of course it can be used elsewhere as well.

There is a lot of complexity in supporting this in list view. The
two main things that are being dealt with:

- When recycling views, we need to make sure that the view's drawable
state doesn't get animated from an old row's state. The recycler
now keeps track of which position a view was last in, and if it is
reused at a new position there is a new View/Drawable API to tell
it to jump to its current state instead of animating.

- For the pressed indicator to fade out, we need to keep displaying it
after it is hidden. There are new variables and code to keep track
of this state, and tweaks in various places to be able to remember
the last selected position and continue updating the drawable bounds
as needed.

Change-Id: Ic96aa1a3c05e519665abf3098892ff2cc4f0ef2f
tateSet.java
a0b46c9c441f017a2008ca8ee2c864987465996b 22-Oct-2010 Dianne Hackborn <hackbod@google.com> Implement issue #3116702: New manifest tags for supported screen sizes

Merged from GB.

Change-Id: I94730b54bcacd083f77708e84c35f4932a7b9d2e
isplayMetrics.java
a6d9c7c04c4b17d85ac70f4494777555655f3be1 22-Oct-2010 Dianne Hackborn <hackbod@google.com> Implement issue #3116702: New manifest tags for supported screen sizes DO NOT MERGE

Change-Id: Iabf64d86c89d387ffbfbc39f950d308a73fe17eb
isplayMetrics.java
3312b297600ec97f28f979dfbdf6c95e164a304f 16-Oct-2010 Jesse Wilson <jessewilson@google.com> Fix typos in JSON documentation.

Change-Id: Ife519f755b1974adee13553cd4dfa2b15dd23aac
sonReader.java
sonWriter.java
b0eee7df0150b413b404e02a1f17738272261e63 01-Oct-2010 Erik <roboerik@android.com> am 277465fb: am 57bd0615: Merge "b/3054044 Make allDay event times format in utc" into gingerbread

Merge commit '277465fb5bfc74716f194f1abc2befb42ed73590'

* commit '277465fb5bfc74716f194f1abc2befb42ed73590':
b/3054044 Make allDay event times format in utc
d762a347fb6459d7b7c87d6f09a58b210400cb95 01-Oct-2010 Erik <roboerik@android.com> b/3054044 Make allDay event times format in utc

AllDay events could get formatted with the local time zone
instead of utc. This makes it so that using the utc flag in the
wrapper for formatting correctly passes in UTC as the time zone.

Change-Id: I65090ef939ce64c1a942c7683cf76a927c02cb53
alendarUtils.java
674df1b373c98e0d868de980c8c4ef4703202f36 22-Sep-2010 Jesse Wilson <jessewilson@google.com> am f78fdacc: am eaa2cabf: Merge "Fix problem where Base64InputStream single-byte reads were unsigned." into gingerbread

Merge commit 'f78fdaccde379d1c101be137416808ea62a2f292'

* commit 'f78fdaccde379d1c101be137416808ea62a2f292':
Fix problem where Base64InputStream single-byte reads were unsigned.
64b25cf736bc5f9b9f6d548f0694fb76fe805d0c 22-Sep-2010 Jesse Wilson <jessewilson@google.com> Fix problem where Base64InputStream single-byte reads were unsigned.

Change-Id: Ibdfb77a283300baa61738fe98aa1c9f29eaf976f
http://b/3026478
ase64InputStream.java
ffc9bf68d6f33a0ea2dc9d3df11618cd122ec7c9 16-Sep-2010 Erik <roboerik@android.com> am bfbab8ca: am a8cc20e5: Merge "b/3004029 Fixed content resolver loss" into gingerbread

Merge commit 'bfbab8ca36ed62a71118b355f2b8d8985bdb9d38'

* commit 'bfbab8ca36ed62a71118b355f2b8d8985bdb9d38':
b/3004029 Fixed content resolver loss
d0f81ea95c9c323518b6126ddb87de43d5bab962 16-Sep-2010 Erik <roboerik@android.com> am 42e72e57: am 344d9663: Merge "Close tz query cursor when done." into gingerbread

Merge commit '42e72e570b66c3bed316a9e7a766d2f8fc986ae6'

* commit '42e72e570b66c3bed316a9e7a766d2f8fc986ae6':
Close tz query cursor when done.
09bd4bf85e357fc8eaa5c6a219a8827159e865da 16-Sep-2010 Erik <roboerik@android.com> b/3004029 Fixed content resolver loss

We were creating a static AsyncQueryHandler which only held a
weak reference to the content resolver. This caused db updates
to be dropped once the original context had been gc'd. This
fix creates a new handler for each update to ensure we have a
valid resolver.

Change-Id: I049d8390ac0215e12e63d57b0bae4d3f6df64b6a
alendarUtils.java
5ba5de93c71218c505f28d0b05c638afa6f4d1d3 15-Sep-2010 Erik <roboerik@android.com> Close tz query cursor when done.

Change-Id: I9cb30539b12121f01e093985985e3c802f7a9e8c
alendarUtils.java
ac212158f078dc259c70710cfad04dddacf90366 15-Sep-2010 Erik <roboerik@android.com> am 0b46070d: am 426ee7f2: Fixes some bugs in TimeZoneUtils

Merge commit '0b46070d8878a8791f343cbbe720388e7dfe4e6f'

* commit '0b46070d8878a8791f343cbbe720388e7dfe4e6f':
Fixes some bugs in TimeZoneUtils
088fbbc7b68844d40854a77c07cce0634a6d4c52 15-Sep-2010 Erik <roboerik@android.com> am 86e19914: am b92788aa: Merge "Adds time zone functionality into fw as a hidden api" into gingerbread

Merge commit '86e1991428c2bc78354965c51b2821ae16f32a55'

* commit '86e1991428c2bc78354965c51b2821ae16f32a55':
Adds time zone functionality into fw as a hidden api
426ee7f22eeaa016cdbf0addbb7b2cc6b6cc3487 15-Sep-2010 Erik <roboerik@android.com> Fixes some bugs in TimeZoneUtils

TimeZoneUtils was updating the db and modifying the selection. This
creates a static selection for each update type and creates new
values for each update. Also adds a method for apps to force the
local tz cache to refresh if they think another app has modified
the db.

Change-Id: Iaaade635ac8ff11bb116005a0f6b44efcd4c4056
alendarUtils.java
71ad58c751eb12a500916556c41e704a93895801 14-Sep-2010 Erik <roboerik@android.com> Adds time zone functionality into fw as a hidden api

This is the start of work towards pushing api that is needed for
Calendar to become unbundled into frameworks. This adds functions
for getting and setting time zones for the Calendar app. The new
methods are currently hidden.

Change-Id: I1b4265b23630c46d9730a179ec02da8d6c0e03ea
alendarUtils.java
d0438da05cbbd0b267421ad9a5c84345c39803b3 08-Sep-2010 Dianne Hackborn <hackbod@google.com> am 75f0024c: am 6e86915e: Merge "Fixes to battery stats debug output." into gingerbread

Merge commit '75f0024cf40eadb2cdaa6ae53409c515b68f21c1'

* commit '75f0024cf40eadb2cdaa6ae53409c515b68f21c1':
Fixes to battery stats debug output.
b5e3165129a5871cf679a67d9e9323ffad3d4902 07-Sep-2010 Dianne Hackborn <hackbod@google.com> Fixes to battery stats debug output.

Change-Id: I32e7cad9633b8c517a74573069e426d9f835a83d
imeUtils.java
49afa5bc100e5d4c069fea980dd6b09501f56397 23-Aug-2010 Chet Haase <chet@google.com> Add facilities for layout transitions

Change-Id: I5c73ce6c6ba3bc9e3b57fcfbbcab37d511db6132
imingLogger.java
a10382b67dc14ffe43cd6da56a5cffebfa470870 17-Aug-2010 Dianne Hackborn <hackbod@google.com> am 2e47052f: am 567722ee: Merge "Fix problems with determining when to kill apps for wake usage." into gingerbread

Merge commit '2e47052fc4ad3439adc2322fd953fd58a85d457c'

* commit '2e47052fc4ad3439adc2322fd953fd58a85d457c':
Fix problems with determining when to kill apps for wake usage.
1ebccf531d1049853b3b0630035434619682c016 15-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix problems with determining when to kill apps for wake usage.

Also improve debug printing of various times.

Change-Id: Ifcc288fd1bcbf44c069875ba97925b9e7ffe9a48
imeUtils.java
b7a2e4772220c4b41df1260cedaf8912f4b07547 13-Aug-2010 Dianne Hackborn <hackbod@google.com> Fragment and PreferenceFragment and FragmentManager, oh my!

- Introduce FragmentManager public API, for all Fragment management
needs. Will in the future allow the removal of the (growing number
of) fragment APIs on Activity.

- Fragment now has a concept of arguments. This can be supplied
immediately after creation, and are retained across instances.

- PreferenceActivity now has an API to have it update its headers (note
not tested). Headers now have arguments. Keys for controlling
when PreferenceActivity shows at launch have been added to the SDK.

- Fixes to back stack handling and state saving/restoring.

Change-Id: Ib9d07ae2beb296c4eb3a4d9e1b3b59544675e819
ndroidException.java
ndroidRuntimeException.java
02890fd0f98b3b8d98baf0bda1ea906afd723d8b 07-Aug-2010 Romain Guy <romainguy@google.com> Replace Bitmap's finalizers with PhantomReferences.

This change also removes the use of SoftReferences for View's
drawing cache.

A bitmap now creates a PhantomReference enqueued in a reference
queue provided by the new Finalizers class. This queue is polled
from a thread started after forking zygote. That thread is in charge
of clearing the references after GC runs and of calling reclaim()
on them. The reclaim() method is now how finalizers are run.

Note that a PhantomReference cannot be kept in the instance it
refers to, which is why they are kept in a separate List.

Change-Id: If3c1a5e9dc23fa49e34857860d730f5cf5ad5926
inalizers.java
d07fb882f84e9fa7b758870261747456f2752ba5 07-Aug-2010 Jesse Wilson <jessewilson@google.com> Optimizing skipValue() to avoid allocation.

I ran a quick benchmark on a desktop VM: this shortened the time
to parse a complete JSON document by ~25%.

Change-Id: Id479734654addfe86f4bf251f0dd6e78843023bf
http://microbenchmarks.appspot.com/run/jessewilson@google.com/twitter.JsonParseBenchmark/366001
sonReader.java
1ba417140554dbd57602a1f4b453fc42363cf394 07-Aug-2010 Jesse Wilson <jessewilson@google.com> Adding JsonReader.setLenient() to handle malformed JSON strings.

Also replacing setIndentSpaces() with a more general purpose method,
setIndent().

Change-Id: I64fbe4901aec23de5392362c1d40b77bc2b5566b
sonReader.java
sonWriter.java
76d7e20a75d24afb2f5011a7646dbde8aaa52087 04-Aug-2010 Jesse Wilson <jessewilson@google.com> A new streaming JSON API.

Change-Id: Iefa7ee44ddacbe22ea9ebca3165ac59030659bf2
sonReader.java
sonScope.java
sonToken.java
sonWriter.java
c801768e4d29667a2608695449ebc2833ba0f200 06-Jul-2010 Dianne Hackborn <hackbod@google.com> Integrate Loader support in to Activity/Fragment.

Introduces a new LoaderManager class that takes care of
most of what LoaderManagingFragment does. Every Fragment
and Activity can have one instance of this class. In the
future, the instance will be retained across config changes.

Also various other cleanups and improvement.

Change-Id: I3dfb406dca46bda7f5acb3c722efcbfb8d0aa9ba
parseArray.java
37d33a546b9051085e3991918ab089104f1c344a 08-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> am 599f7287: am 9ac3743d: Merge "Log.wtf when databases go to be downgraded." into kraken
44dc76a8a702d6a919fcea1c2d19ba3792687c85 03-Jun-2010 Brad Fitzpatrick <bradfitz@android.com> Log.wtf when databases go to be downgraded.

BUG=2734435

Change-Id: I686d6d9415f3081544c3fbe379287c31e0ecec20
og.java
df3f1cc3fe1b9b4f598a084d6ff385482836f7ec 17-May-2010 Daisuke Miyakawa <dmiyakawa@google.com> Add KDDI/Softbank to available Shift_Jis mapping.

Bug: 2689523
Change-Id: I5140bd02a5e30b323eb19b1b0eb2dcf17027f878
harsetUtils.java
db990751ef8e535ea5cb3d527e36936e119095e8 07-May-2010 Shimeng (Simon) Wang <swang@google.com> Updated URL pattern based on http://data.iana.org/TLD/tlds-alpha-by-domain.txt

Note: this change doesn't solve the Arabic country code top level domains, which
was turned on today. For that, more changes need to be done; probably we need a way
to convert the BiDi url to punycode first; then apply this URL pattern.

issue: 2663885
Change-Id: I0597fe620c4d44259bff88ecfcbcca1565928c6f
atterns.java
cbeaf2d0aef5c8de9ce86b8f1dde17459f9227e3 07-May-2010 Shimeng (Simon) Wang <swang@google.com> Revert "Updated URL pattern based on http://data.iana.org/TLD/tlds-alpha-by-domain.txt"

This reverts commit 63b849ef8d6a47422b0f2779f1d9320f6a65d16b.
atterns.java
9b1872e619bd06f33853716a4bae0214b4a7d176 07-May-2010 Shimeng (Simon) Wang <swang@google.com> Updated URL pattern based on http://data.iana.org/TLD/tlds-alpha-by-domain.txt

Note: this change doesn't solve the Arabic country code top level domains, which
was turned on today. For that, more changes need to be done; probably we need a way
to convert the BiDi url to punycode first; then apply this URL pattern.

issue: 2663885
Change-Id: Iac5d16bf9e091a072a59f8244ab6e87940badd4f
atterns.java
14cee9f688c32d63d8521188e7422811629bb7c2 24-Apr-2010 Dianne Hackborn <hackbod@google.com> New xlarge screen size.

Not complete, only for experimentation at this point.

This includes a reworking of how screen size configurations are matched,
so that if you are on a larger screen we can select configurations for
smaller screens if there aren't any exactly matching the current screen.

The screen size at which we switch to xlarge has been arbitrarily
chosen; the compatibility behavior has not yet been defined.

Change-Id: I1a33b3818eeb51a68fb72397568c39ab040a07f5
isplayMetrics.java
05fd7e7d328261260a348c0b6ba840bc1f60cb14 27-Apr-2010 Shimeng (Simon) Wang <swang@google.com> Add good international characters to the path part of Url pattern.

Change-Id: Ib24f8ffc8554366cb4350ec2f9d7e77efb0cb083
atterns.java
ab69e29c1927bdc6143324eba5ccd78f7c43128d 29-Mar-2010 Doug Zongker <dougz@android.com> relocate android.util.base64.* -> android.util.*

b/2553469 - API REVIEW: android.util.base64

Change-Id: I6a514032152a8b1899db52d020aca8e8b19e74e9
ase64.java
ase64InputStream.java
ase64OutputStream.java
ase64/Base64.java
ase64/Base64InputStream.java
ase64/Base64OutputStream.java
8f1bfe1a7cef702fd74e5405443e9fdb7c5e7556 06-Mar-2010 Adam Powell <adamp@google.com> ListView#getCheckItemIds() deprecated for ListView#getCheckedItemIds().
ListView#getCheckedItemIds() now works more reliably.
ongSparseArray.java
8a9b22056b13477f59df934928c00c58b5871c95 27-Feb-2010 Joe Onorato <joeo@android.com> Switch the services library to using the new Slog
og.java
ogPrinter.java
00bb93823d082c31d757bd7b75a8615afbd2c1a5 27-Feb-2010 Joe Onorato <joeo@android.com> Add new Slog class.
og.java
log.java
2269d1572e5fcfb725ea55f5764d8c3280d69f6d 25-Feb-2010 Dianne Hackborn <hackbod@google.com> Re-arrange android-common so framework no longer links with it.

This is the framework part, moving classes around so the framework
no longer needs to link to android-common. Makes some APIs public,
others that didn't need to be public are private in the framework,
some small things are copied.
atterns.java
imeUtils.java
mlPullAttributes.java
9df2ffd4205115a68c4fe0651b2072e3e4573dd2 14-Feb-2010 Doug Zongker <dougz@android.com> tweak the Base64 implementation

- move the encodeInternal/decodeInternal methods into the inner
"state" classes

- tighten up the inner loop of the encoder and decoder a bit, saving
about 5% of time in both cases

- improve javadoc

- other little fixes

Change-Id: I72e0ce8502c664a32418cea04636ccdbf4fec17c
ase64/Base64.java
ase64/Base64InputStream.java
ase64/Base64OutputStream.java
8fe5571aa46321a97dd6e7470e9df208a0324103 13-Feb-2010 Doug Zongker <dougz@android.com> fix build breakage due to javadoc error

Change-Id: Ie74e8e43a018fce0eaf34efead206ae03b82830a
ase64/Base64.java
33f7a80f767d72393c2d38b0dcbaeecdf7956c89 13-Feb-2010 Doug Zongker <dougz@android.com> @hide the bizarro Base64 stream constructors

With no usages of these "backwards" streams, it's not clear that we
want to support them forever in the API.

Also fixed some badly cut-and-pasted javadoc.

Change-Id: I4811d22e493bf2b8eaf79b9e95526e7eab5f27ee
ase64/Base64InputStream.java
ase64/Base64OutputStream.java
d2affae13dfdb116adaee1bb10aaaac80a885481 13-Feb-2010 Doug Zongker <dougz@android.com> add a Base64 implementation to the API

b/1413917 - RFE: Base64 utility class
Change-Id: I11697859e1f78f596b92d2e03a49ed1be04ae42d
ase64/Base64.java
ase64/Base64InputStream.java
ase64/Base64OutputStream.java
6e70912bd53aaa5264259e160eb2b4d2eb0f302c 07-Jan-2010 Dan Egnor <egnor@google.com> Bumper un-@hide (un-@pending actually) of previously reviewed APIs:

- new Log methods for reportable conditions
- EventLog publication, EventLogTags deprecation
- a new stackTrace field in ProcessErrorStateInfo
ventLog.java
ventLogTags.java
og.java
6916089e838662b41d902cd9a0d2560b04633ef9 07-Jan-2010 Dan Egnor <egnor@google.com> Remove old EventLog tests from here, they will be replaced by a
(better) EventLog test in CTS.

Fix some minor errors in the handling of too-large event log values.
ventLog.java
7402264b504f337169b1d1364f03a023fc76a240 06-Jan-2010 Dan Egnor <egnor@google.com> Fix SDK build problem until EventLog is published.
ventLogTags.java
62136d3e1c1262fc31a1f77f6d6acbd75e5ea81d 06-Jan-2010 Dan Egnor <egnor@google.com> Simplify EventLog interface -- remove supported for nested
sequences (which nobody used) and streamline the API, adding
documentation in preparation for inclusion in the SDK.

Gut and deprecate EventLogTags, which unfortunately was put
into the public SDK (an oversight). Include the functionality
in EventLog proper, in a simpler and easier to use manner.

This change doesn't actually un-@hide anything, but it does
change it to @pending.
ventLog.java
ventLogTags.java
f0108cda21bec61418b24aa6217406072780b5d5 22-Dec-2009 Tom Taylor <tomtaylor@google.com> resolved conflicts for merge of ad2fa35d to master

Change-Id: Ia4362cd48ac0689b91003943a4cd9660da72ff90
60d8762413e8daba5f73559786312a9ec5e3b827 17-Dec-2009 Dan Egnor <egnor@google.com> DropBox logging of app & system server crashes.

The crashes are also reported to the event log (and of course the
main logcat, like they always have been). Ordinary Log.e(t,m,e) isn't dropboxed
but there's a new Log.wtf() which always is. (Still @pending in this change.)

Add a hook to IPowerManager to crash the system server on demand
(only for apps with REBOOT permission, since it's basically a restart).
This is not exposed in PowerManager, must be invoked directly -- mostly
this is there so "Bad Behavior" in dev tools can do it.
og.java
d4a4729c0cac582a2dcec7c8cfb316b81885a0f0 21-Dec-2009 Tom Taylor <tomtaylor@google.com> Update imports to android-common

Several files were moved to android-common. Update all the references
to import those files from the new location.
imeUtils.java
mlPullAttributes.java
b7f0367cec1c744aa66ef397b0244e25d507491c 10-Dec-2009 Dan Egnor <egnor@google.com> Eliminate CrashData and friends.

(CrashData was a custom-marshalled crash-info class used for a server crash
reporting system I am deprecating). Use ApplicationErrorReport.CrashInfo
instead to report crash details (mostly the stack trace) from RuntimeInfo to
ActivityManagerService, since we're likely to need the crash information in
that form anyway.

Remove the (long-disabled) flags and support for the "Debug" button
in the crash dialog.

Further gut the ICheckinService interface by removing the crash-reporting
APIs (and everything that calls them), plus the synchronous checkin()
method (which has been stubbed out for a while now).

A new dropbox-based crash reporting system is in the works, but not part
of this change.
og.java
6b13bc043e715b5415b701e93141daa0d49fa364 31-Oct-2009 Dirk Dougherty <ddougherty@google.com> doc change: misc doc fixes.

Bug:2160782
Change-Id: Iaf5d2cc2e3c657700469e8b7394a95bc03fc26f3
ttributeSet.java
isplayMetrics.java
4a51c20ce607c74914f90fd897f04080121ac13b 22-Aug-2009 Dianne Hackborn <hackbod@google.com> I am getting tired of the java doc warnings, so fix them.

Change-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1
onfig.java
2685d3b85b3ad5fcb5362abdfb9037fc89deb714 18-Aug-2009 Scott Main <smain@google.com> am ba52b3e0: Merge change 21149 into donut

Merge commit 'ba52b3e08b33592457242944f7a89691a5b94880' into eclair

* commit 'ba52b3e08b33592457242944f7a89691a5b94880':
DOCS ONLY.
71d4b289a7a934ecd16c3036b812d40db6d3a74d 13-Aug-2009 Scott Main <smain@google.com> DOCS ONLY.
add manifest documentation for uses-feature and supports-screens elements.
also update the navigation and manifest home page,
update the uses-sdk element to include new maxSdk and targeSdk attributes,
and add some sample code to DisplayMetrics to query the device for screen info.
isplayMetrics.java
e85c5aa67ea27f930b573c0c6662ef6bd6314d54 13-Aug-2009 Romain Guy <romainguy@android.com> Add norm() and map() to MathUtils.
athUtils.java
a9d2d5ed2840bc3331e1a387b26efc44c6211623 10-Aug-2009 Romain Guy <romainguy@android.com> Make the laves follow the ripples
athUtils.java
a32d100b34d048cf0c765d8f31d87b81ab88d1eb 01-Aug-2009 Romain Guy <romainguy@android.com> Add new utility methods to rsScriptC_Lib, android.util.MathUtil and android.graphics.Color.
Fixes RS compilation.
athUtils.java
0084da561e9830c17068435cb398635145fca5c0 29-Jul-2009 Dan Egnor <egnor@google.com> Allow zero-length lists in EventLog entries.
(I'm verifying that the consumers of EventLog -- logcat, checkin -- are OK with this.)
Improve the error handling in RestoreSession.
ventLog.java
e2dba02441b42afbae725109ac779877a4b72aa0 25-Jul-2009 Dianne Hackborn <hackbod@google.com> am 11ea3347: Allow for screen density drawables in compatibility mode.

Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'

* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
Allow for screen density drawables in compatibility mode.
11ea33471e1a14a8594f0b2cd012d86340dd3bd8 23-Jul-2009 Dianne Hackborn <hackbod@google.com> Allow for screen density drawables in compatibility mode.

This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode. In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.

This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable. For
the small rare chance of them breaking, it worth getting the correct
graphics. Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).

As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
isplayMetrics.java
d4a1d2e14297a3387fdb5761090961e714370492 17-Jul-2009 Fred Quintana <fredq@google.com> add account manager permission checking
air.java
a8339dfec9d1b2c6d6fd2f8268f8075d184f64c0 22-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 9fc20b0e: Merge change 8126 into donut

Merge commit '9fc20b0e381b5fe00b7049ef357c839cd05a33bf'

* commit '9fc20b0e381b5fe00b7049ef357c839cd05a33bf':
First pass at reworking screen density/size APIs.
c4db95c077f826585d20be2f3db4043c53d30cf5 22-Jul-2009 Dianne Hackborn <hackbod@google.com> First pass at reworking screen density/size APIs.

This changes the names of the directories in aapt, to what you see
in the list of DpiTest resources. Also adds a new "long" configuration
for wide screens, which the platform sets appropriate, and introduces
a new kind of resizeability for not large but significantly larger
than normal screens which may have compatibility issues.
isplayMetrics.java
fead9b8ad0c6e64066fb73f4285b088ab68f452b 22-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am fe6f45c8: Merge change 8098 into donut

Merge commit 'fe6f45c81463d2d28e11ac6083f2653e1286c5ef'

* commit 'fe6f45c81463d2d28e11ac6083f2653e1286c5ef':
cast is floor. Use round instead.
61324e58c549670c015010d0be14c6af76e3e9f7 22-Jul-2009 Mitsuru Oshima <oshima@google.com> cast is floor. Use round instead.
This fixes a few layout issues (that was due to smaller widnow size)
isplayMetrics.java
469b4c67adc77a87eb2c9ed9217edf1778002828 20-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am aad0fcc9: Merge change 7783 into donut

Merge commit 'aad0fcc9619eb72c18a6afff48ebc9d4011f0f54'

* commit 'aad0fcc9619eb72c18a6afff48ebc9d4011f0f54':
Add "nodpi" density, and expose a bunch of density-related APIs.
a53b828635fce8b6b2d3e3377d74d72070056623 17-Jul-2009 Dianne Hackborn <hackbod@google.com> Add "nodpi" density, and expose a bunch of density-related APIs.

Also update the DpiTest app to use nodpi images, and try to have a mode
where it turns off compatibility though it's not quite working.
isplayMetrics.java
ypedValue.java
c3f60ddaeadb69c1e85198e609e575f55ecc28ac 09-Jul-2009 Mitsuru Oshima <oshima@google.com> am 1ecf5d28: Re-implementation of large screen support using window manager. * added background filler surface to fill the outer rim. Using the same layer as dim surface because they never co-exists (in the same window) * clean up the obsolete code in Compatibilt

Merge commit '1ecf5d28817f0a051e77488380dcd5bc622ea169'

* commit '1ecf5d28817f0a051e77488380dcd5bc622ea169':
Re-implementation of large screen support using window manager.
1ecf5d28817f0a051e77488380dcd5bc622ea169 07-Jul-2009 Mitsuru Oshima <oshima@google.com> Re-implementation of large screen support using window manager.
* added background filler surface to fill the outer rim. Using the same layer as dim surface because
they never co-exists (in the same window)
* clean up the obsolete code in CompatibiltyMode/ViewRoot for support large screen support.
isplayMetrics.java
95ff2401a9c6f0252aeedfa27ba0a9a5f0d7f55e 02-Jul-2009 Jim Miller <jaggies@google.com> Add method to read events from a file. Remove unused method. Fixed after review.
ventLog.java
f6ff591decdea6299aab1a5b6f95917800571de4 30-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 72eb0aca: Merge change 5483 into donut

Merge commit '72eb0acad5cffc57ce5006f6deab29ee259e461e'

* commit '72eb0acad5cffc57ce5006f6deab29ee259e461e':
Expand support for different screen sizes.
723738cfaec3dd7b0fe152c872c41bebf94074c4 26-Jun-2009 Dianne Hackborn <hackbod@google.com> Expand support for different screen sizes.

Applications can now declare that they support small, normal, or
large screens. Resource selection can also be done based on these
sizes. By default, pre-Donut apps are false for small and large,
and Donut or later apps are assumed to support all sizes. In either
case they can use <supports-screens> in their manifest to declare
what they actually support.
isplayMetrics.java
ecf2b68d834d334de218dc427615b4ca05c0293a 25-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 7941e903: Merge change 5091 into donut

Merge commit '7941e903c973af66075bbd4fa4bcadf021a61ccc'

* commit '7941e903c973af66075bbd4fa4bcadf021a61ccc':
* new screen resolution support impl.
64f59342d41849bd365cb43fad7505d5e3daa417 21-Jun-2009 Mitsuru Oshima <oshima@google.com> * new screen resolution support impl.
* use full window for activities, and shift & clip the content
* refactored the compatibility code, and introdcued Translator class to handle cooridnate translations.
* removed a workaround to handle an activity with configChagne=rotation in old implementation.
* I'll fix background issue on rotation in next CL.

* removed unnecessary scaling code in SurfaceView, which I forgot to remove when I changed SurfaceView
not to scale the content.
isplayMetrics.java
351b36c414b31e720532850761d95a9ec12ee8b4 19-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 0bceb77b: Merge change 4669 into donut

Merge commit '0bceb77b004a688ca044b794e0622385c6e2953d'

* commit '0bceb77b004a688ca044b794e0622385c6e2953d':
Fixes #1922373. Resolves a case of keys collision in Resources' cache.
0bceb77b004a688ca044b794e0622385c6e2953d 19-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 4669 into donut

* changes:
Fixes #1922373. Resolves a case of keys collision in Resources' cache.
e9c1970bbfb1da56e9ff4c25556fbb061265a29c 19-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am b1cdb648: Merge change 4565 into donut

Merge commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982'

* commit 'b1cdb64877ebd3b8c5182913ff02edd8b54a6982':
Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density
2a578ae518ff3d8a2d4768b3d190e4702509e82c 18-Jun-2009 David 'Digit' Turner <digit@google.com> Allow the qemu.sf.lcd_density property to override the value of ro.sf.lcd_density

ro.sf.lcd_density is usually defined in the build.prop file which is parsed by init
before anything else. Since its name begins with "ro.", this property is write-once
and cannot later be modified, e.g. in /system/etc/init.goldfish.sh.

In other words, you cannot use "emulator -prop ro.sf.lcd_density=<value>", since
it is impossible to override the value defined in build.prop

This patch modifies the system to recognize "qemu.sf.lcd_density" as an override
value, which can be set with "emulator -prop qemu.sf.lcd_density=<value>", forcing
a specific density.

A later patch will allow the emulator to automatically set this property depending
on AVD hardware configuration settings.
isplayMetrics.java
fdbf6a7eac39a23e0e910c29678fe00d4eb56c99 19-Jun-2009 Romain Guy <romainguy@android.com> Fixes #1922373. Resolves a case of keys collision in Resources' cache.

The Resources class keeps a cache of known resources. The keys used by the
cache are stored as int primitives. For any given drawable resource, a key
is built thusly:

TypeValue.assetCookie << 24 | TypedValue.data

In the case of a plain color drawable, assetCookie always equals -1, that
is 0xFF once right-shifted and the data contains the color value. Which
means the key for the following two colors is the same:

0xFF000000
0x00000000

Because of the int storage and the use of the (constant in this case)
asset cookie, the alpha channel of a color is ignored. That means that
if you first load an opaque black color (0xFF000000), subsequent loads
of a totally transparent black color (0x00000000) will give you an
opaque black color.

A workaround is to use a transparent color that is not black,
0x00000001 for instance. Note that this issue would arise with any color
and any opacity level.

The solution to fix this issue is simply to change the cache to use
longs instead of ints to represent the keys. A key thus becomes:

TypedValue.assetCookie << 32 | TypedValue.data

This allows us correct storage of all colors at the cost of a few bytes.
The tradeoff is that we can keep caching ColorDrawable, which is
definitely worth it.
ongSparseArray.java
bd6b11dd582d7c7dde64e355f967f5ed77a9870d 11-Jun-2009 Mitsuru Oshima <oshima@google.com> am e5fb3288: resolution support fix/improvement * adding compatibility menu * backup gravity * set expanable=true if the screen size is hvga * density. * added "supports any density" mode. I\'ll add sdk check later. * disallow to catch orientation c

Merge commit 'e5fb328825995aa33b5b7ecf8b5bee2b17f81715'

* commit 'e5fb328825995aa33b5b7ecf8b5bee2b17f81715':
resolution support fix/improvement
e5fb328825995aa33b5b7ecf8b5bee2b17f81715 10-Jun-2009 Mitsuru Oshima <oshima@google.com> resolution support fix/improvement
* adding compatibility menu
* backup gravity
* set expanable=true if the screen size is hvga * density.
* added "supports any density" mode. I'll add sdk check later.
* disallow to catch orientation change event if the app is not expandable. This
was causing layout problem under non-expandable mode. I discussed this with Mike C
and we agreed to do this approach for now. We'll revisit if this causes problem to
a lot of applications.
isplayMetrics.java
30636876c079cdce5f856aa2269e2d2f769e8363 09-Jun-2009 Jim Miller <jaggies@google.com> Add getRawData() method for AggregationService.
ventLog.java
9189cabb0b6c6c28232fe6f412b7ba7a37352a6a 03-Jun-2009 Mitsuru Oshima <oshima@google.com> * Moved supports-density tag under manifest
* Refactored Compatibility code
* Added CompatibilityInfo class
* Removed getApplicationScale from Context
* Added Resources#getCompatibilityInfo so that RootView can get the compatibility info w/o going through Context
* Expandable support
* Added expandable tag under manifest
* Old application w/o expandable is given the default screen size ([320, 480] x density).
* The non-expandable window is centered.
isplayMetrics.java
841ddefcb5720bcc1925f373b66224411f99a9fa 19-May-2009 Daisuke Miyakawa <dmiyakawa@google.com> Hand merge from cupcake_dcm to donut, part 2.

Modify Contacts-related java files and update vCard importer code to the latest.
harsetUtils.java
58feea74b42bbaaa0552d76af23873bdd0b5dca2 12-May-2009 Mitsuru Oshima <oshima@google.com> * update all metrics data when updating density.
* Keyboard should use DisplayMetrics from Resource rather than getting it from WindowManager as
the display metrics can differ under compatibility mode.
isplayMetrics.java
2e3d3b9ce74cb9c906e5cc0e9898d757d45c4237 07-May-2009 Mitsuru Oshima <oshima@google.com> * update density correctly when the configuration is changed.
* Turns private sLcdDensity to public DEVICE_DENSITY to use it in ActivityThread
isplayMetrics.java
52fa7c2afd040ec0acc6c90c7bec655840632f4f 23-Apr-2009 Dave Bort <dbort@android.com> Config: Deprecate most fields, and hook into ConfigBuildFlags

Copy 3.xml to 4.xml, and patch 4.xml to deal with the fact that
Config.DEBUG's value is no longer actually fixed. We don't want
to modify 3.xml directly, because it's the official cupcake API.

Update current.xml to reflect the differences between 3.xml and 4.xml
and to reflect the new deprecation states.

The deprecated fields should be @hidden if possible before the
next API release, but it can't be done yet because there are
SDK-linked platform apps that use some of the deprecated fields.

Signed-off-by: Dave Bort <dbort@android.com>
onfig.java
5fcfcd0f341e1683352cc3a70af679b26c30a05b 30-Apr-2009 Dan Bornstein <> am b4c218e: AI 147994: First cut of CharsetUtils, a utility class that a

Merge commit 'b4c218eafd382da778bcc0006de9b8fce267a9cd' into donut

* commit 'b4c218eafd382da778bcc0006de9b8fce267a9cd':
AI 147994: First cut of CharsetUtils, a utility class that aims to
b4c218eafd382da778bcc0006de9b8fce267a9cd 29-Apr-2009 Dan Bornstein <> AI 147994: First cut of CharsetUtils, a utility class that aims to
help with vendor-specific encoding name interpretation.
BUG=1820922

Automated import of CL 147994
harsetUtils.java
34f1ca7b79ff678a651aea4b82e032b798506b37 14-Apr-2009 Dave Bort <dbort@android.com> util/DebugUtils: Remove references to android.util.Config

The semantics of Config.DEBUG will be changing soon, and all other
Config.* fields will become deprecated/hidden.

BUG=1780938
ebugUtils.java
2e9bbce84d9697a9dcccd02cec55dc485d985746 01-Apr-2009 Romain Guy <> AI 144013: Rename PoolFactory to Pools, to follow the java.util convention (Collections, Arrays.)

Automated import of CL 144013
oolFactory.java
ools.java
d928d6837dee4df30b06529164326722075da063 01-Apr-2009 Romain Guy <> AI 143890: Fixes #1749387. Improve the pooling of the VelocityTracker class. This introduces a new, hidden, API for pooling objects easily.
BUG=1749387

Automated import of CL 143890
initePool.java
ool.java
oolFactory.java
oolable.java
oolableManager.java
ynchronizedPool.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroidException.java
ndroidRuntimeException.java
ttributeSet.java
onfig.java
ayOfMonthCursor.java
ebugUtils.java
isplayMetrics.java
ventLog.java
ventLogTags.java
loatMath.java
og.java
ogPrinter.java
onthDisplayHelper.java
rintStreamPrinter.java
rintWriterPrinter.java
rinter.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
tateSet.java
tringBuilderPrinter.java
imeFormatException.java
imeUtils.java
imingLogger.java
ypedValue.java
ml.java
mlPullAttributes.java
ackage.html
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroidException.java
ndroidRuntimeException.java
ttributeSet.java
onfig.java
ayOfMonthCursor.java
ebugUtils.java
isplayMetrics.java
ventLog.java
ventLogTags.java
loatMath.java
og.java
ogPrinter.java
onthDisplayHelper.java
rintStreamPrinter.java
rintWriterPrinter.java
rinter.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
tateSet.java
tringBuilderPrinter.java
imeFormatException.java
imeUtils.java
imingLogger.java
ypedValue.java
ml.java
mlPullAttributes.java
ackage.html
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
parseIntArray.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
isplayMetrics.java
ypedValue.java
9266c558bf1d21ff647525ff99f7dadbca417309 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
ayOfMonthCursor.java
og.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
rintStreamPrinter.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
imeUtils.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ndroidException.java
ndroidRuntimeException.java
ttributeSet.java
onfig.java
ayOfMonthCursor.java
ebugUtils.java
isplayMetrics.java
ventLog.java
ventLogTags.java
loatMath.java
og.java
ogPrinter.java
onthDisplayHelper.java
rintWriterPrinter.java
rinter.java
parseArray.java
parseBooleanArray.java
parseIntArray.java
tateSet.java
tringBuilderPrinter.java
imeFormatException.java
imeUtils.java
imingLogger.java
ypedValue.java
ml.java
mlPullAttributes.java
ackage.html