Commit Graph

273 Commits

Author SHA1 Message Date
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
Elliott Hughes
48289433d8 Use the newer ZoneInfoDB API.
Change-Id: I846c720ae6c262afb4fd7f8a749008c837e76cc4
2013-04-26 11:30:54 -07:00
Philip Milne
696b15e526 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."
2013-04-19 10:56:22 -07:00
Philip Milne
ab104ba6d4 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 989709a973

Change-Id: I9018cd8dadb1b1a54ad8749c816bd02bb7e7a38b
2013-04-18 21:09:00 -07:00
Elliott Hughes
1e61ea82f4 am 55e9d98d: Merge "Clarify the documentation of SparseArray.indexOfValue."
* commit '55e9d98d990f7a015d4c10f5e5a92ae131637073':
  Clarify the documentation of SparseArray.indexOfValue.
2013-03-29 17:13:44 -07:00
kmccormick
eff1151d6c 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
2013-03-28 16:47:25 -07:00
kmccormick
0de7af1e18 am c9c63003: am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs
* commit 'c9c63003b2e30c068a1bc9eba7683b75ca272180':
  Doc update: misc fixes
2013-03-28 16:45:16 -07:00
kmccormick
c9c63003b2 am fd245a2e: am 593c0dbf: am 378d4367: Merge "Doc update: misc fixes" into jb-mr1.1-docs
* commit 'fd245a2ed78fd2b39c6d09ad0b1d84c275544c33':
  Doc update: misc fixes
2013-03-28 16:43:26 -07:00
kmccormick
50e27c8135 Doc update: misc fixes
"Bug: 3424410"

Some of these had already been fixed.

Change-Id: I1d0ab3a8fa51aa308186059db4186e7a7d24e9f8
2013-03-28 16:33:46 -07:00
Elliott Hughes
58aff7debf Clarify the documentation of SparseArray.indexOfValue.
Bug: https://code.google.com/p/android/issues/detail?id=53297
Change-Id: I28725a2d03d4c11948bfe4fb90d730c86bf41481
2013-03-26 16:34:30 -07:00
Elliott Hughes
6c8cd01ad5 am c22657f8: am 3f5778c8: Merge "Fix incorrect FloatMath documentation."
* commit 'c22657f8b1e3b9198f1e7795a06a6f59b5cd9c80':
  Fix incorrect FloatMath documentation.
2013-02-26 18:04:35 +00:00
Elliott Hughes
f732a2f83f Fix incorrect FloatMath documentation.
Change-Id: I30bbe500e634b73f3456ccc797106ad261fd0ce7
2013-02-26 09:28:17 -08:00
Wink Saville
fb053cde74 am f7bf667d: am b5a1ce2f: Merge "Allow three digit phone numbers"
* commit 'f7bf667d4a5e8e3fca75640f6352724826705128':
  Allow three digit phone numbers
2013-02-21 15:19:53 -08:00
Bin Zhu
a37fc575a4 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
2013-02-15 11:54:41 +01:00
Dianne Hackborn
56a2301c7a Implement issue #6646859: 4K!!!! 4K!!!! 4K!!!!
Change-Id: Ib05a2eb6a03db50074805a437a3639a7d10684a0
2013-02-12 15:41:49 -08:00
Jeff Sharkey
dda73b5dcd Add LongSparseLongArray with tests.
Change-Id: Iae32ba7647601c587e30834379d7d3c2235c75b0
2013-01-18 16:59:14 -08:00
Svetoslav Ganov
60fba77035 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
2012-12-13 16:04:38 -08:00
Svetoslav Ganov
be922dc976 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
2012-11-30 17:16:17 -08:00
Dianne Hackborn
5c1eb690bb 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...
2012-11-29 14:33:44 -08:00
Dianne Hackborn
84ea428d24 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...
2012-11-29 14:28:24 -08:00
Dianne Hackborn
ed8c323a6c 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...
2012-11-29 12:08:41 -08:00
Dianne Hackborn
7ac8bbddfc 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
2012-11-29 11:59:58 -08:00
Svetoslav Ganov
abae2a1b89 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
2012-11-27 19:10:51 -08:00
Chet Haase
3b2b3aaf9f am 47a8e863: Merge "Fix infinite recursive loop DO NOT MERGE" into jb-mr1.1-dev
* commit '47a8e863e32dc634aa1df79d805f4a366e13d4e9':
  Fix infinite recursive loop DO NOT MERGE
2012-11-27 12:49:16 -08:00
László Dávid
6ead9418ff 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
2012-11-27 11:11:10 -08:00
Chet Haase
62d3fd89ec am 161194da: am d8a6b544: am 21243369: Merge "Fix infinite recursive loop"
* commit '161194daad7cee031475648be294e5e9d4bc6d68':
  Fix infinite recursive loop
2012-11-27 09:41:16 -08:00
Chet Haase
2124336984 Merge "Fix infinite recursive loop" 2012-11-27 08:34:18 -08:00
Scott Kennedy
c40d1153e0 Unhide SparseLongArray
Because it's useful.

Change-Id: I6c71a49eed2c0c366e8afa874ebbc48cfe816a90
2012-11-26 17:51:04 -08:00
László Dávid
c5d43f76fd 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
2012-11-23 00:26:22 +01:00
Fabrice Di Meglio
8bf1cb378b 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
2012-09-18 15:00:14 -07:00
Fabrice Di Meglio
ad31d027ca 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
2012-09-18 14:59:00 -07:00
Fabrice Di Meglio
20586fa035 Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev 2012-09-18 14:48:48 -07:00
Fabrice Di Meglio
d3d9f3f100 Fix bug #7173351 API REVIEW: android.util.LocaleUtil
Change-Id: I08fd491eff714059e9ec874fadebe7eb556c34d5
2012-09-18 12:55:32 -07:00