Commit Graph

305 Commits

Author SHA1 Message Date
Narayan Kamath
a1226a7a8a 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
2014-02-20 10:27:55 +00:00
Calin Juravle
2f825260f6 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()
2014-02-19 11:31:17 +00:00
Calin Juravle
78f522d16e am 7a4172d1: am f11cc165: Merge "Fixed a possible infinite loop in JsonReader#skipValue()"
* commit '7a4172d190871c6b17124bf86374304cef727984':
  Fixed a possible infinite loop in JsonReader#skipValue()
2014-02-19 11:21:58 +00:00
Calin Juravle
8fbcc6b4cd Fixed a possible infinite loop in JsonReader#skipValue()
Bug: https://code.google.com/p/android/issues/detail?id=65846

Change-Id: Idaa0e75fc5612550c4b9ccb9afa5535ea5b189df
2014-02-18 19:19:15 +00:00
Dianne Hackborn
eaf2ac464b 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
2014-02-07 13:45:01 -08:00
Jeff Brown
d16c409e55 am 065d998a: Merge "Hide an old debug function." into klp-modular-dev
* commit '065d998a4c3d597e924f42635d1a3699a6fcf34b':
  Hide an old debug function.
2014-01-28 00:13:12 +00:00
Jeff Brown
8aca9e335f Hide an old debug function.
Change-Id: If12b967955847d257dac0431dabe0dca41865b58
2014-01-24 13:10:19 -08:00
Alan Viverette
db24d142f5 Fix LongArray.addAll() to use correct arraycopy argument order
BUG: 11709513
Change-Id: I831e74ccb008739ab315c68618c04f870f9a36a5
2013-11-27 17:38:24 -08:00
Newton Allen
1f57ad47b5 am 27bd4440: am 28029658: Fix javadoc typo in SparseArray.
* commit '27bd44401e48b5b676a1ce5e4940aff3200fb536':
  Fix javadoc typo in SparseArray.
2013-11-21 15:32:42 -08:00
Newton Allen
27bd44401e am 28029658: Fix javadoc typo in SparseArray.
* commit '2802965888566244d8642ba32775b7b2a3cec655':
  Fix javadoc typo in SparseArray.
2013-11-21 23:28:28 +00:00
Newton Allen
2802965888 Fix javadoc typo in SparseArray.
Change-Id: Ie69b2cf96dae95b6ebe7b7797d3755749aec9f35
(cherry picked from commit ebb47950f2)
2013-11-21 23:12:32 +00:00
Newton Allen
ebb47950f2 Fix javadoc typo in SparseArray.
Change-Id: Ie69b2cf96dae95b6ebe7b7797d3755749aec9f35
2013-11-21 13:43:01 -08:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Alan Viverette
fe2737282f Merge "Add methods for removing children and actions from A11y nodes" 2013-11-07 23:34:08 +00:00
Alan Viverette
f0aed09ed8 Add methods for removing children and actions from A11y nodes
BUG: 11421730
Change-Id: Ide396e6a0fec871395a9cadf8880c16d0de08294
2013-11-06 15:33:03 -08:00
Adam Lesinski
9aaf4e13f0 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
2013-11-06 09:54:46 -08:00
Adam Lesinski
83c7ac3b8e 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
2013-11-01 12:00:53 -07:00
Dianne Hackborn
9039b9a7ef 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 ∞...
2013-10-17 18:29:17 -07:00
Dianne Hackborn
09acb7ca89 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
2013-10-17 17:28:09 -07:00
Dianne Hackborn
9aded5abd6 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...
2013-10-14 19:01:55 -07:00
Dianne Hackborn
878deb3c7b 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
2013-10-14 17:15:40 -07:00
Dianne Hackborn
495fe22d68 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...
2013-10-03 15:39:27 -07:00
Dianne Hackborn
4a7d824c3b 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
2013-10-03 10:19:20 -07:00
Dianne Hackborn
1d536848af 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
2013-10-02 09:37:26 -07:00
Dianne Hackborn
164371fb75 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
2013-10-01 20:51:12 -07:00
Elliott Hughes
e713f57a6e am d82b1c3b: am 9d8721f8: Merge "Remove dead code."
* commit 'd82b1c3bf2abbc1582c90362267650cf05d38cd5':
  Remove dead code.
2013-09-24 17:54:42 -07:00
Elliott Hughes
4b395a3625 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
2013-09-24 17:22:11 -07:00
Flavio Lerda
5771302ca1 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
2013-09-08 22:29:44 +01:00
Dianne Hackborn
a6c767b2d8 Merge "Fix issue #10491028: iabv2 test apps that contain subscription SKUs..." into klp-dev 2013-09-05 22:20:55 +00:00
Dianne Hackborn
8fd3751be2 Fix issue #10491028: iabv2 test apps that contain subscription SKUs...
...crash on launch

You got some values in my keys!

Change-Id: I2636c72843e0c0900ccdd9acba771c1b61e70b39
2013-09-05 15:10:20 -07:00
Adam Powell
1487466dc2 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
2013-09-05 00:55:20 +00:00
Fabrice Di Meglio
253fb7f6c3 Fix bug #10549094 KLP API Review: android.util.LayoutDirection
- use constant class instead of an interface
- make it final

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

Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Iaab02e718a7be7bda22e626dca05d79bfd2a8fc4
2013-08-02 15:12:32 -07:00
Fabrice Di Meglio
3f5a90b2fb 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
2013-08-01 15:15:10 -07:00
Dianne Hackborn
8b7bc13e21 Fix issue #10115327: MapCollections need to implement equals
Change-Id: I8e7b6dd092442f3870aa1a36bd2a7cd974177146
2013-07-31 17:52:07 -07:00
Dianne Hackborn
62d708f4dd Okay, I give in, add null key support to ArrayMap and ArraySet.
Change-Id: Iac5035f9c5884a9f9d5acb38132bb128d7a55249
2013-07-25 16:53:09 -07:00
Dianne Hackborn
450d8c5b7c 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
2013-07-19 17:05:30 -07:00
Dianne Hackborn
b87655b3e5 Switch Bundle's implementation over to ArrayMap.
That was...  um...  easier than I thought it was going to be.

Change-Id: Id8f2211c1d5f8145e0bb009dca0f62a590f2b860
2013-07-18 11:10:29 -07:00
Dianne Hackborn
3e82ba1a67 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
2013-07-16 17:08:04 -07:00
Dianne Hackborn
b993f41eb2 Update SparseArray docs to be more informative.
Change-Id: I5d8d17d46a69ccdcf6b29f93be3d44addd80ab61
2013-07-12 18:05:37 -07:00
Dianne Hackborn
8c84109b9f 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
2013-06-24 18:16:48 -07:00
Svetoslav Ganov
4b9a4d1687 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
2013-06-21 18:43:17 -07:00
Dianne Hackborn
a17c0f5e16 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
2013-06-21 15:03:41 -07:00
Dianne Hackborn
21ab6f4991 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
2013-06-11 14:37:54 -07:00
Chet Haase
f4130cf35f 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
2013-06-06 16:43:41 -07:00
Chet Haase
08735185f8 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
2013-06-04 10:44:40 -07:00
Dianne Hackborn
390517be2d 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
2013-05-30 19:26:42 -07:00
Dianne Hackborn
f4bf0ae2a7 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
2013-05-24 16:36:14 -07:00
Elliott Hughes
032d8e3890 am 0bb497b8: Merge "Use the newer ZoneInfoDB API."
* commit '0bb497b8d1bac2206df89a878ecb7e356d21fe99':
  Use the newer ZoneInfoDB API.
2013-04-26 12:38:04 -07:00