Commit Graph

4310 Commits

Author SHA1 Message Date
Alan Viverette
52b999f072 Implement APIs for obtaining, caching themed Drawables
When Drawables are inflated during preload (or otherwise without a theme)
they cache their themeable attributes in their constant state as an array
keyed on attribute index. Drawables inflated with a theme will simply
resolve theme attributes as part of normal inflation, and they will not
cache any themeable attributes.

Drawables obtained from Resources are pulled from theme-specific cache
when possible. If an unthemed Drawable exists in the preload cache, a
new constant state will be obtained for the Drawable and the theme will
be applied by resolving the cached themeable attributes and overwriting
their respective constant state properties. If no cached version exists,
a new Drawable is inflated against the desired theme.

Constant states from themed drawables may be cached if the applied theme
is "pure" and was loaded from a style resource without any subsequent
modifications.

This CL does not handle applying themes to several Drawable types, but it
fully supports BitmapDrawable, GradientDrawable, NinePatchDrawable,
ColorDrawable, and TouchFeedbackDrawable.

BUG: 12611005
Change-Id: I4e794fbb62f7a371715f4ebdf946ee5f9a5ad1c9
2014-03-24 18:00:26 -07:00
John Reck
f666ad7046 Rename DisplayList->RenderNode
Change-Id: Idcca6f26ba6282594789962f5edb3ed53a290fef
2014-03-17 10:30:32 -07:00
Jeff Brown
d0fd73d7c5 am 1c4d86c7: am f54d62dc: am fc7315c6: am 6d71e165: Merge "Round off when calculate next step in Seekbar"
* commit '1c4d86c7b4eba393058db62fc1e61c9dc30aaa82':
  Round off when calculate next step in Seekbar
2014-03-11 00:38:11 +00:00
Jeff Brown
f54d62dc80 am fc7315c6: am 6d71e165: Merge "Round off when calculate next step in Seekbar"
* commit 'fc7315c6c17e6ebc559d2ea0afb8be64c5d7b86c':
  Round off when calculate next step in Seekbar
2014-03-11 00:15:38 +00:00
Jeff Brown
6d71e165ba Merge "Round off when calculate next step in Seekbar" 2014-03-11 00:06:40 +00:00
John Reck
be34f2f3b3 DisplayList lifecycle changes
Bug: 13360343
 Change DisplayList to be more forgiving with weaker lifecycle
 requirements. Is more self-managed with a strong reference
 to the renderer it needs

 Also fix naming mismatch

Change-Id: I5c89453a72a52954f6f959f0846199705dbb6476
2014-03-10 10:12:32 -07:00
Alan Viverette
732ca4642f Update fast scroller item count after layoutChildren()
BUG: 12553181
Change-Id: I4ea1b45d08c153b0146868bf57884d6b8dde6245
2014-03-07 16:49:32 -08:00
Svetoslav
b28f87301f am 3cd04c99: am d2a244f9: am 8cb232cb: Merge "ProgressBar is important for accessibility by default." into klp-dev
* commit '3cd04c99aca7d0c7d1a5edf8e0868c76b0725400':
  ProgressBar is important for accessibility by default.
2014-03-07 00:59:07 +00:00
Svetoslav
3cd04c99ac am d2a244f9: am 8cb232cb: Merge "ProgressBar is important for accessibility by default." into klp-dev
* commit 'd2a244f9767ee678d3971c9ad43a07100db4e8c9':
  ProgressBar is important for accessibility by default.
2014-03-07 00:47:17 +00:00
Svetoslav
d2a244f976 am 8cb232cb: Merge "ProgressBar is important for accessibility by default." into klp-dev
* commit '8cb232cb796718ad91e56672a2c8fdbf88633001':
  ProgressBar is important for accessibility by default.
2014-03-07 00:39:05 +00:00
Svetoslav
8cb232cb79 Merge "ProgressBar is important for accessibility by default." into klp-dev 2014-03-07 00:37:14 +00:00
Jay Shrauner
1276295b6b am a3ea4be5: Prevent SpellChecker from setting invalid range - DO NOT MERGE
* commit 'a3ea4be5425fc2a561290c08a9f5f31f374afc31':
  Prevent SpellChecker from setting invalid range - DO NOT MERGE
2014-03-07 00:00:14 +00:00
Jay Shrauner
a3ea4be542 Prevent SpellChecker from setting invalid range - DO NOT MERGE
Add check for invalid range before setting for further check
at end of parse() loop.

Bug:12936072
Change-Id: Ie0b33b8e69fe47e5d3371640be5681f13a4e4f6e
(cherry picked from commit ea4adf2847)
2014-03-06 22:29:12 +00:00
John Reck
b14dfe20ef Revert "Revert "Workaround apps not calling super.onDetachedFromWindow()""
This reverts commit bac16fae7e.

Change-Id: I61e997b23fac1aa984129fdc0328426ff8891bdd
2014-03-06 14:12:35 -08:00
Bart Sears
bac16fae7e Revert "Workaround apps not calling super.onDetachedFromWindow()"
Requested by jreck to fix the build.

This reverts commit 198d20842a.

Change-Id: I733065cc124b59bf914034f5bac5e2e951a5b604
2014-03-06 21:09:51 +00:00
John Reck
198d20842a Workaround apps not calling super.onDetachedFromWindow()
Bug: 13338698
 Move the releasing of hardware resources to a new
 @hide onDetachedFromWindowInternal

Change-Id: I52b4e6ba4d5b3ce20b89cabffa248d1d780e3e81
2014-03-06 12:40:49 -08:00
Svetoslav
6a1846a084 ProgressBar is important for accessibility by default.
If a view does not have callbacks, or content description, or does not draw
content, and it is marked as important for accessibility auto, then the system
decides it is not important and does not report it. Apparently progress bar
draws content that means something and it should be important for accessibility
by default.

Change-Id: Icd3837fb8b9e208c98b90707f3b195622d71949e
(cherry picked from commit 7face75f2c)
2014-03-06 19:31:19 +00:00
Fabrice Di Meglio
db3e77825d am 71c3a3d9: am 6c3a45d7: am 57f8a4b4: am 1ff2df61: Merge "Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE" into klp-dev
* commit '71c3a3d9474e1ce4210209bbd68055f3b780057d':
  Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE
2014-03-06 00:42:36 +00:00
Fabrice Di Meglio
1eb5c0551f am cf33fe68: am e1190a99: am cb6dcd7a: am 2b58a29f: Merge "Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE" into klp-dev
* commit 'cf33fe683d2cd9ea25fa83f5354c682a788ec074':
  Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE
2014-03-06 00:42:33 +00:00
Fabrice Di Meglio
71c3a3d947 am 6c3a45d7: am 57f8a4b4: am 1ff2df61: Merge "Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE" into klp-dev
* commit '6c3a45d7df0dc708e3981c79df32b5bb3fb1758a':
  Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE
2014-03-06 00:38:57 +00:00
Fabrice Di Meglio
cf33fe683d am e1190a99: am cb6dcd7a: am 2b58a29f: Merge "Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE" into klp-dev
* commit 'e1190a994e7d86ae7ad6f4680b7cd58d50d4a770':
  Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE
2014-03-06 00:38:52 +00:00
Fabrice Di Meglio
6c3a45d7df am 57f8a4b4: am 1ff2df61: Merge "Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE" into klp-dev
* commit '57f8a4b4ed48ae3e2488bb3bafcd40137c71ec18':
  Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE
2014-03-06 00:35:40 +00:00
Fabrice Di Meglio
e1190a994e am cb6dcd7a: am 2b58a29f: Merge "Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE" into klp-dev
* commit 'cb6dcd7af2d015b7a3d49f1224936241747bcb43':
  Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE
2014-03-06 00:35:36 +00:00
Fabrice Di Meglio
57f8a4b4ed am 1ff2df61: Merge "Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE" into klp-dev
* commit '1ff2df6194148f487ccb014a7c5302fa8ffe2571':
  Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE
2014-03-06 00:32:30 +00:00
Fabrice Di Meglio
cb6dcd7af2 am 2b58a29f: Merge "Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE" into klp-dev
* commit '2b58a29f825e6442d8767a36adaf1770b86d5725':
  Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE
2014-03-06 00:32:27 +00:00
Fabrice Di Meglio
1ff2df6194 Merge "Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE" into klp-dev 2014-03-06 00:29:35 +00:00
John Reck
2665f6e9f5 Merge "Remove invalid usage of DisplayList.isValid()" 2014-03-06 00:07:29 +00:00
John Reck
7558aa7081 Remove invalid usage of DisplayList.isValid()
Bug: 13324734

 Editor was using isValid as a mechanism to track whether or not it
 needed to re-record the DisplayList. This is not correct as isValid()
 is not a general-purpose dirty bit. Add an explicit dirty bit for
 Editor to use instead

Change-Id: I5608b151791870fca3681056b5507bd39ee48f52
2014-03-05 15:01:04 -08:00
Svetoslav
8c6ed03c8f am 1caa092f: Allow click listener registration in NumberPicker.
* commit '1caa092f94aaa4b9b7b382263dfd13581d92d2de':
  Allow click listener registration in NumberPicker.
2014-03-05 22:55:58 +00:00
Svetoslav
1caa092f94 Allow click listener registration in NumberPicker.
NumberPicker is composed of three areas, increment, decrement, and value,
which take the entire space. Hence, adding a click listener was a no-op.
Clicking on the value brings up the IME but for devices with very small
screens a developer may want to override this default behavior to say
confirm the selection.

This change allows adding a click listener to NumberPicker to override the
behavior of clicking on the current value. This is applicable only to the
new look and feel of the NumberPicker, i.e. the holo themes. This change
is safe as previously setting a click listener had no effect.

bug:13287234

Change-Id: I34e12a2e2bd64344a4797153fa6c820001a4722e
(cherry picked from commit 46a27efe95)
2014-03-05 22:37:34 +00:00
Svetoslav
dd2ce3448b Merge "Allow click listener registration in NumberPicker." 2014-03-05 22:35:13 +00:00
Fabrice Di Meglio
25d9ce4058 Fix bug #12066726 java.lang.NullPointerException at android.widget.CalendarView.onScroll(CalendarView.java:1216) - DO NOT MERGE
- fix the NPE by checking the validity of the child reference retrieved by View.getChildAt(...)

Change-Id: I61b9233345a4f1110aa06ea563a81dcdf6b35783
2014-03-05 18:42:56 +00:00
Fabrice Di Meglio
b3670c54e6 Fix bug #12422326 Unable to change text direction programmatically using setTextDirection Android SDK API - DO NOT MERGE
- force TextView internal layout recreation when its TextDirection is changed

Change-Id: I7d6b088a9235362e03cb6694392df71bbf5a323a
(cherry picked from commit 22228fec05)
2014-03-05 18:41:36 +00:00
John Reck
24ba99c235 Merge "DisplayList overhaul" 2014-03-05 17:00:54 +00:00
John Reck
44fd8d24f7 DisplayList overhaul
Change-Id: I53418d580c98f706e971545cff81b9921c12cc5f
2014-03-04 15:18:16 -08:00
Alan Viverette
5876ff4a0a Quantum for seek bars, spinners, switches
Fixes a bug in Switch that ignores the switch intrinsic height. Reverts
list selectors since they're not implemented in AbsListView yet. Also
adds Quantum for some miscellaneous widgets and icons.

Change-Id: I918bb0165b84e108cdf17a29eadc8424ac35f9ee
2014-03-03 17:40:46 -08:00
Svetoslav
46a27efe95 Allow click listener registration in NumberPicker.
NumberPicker is composed of three areas, increment, decrement, and value,
which take the entire space. Hence, adding a click listener was a no-op.
Clicking on the value brings up the IME but for devices with very small
screens a developer may want to override this default behavior to say
confirm the selection.

This change allows adding a click listener to NumberPicker to override the
behavior of clicking on the current value. This is applicable only to the
new look and feel of the NumberPicker, i.e. the holo themes. This change
is safe as previously setting a click listener had no effect.

bug:13287234

Change-Id: I34e12a2e2bd64344a4797153fa6c820001a4722e
2014-03-03 16:16:26 -08:00
Alan Viverette
2ac93ae919 Don't smooth scroll if the adapter is null
BUG: 13235508
Change-Id: I1ca8a5675aa07b9a987e47a6eacdc0a1e4adde74
2014-02-28 12:18:38 -08:00
Alan Viverette
cb23bce60a Refactor smooth scrolling sub-row calculation and clamp target
BUG: 13205615
Change-Id: If3757be35593a072ba6e92aa9da085330a12fd9d
2014-02-27 16:33:06 -08:00
Alan Viverette
e6be9c78b5 Always set item type on obtained ListView item views
If a view is scrapped without layout params being set, it will
incorrectly be recycled as item type 0.

BUG: 13212603
Change-Id: I2a42c04ec5065067ab260a0a8afb07207db729f6
2014-02-26 18:16:36 -08:00
Alan Viverette
813d85b82c Fix progress bar tinting, add tint support to ShapeDrawable
Cleans up APIs a little, since I think we may want to add tinting
modes beyond what Porter-Duff can provide. Plus we don't actually
support some of the Porter-Duff modes in hardware.

Change-Id: I2cea1b737cc93607a24842c54eb9f0d8346b29d4
2014-02-26 15:38:51 -08:00
Alan Viverette
2546fcf5c9 Constrain starting sub row to list bounds
BUG: 13077653
Change-Id: Id01da055e8502b1447519666eb439d8480437c6c
2014-02-25 18:45:03 -08:00
Alan Viverette
65be9cc34c Force measurement in LinearLayout if any views are skipped
BUG: 12249256
Change-Id: I805cc70c4a2982befd9eb625be1378e6a2d9eba6
2014-02-24 18:21:09 -08:00
Alan Viverette
462c2177f7 Check for ongoing detachment in AbsListView
BUG: 13167767
Change-Id: Ie1a828eadbb99daef46af77544f233fee09fd1bc
2014-02-24 12:24:47 -08:00
Alan Viverette
2e6fc8ca56 Check for null view root before checking for accessibility focus
BUG: 13168971
Change-Id: Ia75d77b18112371f56a624e11f9509f14ec98093
2014-02-24 11:09:18 -08:00
Alan Viverette
dc8d7db35a Merge "Fix transient state, accessibility focus in ListView, GridView" 2014-02-21 23:19:21 +00:00
Guang Zhu
c8124a1e79 Merge "add new accessibility action for EditText to set text content" 2014-02-21 22:28:22 +00:00
Alan Viverette
503923220c Merge "Fix scrolling when the bound target offset is too high" 2014-02-21 19:13:17 +00:00
Alan Viverette
00b9829202 Fix scrolling when the bound target offset is too high
BUG: 13033556
Change-Id: I7a61548d3c604f004726117b40882f84ddf75337
2014-02-21 11:11:01 -08:00
Elliott Hughes
449e46600f am 0047d3e0: am e253b514: am 29d60b95: am 8d41e653: Merge "Miscellaneous small documentation fixes."
* commit '0047d3e025b43fd2dc05734f7ea6229291445046':
  Miscellaneous small documentation fixes.
2014-02-21 17:37:54 +00:00