History log of /frameworks/base/core/java/android/view/View.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c66ebd9a544b772ed004b8cf5cb49c75205f1f39 29-Jun-2017 Chet Haase <chet@google.com> Add docs for new padding/margin attributes.

The attributes for View, paddingHorizontal and paddingVertical,
were added in the O release and are documented in R.attr. But they
should also be referenced in View itself, alongside the other
padding parameters.

Similarly, the new layout_MarginHorizontal and
layout_marginVertical should be referenced in
ViewGroup.MarginLayoutParams.

Bug: 63128350 Add docs about new padding/margin params
Test: built docs, checked the result
Change-Id: I3021df5ea83c469811b4a6ec6ecd3ab2966ec384
(cherry picked from commit 353d397d17c2224540cfe7fa4e33a1b0b4d3490f)
/frameworks/base/core/java/android/view/View.java
139dbe5c1c90f601be469f87bdec0e0be06710da 19-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Do not update currently open tooltip." into oc-dev
846cda939796aef868e4bb1ae92e744c3e9d57cb 15-Jun-2017 Phil Weaver <pweaver@google.com> Separate a11y and autofill view ids

Autofill seems to need IDs to be preserved across things
like configuration changes, while accessibility will not
function without views with unique ids. Separating out the
two types of IDs. We can re-combine them once it's clear
that both demands can be satisfied.

Bug: 62301218
Test: Run a11y and autofill CTS, and verify that the play
store app functions with TalkBack after a screen rotation.

Change-Id: I17a99de2874768fc0ade3aa354130dd1f6b4cd7e
/frameworks/base/core/java/android/view/View.java
dd469d171d7503da3b8602c3ff0317b81792f2c0 16-Jun-2017 Vladislav Kaznacheev <kaznacheev@google.com> Do not update currently open tooltip.

Currently if View.setTooltipText is called while
the tooltip is being shown for that view, it will
update the displayed text. The tooltip then will
resize to wrap around the new text, but not change
its position. This looks confusing if the new text
is significantly shorter or longer.

Removing this functionality until proper
re-positioning is implemented.

Bug: 38491655
Test: android.view.cts.TooltipTest passes
Change-Id: I79689288185888854b992b89e19fe381d3ac50e4
/frameworks/base/core/java/android/view/View.java
211e760408e4a3c2794357e06c1df8f799c8949f 10-Jun-2017 Felipe Leme <felipeal@google.com> Merge "Minor fix on autofill() javadoc." into oc-dev
fad3a83a93a35ec886ccd3e5dfea206c112b43bc 09-Jun-2017 Felipe Leme <felipeal@google.com> Minor fix on autofill() javadoc.

Bug: 62465574
Test: N/A

Change-Id: I4a55b4064a8af835e962a77c6ad55a29c1954efd
/frameworks/base/core/java/android/view/View.java
5013f9feb23b4d6679db61db7722ae5ec359c1ee 09-Jun-2017 Felipe Leme <felipeal@google.com> Ignore dispatchProvideStructureForAutofill() when layout is being updated.

View already checks if its layout is being updated when calling
notifyEnterOrExitForAutoFillIfNeeded(), but that doesn't prevent apps crashing
when the autofill process was triggered by another view.

Test: existing CtsAutoFillServiceTestCases pass
Fixes: 38198484

change-Id: I8e9435ddc4cf21fb648d39aace93f3af0e1fdf4f
/frameworks/base/core/java/android/view/View.java
2f6fc72efcb67737f45edb881eb2aed120a1b0bf 31-May-2017 Felipe Leme <felipeal@google.com> Overall improvement on Autofill javadocs for autofillable APIs.

Bug: 37567048
Test: ran 'm -j doc-comment-check-docs' and checked resulting HTML

Change-Id: I7eaf0a521c3777baf0dc0002ae814990fd96a14c
/frameworks/base/core/java/android/view/View.java
12ee4bd7a85b706f8cc40e0d1659ff621583fb85 02-Jun-2017 Evan Rosky <erosky@google.com> Merge "Improve consistency in focusAfterDescendants behavior" into oc-dev
2ae1bf568b68ea18431ab10aceeff3ec62aedb7b 11-May-2017 Evan Rosky <erosky@google.com> Improve consistency in focusAfterDescendants behavior

- focusAfterDescendant ViewGroups that were also clusters would
continue to be remembered for restoreFocusedInCluster after
gaining focusable children. This caused undesired cluster-focus
loops
- focusableViewAvailable wasn't being called in all cases (specifically
when views were added). This meant focusAfterDescendant views
wouldn't transfer focus to children in some cases.
- 0-area views which became focusable weren't reporting
focusableViewAvailable. Since views gaining area doesn't report
focusableViewAvailable, this was another case of state change not
being accounted for. Also, this restriction doesn't exist for
gaining focus so these views are actually focusable despite having
0 area.
- focusableViewAvailable was reporting focusable views even when
ancestors (and therefore the new focusables) were not visible.
- restoreFocusNotInCluster tried to focus invisible views
- restoreFocusNotInCluster was sending focus to focusAfterDescendant
viewgroups which had focusable children IN a cluster.

Bug: 38010274
Bug: 38009598
Bug: 38352147
Test: cycling works in situations reported in bugs.
Added CTS tests around focusableViewAvailable and
FOCUS_AFTER_DESCENDANTS

Change-Id: I77f214f5384dcf9092324e08fc1daa3f1155bbad
/frameworks/base/core/java/android/view/View.java
0b1b1c434650d2f272be7610027d4ddd948715a8 27-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Improved autofillHints documentation." into oc-dev
759669988bfcbbbcf5e47e1399ae47602d158c3e 27-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes from topic 'highlight_fixed' into oc-dev

* changes:
Check default focus highlight for ImageView.
Check state_focus in foreground.
6dcec87ea2bc6d7d1aeb89da3c738ab36cbf4459 25-May-2017 Felipe Leme <felipeal@google.com> Moar Autofill Framework javadoc improvements:

- Fixed WebView < > and API calls.
- Improved description of virtual views.
- Described how to set boundaries of virtual views.
- Improved AUTOFILL_FLAG_INCLUDE_NOT_IMPORTANT_VIEWS doc.

Bug: 37567048
Test: ran 'm -j doc-comment-check-docs' and checked resulting HTML

Change-Id: Ic0d1e9ff2703c87d4007f0092a2f8dfe0efca6db
/frameworks/base/core/java/android/view/View.java
8dfe3fa979d7a261675473d44e0b8c6a35ce6c5f 25-May-2017 Felipe Leme <felipeal@google.com> Improved autofillHints documentation.

Bug: 38086244
Test: ran 'mmm -j frameworks/base/:doc-comment-check-docs' and checked HTML.

Change-Id: Ia7d2f75ae1db067106af36aa8dbb1cdbf3b40b3a
/frameworks/base/core/java/android/view/View.java
05ceb4e0a6e5a986ddf665e9b52123a8c533d6b4 23-May-2017 Andrew Solovay <asolovay@google.com> docs: Clarifying code snippet for View.autoFill()

Per bug, updating code snippet to clarify that it's an example of an
implementation of the method. Oscar & Felipe, please check that I did
it right!

Also fixed a couple of HTML syntax errors while I had the file open
(badly formatted escape-characters that Chrome figured out, but other
browsers might choke on) and a spelling error.

Revised Javadoc is staged to:

http://go/dac-stage/reference/android/view/View.html#autofill(android.view.autofill.AutofillValue)

Test: make ds-docs
Bug: 38347106
Change-Id: I587a66c53fd5ebeeb6108529723d2d7a74c61cf7
/frameworks/base/core/java/android/view/View.java
0bdf1c9c76c0832d3adbe85bdc0cde4c1e3102ce 01-May-2017 Jiaquan He <hejq@google.com> Check state_focus in foreground.

This commit checks whether the state_focus is specified in the
foreground of a view. If it is, the default focus highlight won't
show up.

Test: cts-tradefed run singleCommand cts --skip-device-info
--skip-preconditions --abi armeabi-v7a -m CtsViewTestCases -t
android.view.cts.View_DefaultFocusHighlightTest#testIsDefaultFocusHighlightNeeded
Bug: 37288730
Change-Id: I5256eb656c1b8729d685edb914e867ee9a3a92a4
/frameworks/base/core/java/android/view/View.java
652e940ebd440c40214c0f927dda1f6b45765dcf 11-May-2017 Jiaquan He <hejq@google.com> Do not relayout on default focus highlight.

Test: AdjacentListsWithAdjacentISVsInsideTest.testFocusedRectAndFocusHintWorkWithinListItemHorizontal
Bug: 38195445

Change-Id: I4ba61d1dd6b806bff5305986a086c436c3b05b12
/frameworks/base/core/java/android/view/View.java
354587a972b001d809033698bf34597d153c53a2 16-May-2017 Felipe Leme <felipeal@google.com> Check for mAttachInfo nullness when getting the autofillable drawable.

Test: manual verification on Caviar (automated test will be added later)
Test: CtsAutoFillServiceTestCases pass

Bug: 38341498
Fixes: 38323841

Change-Id: I15cc792de87987cc19a229c2ab2dfc317877f7ec
/frameworks/base/core/java/android/view/View.java
5fd8672d71319ca2b2238b486aee3ac6c7aa7ad8 13-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Couple autofill fixes." into oc-dev
7a1deb7c5f2c57df4f905ba997863a03d363a53e 12-May-2017 Felipe Leme <felipeal@google.com> Couple autofill fixes.

- Fixed PFLAG3_NOTIFY_AUTOFILL_ENTER_ON_LAYOUT value - it was overlapping with
PFLAG3_ASSIST_BLOCKED.
- Added missing permission on methods called by Shell command.
- Improved debugging.

Bug: 38173625

Test: android.autofillservice.cts.MultipleFragmentLoginTest#loginOnTwoFragments

Change-Id: Ie7880c97d38298e06134709c5c2e9e38fa1bacbb
/frameworks/base/core/java/android/view/View.java
1454afce8255079ec4fc42220cd0dac2a86da2b6 12-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Not specify return val of View#onSaveInstanceState" into oc-dev
517bafa59df45b838245252503b94fc929cf8844 12-May-2017 Philip P. Moltmann <moltmann@google.com> Not specify return val of View#onSaveInstanceState

.. as the comment was incorrect since a long time.

Bug: 37802299
Test: compiled
Change-Id: I10fe0b1c0f7f4ccaade38c87136a3785f2685798
/frameworks/base/core/java/android/view/View.java
f14aea9f8ba0c65c1e6924fcbaf1a73f85c1da4c 12-May-2017 Evan Rosky <erosky@google.com> Merge "Only save focus in keyboard navigation clusters when appropriate" into oc-dev
a7af3852081a883ab9323407db47902edcf704b0 11-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Detect isVisibleToUser post layout" into oc-dev
d70695ee34611bee420d901ac9e6470d8c211519 05-May-2017 Derek Sollenberger <djsollen@google.com> Add an O-release targetAPI check for Canvas.setBitmap.

For apps targeting releases earlier than O setBitmap will attempt
to preserve the matrix from the previous bitmap. It does not however
attempt to reconstruct the save/restore stack or the clip.

Test: manual test of messenger app referenced in the bug
Bug: 37589964
Change-Id: I67f0928a3f84a8be41da38ef1868e79bdeb03e46
/frameworks/base/core/java/android/view/View.java
68f583879ff23f10bb8ce103e91c34a79478c80e 11-May-2017 Svet Ganov <svetoslavganov@google.com> Detect isVisibleToUser post layout

Test: MiltipleFragmentsLogin test no longer fails.
All auto fill CTS tests pass.

bug:38173625

Change-Id: I6e36229bc9517c7339c77cbc5f236e8399ef4283
/frameworks/base/core/java/android/view/View.java
9f028643c29ef2e4c9c7f74a54dd21f6b612711a 09-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix left/top in ViewNode for suppressed parents" into oc-dev
f512575c683ff0b35b810dae1b39d8674e43e702 09-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes I7c2c9411,Ibc72c84d,Ib3968644 into oc-dev

* changes:
No need to deal with windowTokens
Persistable accessibility ID from ContextWrappers
Check callbacks when operting on UI
f51b5f991c5f316c8f34d4cad01e910bce87660c 09-May-2017 Philip P. Moltmann <moltmann@google.com> Merge "Read the autofill highlight from rootView context" into oc-dev
f0de5cdd9ab79126efcfe56788fc9756e1d8de1d 08-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Also check if view visible to user before engaging fill" into oc-dev
ff6d6d94926f550a1a284e844cfd8cd2f0d73765 06-May-2017 Philip P. Moltmann <moltmann@google.com> Persistable accessibility ID from ContextWrappers

Only IDs beyond LAST_APP_ACCESSIBILITY_ID can be reliably used for
autofilling. Other ids might change occasionally.

All Views attached to activities get usable IDs. Hence if a
ContextWrapper wraps an activity forward the goodness.

Also make sure that we don't accidentially autofill an unsafe view.

Test: Before the messaging handed out unusable Ids because it uses a
Contextwrapper. Now it hands out good ideas (accoring to dumpsys)
CtsAutoFillServiceTestCases
Bug: 38070352
Change-Id: Ibc72c84d77197019939abd231e8960988af7a592
/frameworks/base/core/java/android/view/View.java
01e1a6299714fd9af6c3917aff0a66e0b5e70c82 07-May-2017 Svet Ganov <svetoslavganov@google.com> Also check if view visible to user before engaging fill

Test: autofill CTS tests pass

bug:37753348

Change-Id: Ia16bff13f2cfdf1d315e3f45cc114ee13b145eb5
/frameworks/base/core/java/android/view/View.java
e926aad53d9bb7255ce3f4e94dc3de38089349ea 03-May-2017 Philip P. Moltmann <moltmann@google.com> Fix left/top in ViewNode for suppressed parents

If parents of a view got suppressed in the autofill structure the left
and top value are not relative to their direct parents anymore. They
need to be relative to the next non-suppressed parent.

This does not change any values for assist structures.

Fixes: 36060132, 37444334
Test: CtsAutoFillServiceTestCases + new ones that check for the left and
top parameters of view nodes.
Change-Id: I914ad028c7ed2f93ce44210cbe1a2a710673cbbb
/frameworks/base/core/java/android/view/View.java
2a86bad94c0192e67f17022d686ef7b78a152b6c 06-May-2017 Phil Weaver <pweaver@google.com> Merge "Properly translate text locations to screen coords" into oc-dev
c368a240c9a7b03c5fa3071b97ddf56e76dbd068 04-May-2017 Philip P. Moltmann <moltmann@google.com> Report less data in structure to autofill provider

Fixes: 35899963
Test: CtsAutoFillServiceTestCases, CtsAccessibilityTestCases,
CtsAccessibilityServiceTestCases
Change-Id: Ia7dba3e252e7678c033d67bcf653e592f3134304
/frameworks/base/core/java/android/view/View.java
6c617f0a939436b4fc6c50e79d50ae38c5c88512 05-May-2017 Phil Weaver <pweaver@google.com> Properly translate text locations to screen coords

Using the same method as getBoundsInScreen.

Bug: 35095925
Test: Manually verified location with test app, ran a11y cts
Change-Id: I1eee2a4eb23912698be61c9030d92bbade1d743a
/frameworks/base/core/java/android/view/View.java
de97af1b6cbb8a20eef98bc150b95d4aaae904a4 05-May-2017 Philip P. Moltmann <moltmann@google.com> Read the autofill highlight from rootView context

Fixes: 37792810
Test: CtsAutoFillServiceTestCases
CtsUiRenderingTestCases:.testclasses.AutofillHighlightTests
Change-Id: Idb843d90f8abb591ba6845ab713745b0eafc4a92
/frameworks/base/core/java/android/view/View.java
f5e4bfd856f3bae3c885a9f97831abd9a287e3ad 29-Apr-2017 Philip P. Moltmann <moltmann@google.com> Make autofilled highlight an attribute

Fixes: 37738299
Test: - CtsAutoFillServiceTestCases
- CtsUiRenderingTestCases:.testclasses.AutofillHighlightTests

Change-Id: I6106f7b2e44d18cd8c80c084f25737e43cbc44de
/frameworks/base/core/java/android/view/View.java
70c0221813d515c3496eb1ea1037198e9ad8ad44 28-Apr-2017 Svetoslav Ganov <svetoslavganov@google.com> Merge "Implement the rest of autofill importance modes" into oc-dev
fd31f85d0c6f19138d06d565d2b30b59e241a960 27-Apr-2017 Svet Ganov <svetoslavganov@google.com> Implement the rest of autofill importance modes

Test: CTS tests pass; augmented tests to verify new behavior

bug:36171235

Change-Id: Ieff2b8d7e1c3a3eba456deca7bed70c8e29c415e
/frameworks/base/core/java/android/view/View.java
e7172ff9fb4103339aa4095ab543ad4d259b1ebc 28-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "AAPT2: Add workaround for non-standard package IDs" into oc-dev
bfe5aa23e8c980a2ce0e74144cfac48f1b15f904 27-Apr-2017 Andrii Kulian <akulian@google.com> Merge "Hide onMovedToDisplay callback" into oc-dev
4ca56978a9aea3f021a54ed9265de10811984d94 27-Apr-2017 Adam Lesinski <adamlesinski@google.com> AAPT2: Add workaround for non-standard package IDs

The dynamic ref table used to map build-time IDs to runtime IDs
is mainly used for shared resource libraries and has a few built-in
mappings (app 0x7f and framework 0x01).

Using a non-standard package ID like 0x80 causes a failure in package ID
lookup. The solution is to ship the dynamic_ref_table with an identity mapping
with any resource table that uses a non-standard package ID.

Adds some tests to ensure this works correctly.

Bug: 37498913
Test: make libandroidfw_tests
Test: make aapt2_tests
Change-Id: Ic3f67942384d34e7fdcbc94ded360e940e3ebc8a
/frameworks/base/core/java/android/view/View.java
48f10a2ab53e415f34d86ac717b4f6412dfc824f 27-Apr-2017 Svet Ganov <svetoslavganov@google.com> Handle package changes in autofill manager service

Autofill manager service was not observing package changes thus
we did not properly handle the cases of the service being updated,
added, and removed. Handling, additions is needed to properly
support restore from a backup. Fixed a few missing locks.

Test: all autofill CTS tests pass and manually tested update, add,
and remove of autofill services.

bug:36638606
bug:36978445

Change-Id: Idd47891774ba2a4e562a1952cbb5a048211fd4e3
/frameworks/base/core/java/android/view/View.java
cadaccedac68173818b11f8d0787eeda1cc6e3b3 27-Apr-2017 Andrii Kulian <akulian@google.com> Hide onMovedToDisplay callback

There are no usages in O, so not exposing it for now.

Bug: 37638275
Test: android.server.cts.ActivityManagerDisplayTests
Change-Id: I30a8549191ac1cfad0fb1e4db71a702862c0e503
/frameworks/base/core/java/android/view/View.java
6c286befa31480924cf1edd600b51d8f732f373c 20-Apr-2017 Evan Rosky <erosky@google.com> Only save focus in keyboard navigation clusters when appropriate

- tabbing forward/backward should not save cluster focus. If
focus leaves a cluster due to normal forward/backward navigation
the cluster focus is cleared.
- directional arrows or cluster jumps (meta+tab) will save focus
in the cluster so that cluster-jumping back will restore it.

Also fixed a couple small bugs: focusable viewgroups wouldn't save
properly, focusIncluster wasn't cleared properly.

Bug: 35274351
Test: Added CTS test for this behavior.
Change-Id: Ie86218d70b0fc3aa1a709e613a2761a65ab12500
/frameworks/base/core/java/android/view/View.java
bb81092a31649b4e1031e24d68958180f5d4024e 26-Apr-2017 Felipe Leme <felipeal@google.com> Provide support for optimized ACTION_REQUEST_SET_AUTOFILL_SERVICE.

Also removed obsolete 'cmd autofill save'

Bug: 2153814
Test: manual verification

Change-Id: I082e6bb098e9be5d9e26d0941efcf6f28ab01e1d
/frameworks/base/core/java/android/view/View.java
e4f30650ac2b4e7b1b2a8962a3618506aec1b81a 25-Apr-2017 Felipe Leme <felipeal@google.com> Provide a way to set AutofillId on ViewStructure.

So far that was done indirectly by public methods that could
be overridden in away that does not set the proper id in the structure,
which would crash apps.

Bug: 36171235
Test: modified VirtualContainerActivityTest#testAutofillOverrideDispatchprovideAutofillStructure

Change-Id: I3f1c64020125cbb8349971a0bc52ccd1e0c81e62
/frameworks/base/core/java/android/view/View.java
85d1c2d2905362b984563d9b5e8332010c272fc5 21-Apr-2017 Felipe Leme <felipeal@google.com> Minor fixes on Autofill Framework:

- Removed default implementation of onProvideAutofillVirtualStructure() that
was using accessibility API (it's useless because without the View calling
AutofillManager.notifyViewEntered(), it would never be triggered).
- Fixed obsolete TODOs.
- Removed obsolete service class name constant.
- Removed unused debug constant.

Fixes: 37078783
Fixes: 33197203
Bug: 33802548
Bug: 35956626

Test: CtsAutoFillServiceTestCases pass
Merged-In: I834d34b8af8bf0d781dc7e0ffcd6e600bfa2d183
Change-Id: I834d34b8af8bf0d781dc7e0ffcd6e600bfa2d183
/frameworks/base/core/java/android/view/View.java
b8305e91860788b7cdf8e8e8db8f7c37fd8a8b47 21-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Added missing important-for-autofill mappings." into oc-dev
f4af35a5fe6298e6ea8d70377b18b0124145986a 20-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Moved getAutofillOptions() logic from SpinnerAbs to AdapterView and Adapter." into oc-dev
5a791c8584b12eada1d7e4650f88eabff2887eb4 20-Apr-2017 Felipe Leme <felipeal@google.com> Added missing important-for-autofill mappings.

Bug: 36171235
Test: m update-api
Change-Id: I7bbbe7a323110c89976cab3e4f5c8f4acba407d7
/frameworks/base/core/java/android/view/View.java
85cee7ab388fda5393bac3b268cc15780579da39 19-Apr-2017 Jiaquan He <hejq@google.com> Opt out default focus highlight for TV.

Test: Checked that the default focus highlight doesn't show on TV.
Bug: 37160940
Change-Id: Id3719ce1aa602ba6792cc94c9fa034670509cda0
/frameworks/base/core/java/android/view/View.java
4ab21012a77496ceaad02250e82881622b850698 19-Apr-2017 Evan Rosky <erosky@google.com> Merge "Improve ViewDebug reporting for focus properties" into oc-dev
e5f9c30688f0277505fb6b50ea385e5df6271ed8 19-Apr-2017 Felipe Leme <felipeal@google.com> Some Autofill API changes.

- Added View.IMPORTANT_FOR_AUTOFILL_YES_INCLUDE_DESCENDANTS
- Added View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS
- Added FillResponse.Builder.setIgnoredIds()
- Fixed javadoc links.

These changes are not implemented yet....

Bug: 37424141
Bug: 36171235
Test: m update-api

Change-Id: I604960443ab08cd3f2a84a70b0a2cece7cb0a00c
/frameworks/base/core/java/android/view/View.java
7906d47f69bd825ccde0e02e50e1fe106e9dabae 19-Apr-2017 Evan Rosky <erosky@google.com> Merge "Ignore nested keyboard navigation clusters" into oc-dev
7e4c205d8f7e6746ab6e0701e4d7776a2cdd6aa0 18-Apr-2017 Felipe Leme <felipeal@google.com> Moved getAutofillOptions() logic from SpinnerAbs to AdapterView and Adapter.

Fixes: 37330022
Test: CtsAutoFillServiceTestCases pass
Test: manual verification using app from bug 37327881

Change-Id: I66260131c7ef0d5b3c2b20514f29efd5eb10057e
/frameworks/base/core/java/android/view/View.java
494c3f5da2c467ad07f50b4e1ad01065a8e3aa4f 11-Apr-2017 Philip P. Moltmann <moltmann@google.com> Allow to finish session when all views are gone

An service can option to finish the session once all views that it
declared as important. Views that are important are all autofillable
views of any partition and the saveable fields of the last partition.

Test: CtsAutoFillServiceTestCases
Fixes: 35708237
Change-Id: I0ccade8ebb427e5d8928697ef0007c75d3f83df0
/frameworks/base/core/java/android/view/View.java
44a4336027ba1781dcfee926a84183e3f12f05cb 14-Apr-2017 Philip P. Moltmann <moltmann@google.com> Remove autofillMode attribute

Bug: 36171235
Test: CtsAutoFillServiceTestCases
Change-Id: I69f0e1c4fa3c68f73049726e7ae8f10d9d81bf5e
/frameworks/base/core/java/android/view/View.java
7c8ab2651b1f1c55f1df5eddba1bb3068299261f 14-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unnecessary casts on calls to findViewById" into oc-dev
51efddbd3bb304de2dd47fa8cd1114ac555958bb 05-Apr-2017 Alan Viverette <alanv@google.com> Remove unnecessary casts on calls to findViewById

Just frameworks/ this time. More paths to come.

Bug: 24137209
Test: make -j32
Change-Id: Iff27abd26fa43296ac2fff8f534fc6742d2ae80c
/frameworks/base/core/java/android/view/View.java
3a74243ae4ee3944340d4e4fcbefd3d8d200373c 14-Apr-2017 Svet Ganov <svetoslavganov@google.com> Check for non-null parent before delegating to it

Test: manual

bug:37289681

Change-Id: If3055747471d4b7771256d8adaaa08b73641c09d
/frameworks/base/core/java/android/view/View.java
ecb63fc167a5ea474cbe97b92112b8dfff8b2217 14-Apr-2017 Evan Rosky <erosky@google.com> Improve ViewDebug reporting for focus properties

Lumps them all under the focus categories so they aren't
spread out everywhere.
Added the raw focusable value.

Test: checked that focus stuff is grouped in hierarchyviewer
Change-Id: I47449cc5fe064ee88427a3adbceccfc63b88f4f9
/frameworks/base/core/java/android/view/View.java
0e8a6832947b074e36834736f55d63f445f604b1 10-Apr-2017 Evan Rosky <erosky@google.com> Ignore nested keyboard navigation clusters

Keyboard navigation clusters should not be nested; however,
if they are, the behavior is to pretend like they aren't
clusters. This includes ignoring the keyboardNavigationCluster
+ touchscreenBlocksFocus combo altogether.

Bug: 32804858
Test: Added some nested cluster scenarios to ViewGroupTest CTS
Change-Id: I776942842b8c1147200fc39f7eacca493e37c20c
/frameworks/base/core/java/android/view/View.java
fb62ecb220e66fd4a772f91717fff95294432c97 07-Apr-2017 Jiaquan He <hejq@google.com> Fix broken CTS tests.

The default focus highlight should be necessary when the view is
attached to window.

Test: cts-tradefed run singleCommand cts --skip-device-info
--skip-preconditions --abi armeabi-v7a -m CtsViewTestCases -t
android.view.cts.ViewTest
Test: cts-tradefed run singleCommand cts --skip-device-info
--skip-preconditions --abi armeabi-v7a -m CtsWidgetTestCases -t
android.widget.cts.MediaControllerTest
Bug: 37082416

Change-Id: I5d6b0c00b5ba03c8f62e4f71be9336823a73134b
/frameworks/base/core/java/android/view/View.java
8062949ece210df7c7a61478448d05c8ad286d58 07-Feb-2017 Jiaquan He <hejq@google.com> Draw a default focus highlight if needed.

This commit draws a default highlight for a focused
View if it's detected to have no state_focused defined
and its useDefaultFocusHighlight attribute is true.

When we detect a default highlight is needed, we show it
on top of the view to. Once we detect that it's no longer
needed, we remove it.

Test: Check that views without a focused_state in its
state spec have a default highlight when they get focused.
Bug: 35096940

Change-Id: Ifbe4bb9e1297d98845314e24d8b758f14e5987a9
/frameworks/base/core/java/android/view/View.java
b7daaf8b5f9a41f92da58d86bf4be758ac27df6c 02-Feb-2017 Jiaquan He <hejq@google.com> Add a public API defaultFocusHighlightEnabled.

This commit adds a public API to turn on/off default
focus highlights. When a focused View is detected to
have no state_focused defined, we can use this API to
decide wether we should show a default highlight for it.

Test: cts-tradefed run singleCommand cts --skip-device-info
--skip-preconditions --abi armeabi-v7a -m CtsViewTestCases
-t android.view.cts.View_DefaultFocusHighlightTest
Bug: 35096940

Change-Id: I76b45d6bf5761641a0ed7f4d0b04cb325ed72b52
/frameworks/base/core/java/android/view/View.java
eab62baabf290ea6671577a66cfc9fdd1b145d0e 20-Mar-2017 Philip P. Moltmann <moltmann@google.com> Restore session on new window after app kill

Also:
- Give the session an integer ID as the activityToken is not stable over
restarts of the activity
- Verify that session is only accessed by one UID
- stabilize AccessibilityViewIds over activity lifecycle at least for
the IDs we can do that. This required to split the ID namespace in
"per-app" and "per-activity" views. Only the later ones can be
restored.
- Do not end session when app is killed (as it can be restarted)

Bug: 35484143
Fixes: 36392498
Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases --test=android.autofillservice.cts.SessionLifecycleTest
cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
Change-Id: I229acc1b3ce35fb57262da7d7466b5d4328b49d4
/frameworks/base/core/java/android/view/View.java
6219f2693e7ce2fc504370417bfbeea324da4387 06-Apr-2017 Felipe Leme <felipeal@google.com> Fixed Autofill NPE that crashed some apps.

It happened when views provided an Accessibility node that had children.

Bug: 37078783
Fixes: 37009008
Test: LoginActivityTest#testAutoFillWhenViewHasChildAccessibilityNodes

Change-Id: Ie694094afe9129b933096a385eb867baf4550e7f
/frameworks/base/core/java/android/view/View.java
b42d133c8b7f4af04d3a4349c952d437769f14e1 27-Mar-2017 Philip P. Moltmann <moltmann@google.com> Overlay a highlight over autofilled views

Also clear this overlay once the data changes. Some views call
notifyValueUpdated even if the value did not change. Hence remeber the
data that was autofilled and check if the data really changed.

Make the autofilledDrawable publicly accessible so that virtual views
can use the same UI.

As the activity is not aware that the views were autofilled the state
has to be explicitly persisted over activity lifecycle events as part
of the view. The lifecyle does not work yet as the AutofillIds are not
stable over activity lifecycle events.

Fixes: 34946006
Test: Autofilled and changed all supported views.
cts-tradefed run cts-dev -m CtsUiRenderingTestCases
Change-Id: I58b105bb221f1b6466dd136dfe5062d3babb5aa8
/frameworks/base/core/java/android/view/View.java
7458ea38278da47e6ecc0cd251566cdd10063215 05-Apr-2017 Alan Viverette <alanv@google.com> Merge "Automatic casts for more findViewById implementations" into oc-dev
baa9a3f4b9d7390ef8ad41cb4ae7f97b09b0caf3 04-Apr-2017 Evan Rosky <erosky@google.com> Merge "More finishing-up of cluster implementation" into oc-dev
db7423cd8d186d06a4a657617e51d5b6f3097cd0 31-Mar-2017 Alan Viverette <alanv@google.com> Automatic casts for more findViewById implementations

Bug: 24137209
Test: make -j32
Change-Id: I423297a78e63d74eb44fd14747fc3890a9c42937
/frameworks/base/core/java/android/view/View.java
671a9701c92428573cbf1e8016c91993246c77fb 30-Mar-2017 Vladislav Kaznacheev <kaznacheev@google.com> Javadoc fix for View.setTooltipText

Change "unless is not handled" to "unless it is handled"

Bug: 36668465
Test: read the Javadoc
Change-Id: I432f24e313358b4448aff2ff9de382d4a58652bc
/frameworks/base/core/java/android/view/View.java
81192b40de3578368a38c9815d0af87565f99228 29-Mar-2017 Philip P. Moltmann <moltmann@google.com> Rename autoFillHint to autoFillHints.

Fixes: 35364993
Test: cts-tradefed run cts-dev -m CtsAutoFillServiceTestCases
Change-Id: I65a4c2c65563e7bbd60c4e99c8800b0b11af2300
(cherry picked from commit feb3299ed5fa30db8b1a4ab693e11e8acb32d13d)
/frameworks/base/core/java/android/view/View.java
955e252a95785192902da7c9f5610f8e40f97803 30-Mar-2017 Felipe Leme <felipeal@google.com> Simplified autofill() methods by returning void instead of boolean.

Test: CtsAutoFillServiceTestCases pass

Change-Id: Ic94e6686e291fed60ef6715bd160f9b568bf0ea6
/frameworks/base/core/java/android/view/View.java
bd10c52f5efc73f7ffdd611beb14cdd7ce785016 28-Mar-2017 Evan Rosky <erosky@google.com> More finishing-up of cluster implementation

Implemented the nextClusterForward attribute (didn't do anything
before).
Fleshed out javadoc links.
Clusters now share sorting with normal focus.
Added sound on cluster navigation.

Bug: 34362469
Bug: 34363357
Bug: 34362653
Bug: 34361907
Bug: 34363159
Test: Added CTS to verify clusters behave the same as normal focus
wrt user-specified ordering. Tested manually that cluster-
nav generates sound.

Change-Id: I810acc058d9c1fad4a085d9b7f267e9ec14b33e7
/frameworks/base/core/java/android/view/View.java
dc90922f78840dfdaad8ce65f6463f4d689037bf 02-Mar-2017 Philip P. Moltmann <moltmann@google.com> Fix bad Java docs in View.java

Test: Used intelliJ to warn about bad docs
Change-Id: Idb119aff8ce0f2370f66707bd583e2d131fb0751
(cherry picked from commit f4946e7f1592072cade07ff62b6123f8fe7d2662)
/frameworks/base/core/java/android/view/View.java
e5c58eefb1c28d56e6b4768cf624af137a867d21 28-Mar-2017 Andrii Kulian <akulian@google.com> Add Configuration param to onMovedToDisplay

To be consistent with other multi-window callbacks adding
Configuration param to the onMovedToDisplay, so that app
developer can handle configuration change at the same time
when it receives a notification about move.

Bug: 36649499
Test: android.server.ActivityManagerDisplayTests
Test: #testOnMovedToDisplayCallback
Change-Id: I80c765473bfc09ea1fb7aa4e2e77baf3b21606b8
(cherry picked from commit 2c32a11a71e2a1602b188b710b1916d919d99edb)
/frameworks/base/core/java/android/view/View.java
4c7b841add3fd94b3af46da1b34e94856ebd4209 22-Mar-2017 Felipe Leme <felipeal@google.com> Don't call setAutofillId() when populating virtual structure for Assit.

Change-Id: Ia96b5fd6ed7b8f7909b9df59cee57f606a0b37da
Fixes: 36503715
Test: manual verification
/frameworks/base/core/java/android/view/View.java
1f08e1369b72f9855b55c257b32bad7864dcfc2a 21-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Changes on Assist structure to handle virtual child for autofill:"
e2436917d5fa770f0eceed3ac12c4ea832491611 21-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Allow draw hw bitmap on software canvas for hierarchyviewer"
b94f89094ade5fbdd05e14b57487a74aaacc184d 21-Mar-2017 sergeyv <sergeyv@google.com> Allow draw hw bitmap on software canvas for hierarchyviewer

Test: runs hierarchyviewer on app with hw bitmaps
bug:34745484
Change-Id: I35f70f7927be23edebac171f3bc96405b14ca794
/frameworks/base/core/java/android/view/View.java
60b4af5d658a1debaa6af13a2bf1815537300c51 21-Mar-2017 Adam Lesinski <adamlesinski@google.com> Merge "AssetManager: Guard against null in array retrieval"
f8a8174cd5bc8aff63befd6ca6d96d21e89260bd 18-Mar-2017 Felipe Leme <felipeal@google.com> Changes on Assist structure to handle virtual child for autofill:

- Removed overloaded newChild() methods.
- Added a setAutofillId(parent, virtualId).
- Changed view so AutofillId is set on all relevant methods.

Test: VirtualContainerActivityTest (with new tests) pass
Bug: 36056207

Change-Id: Ia11344f95c2756e83307c54052878e9dbe471873
/frameworks/base/core/java/android/view/View.java
28afe0e1d898f8d79386042c7fae91d73b46890d 17-Mar-2017 Felipe Leme <felipeal@google.com> Batch autofill() calls to views with virtual children.

This is useful in the cases where the virtual children hierarchy is rendered
by a different process.

Test: VirtualContainerActivityTest pass
Bug: 36056207
Change-Id: Id9bf3a9e9366b616dc2a6e0a204e238a2bee3a20
/frameworks/base/core/java/android/view/View.java
81f01d9efdd1739807d5aa5ac4f60b276f70155f 17-Mar-2017 Felipe Leme <felipeal@google.com> Removed 'virtual' from autofill method names.

Fixes: 36126001
Test: VirtualContainerActivityTest pass

Change-Id: I3b8fe835cd7c7f39c8e2cb8f2daca71b03236a1f
/frameworks/base/core/java/android/view/View.java
ba9576d977c0379f5fb302c7db1b234b253919ad 17-Mar-2017 Adam Lesinski <adamlesinski@google.com> AssetManager: Guard against null in array retrieval

Resources does the right thing and throws NotFoundException
if the result from AssetManager.getResourceTextArray() is null,
but AssetManager itself doesn't guard from the native implementation
returning null.

This lets callers always protect against missing resources via
catching NotFoundException.

Change-Id: I4f7ad32819bc9598efb28dbb10a59ff5201ecfca
Test: manual
/frameworks/base/core/java/android/view/View.java
7b7711680244108923f0dbb4ca6e35db7e659e6a 04-Mar-2017 Philip P. Moltmann <moltmann@google.com> TRON log important auto-fill events

Example log from
android.autofillservice.cts.LoginActivityTest#testAutoFill#testAutoFillOneDatasetAndSave
(translated from numbers of human readable string):

AUTOFILL_SESSION_STARTED
package=android.autofillservice.cts
AUTOFILL_REQUEST
type=TYPE_SUCCESS
package=android.autofillservice.cts
FIELD_AUTOFILL_SERVICE=android.autofillservice.cts
FIELD_AUTOFILL_NUM_DATASETS=1
AUTOFILL_FILL_UI
type=TYPE_ACTION
package=android.autofillservice.cts
FIELD_AUTOFILL_NUM_DATASETS=1
FIELD_AUTOFILL_FILTERTEXT_LEN=0
AUTOFILL_DATASET_APPLIED
package=android.autofillservice.cts
FIELD_AUTOFILL_NUM_VALUES=2
FIELD_AUTOFILL_NUM_VIEWS_FILLED=2
AUTOFILL_SAVE_UI
package=android.autofillservice.cts
FIELD_AUTOFILL_NUM_IDS=2
AUTOFILL_DATA_SAVE_REQUEST
type=TYPE_SUCCESS
package=android.autofillservice.cts
FIELD_AUTOFILL_SERVICE=android.autofillservice.cts
AUTOFILL_SESSION_FINISHED
package=android.autofillservice.cts

Test: Ran auto-fill tests and looked at event log.
Change-Id: I58aaa58e4435e7d04c8cd91878411943d3eb13de
/frameworks/base/core/java/android/view/View.java
37bf8b17364c444aabfcaaed8081b3830202c5e6 14-Mar-2017 Philip P. Moltmann <moltmann@google.com> Merge "Change autoFillHint to list of strings"
123a34f1936983f1b59da9b5609485e1f64347ff 14-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Renamed ViewStructure.setSanitized() to setDataIsSensitive()."
c9a19b1b274af1fdd8b811c9ce2df994f7db47a4 14-Mar-2017 Felipe Leme <felipeal@google.com> Renamed ViewStructure.setSanitized() to setDataIsSensitive().

Bug: 36126001
Test: CtsAutoFillServiceTestCases pass
Test: m update-api

Change-Id: I182355b63d8743cd8cd8612f29a9269e258283c2
/frameworks/base/core/java/android/view/View.java
2f8fb1f62f2840701e3e16497eb8191f38b72e0b 13-Mar-2017 Svet Ganov <svetoslavganov@google.com> Fix a few auto fill ussues

1. Ensure clicking on a focused view brings up autofill if needed

2. Notify the autofill manager in a couple of cases we missed

3. Renamed the AutofillManager app facing APIs to better reflect what
they do and added a API for the app to cancel the autofill interaction

4. Fix view structure dispatch where the ordering of children for autofill
was mixed with ordering of direct view children - the autofill children
may be indirect as views can be marked not important for autofill

5. Show scrollbars only if there are more fill options than want is shown

6. Show only three fill options and the rest can be accessed with a scroll

7. Remove the list divider to allow fill items to control all fill window content

8. Renamed the autofill manager internal service classes to xxAutofillxx

9. Fixed a comment that was not addressed in a previous CL

10. Showing max three fill options - rest needs a scroll

11. Make sure fill UI shown when filter with no matches is changed
to filter with some matches

12. Make sure the fill window has a shadow

Test: Autofill CTS tests pass and manual

bug:36038929
bug:36040101
bug:36149166
bug:36034681
bug:36126001
bug:36035654

Change-Id: Ic8726146fc3c0a19d3e536becdd63fb65622136e
/frameworks/base/core/java/android/view/View.java
495cadd8a99d52965a22ffd83c2abe0930cb0968 11-Mar-2017 Philip P. Moltmann <moltmann@google.com> Change autoFillHint to list of strings

Test: Ran autofill CTS tests
Fixes: 35364993
Change-Id: I3f4ceb719b2d3fef0168e8300c0d15f1661560c0
/frameworks/base/core/java/android/view/View.java
bd7ae7df281e3fdc5d0cbe1acceb8c0d82ecceb9 11-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Basic accessibility support for picture-in-picture"
f00cd14f17c0acd6bffe78947d32ea0a2900d139 03-Mar-2017 Phil Weaver <pweaver@google.com> Basic accessibility support for picture-in-picture

Exposing actions from the PIP InputConsumer to accessibility,
stripping all actions from a covered PIP app, and adding the
InputConsumer's actions on the PIP app's root view.

We were also using an "undefined" accessibility ID to mean
three different things: a root view, a host view of a virtual
view hierarchy, and a truly undefined view. I've introduced
new values for cases where the id could be defined.

Also gathering all window IDs into one place to reduce the
chance of collisions.

Bug: 34773134
Test: In progress. Current cts passes.
Change-Id: I97269741a292cf406272bf02359c76c396f84640
/frameworks/base/core/java/android/view/View.java
6732ea2a0b1dca53281764df0ae7170d60aee7a8 10-Mar-2017 Amith Yamasani <yamasani@google.com> Merge "AssistStructure improvements"
1f1416e51ae676af1a7f2a7a7151be12762b13d4 10-Mar-2017 Dmitri Plotnikov <dplotnikov@google.com> Merge "Support for a remote key chord to trigger a bugreport on TV"
858f98d13e10afba6420daba0a42b2e056452e24 22-Feb-2017 Amith Yamasani <yamasani@google.com> AssistStructure improvements

Added isOpaque() for Views
Added getAcquisitionStartTime(), ...EndTime()
Added isHomeActivity()

Bug: 30895450
Test: cts-tradefed run cts-dev -m CtsAssistTestCases -t
android.assist.cts.AssistStructureTest#testAssistStructure

Change-Id: I294a089aa3454ebfebf0442036d98ccb86cb2827
/frameworks/base/core/java/android/view/View.java
82e6dfc54d58082427d4ce1cf359105f03225f89 25-Feb-2017 Dmitri Plotnikov <dplotnikov@google.com> Support for a remote key chord to trigger a bugreport on TV

Bug: 35635126
Test: verified that a bugreport is triggered by the gesture
Change-Id: I79d7392241c415ce895c2ea05009b162ca5b24d9
/frameworks/base/core/java/android/view/View.java
640f30a7763b0a4b80c767acb84c740aac04768b 07-Mar-2017 Felipe Leme <felipeal@google.com> Replaced auto-fill by autofill to keep it consistent with API style.

This change will affects 2 types of apps: autofill service implementations
and apps that use autofill APIs.

Since just the former is known to be used at the moment, we're not trying
to keep backward compatibility with the latter.

Bug: 35956626
Test: CtsAutoFillServiceTestCases pass
Test: android.provider.SettingsBackupTest pass

Change-Id: Ia720083508716deae9e887f9faa7ae7c5a82f471
/frameworks/base/core/java/android/view/View.java
d04a697ede5a372f96f87b80cf99a74dd12dbac4 02-Mar-2017 Felipe Leme <felipeal@google.com> Optimize ViewStructure for autofill by removing irrelevant nodes.

Test: CtsAutoFillServiceTestCases (with new tests) pass
Fixes: 35840787

Change-Id: Iaa2c1907c8383b4a820fd7204e67fa2d276ad2b8
/frameworks/base/core/java/android/view/View.java
8931e303700a5adb6e013c2b5a6cec621eede968 06-Mar-2017 Felipe Leme <felipeal@google.com> Replace AutoFillType by view constants.

Now that AutoFillType does have any logic (since the "subType" logic was moved
to AutoFillHint), it makes more sense to get rid of the type and use constants
directly.

This change creates the contants and "pseudo-deprecate" the old stuff: it's
still available because some clients are using it, but it will be removed once
they migrate.

Bug: 35956626
Test: CtsAutoFillServiceTestCases pass

Change-Id: I0efe7f0cc101c86164a18c85903bb871e1f13ba2
/frameworks/base/core/java/android/view/View.java
4461181f4b987a40d65853df594df088ff501259 23-Feb-2017 Philip P. Moltmann <moltmann@google.com> Don't run autoFill on detached view or mode=manual

We only run autoFill on views that are attached, auto-fillable, not
auto-fill blocked, resolvedMode=auto and focused. If any of the
conditions change we have to re-evaluate the auto-fill state.

This reverts commit e572989b3f838cc76b51699710d11aa2f992a474.

Test: Ran amended ViewAttributesTest, set a PIN for the device
(previously crashed)
Bug: 35701500
Change-Id: Idcdf1fd7b7dee6bfbc800fb84fdc1c72dcb088f9
/frameworks/base/core/java/android/view/View.java
ba6f46260232c04b7e5d75b1c38187e581dabdeb 22-Feb-2017 Philip P. Moltmann <moltmann@google.com> Add autoFillHint property to view

Bug: 35364993
Test: Ran amended ViewAttributesTest
Change-Id: Ib7d2c3dfd5b4a6b638b56c4583af4c9bdf37e346
/frameworks/base/core/java/android/view/View.java
7485a9bbb38779746bc8555a4de2b6d88a20f0f7 27-Feb-2017 Alan Viverette <alanv@google.com> Setting focusableInTouchMode clears FOCUSABLE_AUTO

Bug: 35726873
Test: View_FocusHandlingTest#testHasFocusable
Change-Id: I10ec94684846dc2280ba0bd7922d9304bf8a95db
/frameworks/base/core/java/android/view/View.java
8a8e33dbb0ed9dc1ee522f6fc13bd263e1f91549 27-Feb-2017 Alan Viverette <alanv@google.com> Merge "Always handle hover events if the View is already hovered"
8e1a72964517bfd01d8e650453ef41e22f770f21 27-Feb-2017 Alan Viverette <alanv@google.com> Implicitly cast views obtained via View.findView methods

Removes all explicit casts from android.widget classes. Also @removes
methods on ListView that were overriding @hidden methods and should
never have been exposed as public API.

Bug: 24137209
Test: make
Change-Id: I89f0e51258560987b3942251fd249210f825ac2a
/frameworks/base/core/java/android/view/View.java
b2048d4247806dc0c12314e65e36561bd1bb47c4 24-Feb-2017 Evan Rosky <erosky@google.com> Merge "Add focusdirection annotations to cluster methods"
8716ef94194ad715ef596de4a38abb5b2a5c8186 23-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "Don't trigger auto-fill request if mode is manual""
e572989b3f838cc76b51699710d11aa2f992a474 23-Feb-2017 Philip P. Moltmann <moltmann@google.com> Revert "Don't trigger auto-fill request if mode is manual"

This reverts commit 576a847e03f213693f4e7f2f0361f52217f9e1cf.

Fixes: 35701500
Change-Id: I972c2d0e56d365d1fad76a66e74bfad227bf26c4
/frameworks/base/core/java/android/view/View.java
62fb65fd3c12dc54f10e5f9221f5e0466d24f8c4 23-Feb-2017 Felipe Leme <felipeal@google.com> Merge "Added auto-fill support for Spinner."
30172869a7cb74abd1544b808b7e8cdb89e3f0ed 23-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Don't trigger auto-fill request if mode is manual"
d09ccb8db6c541f2d349b923bf9b38f1081aaa8d 23-Feb-2017 Felipe Leme <felipeal@google.com> Added auto-fill support for Spinner.

Spinner is a special kind of list-value field because its auto-fillable
values are not currently present in the assist structure: this change
adds a getAutoFillOptions() to fill that void, and implements the
auto-fill APIs on Spinner.

It also fixes RadioGroup.getAutoFillValue() - it should return the index
of the child, not its resource id.

Bug: 33550221
Test: CtsAutoFillServiceTestCases (with new tests) pass
Change-Id: I625e7dd705fade56fda490fcd3c4446c0c245ee1
/frameworks/base/core/java/android/view/View.java
576a847e03f213693f4e7f2f0361f52217f9e1cf 18-Feb-2017 Philip P. Moltmann <moltmann@google.com> Don't trigger auto-fill request if mode is manual

Also improve descriptions of the attributes, constants and methods.

Test: Ran updated ViewAttributesTest
Bug: 34077687
Change-Id: I532f1b26b97ba113f316eed6fc68dae2ed33ea6a
/frameworks/base/core/java/android/view/View.java
bd271212a283a8e243ea498117f57b09ca2b346a 22-Feb-2017 Felipe Leme <felipeal@google.com> Improved documentation and added @CallSuper on onProvideAutoFillStructure().

onProvideAutoFillStructure() sets mandatory auto-fill information like the
auto-fill id, so we must enforce subclass to call it.

Bug: 35395043
Test: m update-api
Change-Id: I525690b38639d970f516a906ddeb3a6bd6e01d8c
/frameworks/base/core/java/android/view/View.java
5722331efeaa362e27585026e953c2fda677c516 08-Feb-2017 Evan Rosky <erosky@google.com> Add focusdirection annotations to cluster methods

Bug: 34361917
Test: Still compiles
Change-Id: I47b5e9472524708544d567444b3fbcc93bc45119
/frameworks/base/core/java/android/view/View.java
cd1af32eda2172ac73396b6336e358a0c9711187 17-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add autoFillMode attribute to View"
1228e2cb8350ba202836660927c194f39e074e6f 17-Feb-2017 Evan Rosky <erosky@google.com> Merge "Fixed default-cluster and empty-cluster navigation behavior"
a42ba85b0efdb905b831675fb421e08511a7c4a2 17-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Clarify extra data argument nullness."
d666953f5767825f0951324a96ea31f7f161f5a8 17-Feb-2017 Phil Weaver <pweaver@google.com> Clarify extra data argument nullness.

Bug: 35098706
Test: Trivial change, so I just verified that it builds.
Change-Id: I234afe4f1e52ef1c4c64e44b486a539f0d46854c
/frameworks/base/core/java/android/view/View.java
8f35ba4690be34ca6605374d33bd5664fa4d03ea 16-Feb-2017 Philip P. Moltmann <moltmann@google.com> Add autoFillMode attribute to View

Bug: 34077687
Test: Ran ViewAttributesTest
Change-Id: I76cfd04efa63e30d2e7bb22ff59c4e7db7c620bb
/frameworks/base/core/java/android/view/View.java
b047b8bd7e363081e91ba6cbc8d09cd355624584 09-Feb-2017 Andrii Kulian <akulian@google.com> Report move to display for activities that handle config changes

When activity that is moved between displays handles all configuration
changes, it won't be restarted. This CL adds a callback to the client
to notify it about display change. Usually it will be followed by
onConfigurationChanged, except when configuration didn't actually change.
When activity is recreated, it won't receive onMovedToDisplay.

Bug: 34862802
Test: android.server.cts.ActivityManagerDisplayTests
Test: #testOnMovedToDisplayCallback
Change-Id: I9a9501cab788623ada15a31efb53e4b2378639fe
/frameworks/base/core/java/android/view/View.java
209346faa02a9e1b42fd1d6afaa1e8f20e490bc5 16-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove final from View.setTooltipText/getTooltipText"
3ac6463724734b983170328ea0e6cad40eb79502 14-Feb-2017 Evan Rosky <erosky@google.com> Fixed default-cluster and empty-cluster navigation behavior

Cluster navigation would get stuck if:
- there was an empty cluster (nothing to focus)
- there were views NOT in a cluster and the global
default-focused view was in a cluster.

This will skip over empty clusters during cluster navigation
and when the default "cluster" is active, it will try to
focus a non-clustered focusable instead of the global default
(and if there aren't any non-clustered focusables, it will
skip over the default "cluster" as it now does with actual
clusters.

Bug: 35273052
Bug: 34361282
Test: Added/Updated CTS tests and checked behavior in a test app.
Change-Id: I0b4d55707203f6a0453f25313f940927d59a9b31
/frameworks/base/core/java/android/view/View.java
9aa7edfa89981919bc87abbc75e9e761ac6802b3 14-Feb-2017 Vladislav Kaznacheev <kaznacheev@google.com> Remove final from View.setTooltipText/getTooltipText

This resolves the binary compatibity issue with some
existing apps.

Bug: 35150720
Test: framework builds
Change-Id: I4242186b7103ad35a1e09264c0c9f86bbcf88f49
/frameworks/base/core/java/android/view/View.java
9f5ce9354940e2bd4b723e34f89ef28e8d4d0c5c 13-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Introduce a minimum scrollbar touch target size"
187706f3e499bdafc1a7cbc8aec8fb4bb79d62a7 10-Feb-2017 Evan Rosky <erosky@google.com> Merge "Don't notify parents of views made focusable off UI thread"
4d2c60145c11c5540b04a4bad001b0cf2ddcf200 08-Feb-2017 Vladislav Kaznacheev <kaznacheev@google.com> Introduce a minimum scrollbar touch target size

Currently a default scrollbar is fairly hard to grab with
a mouse as it is sometimes as narrow as 8dp.

Introduce a larger touch target configured by
config_minScrollbarTouchTarget

Bug: 35114313
Test: manual
Change-Id: Ib15b24e5a82ea912ec5837d965319b758b4d9b6b
/frameworks/base/core/java/android/view/View.java
f038cb454b1b96a2e80e0628ad513ddfccf6f5e7 08-Feb-2017 Evan Rosky <erosky@google.com> Don't notify parents of views made focusable off UI thread

Clickable now implies focusable by default. While views are
only supposed to be modified on the UI thread, before O
this wasn't enforced when setting a view as clickable. Now,
it is enforced by virtue of clickable setting focusable for
auto-focusable views.

In order to prevent crashes, detect this situation for pre-O
target-sdks and skip notifying parents of a view made
focusable if:
- it was made focusable by the new auto-focusable mechanic.
- and this is occuring off the UI thread.

The net result in these cases will be a newly-focusable view
that won't immediately receive focus if it was supposed to
(though this will be exceedingly rare).

Bug: 34815147
Test: Verified that the crashing app in the bug (JWLibrary)
doesn't crash after this change.
Change-Id: I90e9a082cb1e1a3fec75ae5159f2f2c8540ffdc2
/frameworks/base/core/java/android/view/View.java
f10db8e444b4ce70e2324429ad342c4e6f0674e0 08-Feb-2017 Evan Rosky <erosky@google.com> Merge "Separate cluster-focus and default-focus."
697221e84dd9963085dff30e231525bc0d52aff9 08-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge changes Ia7670aa6,I602b421b

* changes:
Get rid of VirtualViewDelegate.
Set autofill id on virtual structures.
2ec94fde4feb564c9903142ebe37cebde0b201b4 08-Feb-2017 Adam Powell <adamp@google.com> Merge "Provide old behavior for View#hasFocusable to old apps"
ca4964ccbef5f2c85855fc14577c7c25d0e0588d 07-Feb-2017 Paul Duffin <paulduffin@google.com> Replace com.android.internal.util.Predicate with java.util.function.Predicate

Bug: 35089332
Bug: 30188076
Test: make checkbuild
Change-Id: I0a5b4bf520fc39b59d8d790b01e9cff0d54e6d21
/frameworks/base/core/java/android/view/View.java
0221887e6ad0d2aed29297995986577005421264 08-Feb-2017 Felipe Leme <felipeal@google.com> Get rid of VirtualViewDelegate.

VirtualViewDelegate was used by views providing virtual children to:
- auto-fill the chidren
- notify system about children changes

Since the notification logic moved to the AutoFillManager class, it's
kind of an overkill to provide a delegate just for autoFill(); instead,
it's simpler to add a new autoFillVirtual(virtualId, value) method on
View.

BUG: 31001899

Test: manual verification
Test: CtsAutoFillServiceTestCases passes

Change-Id: Ia7670aa665918496a009017a11c3de72c4ed3fa2
/frameworks/base/core/java/android/view/View.java
1bdf3f070b9058058296fe4a36252cec877d88fa 07-Feb-2017 Felipe Leme <felipeal@google.com> Set autofill id on virtual structures.

ViewStructure.newChild(virtualId) uses the AutoFillId of the parent,
which was not set anymore due do a previous refactoring, and was
causing this method to crash a custom view when
onProvideAutoFillVirtualStructure() was called on it.

Test: manual verification
Bug: 31001899

Change-Id: I602b421b0ec3a926ffdd52253d5b2498c4217d02
/frameworks/base/core/java/android/view/View.java
1e2758256a391be23c537725f0a7785e4fb5b7d0 07-Feb-2017 Phil Weaver <pweaver@google.com> Merge "Provide text locations to accessibility services."
0f552f4d50c40c60b5de315d6f3dc480ebd97888 03-Feb-2017 Adam Powell <adamp@google.com> Provide old behavior for View#hasFocusable to old apps

Existing apps have copies of ListView behavior that expects the old
hasFocusable behavior of only reporting explicitly focusable views.
Use targetSdkVersion to give the old behavior to existing apps.
Add hasExplicitFocusable method to View to offer the old behavior
to apps that need it. ViewCompat method required in support library
to shim through to hasFocusable pre-O.

Bug: 34946284
Test: CTS
Change-Id: I65503fa2c5fe4cb8b635efa464e653bbf5e7f821
/frameworks/base/core/java/android/view/View.java
bab851c7c9dfe6f3d063a1009c4d57cfa2ff005c 04-Feb-2017 Felipe Leme <felipeal@google.com> Refined session management so Save can be automatically called.

This is yet another big refactoring:

- AutoFillManager keeps track of its current AutoFillSession.
- Views call AFM.startSession(View) when they can trigger autofill.
(virtual views can call it as well). At this point, the manager
sets an AutoFillSession, gets the activity token, and passes it to
the service.
- Subsequent calls to AFM.start() will be ignored since the session
is set.
- When the Activity is gone, it calls AFM.finishSession().
- Simlilarly, virtual views could call it as well.
- Added getAutoFillValue() to View.
- Removed AFM.updateAutoFillInput(childId): virtual views should now
call startSession(childId) to start a session, and use the
VirtualViewListener callbacks for updates.
- Change AutoFillValue to use String (which is immutable) instead of
CharSequence for text values.
- Check if view is enabled before auto-filling.
- Removed 'cmd autofill fill' since it would require the appCallback
- Automatically dismiss the snack bar after 30s
- Moved the "don't change autofill value when autofilling" Inception
logic into the service side.
- Etc...

BUG: 34819567
BUG: 33269702
BUG: 31001899

Test: manual verification
Test: CtsAutoFillServiceTestCases passes

Change-Id: I5fad928d4d666701302049d142026a1efa7291cd
/frameworks/base/core/java/android/view/View.java
c2e28932d22faece6e7179c78d4e7656dc63052c 08-Dec-2016 Phil Weaver <pweaver@google.com> Provide text locations to accessibility services.

Bug: 30170631
Test: New CTS tests on linked CL.
Change-Id: I723e3777189c8df71c59dada00abdf339ebc983d
/frameworks/base/core/java/android/view/View.java
5084e356aca353ff290451edb6ba6c4d1823f355 06-Feb-2017 Aga Madurska <amad@google.com> Use correct APIs to detect conditions for round scrollbars. am: 99485ef841 am: 50bc6a1998
am: 65f351d923

Change-Id: I8ad9e04055409c6efb92d00f59660820f765944c
65f351d92383dd24b2db5f2b8c27d351ea78851a 06-Feb-2017 Aga Madurska <amad@google.com> Use correct APIs to detect conditions for round scrollbars. am: 99485ef841
am: 50bc6a1998

Change-Id: Iab07814fd54b35705a20088e29c78a56ea943eba
53fcf11cf5a308ef68fc852f971f12e3afcf04d9 26-Jan-2017 Evan Rosky <erosky@google.com> Separate cluster-focus and default-focus.

Now properly cleans-up cluster-focus and default-focus chains
on view-removal (was only cleaning 1 level previously).
Separated cluster-focus and default-focus concepts.
Made default-focus robust to changes in default-focusable
views (previously un-marking a default focus wouldn't reassign
default focus to still-existing default focusables).
Cluster-focus falls back on default-focus when no saved
cluster-focus exists.

Bug: 34394367
Test: Associated CTS tests.
Change-Id: I903c22ded5643d0d4ca3bc5427b38833742aa354
/frameworks/base/core/java/android/view/View.java
99485ef841aecccc1b40fc6a866e343ecd842045 31-Jan-2017 Aga Madurska <amad@google.com> Use correct APIs to detect conditions for round scrollbars.

Bug: 34876394

Test: Performed manually.

Change-Id: I9e690e99fd8d925c589ebd19d9c6754eeb63b1d8
/frameworks/base/core/java/android/view/View.java
177f37367e271964d5faf70cf19384f23ea8df0b 03-Feb-2017 Alan Viverette <alanv@google.com> Revert "Implicitly cast views obtained via View.findView methods"

This reverts commit 06c2fffdaa81544522de751846754f781a9970a9.

Reason for revert: Java 8 doesn't support this magic.

Change-Id: Iaa41f4e4d0072b9a97cff9cd3788403d4ab79d13
/frameworks/base/core/java/android/view/View.java
5523f9a2fcaf472e92c1d380a79776c4bf857a80 02-Feb-2017 Felipe Leme <felipeal@google.com> Merge "Improved AutoFill Save workflow."
0200d9ea1509089c0c03b7071aa271e3a9b35c11 25-Jan-2017 Felipe Leme <felipeal@google.com> Improved AutoFill Save workflow.

Currently, the onProvideAutoFillStructure() methods can be called
twice: to auto-fill an activity and to save the activity's data
in the service.

The problem with this approach is that when the save workflow is
called, the activity might have been gone. Hence, a proper approach
is to keep the initial AssistStructure data in the system_service
memory, watch for view changes, and then passed the new structure
back to the AutoFillService.

A side effect of this change is that we need another way to determine
if the view is sanitized or not. For "standard" views, that will be
defined based on whether the view content come from a resource or not,
but that logic is not implemented yet (for now, all views will be
considered sanitized, except for TextView passwords). For "custom"
views (such as WebView), this logic is responsibility of the view
implementation, through the newChild() method, which now takes a
flag (whose value could be AUTO_FILL_FLAG_SANITIZED for sanitized
views).

The SaveCallback.onSuccess() method was simplified: it does
not need a list of saved ids anymore the auto-fill UI will not use it
anymore.

Another side effect is that the Save notification is gone - until
it's attached again, it can be test by using:

adb shell cmd autofill save

Finally, hook AutoFillUI on ACTION_CLOSE_SYSTEM_DIALOGS events.

BUG: 33269702
BUG: 31001899
Test: manual verification
Test: CtsAutoFillServiceTestCases passes
Change-Id: I907a7e21d1b3cd1ab6dec3a08d144a52655da46f
/frameworks/base/core/java/android/view/View.java
24e78d72287f449e9e1d5d7d4100a158a92baa0a 01-Feb-2017 Adam Powell <adamp@google.com> Fix a bug in View#hasFocusable with new auto-focusable behavior

Check resolved focusability for hasFocusable and not just the
configured value.

Bug: 34855238
Test: CTS
Change-Id: I57af9e6c3a0ccd07058bcd0b2256a14878b8707c
/frameworks/base/core/java/android/view/View.java
7b552516aee86cadae2721f51c6087c0dfbdd937 31-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Implicitly cast views obtained via View.findView methods"
b27aba9a92a023386fb25a85a989f5a0f7a18aaa 31-Jan-2017 Chris Craik <ccraik@google.com> Merge "Replace invalidateChild/invalidateChildInParent"
6675bbf093e2d9fdb620ed42602dde2a7902e8ce 30-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Binary compatibility stubs for get/setTooltip()"
775b9dc89fb67333513a24d16852df7c474370cd 30-Jan-2017 Alan Viverette <alanv@google.com> Binary compatibility stubs for get/setTooltip()

Change-Id: I8784ccfd48d8c809b70d7c5c977bcbf44e3f4d47
Fixes: 34798233
Test: n/a
/frameworks/base/core/java/android/view/View.java
b46df69a77ac24bf2b1d296011827d6fdf0ea336 28-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Move autofill focus triggers from TextView to View."
2b004b3abaa8b4eb4b51c6e78840ff793d1ea9e8 27-Jan-2017 Jason Long <jasonlong@google.com> Move autofill focus triggers from TextView to View.

Bug: 31001899
Change-Id: I6fd01b86936b3140edf87ac63292c77015bb019d
Test: Manual
/frameworks/base/core/java/android/view/View.java
995c043acfcdb6032ed7dc79b0c0aeb78b4f3b0f 27-Jan-2017 Adam Powell <adamp@google.com> Fix ListView click handling under new focus rules

ListView historically uses View#hasFocusable to change signifcant
behavior around the clickability of items: an item view with any
focusable children could not be clicked via an item click
listener. Many apps therefore have sub-views in list items that are
deliberately clickable, but not focusable. This comes up in cases like
overflow menu buttons on list items.

Now that we have auto-focusability triggered when a view is set as
clickable, the expectations of apps using this pattern have changed.

Create an overload of hasFocusable that optionally can filter out
auto-focusable views in its results. Have ListView use it to preserve
its previous behavior. This isn't public API for now, but perhaps it
should be if this pattern shows up in practice in places other than
ListView.

Bug: 34756767
Change-Id: Ie71ee6e388449f634b30f9162a8b3fa578e32db8
/frameworks/base/core/java/android/view/View.java
9de95db4f28f88c37b1443d20b308ce02407fd74 19-Jan-2017 Chris Craik <ccraik@google.com> Replace invalidateChild/invalidateChildInParent

Fixes: 34361503
Test: CTS: android.view.cts.ViewGroupTest
APCT: android.view.ViewInvalidateTest

Simplify and unify HW accelerated invalidate/damage codepaths, since
both simply walk up to ViewRootImpl and schedule a traversal.

Adds a new overridable method 'onDescendantInvalidated' for observing
subtree rendering updates.

Change-Id: I7ef1f914c3411317692451787b3810b23e019591
/frameworks/base/core/java/android/view/View.java
06c2fffdaa81544522de751846754f781a9970a9 27-Jan-2017 Alan Viverette <alanv@google.com> Implicitly cast views obtained via View.findView methods

Removes all explicit casts from android.widget classes. Also @removes
methods on ListView that were overriding @hidden methods and should
never have been exposed as public API.

Bug: 24137209
Test: make
Change-Id: I6ccfc6f001b355c4880f2b54e1a5474df78d6228
/frameworks/base/core/java/android/view/View.java
bd00fef41ce38d2c711bd4151997c1cd8964b712 25-Jan-2017 Felipe Leme <felipeal@google.com> Moar AutoFill Framework refactoring...

* Encapsulated application-level auto-fill logic on AutoFillSession.
Currently, Activity.java directly manages the IAutoFillCallback binder
object used to auto-fill its views, but this logic need to be
extended so Views can use it to draw the auto-fill bar.

* Pass auto-fill id and boundaries to requests
So AutoFillUI can display its affordance in the right places.

* Uses a new auto-fill id on View (instead of reusing accessibility's).
That allows moving the logic on whether a new request should be made or
the existing UI moved to the service side.

* Split service methods in 2, for shell cmd and app
And applied the right permission check on both.

* Removed CancelationSignal from onSaveRequest()
Since it's not really needed.

* Etc...
¯\_(ツ)_/¯

BUG: 34637800
BUG: 31001899
Test: CtsAutoFillServiceTestCases passes
Test: manual verification

Change-Id: Ibd0cb2cfff6d0f6bb6b697a423ed5e89df687b82
/frameworks/base/core/java/android/view/View.java
35089c466ea15faaf8ab41697ed49590f6fbd447 26-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revert "Revert "Remove View.setTooltip/getTooltip"""
eb30016ad478f0ee0f4afbeca78aacbb38ab9c5b 26-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Implement pointer capture API"
0ce4b0e4c31a65864e0cda3c9d3fb6fe8a40f2ed 26-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs. am: 54de77470d am: ab978c035e am: 28ba4722a9
am: 9b21265b2c

Change-Id: If246ebdb36cf2832d5a6c42cbe752e290b6fb6e8
28ba4722a9e77ce98de454ed2ac862e44f496632 26-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs. am: 54de77470d
am: ab978c035e

Change-Id: If0d0613362e0ea95cf48eaf9a16d3eea48b589ea
ab978c035eda5e6e42f3856d5edf132e76e45994 26-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs.
am: 54de77470d

Change-Id: Id38c30bad13d6b61ed504a06471b9f197b360f7b
54de77470de4f605eef7f4b4e01718b301fe275e 12-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in reference docs.

Change-Id: I40cea46efd80c448640ff69753698fe8404da40b
/frameworks/base/core/java/android/view/View.java
04b926a68b85d9b93f7de2647f9f4770532b2e0f 26-Jan-2017 John Reck <jreck@google.com> Merge "Overhaul RenderNode's DisplayList management"
3787de16d24001eeb452e1c711d4290a396e67c9 21-Dec-2016 Vladislav Kaznacheev <kaznacheev@google.com> Implement pointer capture API

When in pointer capture mode, mouse pointer disappears and
further mouse events are dispatched to the focused view
in the window which has requested capture.

The captured events have the source SOURCE_MOUSE_RELATIVE
belonging to SOURCE_CLASS_TRACKBALL. They are
dispatched through dispatchCapturedPointerEvent /
onCapturedPointerEvent. There is also a new listener.

Pointer capture mode may only be granted to a currently
focused window, and will be canceled upon a window focus change.

Test: cts-tradefed ... --test android.view.cts.PointerCaptureTest
Bug: 30897034
Change-Id: I6e5934aa415ac2b6dda1cee173d0f23e5021af84
/frameworks/base/core/java/android/view/View.java
2de950d5a8b47c7b4648ada1b1260ce4b7342798 25-Jan-2017 John Reck <jreck@google.com> Overhaul RenderNode's DisplayList management

* Move mValid to native
* Have destroyHardwareResources destroy everything
* Remove flaky mParentCount checks in setStaging
* All tree updates have an internal observer to
ensure onRemovedFromTree() is a reliable signal
* onRemovedFromTree() immediately releases resources
to avoid displaylist "leaks"

Test: Unit tests for validity added & pass, manually
verified that b/34072929 doesn't repro

Bug: 34072929

Change-Id: I856534b4ed1b7f009fc4b7cd13209b97fa42a71c
/frameworks/base/core/java/android/view/View.java
000f7cd646f016febb4d90ae19a697ae548025e2 25-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Initial IME integration."
4db5dedb76ad86692361b0f9b30880eafc5ec3a7 25-Jan-2017 Vladislav Kaznacheev <kaznacheev@google.com> Revert "Revert "Remove View.setTooltip/getTooltip""

This reverts commit c56c7462ef349efc11079c479424c0c60b473a47.

Change-Id: Id129d099e3579b2c51d77c1fee25816ba3bd9df7
/frameworks/base/core/java/android/view/View.java
3461d3c069468e176fab6bc8b8e78c8e6bc81e8b 19-Jan-2017 Felipe Leme <felipeal@google.com> Initial IME integration.

- Created an AutoFillManager class, which provides methods to show
the auto-fill bar for views and virtual nodes.
- Automatically launches an auto-fill request when the IME is shown
(and an AutoFillService is set for the given user) on TextViews.
- Updated VirtualNodeListener to use this new API.

BUG: 31001899
BUG: 34171325
Test: CtsAutoFillServiceTestCases passes
Test: manual verification

Change-Id: Id72ce97da70217081b5823cfc7b138412634fcf3
/frameworks/base/core/java/android/view/View.java
18b317cf9857693e905b44a1c46f4806270d0a95 24-Jan-2017 Vladislav Kaznacheev <kaznacheev@google.com> Merge "Revert "Remove View.setTooltip/getTooltip""
c56c7462ef349efc11079c479424c0c60b473a47 24-Jan-2017 Vladislav Kaznacheev <kaznacheev@google.com> Revert "Remove View.setTooltip/getTooltip"

This reverts commit 3da84b4e3c5c7af65572304c7f1fe3fc81f6265d.

Change-Id: Ie6f29f6527d71f564906b4cc05b344823c73c3f2
/frameworks/base/core/java/android/view/View.java
975911cda83433ef21d93a0c7a194417dd1c0fc7 24-Jan-2017 Evan Rosky <erosky@google.com> Merge "Add support for automatic focusability determination"
9e2a47d230ea60a20dd16a4a9f039c959528a27f 24-Jan-2017 John Reck <jreck@google.com> Merge "Revert "Destroy DisplayLists on time""
f5c6893dd030941d803772fa0682a79610081e20 24-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove View.setTooltip/getTooltip"
be34e8ee90a34bfe9140643276cbdfe92bfde0b7 24-Jan-2017 John Reck <jreck@google.com> Revert "Destroy DisplayLists on time"

This reverts commit 2874daa4d38bddd3a5f0edb3774d5e5884dd9554.

It broke a bunch of stuff and occasionally blank webviews are preferable to native crashes

Bug: 34638191
Change-Id: I6c5849d4ef0db3ac7c9ed1b1a128f2272a5344c2
/frameworks/base/core/java/android/view/View.java
5c5e0ac419b7cb4bfcf08dd25852a2c7b2eeedd7 24-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Eliminating sections."
3da84b4e3c5c7af65572304c7f1fe3fc81f6265d 23-Jan-2017 Vladislav Kaznacheev <kaznacheev@google.com> Remove View.setTooltip/getTooltip

The last step in renaming setTooltip/getTooltip to
setTooltipText/getTooltipText

Bug: 34454987
Test: make checkbuild
Change-Id: I2472e6b8cc319c856ec1595989368ee35d681068
/frameworks/base/core/java/android/view/View.java
52461d46a47054130028341a4f5070d932f840ca 20-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Destroy DisplayLists on time"
2874daa4d38bddd3a5f0edb3774d5e5884dd9554 20-Jan-2017 John Reck <jreck@google.com> Destroy DisplayLists on time

Change-Id: I32a97d1234545075e9423c352c772e09ca954741
Fixes: 34072929
Test: Manual, see b/34072929#comment36
/frameworks/base/core/java/android/view/View.java
b5ced2200767280026ee57857edaebc02d081216 18-Jan-2017 Vadim Tryshev <vadimt@google.com> Eliminating sections.

Per new UX spec, sections are eliminated, and clusters change
their behavior. Full list of their properties:
* They serve as stops in cluster-navigation loop
* There exists a default cluster (which is the unmarked space)
* Default/stored focus is local to a cluster
* Initial focus search can enter a cluster
* Tab/arrow navigation is not affected by clusters

Bug: 32151632
Test: Manual and CTS tests.
Change-Id: Iacc4f37aec3dc61a6f6ce35681fa6b8fa974f0ed
/frameworks/base/core/java/android/view/View.java
4c8c963eced8e145ecf314a41c8396c7df8e0a39 17-Dec-2016 Evan Rosky <erosky@google.com> Add support for automatic focusability determination

New android:focusable attribute value "auto" and corresponding constant
FOCUSABLE_AUTO specifies that the framework can determine a view's
focusability. For now, the only "auto" logic is that focusable = clickable.

This has the effect of making clickable views focusable by default
unless the developer has explicitly set them focusable=false.

Bug: 31963283
Change-Id: Icce768fa701966970ea6b3469b33a4ef97ebc3ea
Test: Added CTS test, related CTS passes, made a test-app which
enumerates all clickable/focusable combinations to verify
/frameworks/base/core/java/android/view/View.java
6a944ca17547e520ed4988125ee4c1f172c87946 19-Jan-2017 Vladislav Kaznacheev <kaznacheev@google.com> Rename View.setTooltip/getTooltip to setTooltipText/getTooltipText

Bug: 34454987
Test: android.view.cts.TooltipTest
Change-Id: I7203d5c61804b79584ba8449643c6c0f27a90747
/frameworks/base/core/java/android/view/View.java
02296d74d568432999f8dd2a86181722d20d607a 17-Jan-2017 Felipe Leme <felipeal@google.com> Fixed check for generated ids on onProvideStructureForAssistOrAutoFill().

BUG: 33197203
Test: CtsAutoFillServiceTestCases passes

Change-Id: I7dc45b2f68881e2a718b5d704ff4c3c3e5d9527b
/frameworks/base/core/java/android/view/View.java
393a954d5fe885bbe08e1816a50da41c4d9eed50 12-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "API for setting default focus per cluster."
5ca739817dbd7d73f1d232597c0e2898cbee79c7 05-Jan-2017 Vadim Tryshev <vadimt@google.com> API for setting default focus per cluster.

UX spec requires us to allow apps to specify default focus per
cluster.

This change introduces a boolean attribute for Views to do so.

API is designed for cases when the view hierarchy is inflated,
manually constructed, as well as for hybrid scenarios.

The implementation piggybacks the recently introduced logic for
saving/restoring last focus in a cluster. To accommodate new needs,
the focus-saving were rename-generalized in this CL.

Bug: 32151632
Test: Manual checks; CTS are coming after feature freeze.
Change-Id: Ia92600c3a886db9a0d4df9dd9fd0e3479e68e7a4
/frameworks/base/core/java/android/view/View.java
6d553874bed06280766ae24ea605f9bbde3f5a4a 09-Dec-2016 Felipe Leme <felipeal@google.com> YAMAFFR - Yet Another Major AutoFill Framework Refactoring

- Explicitly split View methods into Assist and AutoFill methods, rather
than use an overloaded method that takes flags.
- Simarly, renamed ASSIST_FLAG_SANITIZED_TEXT and
ASSIST_FLAG_NON_SANITIZED_TEXT flags to
AUTO_FILL_FLAG_TYPE_FILL and AUTO_FILL_FLAG_TYPE_SAVE respectively.
- Created a AutoFillUI class to host the auto-fill bar and other UI
affordances.
- Moved the temporary notifications to AutoFillUI (eventually that
class will host the real UI).
- Moved FillData to android.app.view.autofill package.
- Split IAutoFillCallback in 2 (IAutoFillAppCallback and
IAutoFillServerCallback, residing at the app and system_server
respectively), so service cannot fill the app directly (which lets
the framework control the UI).
- Moved assist's IResultReceiver to AutoFillServiceImpl so
system_server can act as a mediator between the AutoFillService
implementation and the app being auto-filled.
- Replaced FillData and FillableInputFields by a bunch of new objects:
- FillResponse contains a group of Datasets, each representing
different values
that can be used to auto-fill an activity (for example, different
user accounts), optional id of fields the service is interested
to save, and an optional bundle for service-side extras.
- Dataset contains a name, Fields, and an optional bundle for
service-side extras.
- Fields contain an AutoFillId (parcelable) and a value (Bundle)
- Changed the temporary notifications to emulate the new workflow:
- Initial notification requests the auto-fill data but do not
auto-fill.
- Once service calls back, a new notification is shown with the
results.
- Then if the user selects a dataset, the activity is auto-filled
with it.
- It also shows a notification to emulate what can be saved.
- Created an VirtualViewDelegate for views that uses a virtual
hierarchy for assist data.
- Added new methods on ViewStructure to add children with virtual ids.
- Added 2 methods on View to support auto-fill:
- autoFill(Bundle) to auto-fill the view.
- getAutoFillType() to return how the view can be auto-filled.
- AutoFillType defines the input fields that support auto-fill:
- Text fields (like EditText)
- Toggle fields (like CheckBox)
- Lists (like RadioGroup)
- AutoFillType can also have a sub-type representing its semantic (for
now only text fields have it, and it's the same as getInputType()).
- etc :-)

Bug: 31001899
Test: manual verification
Change-Id: I2dd2fdedcb3ecd1e4403f9c32fa644cb914e186f
/frameworks/base/core/java/android/view/View.java
6f225cae06a49bf2c34716b3418d7b64d0feb232 10-Jan-2017 Chris Craik <ccraik@google.com> Merge "Revert "Revert "Fast-path for ViewGroup#invalidateChild, invalidate tests"""
e2489c67e1f17938556a29197eeff9221caddd35 09-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Using official names for clusters and sections."
3f06c6de08b9e0c7ab1fd1774783ca355e994f06 09-Jan-2017 Chris Craik <ccraik@google.com> Revert "Revert "Fast-path for ViewGroup#invalidateChild, invalidate tests""

Bug: 33797688

This reverts commit 1cb8b08ae459fddc860e5863b0ec30a70682654e.

Change-Id: I322b550d65d48be4a99faf1790d138d26a996d7e
/frameworks/base/core/java/android/view/View.java
686d972e1294eecaeb15db37a34c521cba0ac5a0 07-Jan-2017 Chris Craik <ccraik@google.com> Fix NPE in RenderNodeAnimator ALPHA when used outside ViewPropertyAnimator

Bug: 33797688
Test: new RenderNodeAnimatorTest passes

Other clients use RenderNodeAnimator now, so call
ensureTransformationInfo to be safe.

Change-Id: I837d6f5b00bb368d2bbf77b94d4c19a8426b9927
/frameworks/base/core/java/android/view/View.java
311a5b54979afee7e07bf31600182584fde15b4f 06-Jan-2017 Vadim Tryshev <vadimt@google.com> Using official names for clusters and sections.

Per the bug, “clusters” and “sections” are already the official names,
and for a general name for both, we use “keyboard navigation
groups”.

Bug: 33708251
Test: N/A.
Change-Id: Ieb1d2e8a1ad758f902b0a925fbe5d187e0f7ea06
/frameworks/base/core/java/android/view/View.java
8957f2ddda08e891475e64552ffa225ca2fccedb 22-Dec-2016 Vadim Tryshev <vadimt@google.com> Introducing teleportation between sections.

The key combos differ from the ones in the spec because key combos
including Meta key don’t get delivered to apps. To fix this, I’ll
implement necessary plumbing after the feature freeze. Meanwhile,
temporary combos are used.

Given that the section and cluster teleportation have a lot in common,
I’m not introducing new methods, but adding a param to the cluster
teleportation ones. I should have also changed the names to something
like findNextKeyboardNavigationCluster => findNextFocusGroup, where
“FocusGroup” is a generalized name for clusters and sections.
However, that name depends on b/33708251, so I’m not doing it now. I
don’t rename existing identifiers, and using “focusGroup” for new
ones. Admittedly, this creates mess that will be resolved based on
the outcome of the mentioned bug.

Bug: 32151632
Test: Manual checks; CTS are coming after feature freeze
Change-Id: I01b5d6e5a9689b8f643fa4af695d2ce61265f374
/frameworks/base/core/java/android/view/View.java
8644daa39f20559080e927fe8092318179d42e91 22-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Adjust tooltip layout"
20a12da3ce5bf1bea6e580ef36e92ce26b21b0ea 06-Dec-2016 Vladislav Kaznacheev <kaznacheev@google.com> Adjust tooltip layout

Position a mouse hover tooltip closer to the target.
Limit tooltip width and make it multiline (maxLines=3).
Show a long press tooltip above the target, not below.

Bug: 33352391
Bug: 33353823
Bug: 33354000

Test: manual
Change-Id: Ie00353d715d73d432b5d892a0a7c04508a003a78
/frameworks/base/core/java/android/view/View.java
01d8c49e040b223d2c4961eb65b5e00f1a967ecf 15-Dec-2016 Vadim Tryshev <vadimt@google.com> Restoring last focused view when teleporting to a cluster.

The UX spec requires each cluster to remember which view was last
focused in it, and focus on it upon the teleportation to this
cluster.

This CL implements saving and restoring the focus.
It also introduces a public API so that an app could switch to a
cluster as if it was teleported to.

Bug: 32151632
Test: Manual checks; CTS are coming after feature freeze.
Change-Id: I0dc816776386015a7f1235f93e3dd9c03dfffcd6
/frameworks/base/core/java/android/view/View.java
1cb8b08ae459fddc860e5863b0ec30a70682654e 21-Dec-2016 Selim Cinek <cinek@google.com> Revert "Fast-path for ViewGroup#invalidateChild, invalidate tests"

This reverts commit f7505803eaf3b31bae81151535ce6c05c58712be.

Change-Id: Ie7714360357e2baaf7723b8d992b3c6c4b0b9989
/frameworks/base/core/java/android/view/View.java
f7505803eaf3b31bae81151535ce6c05c58712be 17-Dec-2016 Chris Craik <ccraik@google.com> Fast-path for ViewGroup#invalidateChild, invalidate tests

Bug: 33460152
Test: new tests passing

We spend a lot of time computing a damage rectangle that the ViewRootImpl ignores with HW
acceleration. Skip all that with a fast path.

Change-Id: Ia7447d1242cd5279be2ce34eead0cd813baffd33
/frameworks/base/core/java/android/view/View.java
55e57164ebfaaf757b9679db49cc9faf90a0e8ab 20-Dec-2016 Alan Viverette <alanv@google.com> Always handle hover events if the View is already hovered

Bug: 33379522
Test: ViewTest#testOnHoverEvent
Change-Id: I6a71ee6b6933b9ffe3e368e3c36f9465dba37b60
/frameworks/base/core/java/android/view/View.java
8102d91377367b9cd63d221da8354436815e7679 15-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Teleportation between clusters."
01b0c9ed4e173f0c140a6575049e2964ae1a919f 22-Nov-2016 Vadim Tryshev <vadimt@google.com> Teleportation between clusters.

Per the UX spec, key combos for quickly jumping between clusters are
Meta+Right and Meta+Left. However, these events don’t get delivered
to the app, and I’ll have to implement this plumbing after the
feature freeze. For now, the temporary combos are Ctrl-Shift-”-”
and Ctrl-Shift-”+”.

In addition to the key combo processing, the CL adds public APIs for
teleportation; they are similar to the API for moving the focus.

Bug: 32151632
Test: Manually checking that teleportation works. CTS test will be
added after the feature freeze.

Change-Id: I622156b9e4cc7c44e61623081d6d079bbe04fd02
/frameworks/base/core/java/android/view/View.java
d047116fade5a9fc826c0caa5ae24333138565e1 15-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unnecessary shadow damage calc in invalidate"
8fb56d027280e1d3a02e88b64c2b0ccbca9f2a02 15-Dec-2016 Chris Craik <ccraik@google.com> Remove unnecessary shadow damage calc in invalidate

Test: builds, boots

Work already done in native, via RenderNode::damageSelf and
RenderProperties::getClipDamageToBounds.

Change-Id: Id96d00d58d61c629dabba49dde3bef1c7b079e89
/frameworks/base/core/java/android/view/View.java
ce3264dac7818d1e97149953705c6a123e74cd3e 29-Nov-2016 Vadim Tryshev <vadimt@google.com> Adding public API for marking nodes as clusters and sections.

Clusters:
We need clusters to limit the size of the “tab loop” by
widgets related to the current context: working in the
app’s client area, choosing a command in the action bar
etc.

Clusters are a generalization of the current action bar’s
behavior.
An activity can have several clusters.
A cluster is a view or a view group group marked as such.
Pressing Tab loops inside the cluster, but you can exit it via
arrows.
You can teleport between clusters via special key combos.

Sections:
Sections live inside clusters.
They are needed for simplifying navigation in complex
hierarchies: instead of tabbing or arrowing, you can simply
teleport to the the next/previous section by pressing a
special key combo.
Example: think about panes in GMail app or dir/files
panels in a file manager.

Otherwise, sections are normal view groups: for example,
they don’t limit keyboard navigation in any way.

Bug: 32151632
Test: Checking for syntax errors and that Android starts.
Change-Id: Ic78495d0749db65d5177017553d37f870354c6bc
/frameworks/base/core/java/android/view/View.java
d4f08a007d7b640c0bd046c7a8168fb93491b7e3 13-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "AutoFill Framework refactoring."
1ca634a544a47193dd9e57f9b3eb3e42ab0dbbf1 29-Nov-2016 Felipe Leme <felipeal@google.com> AutoFill Framework refactoring.

The AutoFill Framework uses the same AssitStructure provided by the Assist API
and so far it was using the same methods as well, both internally and externally
(public API).

Sharing that internal code internally is fine, but the public APIs must distinguish between the 2 cases so they can fill the assist structures accordingly (although the initial implementation still shares the same logic).

This CL also splits the original 'auto-fill' request in 2 types of requests,
which are set by View flags:

- ASSIST_FLAG_SANITIZED_TEXT
- ASSIST_FLAG_NON_SANITIZED_TEXT

It also added new methods and callbacks to handle save requests.

Bug: 31001899
Test: manual verification

Change-Id: I4eb09099dc19a43cb7e053e64d939aed3704b410
/frameworks/base/core/java/android/view/View.java
40db029cfeb263b5b672ca687c347e58ed2ad2ae 28-Jun-2016 Jorim Jaggi <jjaggi@google.com> Light navigation bar support (1/2)

Test: Open an app that has this flag set.

Test: android.systemui.cts.LightBarTests

Bug: 29058491
Change-Id: Idaff65fdd5c59b68ae9920726c9ea50b53f96675
/frameworks/base/core/java/android/view/View.java
40b2de5d1cfbc96f6e310760dc98c8bd3fe5df73 29-Nov-2016 Chet Haase <chet@google.com> Add layout_marginHorizontal|Vertical attributes

These two new attributes are a short-hand way for specifying the
separate left/right (or start/end) and top/bottom margin attributes.
It is common to use the same margin on both edges, so these new
attributes make that common case easier and less verbose.

Issue: 30261490 Better way to define paddingTop/Bottom/Left/Right in XML if vertical paddings are the same and horizontal paddings are the same
Test: new CTS test in ViewGroup_MarginLayoutParamsTest
Change-Id: I183ace956892187b6ea086e61ed5b195c8903d7d
/frameworks/base/core/java/android/view/View.java
f847ee3c3d68e58b0a1a545bd7358ebb32f6948a 21-Nov-2016 Vladislav Kaznacheev <kaznacheev@google.com> Implement tooltip support in View

Adding View.setTooltip/getTooltip and 'tooltip' layout attribute.
Following Material Design spec for styles and behavior.

Bug: 31515376
Test: cts-tradefed run singleCommand cts -m CtsViewTestCases
--test android.view.cts.TooltipTest

Change-Id: I2d2527f642cd7446ffc88d4beffc7b81d7a2f6d6
/frameworks/base/core/java/android/view/View.java
29a5b0d0f1cc7fd6cbfe97c816b8a687d9e438cc 25-Oct-2016 Felipe Leme <felipeal@google.com> Added a callback for AutoFillService.

So far AutoFillService only received the assist data from framework; in
this CL, it also offers a method where the auto-fill provider can send
the auto-fill data back to framework.

The workflow is:

- AFMSI calls a new AM method (requestAutoFillData(), instead
of requestAssistContextExtras()).
- The assist receiver is located in the app, not on system service.
- AM uses a new request type (ASSIST_CONTEXT_AUTOFILL) to request the
assist data to the activity.
- ViewStructure has a new setAutoFillId() method which is used to set an
unique id for the view.
- View uses the accessibility id to implement the auto-fill id.
- When the activity fullfills the request, it creates an IAutoFillCallback
remote object - that will be used to set the auto-fill fields - and
returns it in the assist bundle (using the
VoiceInteractionSession.KEY_AUTO_FILL_CALLBACK key).
- The app-visible AutoFillService class offers an onFillRequest() method,
which contains the assist data and a FillCallback used to handle it.

BUG: 31001899
Test: manually built and ran it

Change-Id: I3d208c14e81022dc96dd03f38bbe25a778b24a67
/frameworks/base/core/java/android/view/View.java
f0503b0b6fa7ad963dd4bb9b63eb5528b191bfea 03-Nov-2016 John Reck <jreck@google.com> Merge "Add benchmarks for View inflation"
3acf0382da22cda88234e599cd81b1ff5441cc35 02-Nov-2016 John Reck <jreck@google.com> Add benchmarks for View inflation

Also speed up RenderNode creation:

Use finalizer() instead of NativeAllocationRegistry, this
shaves ~3us off of creation currently

Avoid instanceof, instead have SurfaceView explicitly ask
for updates.

Remove unused method call.

Test: ran benchmarks
Change-Id: I3117fdf72313a4e6a9965baca9f2a8b855c19b34
/frameworks/base/core/java/android/view/View.java
7e5b229f31d0b39c4f44ede04c86f6cfc0b046aa 01-Nov-2016 Phil Weaver <pweaver@google.com> Fixing outdated Javadoc for getAccessibilityViewId

Test: N/A. Only changing comments.
Change-Id: I2e994c8df0bf71463858090345c3a96f85b7b706
/frameworks/base/core/java/android/view/View.java
c2e3594b7f26ab3e91fd69b42791ed2276918485 15-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Drawing debug focus on Books/Recommended for you/MORE button"
5e16f77865280dd82f8cdc046f6a61d85f8ef3a3 14-Oct-2016 Vadim Tryshev <vadimt@google.com> Drawing debug focus on Books/Recommended for you/MORE button

1. Taking into account scroll state
2. Drawing focus also for views with edges.

Bug: 32099818
Test: Manually ensure that that button draws focus
Change-Id: I085db4deb1561d8b480e4012018d48bc83a7f81f
/frameworks/base/core/java/android/view/View.java
16c9e8bac79cbb837a51b6b74ff89ebe554941e1 13-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Visualize view focus in debug mode."
67e2ae86396c6d0f989285275cbf908dee5e71f7 12-Oct-2016 Aurimas Liutikas <aurimas@google.com> Fix import statement in view|transition|animation packages.

This change also remove trailing whitespace.

Test: code still compiles
Change-Id: I7eff4546320d67d2bae58d31bad0625ea0791b8f
/frameworks/base/core/java/android/view/View.java
cdf38ba2c8586bce09b4462b45598a465b337bd0 12-Oct-2016 Vadim Tryshev <vadimt@google.com> Visualize view focus in debug mode.

See the bug for motivation.

Bug: 32099818
Test: Manual check with enabling the dev setting.
Change-Id: I77262f77ac709639e5b1314a0be45612bde70ad6
/frameworks/base/core/java/android/view/View.java
838277059f15386fe6375f36b3b7c89760ffeae3 05-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "More fixes in drag/drop docs."
697331784b0988b9691d78aacb18ff825504d4cd 01-Oct-2016 Vadim Tryshev <vadimt@google.com> Making old apps passing null ClipData to startDrag work again.

This is for compatibility; see the bug.

Bug: 31865195
Test: manually rant an old app
Change-Id: If2f55ffd424b31f18610b96dd30bca87408e3df0
/frameworks/base/core/java/android/view/View.java
ad57431f497fc555f8a58a7890073997883bf85f 28-Sep-2016 Vadim Tryshev <vadimt@google.com> More fixes in drag/drop docs.

Bug: 31702571
Test: Built docs, inspected in Chrome.
Change-Id: Ib7c421a6eacac5e352bbba64eedb9f8b689cbe60
/frameworks/base/core/java/android/view/View.java
d2ecfc8744b56f867d6a006fc1b53c4f32459ad8 26-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unused private flags from View"
12e182a99ee9d3572043aa77521718b02ed21823 26-Sep-2016 Mark Lu <marklu@google.com> docs: update javadoc description for View.setVisibility() method am: ae0459f532 am: 56be5c1ae0
am: 41f36a5264

Change-Id: I107738e4c4322c8189aa84a94c3fca12c6980323
cd980ffb7d3fad08cbcb06ff38917c0653ca7d87 24-Sep-2016 Mark Lu <marklu@google.com> docs: update javadoc description for View.setVisibility() method am: ae0459f532 am: 66192078c5
am: 357dfd039a

Change-Id: I4d8ec3cb3e31e17e2f5787fb940f96e5768deb72
357dfd039ad1452d5ffa1fca71fe3ae56dd100a5 24-Sep-2016 Mark Lu <marklu@google.com> docs: update javadoc description for View.setVisibility() method am: ae0459f532
am: 66192078c5

Change-Id: I7f3775c5fd9e63252cea9fafb8ed4b79c95bfcba
41f36a5264b8a713148a47b95bbbcfc8fbcc1f3a 24-Sep-2016 Mark Lu <marklu@google.com> docs: update javadoc description for View.setVisibility() method am: ae0459f532
am: 56be5c1ae0

Change-Id: I32ad4a0b53c1e1fbbfd287a4aa915e169038218f
66192078c505c1b15cd71acb5c05283c26a855d6 24-Sep-2016 Mark Lu <marklu@google.com> docs: update javadoc description for View.setVisibility() method
am: ae0459f532

Change-Id: Ie217e46288a11e86b2e5b6e56d8ce5cb2a214861
56be5c1ae089be7fd09fd228c6abdad8fc82f1ed 24-Sep-2016 Mark Lu <marklu@google.com> docs: update javadoc description for View.setVisibility() method
am: ae0459f532

Change-Id: I3c9d70fc6fc2b6770076454cdfbb1ed1b619dfb9
5a32c4c0b63bd35452931882a565969cf778c1f3 23-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Remove unused private flags from View

Change-Id: I738ce4a814b6e2ca237bc353a1d1b6222643198f
/frameworks/base/core/java/android/view/View.java
329011cf402666678c47cd238a5170208a5bbc27 21-Sep-2016 Winson <winsonc@google.com> Removing private system ui flags from status bar flags logic. am: ab216609f1 am: b7a673ed95
am: dccfd4394e

Change-Id: Ie8bbbfb5c24957f64036e8de23d6a29e6669ea18
0f986b51fcba714ac4c014b83d9a7c3ffb06b6ff 21-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, cascade LOCATION and DROP events. am: 45bee6b24c am: 140adada42
am: 1b060c3ab5

Change-Id: I1a450cf52cc0715092e1578454c4a4bb8a857ba7
1ee3bfb798f28f8ece43cd13e0747bc23a540150 21-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, keep entered all parents of an drag-entered child. am: ef12811560 am: f0550a6bd1
am: 72193e13c5

Change-Id: I27ce678e332e9caa5e977e40d18aabf6d9c76b55
45bf9dee0d7dc49ebfecbe73efd8dc55be98b27e 21-Sep-2016 Vadim Tryshev <vadimt@google.com> Eliminating the black hole effect with location/drop events. am: 1edc6daf1d am: 32394cee01
am: 416384e06d

Change-Id: I6d9ea65abf3bcaa3150e6c0f26d2ff184efda095
dccfd4394e1092162f7f82c437907537cdb18a5b 21-Sep-2016 Winson <winsonc@google.com> Removing private system ui flags from status bar flags logic. am: ab216609f1
am: b7a673ed95

Change-Id: I031135c21838f5737367f18e2b5ac247162ab455
b7a673ed950d639eec29c7fcef6d5b6cb14f4c5b 21-Sep-2016 Winson <winsonc@google.com> Removing private system ui flags from status bar flags logic.
am: ab216609f1

Change-Id: Id7e0d308361acb7793c7b03e2ebe0114a956b380
07d798b9028b62895fd628188dd1802e750fa7a2 21-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Removing private system ui flags from status bar flags logic." into nyc-mr1-dev
1b060c3ab5494a434f27d4603207ce52b3c6e4f3 21-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, cascade LOCATION and DROP events. am: 45bee6b24c
am: 140adada42

Change-Id: I6337f02c1f39a58fe6bf04cfe3181b01322f51ed
140adada42088665894097e9e9985a9eb88a5880 21-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, cascade LOCATION and DROP events.
am: 45bee6b24c

Change-Id: Ib9a0e17fcc1d76911ee89dda46d99de1449ff295
f902fb5fa83d31744e6155b6d16fb252970aa714 21-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "For pre-N apps, cascade LOCATION and DROP events." into nyc-mr1-dev
72193e13c57bc49d26e1ef5c36030fdc737e9a58 20-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, keep entered all parents of an drag-entered child. am: ef12811560
am: f0550a6bd1

Change-Id: Ic22cb6624a12188992fa5f1712ba2915c82bd457
f0550a6bd141ccd75c22a01254fa25e5df977f98 20-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, keep entered all parents of an drag-entered child.
am: ef12811560

Change-Id: Ia086b1525d658d3374174e11a0a06551b8e4910a
0ef698637942cc528b28ac9b1cbdd1f880a23dd9 20-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "For pre-N apps, keep entered all parents of an drag-entered child." into nyc-mr1-dev
bae14052a0f7e6f16e04d0fd2665a5013bb02dbb 20-Sep-2016 Dianne Hackborn <hackbod@google.com> Cherrypick so we can publish N version code description ASAP
am: 491bc2b8d6

Change-Id: I27da25afcaca61ac0159699c0cfc8fbf2338aa2c
416384e06dcc120e19c94c8e390f4ff34c4e994c 20-Sep-2016 Vadim Tryshev <vadimt@google.com> Eliminating the black hole effect with location/drop events. am: 1edc6daf1d
am: 32394cee01

Change-Id: Icbcf0cb248bc823f72fb61373732a08ee56c51cc
32394cee01e509347339312711cffdd471b9777b 20-Sep-2016 Vadim Tryshev <vadimt@google.com> Eliminating the black hole effect with location/drop events.
am: 1edc6daf1d

Change-Id: Ib32d77e7c28867753827a5d8100e628d6d8ee963
b1dd85c0818937dfa777fd717d30bba26faf0e81 20-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Eliminating the “black hole” effect with location/drop events." into nyc-mr1-dev
ab216609f1608e61827d955fcc9fd0560bc52e4d 09-Aug-2016 Winson <winsonc@google.com> Removing private system ui flags from status bar flags logic.

- Prevent third party apps from inadvertently changing internal SystemUI
flags through a call to setSystemUiVisibility(). These flags are only
set in the individual SystemUI components and can be updated in WMS
directly.

Bug: 29875297
Change-Id: I5ea238c8fb16a0eccd6e993d95a912acb359cee6
/frameworks/base/core/java/android/view/View.java
45bee6b24c8d181eafce339dc90d11b5e1bec74e 19-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, cascade LOCATION and DROP events.

To restore the pre-N behavior, if a view returns false from its
LOCATION or DROP event handler, the event goes to its parent.

Bug: 31559942
Change-Id: I322099ae1e8a5cbbcf8814f2cd274fbae53b6848
/frameworks/base/core/java/android/view/View.java
491bc2b8d6817386c75d5628d09ac406de1d92d3 09-Aug-2016 Dianne Hackborn <hackbod@google.com> Cherrypick so we can publish N version code description ASAP

Fix issue #30766518: Document what targeting N does

Also small documentation cleanup in a few other places.

(cherry picked from commit b34cbedb4e36f184232d7f40b093bdc9fd0cd752)

Change-Id: I9560b29faa4f2674277349272af8193122a1f95e
/frameworks/base/core/java/android/view/View.java
ef12811560d4fcce3410eaa4d972dc39001efd4d 16-Sep-2016 Vadim Tryshev <vadimt@google.com> For pre-N apps, keep entered all parents of an drag-entered child.

The bug complains that parents of a view under the drag location
don’t get drag events.
This is first of a 2 CLs that will restore the old functionality
(modulus fixing bugs) for pre-N apps.

This CL restores pre-N "nested" model of the entered state for
pre-N apps. It also makes possible restoring "nested" model for
LOCATION and DROP (implemented in a follow-up CL)

The CL replaces (for pre-N) generation of ENTER/EXIT events that
happens at the moment of changing the drag focus with generation
folowing the recursive delivery of coordinate-bearing events.

Bug: 31559942
Change-Id: Iead6bde9c1f88819b30afc78c1f424f7c1b64d51
/frameworks/base/core/java/android/view/View.java
1edc6daf1d13ec472da2aae2a2a88d130c495cb7 16-Sep-2016 Vadim Tryshev <vadimt@google.com> Eliminating the “black hole” effect with location/drop events.

Currently, a container view that doesn’t accept events, but has a
child that accepts events, prevents its parent from receiving
LOCATION/DROP events while the drag is over the container (but not
the child). This is a bug.

With this fix, such a container will prevent the parent from
invoking a (second) LOCATION/DROP event only if the event was really
delivered to any of its descendants.

To know whether the event was delivered, I added
DragEvent.mEventHandlerWasCalled member.

EXITED/ENTERED events are now generated upon delivery of the event
that has coordinates in it.

Current view that has drag focus is now global to reflect the fact
that it’s one per process.

Bug: 31469490
Change-Id: I248e8d1de87b7734853136eb4719f7571cea91d5
/frameworks/base/core/java/android/view/View.java
048cc637c75be1372115da99afa1dbabd402708c 13-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update JavaDoc for DragEvent.getLocalState am: 048f3bfaf0 am: f96d962aac
am: ad4df22dc6

Change-Id: Ic45bc7172e9dcdb5f58db23809a38f0fb5b5da52
106253bdf24e39602cc23241d2510e3e767b2f55 12-Sep-2016 John Reck <jreck@google.com> Merge "Illegal behavior -> Exception"
d94094e06277e002c2eb8bfd2ffd1e0bb98833d4 08-Sep-2016 John Reck <jreck@google.com> Illegal behavior -> Exception

Throw an IllegalStateException if the contract
of OnDrawListener is violated.

Change-Id: Ic86f6a0c8cd69ee7a8daa0ba135a3df76f56a213
/frameworks/base/core/java/android/view/View.java
8778333a047f903cca4754a3b9c220f4969f889b 09-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update JavaDoc for DragEvent.getLocalState am: 048f3bfaf0 am: fa05df640f
am: c9bab3001f

Change-Id: I81da9817c076b587372888b17bbda71118fb6138
ad4df22dc68a11fe401e2198f35b404e6fadf1af 09-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update JavaDoc for DragEvent.getLocalState am: 048f3bfaf0
am: f96d962aac

Change-Id: I7d46354086a490cf1716cca95cf88b39c5e850e1
c9bab3001f3ba198f8d8cee28ac17996562e7f5a 09-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update JavaDoc for DragEvent.getLocalState am: 048f3bfaf0
am: fa05df640f

Change-Id: I535a5218bec2f5cf0ea9fa83aaa92ab70f05fcdd
f96d962aac31b0cf7d58fee384c3c9ca16eb5980 09-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update JavaDoc for DragEvent.getLocalState
am: 048f3bfaf0

Change-Id: I53373b3292c4a10a01afa73eb417c105a83c970e
fa05df640f5816adfed7c43d6b498e0d32b52097 09-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update JavaDoc for DragEvent.getLocalState
am: 048f3bfaf0

Change-Id: I72bec54ac999ebce5779062ddc5effd1bb4d61ce
048f3bfaf0c4b03880706eec88e66d5d2c704c1e 09-Sep-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update JavaDoc for DragEvent.getLocalState

Explicitly state that "local state" is local to the window
which has started the drag operation.

Bug: 31372686
Change-Id: Idbea7586c4e74097362067fa90390b97744181bb
/frameworks/base/core/java/android/view/View.java
552df581b99d615e5925f252b00f33064a5cb265 08-Sep-2016 Phil Weaver <pweaver@google.com> Merge "Keep services updated of added views."
4d3eec411b3a1337083fe93bfd5385a7f26c30f6 02-Sep-2016 Phil Weaver <pweaver@google.com> Keep services updated of added views.

We were marking subtree events as not important for
accessibility based on the root view, but that doesn't
take into account the fact that important children may have
changed. In particular, adding a View to the hierarchy was
sometimes marked as not important because the layout it was
attached to was not important.

Also fixing an issue with UiAutomation where it called out
to the test filter with a lock held.

Also fixing an issue where nodes that are the source of
accessibility events are always marked as important for
accessibility.

Bug: 31226561
Change-Id: Ib619948ba1bbcfd00aef1d10726152f6cf2dfccd
/frameworks/base/core/java/android/view/View.java
8c52bf51a2682c1a1faf3a134ce603edc0837884 31-Aug-2016 Adam Powell <adamp@google.com> Fixes for ImageView drawable visibility dispatch am: 06f9eb8b62 am: fd86f7fdfd am: ee2f4d890e
am: 393279da8f

Change-Id: I7e42805b096de31e388cd86ee87b44f312841aed
ae0459f532bb06044950e08f8e601a2c4180ca4a 31-Aug-2016 Mark Lu <marklu@google.com> docs: update javadoc description for View.setVisibility() method

Bug: 19770068
/frameworks/base/core/java/android/view/View.java
87b9a88c32f7b0e5e48b79e6e78d7122203a2144 30-Aug-2016 Yohei Yukawa <yukawa@google.com> Make sure IME focus is synced to View focus
am: 8eb07090a4

Change-Id: Ia0db5adc86c72f122a5b9bab91962ffa2923469a
8eb07090a4fdd5a184f172853249323d85cff262 06-Aug-2016 Yohei Yukawa <yukawa@google.com> Make sure IME focus is synced to View focus

This CL fixes an edge case that my previous CL [1] forgot to handle.

The goal of my previous CL was to avoid InputMethodManager from getting
confused by a false focus-in event from temporarily detached Views.
However, my CL forgot to take care of the case where the temporarily
detached View is still focused even after the temporary detach mode is
done.

The bad news is that such a situation is relatively easy to trigger by
having a ListView that has EditText as follows, which seems to be
known to be a common technique in Android developer community to put an
EditText in a ListView.
ListView#listView.addHeaderView(new EditText(context), null, true);

If the ListView is initialized as above, and the EditText has input
focus, View focus and IME focus start to disagree immediatelly after the
ListView's layout is re-evaluated. This is really easy to trigger, for
example just by dismissing the IME window.

In summary, the root cause is that InputMethodManager#focusIn(View) is
now always ignored as long as the View is temporarily detached, under an
assumption that IMM#focusIn(View) will be called back again with a View
that is not temporarily detached when everything is stable. Hence the
fix is to do so by hooking up View#dispatchFinishTemporaryDetach() to
call IMM#focusIn(View) again when the View is actually focused in the
final state.

[1]: Ia79bbd8468f768d546354382b47b39dd31ef7bb5
a4ed0cfcb6885beeb52f701bfc64c393b668f7ba

Bug: 30022872
Bug: 30578745
Bug: 30706985
Change-Id: Iecbdb00dcef8c72e4f7b31035c9bf0f4a40a578f
(cherry picked from commit dd228fbb4d2cb3d178ed7f1889343bfe177aafa2)
/frameworks/base/core/java/android/view/View.java
393279da8fa39724fceabd78eb404b28fb687d7e 27-Aug-2016 Adam Powell <adamp@google.com> Fixes for ImageView drawable visibility dispatch am: 06f9eb8b62 am: fd86f7fdfd
am: ee2f4d890e

Change-Id: I8cb5a6e2ffc7a62cf6fe68176482cdaefc596ecc
ee2f4d890e8efcc3971853fd9b6638cec045bff2 27-Aug-2016 Adam Powell <adamp@google.com> Fixes for ImageView drawable visibility dispatch am: 06f9eb8b62
am: fd86f7fdfd

Change-Id: I155ed970c7f58895419778f01eebc5babb141c33
fd86f7fdfdfe72cea3b3960aa64ec047509fcf08 27-Aug-2016 Adam Powell <adamp@google.com> Fixes for ImageView drawable visibility dispatch
am: 06f9eb8b62

Change-Id: I8b7d8c73f0a718963a191fd5460517e5a7445974
06f9eb8b621550ae1d39822fda38011a3ed5bdb9 25-Aug-2016 Adam Powell <adamp@google.com> Fixes for ImageView drawable visibility dispatch

Some apps rely on their drawables not getting not-visible hints via
setVisible when the window visibility changes. This manifests as
additional animations, such as crossfading from placeholders when the
window becomes visible again.

Apps should be able to handle this case in the future now that we have
more detailed reporting via onVisibilityAggregated, but to keep
existing apps working as-is, ImageView now operates in a compatibility
mode for targetSdkVersion < N and will only dispatch visibility
signals based on the same triggers used in M. New apps get the more
detailed signals.

Fix a bug where window visibility dispatch via onVisibilityAggregated
would double-dispatch "not visible" when the window is transitioning
from GONE => INVISIBLE or INVISIBLE => GONE.

Make the growing set of compatibility check fields in ImageView
static, matching the pattern from View.

Bug 30216207

Change-Id: I88875260bf6aaa23687c7d51353de8d633383531
/frameworks/base/core/java/android/view/View.java
970954140d749f49fc385ad76bd7d2b0a616962b 25-Aug-2016 Chet Haase <chet@google.com> Clarify docs for various methods in View

Issue #6440615 Doc problems in android.view.View

Change-Id: I34b9355c0473ac6fbfd8967f2106abc79fac5f86
/frameworks/base/core/java/android/view/View.java
17890318a5224e02cef106222e956e26bcff90bc 23-Aug-2016 Teng-Hui Zhu <ztenghui@google.com> Correctly report the transparent region am: f8da30dc65 am: 94a2f7e6fd
am: 0b1ef056cc

Change-Id: Ib2bb687e8c87332f3a915c3c312d55aaa50018f9
0b1ef056cc159ee4015b6c5580549b1cd5f4326c 23-Aug-2016 Teng-Hui Zhu <ztenghui@google.com> Correctly report the transparent region am: f8da30dc65
am: 94a2f7e6fd

Change-Id: Ice979b549a74f1e8e59210f2b7c7e5a6f141b9f6
94a2f7e6fd8dc33b6cf00e71dab1aa1efb2c1bcd 23-Aug-2016 Teng-Hui Zhu <ztenghui@google.com> Correctly report the transparent region
am: f8da30dc65

Change-Id: I2fa623c2893a6cea96843f78d46fe753913b6f4d
f05765e3c485df4b9e99e0045fe9f743314426f3 22-Aug-2016 Tenghui Zhu <ztenghui@google.com> Merge "Correctly report the transparent region" into nyc-mr1-dev
64ea28e4f00b3fd52dd9c0663e6122101b4c2788 18-Aug-2016 Yohei Yukawa <yukawa@google.com> Make View#isTemporarilyDetached() less confusing am: ed841cbdd7 am: 6bc17c7320
am: 8c8477d036

Change-Id: I5a4a16d4a1922a71def989b3bdf44810d6334100
8c8477d036a784f7b07090d98347a61977872663 17-Aug-2016 Yohei Yukawa <yukawa@google.com> Make View#isTemporarilyDetached() less confusing am: ed841cbdd7
am: 6bc17c7320

Change-Id: Iec61193cd1d1902aa9aad1ad9ac1d6f4944c748b
6bc17c73204dbced65d2a0df831bd8819641782c 17-Aug-2016 Yohei Yukawa <yukawa@google.com> Make View#isTemporarilyDetached() less confusing
am: ed841cbdd7

Change-Id: I2df97c1babb9fc515295c527a18d9f88546dfad7
4aa5325ba85a211db0bc3ef18c69837d0078dbdc 17-Aug-2016 Yohei Yukawa <yukawa@google.com> Merge "Make View#isTemporarilyDetached() less confusing" into nyc-mr1-dev
f8da30dc65b833558a4eb654f7d80dfdd60d844a 15-Aug-2016 Teng-Hui Zhu <ztenghui@google.com> Correctly report the transparent region

First, we fix the transparent region computation to use the order as the
drawing. Previously, it is using the tree traverse order, not the draw order.

Second, add the y offset for any view with positive z value, this will allow
some space for shadow.

b/30124573

Change-Id: I98d38261ffd346b762651e087cb243e45fed6952
/frameworks/base/core/java/android/view/View.java
1fa574c3c5ba215f89f11cdfc130e9eede0f0140 14-Aug-2016 Hui Shu <hush@google.com> Fix documentation. am: bd042e666a am: 440d84f99a
am: 68cee7e245

Change-Id: I33cc61c64c85a8b0bee7338feb55d5551cc2fd26
68cee7e2457348b2f3d37de169937f59d1b3025c 13-Aug-2016 Hui Shu <hush@google.com> Fix documentation. am: bd042e666a
am: 440d84f99a

Change-Id: I1d0c75c6692557e1d66ca66036bceda6ca62c702
440d84f99a55715e2da057578413d44a8828dee1 12-Aug-2016 Hui Shu <hush@google.com> Fix documentation.
am: bd042e666a

Change-Id: Ib749bd51c24a2012cd2b0d87ed70c034f410bc58
caef4afe425ba9527fe2814b06ad5873f5fc3cad 12-Aug-2016 Hui Shu <hush@google.com> Merge "Fix documentation." into nyc-mr1-dev
e27c677f332a2eb96dd2c3970d6fb71752273a8f 12-Aug-2016 Aga Madurska <amad@google.com> Avoid an NPE while checking view location on screen. am: a56454645f
am: a78e8d6219

Change-Id: I70f2333d6f09d7d608a5c201ac3d5be7780bda9e
a78e8d62195c006385f681e501bf917ec92ae070 12-Aug-2016 Aga Madurska <amad@google.com> Avoid an NPE while checking view location on screen.
am: a56454645f

Change-Id: I052e1e3f18a1df3a4ef43b87a1709d14eef21df1
9d911ea5c284f80a6dcff55270aff3d0048a3a38 12-Aug-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Enable StrictMode.detectFileUriExposure() for drag and drop"
a56454645ff5718074101d4eda8e891ef04d4d92 12-Aug-2016 Aga Madurska <amad@google.com> Avoid an NPE while checking view location on screen.

Bug:30483148

Change-Id: I115da4fefff5fecc04135e2b150e1e77445cb86e
/frameworks/base/core/java/android/view/View.java
bd042e666af024de48de066dfebf34ea64093c1a 09-Aug-2016 Hui Shu <hush@google.com> Fix documentation.

Remove spurious duplicate line in JavaDoc.

Change-Id: I7ee7339d2ef21241ff21e66683e37e8ea0bbfaa4
/frameworks/base/core/java/android/view/View.java
ed841cbdd709d3874506510fd774d961be711f31 11-Aug-2016 Yohei Yukawa <yukawa@google.com> Make View#isTemporarilyDetached() less confusing

In Android N, View#isTemporarilyDetached() returns true if it is called
when the same View instance is handling View#onFinishTemporaryDetach().

Returning true there is, however, sometimes confusing, especially
scenarios like the following case:

@Override
public void onFinishTemporaryDetach() {
doSomeRestoringWorks();
}

private void doSomeRestoringWorks() {
doSomething();
}

private doSomething() {
if (isTemporarilyDetached()) {
// As of N, we hit here if this is called as a result of
// View#onFinishTemporaryDetach().
} else {
// but is the logic here is more likely to be appropriate
// when handling View#onFinishTemporaryDetach()?
}
}

What this CL aims to do is to let View#isTemporarilyDetached() return
false when it is called while handling View#onFinishTemporaryDetach(),
because it should make View#onFinishTemporaryDetach() more useful.

Regarding the app compatibility, View#isTemporarilyDetached() was added
in API 24 hence the impact on this change is still limited.

Bug: 30791718
Change-Id: If384da9f9e6ff849598896901626fd021bae5cda
/frameworks/base/core/java/android/view/View.java
854d3f2ec2c50769b0ded4053c461c0a971a840f 11-Aug-2016 Vladislav Kaznacheev <kaznacheev@google.com> Enable StrictMode.detectFileUriExposure() for drag and drop

Call ClipData.prepareToLeaveProcess/prepareToEnterProcess
at appropriate moments to check for StrictMode violations.

Bug: 30772435
Change-Id: I5c84c6c7b3d04094563623156616390d3df6879e
/frameworks/base/core/java/android/view/View.java
f49cfb874ee47217da02e5c07525a994d456d28e 10-Aug-2016 Dianne Hackborn <hackbod@google.com> Fix issue #30766518: Document what targeting N does am: b34cbedb4e am: 3a585b86be
am: 22fdbab5d0

Change-Id: Ic9beb458f4332b9ec72c4b4b4178a5bce1fcac82
22fdbab5d0e2275ed764652ea94686a056f4c93b 10-Aug-2016 Dianne Hackborn <hackbod@google.com> Fix issue #30766518: Document what targeting N does am: b34cbedb4e
am: 3a585b86be

Change-Id: I72821636543c9c31da4c6a8ac6d77a8de5d78d1f
b34cbedb4e36f184232d7f40b093bdc9fd0cd752 09-Aug-2016 Dianne Hackborn <hackbod@google.com> Fix issue #30766518: Document what targeting N does

Also small documentation cleanup in a few other places.

Change-Id: I16581c751aa0ffa146faba3b140a8fa2170f4520
/frameworks/base/core/java/android/view/View.java
5efe6c4f6d265c6969ae35734c9685d128ee756b 06-Aug-2016 Yohei Yukawa <yukawa@google.com> Make sure IME focus is synced to View focus am: dd228fbb4d am: 9f3e418f92
am: 6a63c70ecc

Change-Id: Iac6b4466bd57969f5f49facf203d0bade3d8a64b
6a63c70ecc562452db93513fe20c2531ff68d4c6 06-Aug-2016 Yohei Yukawa <yukawa@google.com> Make sure IME focus is synced to View focus am: dd228fbb4d
am: 9f3e418f92

Change-Id: I3f1091f0e7f8e7f2087f87a0ed8947a2978877d4
dd228fbb4d2cb3d178ed7f1889343bfe177aafa2 06-Aug-2016 Yohei Yukawa <yukawa@google.com> Make sure IME focus is synced to View focus

This CL fixes an edge case that my previous CL [1] forgot to handle.

The goal of my previous CL was to avoid InputMethodManager from getting
confused by a false focus-in event from temporarily detached Views.
However, my CL forgot to take care of the case where the temporarily
detached View is still focused even after the temporary detach mode is
done.

The bad news is that such a situation is relatively easy to trigger by
having a ListView that has EditText as follows, which seems to be
known to be a common technique in Android developer community to put an
EditText in a ListView.
ListView#listView.addHeaderView(new EditText(context), null, true);

If the ListView is initialized as above, and the EditText has input
focus, View focus and IME focus start to disagree immediatelly after the
ListView's layout is re-evaluated. This is really easy to trigger, for
example just by dismissing the IME window.

In summary, the root cause is that InputMethodManager#focusIn(View) is
now always ignored as long as the View is temporarily detached, under an
assumption that IMM#focusIn(View) will be called back again with a View
that is not temporarily detached when everything is stable. Hence the
fix is to do so by hooking up View#dispatchFinishTemporaryDetach() to
call IMM#focusIn(View) again when the View is actually focused in the
final state.

[1]: Ia79bbd8468f768d546354382b47b39dd31ef7bb5
a4ed0cfcb6885beeb52f701bfc64c393b668f7ba

Bug: 30022872
Bug: 30578745
Bug: 30706985
Change-Id: Iecbdb00dcef8c72e4f7b31035c9bf0f4a40a578f
/frameworks/base/core/java/android/view/View.java
bb1115f1ffcd3ed433fd16eacbba68927affcb56 03-Aug-2016 Yigit Boyar <yboyar@google.com> Target API check for margin params fix am: 2dd20a61e9 am: 6efd207022
am: 5eede8910b

Change-Id: I748d223c4dcec4f0234b0e4e808ae982efbd0bd5
5eede8910bec0da7775ab86db0f0e0f7f34180fa 02-Aug-2016 Yigit Boyar <yboyar@google.com> Target API check for margin params fix am: 2dd20a61e9
am: 6efd207022

Change-Id: Ic05edff9014a74cd543d0eef03ba8862a198613a
2dd20a61e959f9a0acb0639664e063101b6e3bac 02-Aug-2016 Yigit Boyar <yboyar@google.com> Target API check for margin params fix

Prior to N, our widgets were not converting MarginLayoutParams
properly between ViewGroups. The fix intrudced some issues in
older apps as the broken conversion code would hide developer
errors. This CL guards the change with a target API check so
that we don't affect older apps.

Bug: 30378230
Change-Id: I215281d261b553c3b4cedcd29ea0a861df809471
/frameworks/base/core/java/android/view/View.java
f546b8658427e7761a478a18f2d70ffad951900d 02-Aug-2016 Phil Weaver <pweaver@google.com> Reduce extra a11y events when alpha changes. am: 9937f81ac6 am: 2dd6ce7aff
am: fc5164a615

Change-Id: If23ebf9b114d1d9f7fcf3c76e1f39dede082dc67
fc5164a615c72dbf070030b3c51c7e1772572cd9 02-Aug-2016 Phil Weaver <pweaver@google.com> Reduce extra a11y events when alpha changes. am: 9937f81ac6
am: 2dd6ce7aff

Change-Id: I70adc04b7890ce4a9b207c34d77461bcf22d413c
2dd6ce7aff9295ff6fec8c819ea4ebcb826fc85b 02-Aug-2016 Phil Weaver <pweaver@google.com> Reduce extra a11y events when alpha changes.
am: 9937f81ac6

Change-Id: I23a097e1de51449b7dfa4a4986255fec4c8c3b05
41e185e73b96f6b1025eb2c920bebea32805713d 02-Aug-2016 Phil Weaver <pweaver@google.com> Merge "Reduce extra a11y events when alpha changes." into nyc-mr1-dev
9937f81ac653ed08032c547147a0934422540a45 02-Aug-2016 Phil Weaver <pweaver@google.com> Reduce extra a11y events when alpha changes.

Changes in alpha only matter if they affect visibility,
so only 0 <-> nonzero changes are worth reporting. Report
them as subtree changes, as visibility affects subviews.

Not reporting every change greatly reduces the number of
event reported when alpha is animated.

Bug: 30183085
Change-Id: I905d53aa81ca8248b3aed86a91842ef499f303a8
/frameworks/base/core/java/android/view/View.java
6bb7cacc3b25f7ea414e36eda47d894deeebc96f 29-Jul-2016 Andrii Kulian <akulian@google.com> Merge \\\"Correctly finish activity in non-focused stack\\\" into nyc-mr1-dev am: d3786148f3 am: 4cad633101
am: 498ad9a370

Change-Id: I4f081328330d121fa70a0e202d1f163dda157ebf
498ad9a370fe02c613c64e408bdc3bb914a12ca7 28-Jul-2016 Aga Madurska <amad@google.com> Ignore padding for drawing round scrollbars. am: c283507246
am: 9bafa17869

Change-Id: Icd0e134b0b596dae3300829a121caa903d828523
9bafa1786948ea7b98b6b075c4b9a0de6a443d25 28-Jul-2016 Aga Madurska <amad@google.com> Ignore padding for drawing round scrollbars.
am: c283507246

Change-Id: Ia60e140beaa24b445d7f9949de8dbc946c05d828
a6b50d5f2b418bc9362949b340b6e4ae6cf85a7b 28-Jul-2016 Adrian Roos <roosa@google.com> ViewRootImpl: Initialize sysui visibility am: 1b2bf00098
am: e616a42716

Change-Id: I32984bff654a285dfc553fb89ea2e95e8ec60d29
9801935b95920b60cef06a86d80480ae8f0930c8 27-Jul-2016 Agnieszka Madurska <amad@google.com> Merge "Ignore padding for drawing round scrollbars." into nyc-mr1-dev
e616a427160529d5f5e3a292bc4d0267f4f15ce5 27-Jul-2016 Adrian Roos <roosa@google.com> ViewRootImpl: Initialize sysui visibility
am: 1b2bf00098

Change-Id: I5d206d031a193777b67cb44af5b70bbc4997c2f3
c2835072469f712ba2b73e4a93b5d0b8818777b8 27-Jul-2016 Aga Madurska <amad@google.com> Ignore padding for drawing round scrollbars.

This change is needed to correctly cope eg. with list views
which introduce header and footer view through additional
list view padding.

See ag/1221005 for details.

Bug:30420573
Change-Id: I7c9c0ce2b5ba85429b7921c42e4f97e139814e17
/frameworks/base/core/java/android/view/View.java
25582f21cdaff0ced0bfdd513a575ac95aa40f6f 27-Jul-2016 Adrian Roos <roosa@google.com> Merge "ViewRootImpl: Initialize sysui visibility" into nyc-mr1-dev
1b2bf000984b17b77b36621f193e13475167f20c 26-Jul-2016 Adrian Roos <roosa@google.com> ViewRootImpl: Initialize sysui visibility

Fixes a bug where the sysui visibility flags
were not dispatched when they changed if the
visibility changes the first time to a zero
value.

Change-Id: I4d6c990ca493b144f24c75e95b4ff18c4c0a029c
Fixes: 30259249
/frameworks/base/core/java/android/view/View.java
e2250ca54f1943f908ea445a9b5887f304f9aca6 26-Jul-2016 Aga Madurska <amad@google.com> Use correct bounds for scroll bar rendering. am: 8cc883de9e
am: f4b8e7d969

Change-Id: I08e2c8b988c1e472950515ee719ecd7022fd45e7
f4b8e7d9690c98031c46d698006f93e8079a5ea3 26-Jul-2016 Aga Madurska <amad@google.com> Use correct bounds for scroll bar rendering.
am: 8cc883de9e

Change-Id: Ie82427a678241e7237144bbe76493c055a17bc2d
8cc883de9ee40ca6943f64805bb0c063487514b6 26-Jul-2016 Aga Madurska <amad@google.com> Use correct bounds for scroll bar rendering.

Bug:30001373
Change-Id: I20c77a2d97096bda451c3a871fd6be7ad699b047
/frameworks/base/core/java/android/view/View.java
9b3bb7d20fd049ba3c4126cb5a55ecbb10070940 25-Jul-2016 Aga Madurska <amad@google.com> Add support for round scroll bars to View.java am: b19d0f9800
am: 009fab6070

Change-Id: I4f6808ca48fcc9d336b57c0edea15d632e28f8b7
009fab6070c00a16da26c8ae2557130e7801ac6d 25-Jul-2016 Aga Madurska <amad@google.com> Add support for round scroll bars to View.java
am: b19d0f9800

Change-Id: I23faff9b31a9a71c767aaabca69774f8582bfdb2
8ec317e2206c5895b0090779945bab2b94bb332a 25-Jul-2016 Agnieszka Madurska <amad@google.com> Merge "Add support for round scroll bars to View.java" into nyc-mr1-dev
b19d0f9800ea4db15f4812db9ddf12839fd8efcd 19-Jul-2016 Aga Madurska <amad@google.com> Add support for round scroll bars to View.java

Change-Id: If94a29d68cee504f7d31519b96f7b4b8a3af6bfa
/frameworks/base/core/java/android/view/View.java
020ebdcc73e0b63df06401bf1b75b18fd6fd3d86 22-Jul-2016 Adam Powell <adamp@google.com> Add View reveal on focus hint am: 7ec3fb3947
am: e45f9d1bf6

Change-Id: I1f835ecb9d4e8226ae9f4800a888f557b7999357
e45f9d1bf61845275136d9ccac8159b1e0c6db1c 22-Jul-2016 Adam Powell <adamp@google.com> Add View reveal on focus hint
am: 7ec3fb3947

Change-Id: Id3af05b3040821a94e3fd694d761fd317568fa5a
7ec3fb3947d1c22fc698026abc96cef47e7117d7 20-Jul-2016 Adam Powell <adamp@google.com> Add View reveal on focus hint

Provide a way for views to signal that they would prefer not
to have their parents scroll or otherwise rearrange when they
request focus to try to show the full focused view to the user.
In some cases this can be disruptive to the UX.

As of now, framework views do not respect this hint and custom
views such as those found in currently deployed support libs
don't either. The policy is left open to ViewParent subclasses
that implement requestChildFocus.

Bug 30256922

Change-Id: I55194de888fe2b8129be9a9aa21aa5e18cbb8296
/frameworks/base/core/java/android/view/View.java
70ebe6dc10092cafd537485d4dbb45a90bbbaf66 14-Jul-2016 Chris Banes <chrisbanes@google.com> Merge \\"Read translation and elevation attributes as floats\\" into nyc-mr1-dev am: 6487312544
am: 54224d40f9

Change-Id: Iaa17584e9309b38fcaf81de62e9e3c13c94a1721
54224d40f9af375b4ebe71014e8fec406e5b935f 14-Jul-2016 Chris Banes <chrisbanes@google.com> Merge \"Read translation and elevation attributes as floats\" into nyc-mr1-dev
am: 6487312544

Change-Id: I22bdfa3abbc85ffb8de7bef62fae0e2e68e2368a
b20891b08ad4604919b8dc50f58b6681025d652e 13-Jul-2016 Chris Banes <chrisbanes@google.com> Read translation and elevation attributes as floats

Since they're recorded as floats, we should keep the
precision from the attribute values.

BUG: 30109000
Change-Id: I07e6a3ff771198bcb24d32e3dd06a79f10e51a7e
/frameworks/base/core/java/android/view/View.java
04e15b8a2319bb451cd884c35df0dcf656c55f15 13-Jul-2016 Vladislav Kaznacheev <kaznacheev@google.com> Fix docs for View.DRAG_FLAG_GLOBAL am: 9a44eaec53 am: 9ac6a460c8
am: 9c225d60e0

Change-Id: I5876ea6cfe8e1711f446c9f9246770ff49fb7380
9c225d60e0f91dbdd7e3bd2228cdac48e7b506f2 13-Jul-2016 Vladislav Kaznacheev <kaznacheev@google.com> Fix docs for View.DRAG_FLAG_GLOBAL am: 9a44eaec53
am: 9ac6a460c8

Change-Id: I62af5eba6621e25c51cbcbfe7f9670e7be1449a3
8496bb82d2ade690ed1eceeaea0554c01534e42c 13-Jul-2016 Vladislav Kaznacheev <kaznacheev@google.com> Fix docs for View.DRAG_FLAG_GLOBAL
am: 9a44eaec53

Change-Id: I4b0548a4fb7bff0312d2cd73217f64f361216c50
9a44eaec5363f145142e542a2bc1c510886956e3 13-Jul-2016 Vladislav Kaznacheev <kaznacheev@google.com> Fix docs for View.DRAG_FLAG_GLOBAL

Document that cross-app drags only involve apps compiled for API 24 or later.

Bug: 30076806
Change-Id: Ia630f4623c23d787b52692ff1f6475408cefa177
/frameworks/base/core/java/android/view/View.java
cac99ef1664b4d41948a76abd1eee5d3c98b6753 29-Jun-2016 Martijn van Steenbergen <lava@google.com> Fix typos in View.AccessibilityDelegate Javadoc.

Change-Id: I83586da77d9c6d3bdc41188e7e9c671673227e9d
/frameworks/base/core/java/android/view/View.java
45faba516e200760e977e8ceb76f079ee8aa7415 28-Jun-2016 Stan Iliev <stani@google.com> Fix wording regarding ThreadedRenderer

ThreadedRenderer is not synonymous with hardware rendering, so
remove references to hardware rendering when referring to
ThreadedRenderer.

Change-Id: Ic66a482ccf05f556ebe6ec194ce4f858f75bbb8b
/frameworks/base/core/java/android/view/View.java
3d2667d676c81377c30e20c7811d6822b21394a7 25-Jun-2016 Yorke Lee <yorkelee@google.com> Merge \\\"Update documentation for View.startDragAndDrop\\\" into nyc-dev am: c63710ea48 am: c9bbca5682
am: 33b289ae3f

Change-Id: Id61a08be190c5d1b61392f5ceea646d7507a8c79
c9bbca5682440d1bad2dceacef925058124d020a 25-Jun-2016 Yorke Lee <yorkelee@google.com> Merge \"Update documentation for View.startDragAndDrop\" into nyc-dev
am: c63710ea48

Change-Id: I47ee9fa89edc5495616393a1c352677c8b990030
d092e3a4148bbffc19dd1feca6c2f3fcd16c196a 23-Jun-2016 Yorke Lee <yorkelee@google.com> Update documentation for View.startDragAndDrop

Bug: 29606395
Change-Id: Ibbe1a20c998986c7afffac6f5f4b25769f56a8f2
/frameworks/base/core/java/android/view/View.java
c516cde56d743a7967551fa175d5c76157227643 14-Jun-2016 Yorke Lee <yorkelee@google.com> Merge \\\"Check for detached view in drag-related APIs\\\" into nyc-dev am: cdc9d7bed9 am: 71ab239765
am: 23b3de425a

Change-Id: I01b319fc237737ee1f5c323795bc6dc7228a56cc
71ab23976571970afbd1632afdaddc413ceba2eb 14-Jun-2016 Yorke Lee <yorkelee@google.com> Merge \"Check for detached view in drag-related APIs\" into nyc-dev
am: cdc9d7bed9

Change-Id: I95d551726913c95d2806fe22ee93fcc24d1862c2
07452c37abf6cabb91c55ccad3e7f08f73e759ee 13-Jun-2016 Yorke Lee <yorkelee@google.com> Check for detached view in drag-related APIs

Bug: 29253539
Change-Id: I26285404ee15bb17e87ac23c67f7c3c6aaa2d968
/frameworks/base/core/java/android/view/View.java
93b5f434a4bc21220eed002697506854684dc019 16-May-2016 Michael Wright <michaelwr@google.com> Remove Pointer Capture API

The underlying implementation needs to be completely rethought. If a
process crashed while you were in pointer capture mode, you were
pretty much stuck in it. If the mouse happened to move outside of
your bounds right before you called the API, you'd never actually get
an event (whatever it was hovering over would). There's no easy way
for the system to tell you when you enter or exit this mode because
it doesn't actually track who the current request is from.

These are all solvable, but not in the N time frame. Maybe next time.

Bug: 26830970
Change-Id: I899649594c7ca8db5962fcdaa71c5b21d3aa42c3
/frameworks/base/core/java/android/view/View.java
e051f6f1fdb5e21cbed394d29dfcab5c642e4129 13-May-2016 Michael Wright <michaelwr@google.com> Rename PointerIcon and Pointer Capture APIs

This is a response to API council feedback.

Bug: 26830970
Change-Id: I1be541a53e3943d06640169671824f7daea15462
/frameworks/base/core/java/android/view/View.java
b56d6ec66fa2fb4e40841587de40f3c4cd22485f 03-Jun-2016 Jeff Sharkey <jsharkey@android.com> Maybe it will build this time?

Change-Id: Ibcd33f2c793d21ac91eb0f8fe537f4fec14aeb61
/frameworks/base/core/java/android/view/View.java
09cd5ea5788a9a0869e5e4fe22f302065bc65150 27-May-2016 Tenghui Zhu <ztenghui@google.com> Merge "Merge "Update the light center when the root view\'s layout changed" into nyc-dev am: e78ba24c17 am: 56d4dae9ec" into nyc-mr1-dev-plus-aosp
am: d09ad72e82

* commit 'd09ad72e82c9ca66eea4e2409589813e20d9a8bf':
Update the light center when the root view's layout changed

Change-Id: Ifb58bf9a0a0e3b11d9c59d2c04218d63c294f0ae
2f86522d7d0d18e3a5b038f70140079acd1fc7b9 27-May-2016 Tenghui Zhu <ztenghui@google.com> Merge "Update the light center when the root view\'s layout changed" into nyc-dev am: e78ba24c17
am: 56d4dae9ec

* commit '56d4dae9ec7503660bdd762e2e04f267d7f2704c':
Update the light center when the root view's layout changed

Change-Id: Ifedcb88adb38eb23ad82b7836c5de5f738c80c10
b076ee0a4290bc12c7eb1f959551c62448d74a81 26-May-2016 Teng-Hui Zhu <ztenghui@google.com> Merge "Update the light center when the root view\'s layout changed" into nyc-dev
am: e78ba24c17

* commit 'e78ba24c176fd6a0c54eaf7e52be545952ba1ab7':
Update the light center when the root view's layout changed

Change-Id: I03e6d183e2a98b4d08f1e5be74447ddf942e8337
e78ba24c176fd6a0c54eaf7e52be545952ba1ab7 26-May-2016 Tenghui Zhu <ztenghui@google.com> Merge "Update the light center when the root view's layout changed" into nyc-dev
4f6ae7bbaa4654e14d70e9fa503ceb713c90c342 26-May-2016 Michael Wright <michaelwr@google.com> Merge "DO NOT MERGE Remove Pointer Capture API" into nyc-dev
am: c396f0f70e

* commit 'c396f0f70ef40ea0fb42a0872a13f4c4e9a6a5f0':
DO NOT MERGE Remove Pointer Capture API

Change-Id: Iede50a709849ed27cb9723a565b946e00fb23be7
c396f0f70ef40ea0fb42a0872a13f4c4e9a6a5f0 26-May-2016 Michael Wright <michaelwr@google.com> Merge "DO NOT MERGE Remove Pointer Capture API" into nyc-dev
3baaea4e5e1e201e4a2c147ceed187d185b456fa 25-May-2016 Mady Mellor <madym@google.com> Merge "Add Samsung print recommendation plugin." into nyc-dev am: b4a45472bb am: 8bfb5b971d
am: 27f54d6001

* commit '27f54d600109a68c6bf42848118448f1d59727e1':
Changes based on API council feedback for performContextClick

Change-Id: I86569c06e5b587ddd9172e4e8e2d8efa98f209d4
8bfb5b971d46daecf72c7c8e179279fb9206ad00 25-May-2016 Mady Mellor <madym@google.com> Merge "Changes based on API council feedback for performContextClick" into nyc-dev
am: 7c17e70f2f

* commit '7c17e70f2f795ca06006ff2560c8b8211ce1dd52':
Changes based on API council feedback for performContextClick

Change-Id: Ibf53f8081db8b847d18eaa8fee983b677b62f9bc
4f3ab931478ea14cf4cc19f3acf6eb6040635225 25-May-2016 Mady Mellor <madym@google.com> Changes based on API council feedback for performContextClick

Added an overloaded version with (float x, float y).

Fixes: 28295818
Change-Id: I41c2bf225964436655986b3ad4d0c630c658e38b
/frameworks/base/core/java/android/view/View.java
514c5ef8d5774d8820ed1bf90fe53af1606cf106 25-May-2016 Aurimas Liutikas <aurimas@google.com> Add missing @Deprecated annotations.

Add missing @Deprecated annotations for methods with @deprecated tag
in javadoc.

Change-Id: I35b78ccb97832d86b914c21a300444ba29e33844
/frameworks/base/core/java/android/view/View.java
1831ca8f04e117a49227e1b3dc0c8ba1dde06cd5 19-May-2016 Michael Wright <michaelwr@google.com> Merge "DO NOT MERGE Rename PointerIcon and Pointer Capture APIs" into nyc-dev
am: a1e0cebf3a

* commit 'a1e0cebf3a18ac097d370e21d698e079f974bfff':
DO NOT MERGE Rename PointerIcon and Pointer Capture APIs

Change-Id: I20532a3148a99d4ea91ba7dc050f8669d5f19400
778e3b91acad6da04341d439f0c66a4fd09def4f 16-May-2016 Michael Wright <michaelwr@google.com> DO NOT MERGE Remove Pointer Capture API

The underlying implementation needs to be completely rethought. If a
process crashed while you were in pointer capture mode, you were
pretty much stuck in it. If the mouse happened to move outside of
your bounds right before you called the API, you'd never actually get
an event (whatever it was hovering over would). There's no easy way
for the system to tell you when you enter or exit this mode because
it doesn't actually track who the current request is from.

These are all solvable, but not in the N time frame. Maybe next time.

Bug: 26830970
Change-Id: I03efd63c499b86dc278491ca3284566c1965581f
/frameworks/base/core/java/android/view/View.java
f9d9ce7705475874c82af04eb9b208a7fb556792 13-May-2016 Michael Wright <michaelwr@google.com> DO NOT MERGE Rename PointerIcon and Pointer Capture APIs

This is a response to API council feedback.

Bug: 26830970
Change-Id: Ia2d284b5c1ab8365bedfdc37d129be4b8146036b
/frameworks/base/core/java/android/view/View.java
16b53c67c1be40c13359612397de19995812decc 13-May-2016 Yigit Boyar <yboyar@google.com> Merge "Respect add focusables flags" into nyc-dev
am: 4c6eeb67a2

* commit '4c6eeb67a232fdbca43513d8414e38a55c40d75e':
Respect add focusables flags

Change-Id: I63af32dd31750d8af612a4c562ec1e1930129151
2757128940c35d8007e1817b32e7128e2569ad6e 13-May-2016 Teng-Hui Zhu <ztenghui@google.com> Update the light center when the root view's layout changed

b/26208900

Change-Id: I0594b2801d54a489e7d858b7a0f9549fcc30f9a0
/frameworks/base/core/java/android/view/View.java
4c6e9830006f7aa67b5df33b896ef4a4fb8c7e92 13-May-2016 Yigit Boyar <yboyar@google.com> Respect add focusables flags

This CL fixes 2 bugs in View's addFocusables implementations.

1) addFocusables(list, dir) method was always returning focusables in
touch mode even if the device is not in touch mode.

2) addFocusables(list, dir, mode) was not respecting the provided mod.

Bug: 28745577
Change-Id: I9b9e5af27f8f5b1bb3cc601584fdad7c73e54a5d
/frameworks/base/core/java/android/view/View.java
7dc710d5644609b1f004c69ab53c9f2f57d7ac99 27-Apr-2016 Bo Liu <boliu@google.com> Merge "Revert "Expose setDrawGLFunctionDetachedCallback to webview"" into nyc-dev
am: 08ca2e3

* commit '08ca2e3a7593ced4967c56709a1fe675408d42dc':
Revert "Expose setDrawGLFunctionDetachedCallback to webview"

Change-Id: I4bba52ddc4b89273eceb2627facbb9091eb341c0
08ca2e3a7593ced4967c56709a1fe675408d42dc 27-Apr-2016 Bo Liu <boliu@google.com> Merge "Revert "Expose setDrawGLFunctionDetachedCallback to webview"" into nyc-dev
27e0f3562027664cba20225403810fecea84fc83 27-Apr-2016 Oren Blasberg <orenb@google.com> Merge "Accommodate NaN in new context menu methods." into nyc-dev
am: a86d1e0

* commit 'a86d1e0b5938cee1d76aefcc1e8967c353ea922d':
Accommodate NaN in new context menu methods.

Change-Id: I40a1d6b55b7f9cb422d35c1f0881efccd36cc290
a86d1e0b5938cee1d76aefcc1e8967c353ea922d 27-Apr-2016 Oren Blasberg <orenb@google.com> Merge "Accommodate NaN in new context menu methods." into nyc-dev
0f360d80adb6c16064b5717f552aa2704bcddb45 26-Apr-2016 Jaewan Kim <jaewan@google.com> Merge "PIP: Send KEYCODE_WINDOW to app first if PIP isn\'t exist" into nyc-dev
am: bdc4700

* commit 'bdc4700155f5ff89e213cb0e9efe49897b888f7d':
PIP: Send KEYCODE_WINDOW to app first if PIP isn't exist

Change-Id: Ic77538cac9562acf878c7c56f443a691e9d0b45f
f0fd218382b96f052d22a2e8ee00510cc23a6d1e 20-Apr-2016 Jaewan Kim <jaewan@google.com> PIP: Send KEYCODE_WINDOW to app first if PIP isn't exist

Bug: 27954955
Change-Id: I517e378d5c1672ac0eb87bdf4375b7d733276e58
/frameworks/base/core/java/android/view/View.java
bdc696607baff34fa862cc910060d992a49e6ef2 23-Apr-2016 Chris Banes <chrisbanes@google.com> Merge "Make AbsSavedState read using given ClassLoader" into nyc-dev
am: b02d51b

* commit 'b02d51b3d31b1a49ddc7c7e7db97b576d6e4f78f':
Make AbsSavedState read using given ClassLoader

Change-Id: If0e2679ca978a0423ff26e7b0f416d09c50ab70b
b02d51b3d31b1a49ddc7c7e7db97b576d6e4f78f 23-Apr-2016 Chris Banes <chrisbanes@google.com> Merge "Make AbsSavedState read using given ClassLoader" into nyc-dev
d443f36957a2f8a6aa295bd88a5bf7886d56a064 22-Apr-2016 Bo Liu <boliu@google.com> Revert "Expose setDrawGLFunctionDetachedCallback to webview"

This reverts commit ee34ef1633592e31d4ea99c3a41492a82a970c11.

This API is no longer needed by webview since 51.0.2704.22.
So remove this API. Note that this system API has never shipped
so it's ok to simply remove it.

Original description:
> Expose setDrawGLFunctionDetachedCallback to webview
>
> Add WebViewDelegate.setDrawGLFunctionDetachedCallback system API that's
> used for webview to receive the functor detach callback.
>
> BUG: 27709981
> Change-Id: Ie6b5e445c0090a181f94fcd2ec1ea77095c9cb03

BUG: 27709981
Change-Id: I9920dbedc6a280b4a19a8715832c4d2f64a7a7be
/frameworks/base/core/java/android/view/View.java
2e9c311abdd2bcb0baba738659055cab9a923d5b 22-Apr-2016 Andres Morales <anmorales@google.com> Merge "FrameMetricsListener API council changes" into nyc-dev
am: 82ee675330

* commit '82ee6753305b484d778743882fb827c6b73d82c1':
FrameMetricsListener API council changes

Change-Id: I8ea921d0f7d4658ee0b9827e9b38637c9d370922
82ee6753305b484d778743882fb827c6b73d82c1 22-Apr-2016 Andres Morales <anmorales@google.com> Merge "FrameMetricsListener API council changes" into nyc-dev
02e81a094f7b9a374b0bf54bd621566f458fe7b5 22-Apr-2016 Chris Banes <chrisbanes@google.com> Make AbsSavedState read using given ClassLoader

Currently it does not use a ClassLoader to read
any super state, which can cause crashes for
custom views using the class but on a different
class loader.

BUG: 27790353
Change-Id: I4f4d1d72f213f2481606673643c0e56c23d34bc6
/frameworks/base/core/java/android/view/View.java
d908c6294dc23b71575f74d4b49d2aacd982a427 20-Apr-2016 Andres Morales <anmorales@google.com> FrameMetricsListener API council changes

Bug: 28296251
Change-Id: I8fe0d8b37c0a3220666570f242f9c20fa16b78ab
/frameworks/base/core/java/android/view/View.java
bd048c598dbf84552f579a05624ae844ff203ed5 21-Apr-2016 Vladislav Kaznacheev <kaznacheev@google.com> Merge "Add JavaDoc for View.updateDragShadow" into nyc-dev
am: 28609360cf

* commit '28609360cfe25446ab5b0ba165af363378b3d805':
Add JavaDoc for View.updateDragShadow

Change-Id: I2d5488d78f4095cdfa3558dc0a4e3a785c420648
28609360cfe25446ab5b0ba165af363378b3d805 21-Apr-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add JavaDoc for View.updateDragShadow" into nyc-dev
ea4d221c42e3720e0076a0b150fc7bbb157472fc 20-Apr-2016 Vladislav Kaznacheev <kaznacheev@google.com> Add JavaDoc for View.updateDragShadow

Bug: 28296402
Change-Id: I2aec5ab9932c3177cb08dbf1210abfd949e0dab7
/frameworks/base/core/java/android/view/View.java
23e282d297193655ce5a4b716312f0a985b27d50 20-Apr-2016 Oren Blasberg <orenb@google.com> Accommodate NaN in new context menu methods.

Bug: 28296401
Change-Id: I0ae6067e1ae01c342c1b39d6f64db5dcd02492d5
/frameworks/base/core/java/android/view/View.java
c0d2c43a22c9a0feda8d651d432aa3893e0cf952 20-Apr-2016 Trevor Johns <trevorjohns@google.com> Merge changes from topic \'merge_docs_nyc-dev\' into nyc-dev
am: 59c9a93

* commit '59c9a93fc268e226495d4ee8cf7c507c2ea2c433':
Remove links to createAndInitializeUser() and createUser()
Resolve merge conflicts of a5060ee to nyc-dev

Change-Id: Iddc9419069d8f5d555baf0c1ef4b2f2ebf75c370
59c9a93fc268e226495d4ee8cf7c507c2ea2c433 20-Apr-2016 Trevor Johns <trevorjohns@google.com> Merge changes from topic 'merge_docs_nyc-dev' into nyc-dev

* changes:
Remove links to createAndInitializeUser() and createUser()
Resolve merge conflicts of a5060ee to nyc-dev
682c24e22811d4ee17ae1cd61bf255c3f7e722b7 12-Apr-2016 Trevor Johns <trevorjohns@google.com> Resolve merge conflicts of a5060ee to nyc-dev

This undoes the automerger skip which occured in
commit e740c84dc32180214a7fd157105d6c18d30408ee and
replays it as a standard (NOT -s ours) merge.

Change-Id: If5a47be26f73d6a0735c425cd66310a3e2a89086
/frameworks/base/core/java/android/view/View.java
8c743b0ee979b9c56e595f78f2ddfba8970888be 14-Apr-2016 Chris Craik <ccraik@google.com> Merge "Destroy drawing cache when switching layer type" into nyc-dev
am: 2344c6a

* commit '2344c6a2ae0d6ccd650a13aaedb403fa7e3ea579':
Destroy drawing cache when switching layer type

Change-Id: I6b455a94c9fa8219201cc32099493fecf82afafc
2344c6a2ae0d6ccd650a13aaedb403fa7e3ea579 14-Apr-2016 Chris Craik <ccraik@google.com> Merge "Destroy drawing cache when switching layer type" into nyc-dev
68be3529e442cdab1bc544d1026144e0b13f0b36 13-Apr-2016 Chris Craik <ccraik@google.com> Destroy drawing cache when switching layer type

bug:27099358

Change-Id: Ia308dd817799b6d64a802df211c39efc25c99e7e
/frameworks/base/core/java/android/view/View.java
c3e096953db4d933837177177a22c98d54e40683 13-Apr-2016 Adam Powell <adamp@google.com> Merge "Dispatch View#onVisibilityAggregated to views becoming invisible" into nyc-dev
am: c4bf6e4

* commit 'c4bf6e43d14ffe8d719227ddcc66e9b66dba005a':
Dispatch View#onVisibilityAggregated to views becoming invisible

Change-Id: I2f97021a5bdc545b3c4cf516d93e5e4763eaec7d
fa58a8daa6011dc6b23fd66f41a9eb10f596a70d 12-Apr-2016 Adam Powell <adamp@google.com> Dispatch View#onVisibilityAggregated to views becoming invisible

When a view becomes newly invisible/gone via setFlags, its visibility
state will have already changed by the time we
dispatchVisibilityAggregated. Since we already do visibility filtering
in the ViewGroup override when we traverse to child views, permit the
normal View implementation to dispatch onVisibilityAggregated if we're
not visible and dispatching visibility false.

Bug 28123146

Change-Id: I528dffe95d2057ef938508b9fb4219c5338b060c
/frameworks/base/core/java/android/view/View.java
618fda27082bd184ee031f9a2b9945b7f4aa1cfc 09-Apr-2016 Phil Weaver <pweaver@google.com> Merge "Reduce unnecessary accessibility cache clearing." into nyc-dev
am: af93306

* commit 'af93306a3db9c0a04d74809901cc297834bbba87':
Reduce unnecessary accessibility cache clearing.

Change-Id: Iea1ed7e894d8e4416e5d9c64feb226343036e8f8
e37cfab6c65ec0997b07089e70fa0ad47d2fbd83 08-Apr-2016 Phil Weaver <pweaver@google.com> Reduce unnecessary accessibility cache clearing.

Tracking if accessibility focus is being cleared because it is being
set to another view in the same window. In this case, leave
accessibility focus on the window.

This change greatly reduces the amount of cache re-indexing.
Previously we flushed the cache every time accessibility focus moved.

Bug: 28077283
Change-Id: If80899d36e7f58b22635f844bdd4ea37a55b875e
/frameworks/base/core/java/android/view/View.java
1dac79b2ba1d0e3aa95aa9b89c643e98d40f447f 07-Apr-2016 Vladislav Kaznacheev <kaznacheev@google.com> Merge "Rename View.DragShadowBuilder#onProvideShadowMetrics parameters" into nyc-dev
am: 78740ad

* commit '78740add9b0bce8bf001fa6f1a064bbc1151c355':
Rename View.DragShadowBuilder#onProvideShadowMetrics parameters

Change-Id: If96b5ebb8658d68b0f058216d23037a0f20a25f1
78740add9b0bce8bf001fa6f1a064bbc1151c355 07-Apr-2016 Vladislav Kaznacheev <kaznacheev@google.com> Merge "Rename View.DragShadowBuilder#onProvideShadowMetrics parameters" into nyc-dev
82fdb2e9d1c5a3e8fe1c38d705c6038690258e16 06-Apr-2016 Vladislav Kaznacheev <kaznacheev@google.com> Rename View.DragShadowBuilder#onProvideShadowMetrics parameters

Added 'out' prefix to the two out parameters of this method.

Bug: 27810738
Change-Id: I2825cc90c2d2a1786578be31aff250ea6673ff9f
/frameworks/base/core/java/android/view/View.java
3844affcef076c72a1990540babc885f67580050 05-Apr-2016 Chris Craik <ccraik@google.com> Merge "Fix software layer alpha" into nyc-dev
am: cd6ea77d

* commit 'cd6ea77d07204d2ff5e1a0264dc24db215de8614':
Fix software layer alpha

Change-Id: Ic0e8d3d5fa9e290f036d8e4fc59ee460b03020c9
cd6ea77d07204d2ff5e1a0264dc24db215de8614 05-Apr-2016 Chris Craik <ccraik@google.com> Merge "Fix software layer alpha" into nyc-dev
cfa6dade73070ef27683303ae88c2b7479ae6b03 05-Apr-2016 Chris Craik <ccraik@google.com> Fix software layer alpha

Fixes: 27429404

Software layers must combine layerpaint alpha, if present, with view
alpha.

Change-Id: If9c7dcb53ab8754b4e123cf9cc332a566fd792c4
/frameworks/base/core/java/android/view/View.java
acbcf0c6879ff960e48c5cc4333ebe9f2881aca9 05-Apr-2016 Yohei Yukawa <yukawa@google.com> Merge "Unhide View#dispatch{Start,Finish}TemporaryDetach()" into nyc-dev
am: 807c3a8

* commit '807c3a828b97e6d619f2dfdfde2f97efc873f6fe':
Unhide View#dispatch{Start,Finish}TemporaryDetach()

Change-Id: I1e34c5dd1ce5d942def740224df56db35e0c7d95
807c3a828b97e6d619f2dfdfde2f97efc873f6fe 05-Apr-2016 Yohei Yukawa <yukawa@google.com> Merge "Unhide View#dispatch{Start,Finish}TemporaryDetach()" into nyc-dev
05d7c72d17a72e113a7629bd51aeb6131e59feb1 04-Apr-2016 Bo Liu <boliu@google.com> Merge "Expose setDrawGLFunctionDetachedCallback to webview" into nyc-dev
am: 2f1eb93

* commit '2f1eb93354d540efcb83e784ca28f6e91eca61d1':
Expose setDrawGLFunctionDetachedCallback to webview

Change-Id: Ib47e6b22f5229565c043c4770d2f6f421772c203
ee34ef1633592e31d4ea99c3a41492a82a970c11 01-Apr-2016 Bo Liu <boliu@google.com> Expose setDrawGLFunctionDetachedCallback to webview

Add WebViewDelegate.setDrawGLFunctionDetachedCallback system API that's
used for webview to receive the functor detach callback.

BUG: 27709981
Change-Id: Ie6b5e445c0090a181f94fcd2ec1ea77095c9cb03
/frameworks/base/core/java/android/view/View.java
6823bc1a0adacf4cf9949f2e807a55f38c5313f0 01-Apr-2016 Adam Powell <adamp@google.com> Merge "Revert "Only call Drawable.setVisible(false) for visible outgoing drawables"" into nyc-dev
am: 991989f

* commit '991989f3183195cdadf308450eff8b3e9266fdab':
Revert "Only call Drawable.setVisible(false) for visible outgoing drawables"

Change-Id: I442d2f712f25dec0702662950614fb75f0b7b2e6
991989f3183195cdadf308450eff8b3e9266fdab 01-Apr-2016 Adam Powell <adamp@google.com> Merge "Revert "Only call Drawable.setVisible(false) for visible outgoing drawables"" into nyc-dev
24df931e9e8c708fc605cd8e76a3ffd9ce5f6c77 01-Apr-2016 Yohei Yukawa <yukawa@google.com> Unhide View#dispatch{Start,Finish}TemporaryDetach()

In order to fix Bug 18920212, we have to track when a View enters
temporarily detached state and when it exits from that state. To do
that, ListView needs to use View#dispatchStartTemporaryDetach() instead
of directly calling View#onStartTemporaryDetach() because there is no
guarantee that existing applications have internally followed Call-Super
pattern.

With this CL, we are going to expose temporary detach state and its
dispatching methods as public APIs. Major changes are:
1. ListView's indirect children will start receiving temporary
dispatch callbacks. Previously only direct children have received
View#on{Start, Finish}TemporaryDetach() callbacks.
2. TextView can no longer assume that ListView never calls
View#View#dispatchStartTemporaryDetach() but directly call
View#onStartTemporaryDetach() instead. See the commit message
of [1] for details.

This also enables us to do the following fixes, which will be handled in
subsequent CLs.
A. ViewCompat support lib is finally able to rely on temporary
dispatch mechanism without reflection.
B. InputMethodManager is now able to ignore focus-in events from
temporarily detached Views. This will be done in the next CL [2].

[1]: a440b002aa59e1455bdfa2c5a1ca51c74bbc19ac
[2]: Ia79bbd8468f768d546354382b47b39dd31ef7bb5

Bug: 18920212
Bug: 27905921
Change-Id: If8f780f8b71754f7533a65097304113ae1f5cf12
/frameworks/base/core/java/android/view/View.java
4b2e12cc9e5ac5111a2d581868bbf4df8078ed23 01-Apr-2016 Adam Powell <adamp@google.com> Revert "Only call Drawable.setVisible(false) for visible outgoing drawables"

This reverts commit 35e2ea02035e8b7eb7de5d7a1d51bf030dcb5b76.

This patch was based on two different wrong assumptions.

Bug 27822069

Change-Id: I20b1017f91f3fce3c23dd8446459d6f3e3150a48
/frameworks/base/core/java/android/view/View.java
3c77e5aa9d219193ba8a8e5f33ad23e63f55d4f5 31-Mar-2016 John Reck <jreck@google.com> Merge "Add a callback for rendernode parentcount=0" into nyc-dev
am: bbb4c2e

* commit 'bbb4c2eb2e871977289a9c48f414962e46b56ddc':
Add a callback for rendernode parentcount=0

Change-Id: I8168b028ce61413da8ecea76e6531c5dde9ddb46
44b49f070aafe8ad44efae87341121cce49ff11c 25-Mar-2016 John Reck <jreck@google.com> Add a callback for rendernode parentcount=0

Bug: 27709981
Fixes: 22565656

Change-Id: I1cb4461baf9069dc4e7ca6de10d5862578c107f4
/frameworks/base/core/java/android/view/View.java
761f59c19f1a0e527bb533df16abee7fac166dbd 31-Mar-2016 sergeyv <sergeyv@google.com> Merge "Hide children in ViewGroup.createSnaphost via internal flag and add test for it." into nyc-dev
am: 394d3df

* commit '394d3dfb2d9ccd2ca2fd7aad06ef2e9a8458a0c7':
Hide children in ViewGroup.createSnaphost via internal flag and add test for it.

Change-Id: Iab1265b6a4c4ff5291259f7e5d9b96c217ee3141
394d3dfb2d9ccd2ca2fd7aad06ef2e9a8458a0c7 31-Mar-2016 Sergei Vasilinetc <sergeyv@google.com> Merge "Hide children in ViewGroup.createSnaphost via internal flag and add test for it." into nyc-dev
b37d44e26778bcaeb02a9b73997ffcb97ff7328f 30-Mar-2016 sergeyv <sergeyv@google.com> Hide children in ViewGroup.createSnaphost via internal flag and add test for
it.

bug:27747923
Change-Id: I079b52b176b920bfa4c6749be31fbcd96a4dc42c
/frameworks/base/core/java/android/view/View.java
927e3c7a60cacee4cb71dca6ba9359a4b52a5a5d 29-Mar-2016 Chet Haase <chet@google.com> Merge "Add setHasOverlappingRendering() method" into nyc-dev
am: fd48a32

* commit 'fd48a321c9be5e46224222c46be8667bec6f631a':
Add setHasOverlappingRendering() method

Change-Id: Ifbb72d9f334c60e1b0d964aab650dc85cba9890f
e113d6a669edffb2f4095eb4bd70ea58426f9f04 29-Mar-2016 Markus Michler <mmichleraosp@gmail.com> Merge "Fix javadoc for View.getMeasuredHeight() and View.getMeasuredHeightAndState()" am: 7160459
am: ae975ab

* commit 'ae975aba7372b18cbf7f30cdc4b74cff32cc3558':
Fix javadoc for View.getMeasuredHeight() and View.getMeasuredHeightAndState()

Change-Id: I565ec862ff883bac9894aeec6fc63b7ce323e00c
71604596117c02a885da356cd0015c29493e48bc 29-Mar-2016 Adam Lesinski <adamlesinski@google.com> Merge "Fix javadoc for View.getMeasuredHeight() and View.getMeasuredHeightAndState()"
15b6ba585955f6d468b4acc1b72e58099fcfe485 23-Mar-2016 Chet Haase <chet@google.com> Add setHasOverlappingRendering() method

View.hasOverlappingRendering() is an important performance tweak that
subclasses can override to do the right thing return false when appropriate
to avoid expensive operations when view is translucent).
But this requires subclassing View to get this behavior.

This new API allows the property to be set from outside, enabling
standard views to have this behavior set. When the new method is called,
the behavior will derive from whatever it was set to. Otherwise, it
will default to the old/overriden behavior.

Issue #16561361 Make hasOverlappingRendering settable from outside/XML

Change-Id: If0fbc8667cdb82b1d85e795e782716a07196f3c0
/frameworks/base/core/java/android/view/View.java
e66be622f66b5770b686da608bbf3577261c1d72 28-Mar-2016 sergeyv <sergeyv@google.com> Fix NPE while using mLayerPaint

bug:27873847
Change-Id: I9bfae72dfa9bda45fdeb94544b7656e2584f29f6
/frameworks/base/core/java/android/view/View.java
342a7e6a7cdf0f3ddf9302c0fd9d8a73ba98bb7f 25-Mar-2016 sergeyv <sergeyv@google.com> Clean up setLayerType and setLayerPaint

bug:21755299
Change-Id: I8f0953ccfc3d743abdecc8ec228ed3e1b6718c3c
/frameworks/base/core/java/android/view/View.java
fcd7e80b21cc9db6be00e37371401ea1d0938796 10-Mar-2016 Clara Bayarri <clarabayarri@google.com> Keyboard Shortcuts: plumb deviceId through

Bug: 27673736
Change-Id: Ie72807aa8c2bfd142b081a6a915e101c16d31473
/frameworks/base/core/java/android/view/View.java
35e2ea02035e8b7eb7de5d7a1d51bf030dcb5b76 22-Mar-2016 Adam Powell <adamp@google.com> Only call Drawable.setVisible(false) for visible outgoing drawables

In framework views where we're handling the new visibility aggregated
call we only update the drawable visibility when we're attached to a
window. For old outgoing drawables being replaced, gate this on
whether the drawable is already marked visible instead.

This catches a case where views being inflated might set drawables in
in a superclass constructor and have them replaced in a later
constructor. Gating the call into a drawable that might invoke its
callback (the view being constructed) avoids potential problems where
overridden methods are called unexpectedly on a view subclass that has
not finished running its constructor.

This is a better check than isAttachedToWindow, as isAttachedToWindow
will return false if the view has been temporarily detached from its
parent by a view-recycling container. In those cases, the view would
not correctly update the outgoing drawable.

Bug 27461617

Change-Id: I733a2dd3e3df0a8d80d5dc542ca7b30064159d5d
/frameworks/base/core/java/android/view/View.java
43a21c0500ead88577c8f07975a71c5f4d8474bc 21-Mar-2016 Alan Viverette <alanv@google.com> Set drawable callbacks last

Bug: 27554777
Change-Id: I3ef9981bfafcb2a674304c9da10e4f5b1e66f932
/frameworks/base/core/java/android/view/View.java
7fb0d094559b9ae431c3b520721ebdb3c111c4c2 18-Mar-2016 Chris Craik <ccraik@google.com> Merge "Rebuild outline when setBackground is called." into nyc-dev
96bacd186e5381d27181cb3414003a74e2d2c3b7 18-Mar-2016 Chris Craik <ccraik@google.com> Rebuild outline when setBackground is called.

bug:27505848

Also correctly register damage from profiling bars.

Change-Id: I9550c2742eb833350a077ca48eccf9b584083a1e
/frameworks/base/core/java/android/view/View.java
9c146bfee788c5b5d95cc732916be1a0d1ecd162 16-Mar-2016 Adam Powell <adamp@google.com> Refinement for onVisibilityAggregated

Change the args for onVisibilityAggregated to a single boolean for
visibility to the user. Also fix an ordering bug that could trigger a
view background drawable call to setVisible before the view would
respond true to verifyDrawable, which caused issues with some apps.

Bug 27461617
Bug 27689884

Change-Id: I58bdc7c4364264f7fa0863689ba2b76df904ef81
/frameworks/base/core/java/android/view/View.java
41d9690c3e3588dd273308279b9e609c2c6da3c7 15-Mar-2016 Adam Powell <adamp@google.com> Add View#onVisibilityAggregated

There's a common misconception (even across the framework) that
View#onVisibilityChanged determines and reports visibility on 'this'
up to the changed view and the total visibility within the
window. Knowing this is useful for things like starting/stopping
animations. onVisibilityChanged only reports the visibility for the
specific changed view, not the effects that would have down the tree.

Add onVisibilityAggregated to report what some code thought it was
getting already, and move ImageView and ProgressBar over to using it.

Bug 27461617

Change-Id: I433f41de453e27a53f907f1d9805350f30f31de9
/frameworks/base/core/java/android/view/View.java
f6d87ec193f17e8dad82c9994ba7a58e975d364b 11-Mar-2016 Alan Viverette <alanv@google.com> Add consistent @NonNull annotations for drawable callbacks

Bug: 27599515
Change-Id: I33fdc5392302403bfff9cc74a8226173ec962af6
/frameworks/base/core/java/android/view/View.java
d8dfbef6b256777dfc0424bbfa5f0f1ce1c89130 02-Mar-2016 Markus Michler <mmichleraosp@gmail.com> Fix javadoc for View.getMeasuredHeight() and View.getMeasuredHeightAndState()

Change-Id: I772bb9fc2f09bec31276e859d21735dc4282c1f3
/frameworks/base/core/java/android/view/View.java
8175846ed686077736c985f0ae4d236b7a4c647c 29-Feb-2016 Jorim Jaggi <jjaggi@google.com> Fix popup window calculation for multi-window

If ignoreBottomDecorations=true, the display size was extracted from
the resources. However, this didn't work if the parent window was in
multi-window, as all the calculations went wrong. Instead, introduce
View.getWindowDisplayFrame which returns the "full" frame of the task
the window is currently in, without any insets, and use that to
calculate the bottom edge.

Bug: 26255254
Change-Id: I8b235b335775022ae399ee082d1200aa76cc047c
/frameworks/base/core/java/android/view/View.java
6d2b3ac67c9d308da89fd98ef50dd9f47f8b29bd 25-Feb-2016 Seigo Nonaka <nona@google.com> Merge "Show selection handles at the correct position for view transformation" into nyc-dev
0ffd49cbe0ab4c13fd5528abacade898a8cff481 13-Feb-2016 Jorim Jaggi <jjaggi@google.com> Always consume bottom insets when navigation bar is force shown

When an app requests SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION but we
force show the navigation bar, we need to treat for the app like
there is no virtual navigation bar on the device. Because if you
combine it with FLAG_HIDE_NAVIGATION, you'd expect the navigation
bar gets hidden but it doesn't, so there could be content that
overlaps with the navigation bar.

Bug: 27157904
Change-Id: I088e02eae2e723c35e9cb4873de6b1325458533b
/frameworks/base/core/java/android/view/View.java
2f229ca27bf463bb76c7b2663b90057aa25ad883 18-Feb-2016 Seigo Nonaka <nona@google.com> Show selection handles at the correct position for view transformation

The selection handles are implemented based on PopupWindow hence it is
necessary to calculate the transformed location from the TextView's
local coordinates.

This CL only addresses the selection handle locations. Many
functionalities (e.g. selection handle moving direction, handle angle)
doesn't work on transformed view since many components are calculated
on the TextView's local coordinates.

Bug: 24902578
Change-Id: Iaa5fd2812969d097e3bf3219a818ffbc67aaef54
/frameworks/base/core/java/android/view/View.java
527905e195e28df970b63b2e4a9dcdc0464e547c 17-Feb-2016 Vladislav Kaznacheev <kaznacheev@google.com> Do not call IWindowSession.updatePointer icon from pointer handler

Currently if View.setPointerIcon is called from inside a pointer
event handler this will cause a redundant round-trip to the server
which can be easily avoided.

Bug: 27107871
Change-Id: Ia641818c3700c0d96d0c32e020b91af58dccfa2a
/frameworks/base/core/java/android/view/View.java
f19e3434f80977d6f8313a2057bca161c4f777c5 17-Feb-2016 Keisuke Kuroyanagi <ksk@google.com> Merge "Make scrollbar draggable only when it's visible." into nyc-dev
989b58a633ed6f2192a172855525d86477452884 10-Feb-2016 Vladislav Kaznacheev <kaznacheev@google.com> Update pointer icon when View.setPointerIcon is called

Currently the updated pointer icon is only displayed after
the next mouse move.

Bug:27107871
Change-Id: Ieed57b07fe44699735179cf57968a9bb08981396
/frameworks/base/core/java/android/view/View.java
fd32b894ff42fc20b373410b66ae924287537c47 11-Feb-2016 Phil Weaver <pweaver@google.com> Merge "Fix ViewPager crash for a11y z order." into nyc-dev
4354b340bbc105c556f84202699050d7fc225a25 10-Feb-2016 Phil Weaver <pweaver@google.com> Fix ViewPager crash for a11y z order.

The ViewPager requires measure/layout to initialize a list used
in getChildDrawingOrder, and crashes when this method is called
too early. Protecting against that by assigning a default value
to the drawing order value of AccessibilityNodeInfo if the View
bounds have not yet been set.

Bug: 27076826
Change-Id: Ic42dbb81d15340f6b021626b1c27ad5abce7e7d1
/frameworks/base/core/java/android/view/View.java
95589569d3f8f5b81104ab137ded6ea557f142d5 10-Feb-2016 Keisuke Kuroyanagi <ksk@google.com> Make scrollbar draggable only when it's visible.

Currently, scrollbar is mouse draggable even when it's not visible.
It's confusing. Scrollbar shouldn't be draggable when the View don't
want to show scrollbar. This CL fixes it.

Bug: 20016455
Change-Id: Ibada1f01fb4821cdd834c9f9c0dafa02f5530e60
/frameworks/base/core/java/android/view/View.java
7364905303de42141f7bf72eeb3ba0cac7cc7370 09-Feb-2016 Andres Morales <anmorales@google.com> Merge "updates to FrameStatsObserver API" into nyc-dev
910beb8f5d9042163e2ad0dbb744d9f147db9604 03-Feb-2016 Andres Morales <anmorales@google.com> updates to FrameStatsObserver API

- Rename to FrameMetrics to avoid collision with existing
android.view.FrameStats class
- Make FrameMetricsObserver implementation detail,
exposing FrameMetricsListener interface as public API
and wrapping in FrameStatsObserver to maintain state
- Remove dropped frame count call, in favor of passing as
parameter to callback method.
- Move away from raw timestamp access in favor of Metric IDs
which represent higher-level, more stable stages in a frame
lifecycle and match the categories exposed in the onscreen
bars.
- Support many-to-many Window<->FrameMetricsListener relationship

Change-Id: I00e741d664d4c868b1b6d0131a23f8316bd8c5c2
/frameworks/base/core/java/android/view/View.java
046bd306e7b6609dff5a15467436e8df4dc296a8 08-Feb-2016 John Reck <jreck@google.com> Fix drawing cache on sw drawing

Bug: 26644517
Change-Id: Ie087a05e1dbab75040ca39e0c43df985f8afed3e
/frameworks/base/core/java/android/view/View.java
1ad6ec205414e5848707b9212c4ae12a4b81d665 04-Feb-2016 Vladislav Kaznacheev <kaznacheev@google.com> Support resource references in pointerShape attributes.

Previously pointerShape value could only be one of the
system pointer shape names (such as "hand" or "arrow").

This CL introduces support for such syntax as:
android:pointerShape="@drawable/custom_pointer_icon"

Change-Id: Ic5276da66367fbfb8e6195434421bac0667198c1
/frameworks/base/core/java/android/view/View.java
2d80ae4fbbafa9396148b0f45172f73514d0e98b 31-Jan-2016 Casey Burkhardt <caseyburkhardt@google.com> Exposes accessibility importance on AccessibilityNodeInfo

This allows a service configured with FLAG_INCLUDE_NOT_IMPORTANT_VIEWS
to discover which views in the hierarchy were evaluated as important.

Change-Id: Ife9411e41326b4872fc0682773722b9dae7ce994
/frameworks/base/core/java/android/view/View.java
0837daa4649053c8f04b13a05ba040b7b23a1137 26-Jan-2016 Keisuke Kuroyanagi <ksk@google.com> Merge "Make scroll bar mouse draggable."
c3bc45ec042dead6e9a7191a5d25ae2867acde25 26-Jan-2016 Yigit Boyar <yboyar@google.com> Merge "Fix requestRectangleOnScreen"
d62d5e9accc76952d737f9c58a97f898807713e5 20-Jan-2016 Yigit Boyar <yboyar@google.com> Fix requestRectangleOnScreen

This CL fixes a bug in View#requestRectangleOnScreen where the
position was not being moved from child's coordinate space to
the parent's coordinate space properly.

I've also added more documentation to clarify the API.

Bug: 25787435
Change-Id: Id821fa178e04016f6fb830d0bd2abde046581465
/frameworks/base/core/java/android/view/View.java
56efa64d62afd3816efab7410a1262f168ab2dab 25-Jan-2016 Andres Morales <anmorales@google.com> Merge "stash FrameStatsObservers when mAttachInfo is null"
214a13720905161bbaa2f661f810c787e4c5baa8 25-Jan-2016 Andres Morales <anmorales@google.com> Merge "expose hwui frame stats through FrameStatsObserver"
c8680438c0481b9c1e2b0bc856f900057ea14ba2 23-Jan-2016 Vladislav Kaznacheev <kaznacheev@google.com> Merge "Change mouse pointer when drag and drop is active"
51dbe5bf7dd6ecff9eac6c7fac8d19b6a3357a83 22-Jan-2016 Andres Morales <anmorales@google.com> stash FrameStatsObservers when mAttachInfo is null

register in dispatchAttachedToWindow

Change-Id: Ida01d49e5886e4a715e4f16a378ab0d9d9986c3d
/frameworks/base/core/java/android/view/View.java
06f5bc70a667a02b14e31d3f53f91d3661e30666 16-Dec-2015 Andres Morales <anmorales@google.com> expose hwui frame stats through FrameStatsObserver

Change-Id: I88884bafc8e2f6d7f67a36d3609490e83cf8afd5
/frameworks/base/core/java/android/view/View.java
ba761124e624ffed2681a9e171cd3f7d8c6ed59e 22-Jan-2016 Vladislav Kaznacheev <kaznacheev@google.com> Change mouse pointer when drag and drop is active

Mouse pointer is set to STYLE_GRAB when the drag has started and
reset to STYLE_DEFAULT when the drag has ended.

Resetting the pointer shape to the one defined by an underlying
view will be handled in a separate patch.

Bug: 24415739
Change-Id: I8df0a08c5701a34a48f10ec6b43c2cf2e6362d61
/frameworks/base/core/java/android/view/View.java
df8373389da9366f9fb9d655a125bf83721bae2f 22-Jan-2016 Tor Norbye <tnorbye@google.com> Merge "Specify a maximum value for View.MeasureSpec.makeMeasureSpec"
75fab6b8bc84bcabdbdfb2a917e2b97bdd29152b 21-Jan-2016 Phil Weaver <pweaver@google.com> Merge "Pass drawing order information to accessibility."
1f2225486d649adce81c66a0ce696bf2d84a256d 08-Jan-2016 Phil Weaver <pweaver@google.com> Pass drawing order information to accessibility.

Bug: 22721935
Change-Id: I45a2be7c174c8b5a469b68a45dec0eb536825d92
/frameworks/base/core/java/android/view/View.java
d85bc5074dc1211fdb1c6799d9321af54ac5a32f 21-Jan-2016 Keisuke Kuroyanagi <ksk@google.com> Make scroll bar mouse draggable.

This is for Views that have special mouse dragging handling. e.g.
TextView invokes text selection on mouse dragging, so it cannot be
scrolled by mouse dragging.
This provides such Views or ViewGroups a last resort to scroll as we
don't assume that all devices have touch panel, touch pad, or mouse
wheel.

Bug: 20016455

Change-Id: I68a13258a50b5e4ea681b2576da6000a0bb3fa65
/frameworks/base/core/java/android/view/View.java
bc490ca283ee442008b14c113323d434bf261892 15-Jan-2016 Alan Viverette <alanv@google.com> Don\'t verify the scrollbar drawable am: a53c3b2197 am: ca6b87fea6
am: c8ef3f8730

* commit 'c8ef3f8730d20541e8f01f500c380fa09aa3853c':
Don't verify the scrollbar drawable
c8ef3f8730d20541e8f01f500c380fa09aa3853c 14-Jan-2016 Alan Viverette <alanv@google.com> Don\'t verify the scrollbar drawable am: a53c3b2197
am: ca6b87fea6

* commit 'ca6b87fea6b16e38f8bbbd514d3cf07361a5feba':
Don't verify the scrollbar drawable
a53c3b2197b73d5b6a697ae2077e04065df84d9e 14-Jan-2016 Alan Viverette <alanv@google.com> Don't verify the scrollbar drawable

Avoids infinite invalidations caused by re-use of scrollbar drawable
during a single draw() pass. Does not address the general problem of
drawable reuse causing unnecessary invalidations as a result of calls
to setBounds() invoking invalidateSelf().

Bug: 26533725
Change-Id: I99e9c2dfe4ddfc833569e40e7268dcb03e931fc9
/frameworks/base/core/java/android/view/View.java
46f890188cf7019f9d2978f67f329da753b17b31 14-Jan-2016 Ian Pedowitz <ijpedowitz@google.com> Merge "Revert "Avoid drawable invalidation during draw()"" into mnc-dr1.5-dev am: 624d43b66f am: 0cd5e9f475
am: 105108209f

* commit '105108209fc35b5029e5a728c09f6eaf91b8a940':
Revert "Avoid drawable invalidation during draw()"
105108209fc35b5029e5a728c09f6eaf91b8a940 14-Jan-2016 Ian Pedowitz <ijpedowitz@google.com> Merge "Revert "Avoid drawable invalidation during draw()"" into mnc-dr1.5-dev am: 624d43b66f
am: 0cd5e9f475

* commit '0cd5e9f475cd31535ad33a6d2151f2270bd3f29c':
Revert "Avoid drawable invalidation during draw()"
156bd49bdcf9fee8c5d51fcf1ad06b09dd07cbaa 13-Jan-2016 Alan Viverette <alanv@google.com> Revert "Avoid drawable invalidation during draw()"

This reverts commit e5e59c6da424096da8f57137cdc57d8bd410b079.

Drawables expect to be able to call invalidateSelf() during
draw() to pump animation frames. We shouldn't break this.

Bug: 26533725
Change-Id: Ibe2871f2622faf836637225fc1e3e6f0ca6def47
/frameworks/base/core/java/android/view/View.java
75e097965cc273d33192555b0e65de3dbc1753ce 29-Jul-2015 Clara Bayarri <clarabayarri@google.com> Request Keyboard Shortcuts for SysUI Dialog via Window

Keyboard shortcuts are requested via WindowManager, and
the request pipes through to the view root and the window
callback.

Bug: 22405482
Change-Id: Ic0071e91c7b554be3ac9df71e9539ee8a60e822e
/frameworks/base/core/java/android/view/View.java
ea2e422c2381298b67f3ce81d01b454e85dbe269 12-Jan-2016 Alan Viverette <alanv@google.com> Merge "Avoid drawable invalidation during draw()" into mnc-dr1.5-dev am: cf6885b7b7
am: c783ebc13a

* commit 'c783ebc13a350f3f83dbe0713af9581e39b355ec':
Avoid drawable invalidation during draw()
e5e59c6da424096da8f57137cdc57d8bd410b079 04-Jan-2016 Alan Viverette <alanv@google.com> Avoid drawable invalidation during draw()

Prevents infinite invalidation loop when reusing a drawable asset within
a single draw() call. Also reduces unnecessary extra invalidations due to
drawable setters (ex. setBounds()) being called during draw().

Bug: 26329675
Change-Id: I31b3c99e8efd4193415cc562a84c8939a2f56c2d
(cherry picked from commit 8cda8e915916b3166e4496589b802fd1ed553c77)
/frameworks/base/core/java/android/view/View.java
2ba4dfc7de7b5276ea26ae841d0ed0b458e1b4be 07-Jan-2016 Alan Viverette <alanv@google.com> Merge "Avoid drawable invalidation during draw()"
4420eae399664a7b8afc58605884feddccafa7c2 06-Jan-2016 Chris Craik <ccraik@google.com> Merge "Check api level before throwing in drawable setters"
b7244809f51ff95863c5ff8ba6226e26b9a9cf76 05-Jan-2016 Chris Craik <ccraik@google.com> Check api level before throwing in drawable setters

bug:25801789

TextureView started throwing in these in N.

Change-Id: I538d1c57deb0a5a6a25c297833af06d3f237600c
/frameworks/base/core/java/android/view/View.java
8cda8e915916b3166e4496589b802fd1ed553c77 04-Jan-2016 Alan Viverette <alanv@google.com> Avoid drawable invalidation during draw()

Prevents infinite invalidation loop when reusing a drawable asset within
a single draw() call. Also reduces unnecessary extra invalidations due to
drawable setters (ex. setBounds()) being called during draw().

Bug: 26329675
Change-Id: I31b3c99e8efd4193415cc562a84c8939a2f56c2d
/frameworks/base/core/java/android/view/View.java
a69f2a6449b4b5eceae9cd5a6b1aae6eeec379b8 12-Dec-2015 Selim Cinek <cinek@google.com> Fixed a measuring bug with the notification children container

The notification children didn't respect the given dimensions
when measuring and was simply measuring itself as high as desired.
This lead to a bug where the parent could crash when a layer was
set on it.
We are now measuring the container at most with the height of
the given size and let children draw over our view bounds.
In oder to still allow touch in those regions we also
override the touch rect.
This also simplifies the rest of the touch handling.

Bug: 26159274
Change-Id: I728553a6386455e6632e2511be8a3e7cb447e89b
/frameworks/base/core/java/android/view/View.java
347e5d498f4c216d588e98776a386d8bdf93d05c 03-Dec-2015 Jun Mukai <mukai@google.com> Introduce pointer capture API.

This depends on I4189eb4d93f50c2865b7a325727be5ceebcc71f8 of
frameworks/native.

Bug: 5452473
Change-Id: Ie21e521f3e5c581f976dc0feb5d84bfa48b046cd
/frameworks/base/core/java/android/view/View.java
e5f4a9c1128be91e9d0c2c8109ae633e744deb37 15-Dec-2015 Michael Wright <michaelwr@google.com> Merge "Make KEYCODE_SPACE a confirm key."
d4eaef7f4c5a5d281de4fff272cd33e892e26264 30-Oct-2015 Jun Mukai <mukai@google.com> Make public pointer icon API with custom icons.

BUG: 25778347, 23804184
Change-Id: If138b97c750c912e9848412c27b65004899961eb
/frameworks/base/core/java/android/view/View.java
aa1a94daaa59e98303fdeb1c3066b60a58755dff 26-Nov-2015 Michael Wright <michaelwr@google.com> Make KEYCODE_SPACE a confirm key.

By default space should "click" the focused item. This behavior also
applies to GridView and ListView if the items are clickable, but will
continue the previous behavior of scrolling if it's just a list of
items you can't really interact with.

Change-Id: Ic3a0334614d1dc68ff98bc4b1fb1ae2f961f71af
/frameworks/base/core/java/android/view/View.java
80fdc1bd366efb8e9a84244c9e9d31477d84d515 18-Nov-2015 Jun Mukai <mukai@google.com> Allow specifying pointer shape from xml resource.

Bug: 25777986
Change-Id: I8be5d2cb130299b0ea8f4f4d3dc582143f7ff553
/frameworks/base/core/java/android/view/View.java
4610eeff9c6c4789705b6550a57333150d39e970 03-Dec-2015 Chet Haase <chet@google.com> Revert "Add support for partial view layouts"

This reverts commit c55d5072ac52cee1811b52406419228fa81119ce.

There were several bugs related to incorrect handling of various
layout issues (layout not being run on containers/views that needed
it), reverting to take another run at it outside of master.

Issue #25980198 requestLayout() sometimes doesn't result in measure/layout for view

Change-Id: Ic0e159cbcf6171652d8fd1bee9ae44a3977cea04
/frameworks/base/core/java/android/view/View.java
12701f64d93c4b2e11b09b30f7dc9dc96d51150f 05-Dec-2015 Robert Carr <racarr@google.com> Fix build by making docs match params.

Change-Id: Id5bb5161514be372b709ecbb5d56e86554d3ec64
/frameworks/base/core/java/android/view/View.java
b948014e3e64805bd196536020394a782edc36fe 04-Dec-2015 Robert Carr <racarr@google.com> Restore exception behavior of getLocationInWindow.

Restore exception throwing behavior on invalid arguments
for getLocationInWindow. This is tested by CTS.
Tweak some variable names to make the exception string readable.

Change-Id: I069d63b354d90ce74d156362b223765a5c2da2f0
/frameworks/base/core/java/android/view/View.java
4fa7892f35268ff7d591928ac9f5a26c267031e3 01-Dec-2015 Jorim Jaggi <jjaggi@google.com> Add flag so apps always draw status bar background

So we don't have to implement crazy magic when one app requests
drawing the status bar by itself, and the other doesn't in split
mode.

Bug: 24365214
Change-Id: I1f6a0efd0865b784402055e008da2f31e626f163
/frameworks/base/core/java/android/view/View.java
9643e73951384a0f07364bec8c4f48130478a133 03-Dec-2015 Alan Viverette <alanv@google.com> Merge "Ensure only one context menu is shown at a time"
568f4de11a87308cbcb888083f02818a8290a7d7 03-Dec-2015 Neil Fuller <nfuller@google.com> Merge "Fix @code escapes"
51aaf906f9f5fb2f117f5ccfae8be6974f7cb903 03-Dec-2015 John Reck <jreck@google.com> Nuke HardwareRenderer abstract base

Bug: 17303292

Change-Id: I4a272ea4f695f4f9993e8be640fdd8530b691be0
/frameworks/base/core/java/android/view/View.java
71fbb81b14958b80fe55738607740c6630e4e9da 30-Nov-2015 Neil Fuller <nfuller@google.com> Fix @code escapes

The body of {@code} must not be HTML escaped. This is one of
several changes that fix the source in conjunction with a
doclava fix.

Bug: 25757239
Change-Id: Ib38a0fa2dd2a3d68e467f78a812071e763d7e881
/frameworks/base/core/java/android/view/View.java
53e64a438fcbabfef57ea547199800beaa37a926 16-Nov-2015 Selim Cinek <cinek@google.com> Adapted the big picture template

Change-Id: Ia66c5f12a8688b2f0c6ea51fb8dbdefc39f62f8f
/frameworks/base/core/java/android/view/View.java
ca98419f77400ba99527b7910550dd3a47b43ef2 25-Nov-2015 Alan Viverette <alanv@google.com> Avoid concurrent modification for pending partial layout views

Bug: 25871867
Change-Id: I696a441704bad65203633bd34dafc7a56162007a
/frameworks/base/core/java/android/view/View.java
021627eb5875372dea57ba91fa782fffbfbbc559 25-Nov-2015 Alan Viverette <alanv@google.com> Ensure only one context menu is shown at a time

Refactors the menu helper classes. Both classes now implement a common
MenuHelper interface, which eliminates the need to keep separate helpers
on PhoneWindow and unifies the DecorView showContextMenuForChild()
implementations.

We now explicitly dismiss any previously shown context menu before showing
a new context menu. Previously we relied on the modal nature of the dialog
context menu to prevent multiple menus from being opened at once, but this
is no longer reliable with popup context menus.

Bug: 25656520
Change-Id: Idab3daa6d6888f803f2e33660fe1dd488e4c28d1
/frameworks/base/core/java/android/view/View.java
f2d7fa3a99663566446ea74266c7977dd20dae26 24-Nov-2015 Vladislav Kaznacheev <kaznacheev@google.com> Merge "Implement View.updateDragShadow"
71ec0a9ba7d33b1d72d6f2c8d16450abc178c853 23-Nov-2015 Alan Viverette <alanv@google.com> Always assume layout params changed if app targets <= M

Previously we were lax about whether an app needed to call
setLayoutParams() when changing layout param (ex. height), but now
failing to call set will break layout.

Bug: 25801251
Bug: 25836190
Change-Id: I4431526ab38b9e3cbdf3553e41db6251d2a7fbc3
/frameworks/base/core/java/android/view/View.java
4f639749639393791caa69a35630611b695ba255 18-Nov-2015 Vladislav Kaznacheev <kaznacheev@google.com> Implement View.updateDragShadow

The new method allows changing the drag shadow image
while the drag is in process.

It has to be called on a View in the same window (under the
same ViewRootImpl) that the view which started the drag.

Bug: 25520420
Change-Id: I57e752626a4a6a86d42c597c09dbd7ec77f42f30
/frameworks/base/core/java/android/view/View.java
82063913ae6d3b158cb0c599141e473b691363a8 20-Nov-2015 Vladislav Kaznacheev <kaznacheev@google.com> Implement View.cancelDragAndDrop

View.cancelDragAndDrop cancels a drag operation initiated by
View.startDragAndDrop.

It has to be called on a View in the same window (under the
same ViewRootImpl) that the view which started the drag.

Bug: 24415683
Change-Id: If9a265fd8cc4d26b207d582d0d02d5c9ae78eba1
/frameworks/base/core/java/android/view/View.java
e311034ee82c88b51adfb6ad56bd5d0591922949 20-Nov-2015 Vladislav Kaznacheev <kaznacheev@google.com> Add View.startDragAndDrop and deprecate View.startDrag

This in preparation to adding a new method to cancel an
ongoing drag. This method cannot be called cancelDrag,
stopDrag or endDrag because these names are already
taken by View-derived classes in the framework or in
important apps.

Change-Id: Ie21a778c3253b2d526c0c1bcc423c374ca70ee01
/frameworks/base/core/java/android/view/View.java
87ab07e9a78c8af4d806a8b35f6d5cdf9e44b47f 19-Nov-2015 Vladislav Kaznacheev <kaznacheev@google.com> Merge "Revert "Implement View.cancelDrag""
54d6b95e86e9b248dd313ab72f4db6a681480d1e 19-Nov-2015 Vladislav Kaznacheev <kaznacheev@google.com> Revert "Implement View.cancelDrag"

This reverts commit 93cf731b26e2ab4db49bd80f60675b03e40512f3.

This is required because adding View.cancelDrag conflicts with existing app code.

Change-Id: I323fc5d2144266781d3168fe033c53cb5b37050e
/frameworks/base/core/java/android/view/View.java
c55d5072ac52cee1811b52406419228fa81119ce 19-Dec-2014 Adam Powell <adamp@google.com> Add support for partial view layouts

Traditionally, when a view called requestLayout it would force
recursive requestLayout calls for all parent views up the
hierarchy. This meant that there was no way to determine at traversal
time whether a parent view itself needed layout, or if just one of its
descendants did.

Add a ViewParent method requestPartialLayoutForChild(View). This lets
a caller state that a particular child of a given parent needs a
remeasure and relayout at its current measured size and position
within that parent. This can help prevent the full-tree relayout often
caused by otherwise trivial changes. Partial layouts are processed
after any pending "full" relayout during ViewRoot traversals, but
before drawing.

Add a ViewGroup method requestLayoutForChild(View). This lets a
ViewGroup decide whether it is more appropriate to request a
traditional relayout or a partial layout for itself or just the child
that changed.

Add a ViewParent method findDependentLayoutAxes. This allows a caller
to check if the ViewParent's layout is dependent on a specific direct
child view along one or both axes. Called recursively, this can be
used to determine if a change in a child view can be isolated to a
partial layout, even if its direct parent's own layout is tied to its
other ancestors. (e.g. MATCH_PARENT, LinearLayout weights)

Implement ViewGroup#requestPartialLayoutForChild to call new
ViewParent method findDependentLayoutAxes and based on the result,
either request a full layout for itself or a partial layout for the
child in question.

Implement findDependentLayoutAxes for common framework ViewGroups. A
private implementation in ViewGroup is available for use by framework
classes that will deal with basic LayoutParams. These implementations
specifically check for derived LayoutParams classes and abort the
optimization if they find something beyond their expected parameter
types.

Change-Id: I0a1a9b79293d17d4fae8d9892b96d3586f9401ae
/frameworks/base/core/java/android/view/View.java
93cf731b26e2ab4db49bd80f60675b03e40512f3 06-Nov-2015 Vladislav Kaznacheev <kaznacheev@google.com> Implement View.cancelDrag

View.cancelDrag cancels a drag operation initiated by
View.startDrag.

It has to be called on a View in the same window (under the
same ViewRootImpl) that the view which started the drag.

Bug: 24415683
Change-Id: Iae5ff3534b6c747ae174f170fdd01ff4d3b1c312
/frameworks/base/core/java/android/view/View.java
c45b1d4ae4afa52f292df2bf1b09a5691eef1cfa 16-Nov-2015 Alan Viverette <alanv@google.com> Use correct rounding in View for potentially negative values

Fast rounding doesn't work for negative values, so use Math.round()
where we might encounter negative values. Use Math.floor() and ceil()
for rounding down and up, respectively.

Bug: 25695621
Change-Id: I94831b8eb7552fc24cbe5808e923de1674d8ba6d
/frameworks/base/core/java/android/view/View.java
f3fed8e576983e6f79131a8e6c6b2b7a0ce19485 13-Nov-2015 John Reck <jreck@google.com> Fix flickering issue

Bug: 25411780

Partial-revert for now, reopened b/22565656 to
deal with the memory use in a followup

Change-Id: I1ec636bc811a85eb2dc4f8c91562dc81b6261355
/frameworks/base/core/java/android/view/View.java
64aadd08491172e90f6d6512d8affc9a4cfa04cc 06-Nov-2015 Robert Carr <racarr@google.com> Clarify geometry management for SurfaceView

In the hardware accelerated case, RenderThread needs
to be the authority of information on the geometry of
the SurfaceView (this will occur via moving the
repositionWindow call to RenderThread). In order
to support this we have to enable calling relayoutWindow
without geometry (so that it will not fight with
repositionWindow). Add such a mode to relayoutWindow
and use it from SurfaceView. Add size to repositionChild
while we are here.

Bug: 22802885
Change-Id: Ie45132c22f34cc6ecfe2446912b30bd1df414406
/frameworks/base/core/java/android/view/View.java
7d73643f7a3fbd635ba1818d6f819e551b7ffcf6 06-Nov-2015 Bart Sears <bsears@google.com> Revert "Clarify geometry management for SurfaceView"

This reverts commit 78a45f2bd8794d7a85e7443820862d466edf2324.

Change-Id: I782f688f52a85df84d9facef2fbf88c28f4a7082
/frameworks/base/core/java/android/view/View.java
78a45f2bd8794d7a85e7443820862d466edf2324 03-Nov-2015 Robert Carr <racarr@google.com> Clarify geometry management for SurfaceView

In the hardware accelerated case, RenderThread needs
to be the authority of information on the geometry of
the SurfaceView (this will occur via moving the
repositionWindow call to RenderThread). In order
to support this we have to enable calling relayoutWindow
without geometry (so that it will not fight with
repositionWindow). Add such a mode to relayoutWindow
and use it from SurfaceView. Add size to repositionChild
while we are here.

Change-Id: I12f85f586a38bf86367f3d964cb49f19003d441f
/frameworks/base/core/java/android/view/View.java
78a8df49190210506a6971eeac3dfb5acd7770f1 04-Nov-2015 Alan Viverette <alanv@google.com> Merge "Always call legacy performLongClick()"
7611a6de6cc95f91e4a9f292686ca4ce69ebf71b 03-Nov-2015 Alan Viverette <alanv@google.com> Always call legacy performLongClick()

Adding performLongClick(x,y) broke compatibility for widgets that
overrode the no-arg performLongClick() and expected to receive a call.
This CL ensures that the no-arg method is called and the (x,y) data is
preserved for use in the default implementation.

Bug: 25411884
Change-Id: Ib0a3fb02d4c08ef64ce3a7165aa83bf0688aa50e
/frameworks/base/core/java/android/view/View.java
36a9946b23243016384f4537a2b6554203bdc75d 02-Nov-2015 Jun Mukai <mukai@google.com> Fix: ToolType() check -> isFromSource().

Change-Id: I8e13a179dc076cc44248662e6e8fd60e8cc69a3f
/frameworks/base/core/java/android/view/View.java
d8f56833c593320d51b6314f06ee1a3fedd92e97 29-Oct-2015 Alan Viverette <alanv@google.com> Merge "Show anchored context menu on long press"
794469916c4da8236b91cf5f8813ab4a1682cf86 29-Oct-2015 Jun Mukai <mukai@google.com> Merge "Add setPointerShape() to View for customizable pointer icon shape."
9dea0d53f598d8fa98d9b50899fc9c7559f7a1a1 27-Oct-2015 John Reck <jreck@google.com> Free DisplayListData for Views with GONE parents

Bug: 22565656
Change-Id: I06060e6ae473482ec79feb891f9123c85706237f
/frameworks/base/core/java/android/view/View.java
35c6d6b08aa8fc6c9d59c066c9fb80b842f4de01 26-Oct-2015 Alan Viverette <alanv@google.com> Show anchored context menu on long press

Also shows anchored menu on D-Pad long press and uses the center of the
view as the anchor point. This is how we already handle hotspot feedback
when there is no explicit center, so there's no visual change there; it's
just more obvious from the View side of things what the result will be.

Bug: 25215353
Change-Id: I930c3aeffc993b7c553ffb626d1b5103c6cb1267
/frameworks/base/core/java/android/view/View.java
8480e34ff8369dd10e31bd025109545e0bb90a0d 02-Oct-2015 Jun Mukai <mukai@google.com> Add setPointerShape() to View for customizable pointer icon shape.

This will be used for window divider (for multi-window mode).
See I40443356f9151f8a8024f6a62517dd74e68fce41

Bug: 24415739
Change-Id: If1cd34cc5253c9f8a50decba90498001093a9db7
/frameworks/base/core/java/android/view/View.java
003cc3dec8e2a92e51086fbcd5ee1bb236efa701 16-Oct-2015 Chris Craik <ccraik@google.com> Rename DisplayListData to DisplayList

Change-Id: I25f6bb88ffdf9baf7e8e4e2a294aa8c9d2a4605b
/frameworks/base/core/java/android/view/View.java
1db5397d88e722b1ab82ccb2b429ceec1179ccd8 12-Sep-2015 Jun Mukai <mukai@google.com> Allow changing mouse pointer icon for the current context.

Right now, it only supports I-beam on EditText, but further
rules will come in the future.

The png files for the icons are from chromium.

Bug: 24180385
Change-Id: I8de4ec8a5412b4830c08aa232c5083841c5c751c
/frameworks/base/core/java/android/view/View.java
0cfe7638a361ea7f94730a6c06b992b8275d3612 13-Oct-2015 Alan Viverette <alanv@google.com> am bbd8315d: am ff953294: am d9635e60: am c83a6121: Merge "Move ASSIST_BLOCKED flag to avoid collision with SCROLL_INDICATOR" into mnc-dr-dev

* commit 'bbd8315daa82f9761c21d72ed22a3f001c28a6ca':
Move ASSIST_BLOCKED flag to avoid collision with SCROLL_INDICATOR
bbd8315daa82f9761c21d72ed22a3f001c28a6ca 13-Oct-2015 Alan Viverette <alanv@google.com> am ff953294: am d9635e60: am c83a6121: Merge "Move ASSIST_BLOCKED flag to avoid collision with SCROLL_INDICATOR" into mnc-dr-dev

* commit 'ff9532940084a89b4cfe89bc954e7d8af1c695f0':
Move ASSIST_BLOCKED flag to avoid collision with SCROLL_INDICATOR
3b493179770041aaa6bb9b0654e4cecd136fc937 05-Oct-2015 Alan Viverette <alanv@google.com> Move ASSIST_BLOCKED flag to avoid collision with SCROLL_INDICATOR

Bug: 24657825
Change-Id: Ifa61fe934b3e2467e86c71b37b4f3ede40989e96
/frameworks/base/core/java/android/view/View.java
c687c194181308b01f9b5d343eb40e419145b07e 29-Sep-2015 Alan Viverette <alanv@google.com> Document API-level-specific delegate behavior

Change-Id: I49590735f50f12eabadce1f48323a1d4082ea3d2
/frameworks/base/core/java/android/view/View.java
ed3912692f0ba8a647d795462e20fcdb67adbacb 01-Sep-2015 Oren Blasberg <orenb@google.com> Make context menus show as popup menus.

This means that right-clicking/long pressing on a view that is registered for
context menu will show the context menu as a popup menu instead.

Bug: 20016398
Change-Id: I96fea60435fff2f981d288521f490f8ff24ada15
/frameworks/base/core/java/android/view/View.java
fe1f99c2b292c90236d7e907c8a86bab0b90bfe4 22-Sep-2015 Stefan Kuhne <skuhne@google.com> Merge "MultiThreaded rendering of different renderNodes"
ea7a7fb75acb7305eb774ca7bc7e96103bd49323 28-Aug-2015 Skuhne <skuhne@google.com> MultiThreaded rendering of different renderNodes

This is adding the renderer side infrastructure to allow
rendering multiple render nodes with different threads.
This is a pre-step for decoupling a non client decor
resize reder from a content resize render.

Multiple render nodes can be added to be drawn, and to
prevent overdrawing, a content bounds area can be set

Bug: 22527834

Change-Id: Ie7271e20895bf38957e5a84aeefc883e282039ad
/frameworks/base/core/java/android/view/View.java
c4f196b661cb9d38f74fa7a1a5a4abb921980387 19-Sep-2015 Christine Hallstrom <hallstrom@google.com> am 039fd00f: am 13c23df9: Merge "Manual \'cherry pick\' to fix CTS tests for MediaControllerTest." into cw-e-dev

* commit '039fd00fd2b499a871be8551d80d299120ff5595':
Manual 'cherry pick' to fix CTS tests for MediaControllerTest.
2eb7d4761eee311a11a299fd12a800bc0bea4b6d 18-Sep-2015 Christine Hallstrom <hallstrom@google.com> Manual 'cherry pick' to fix CTS tests for MediaControllerTest.

This is to manually apply a patch of code that should have
propagated to E, but hasn't and is breaking one of the CTS
tests for MediaControllerTest on Nemo.

The original reverted change can be found at ag/723643.

Bug: 24172957
Change-Id: I925ff561a56531ebf9f8d8b4ce56156ae7feb9fc
/frameworks/base/core/java/android/view/View.java
87c315de10dad42be96b49848dc90b21389412c7 18-Sep-2015 Alan Viverette <alanv@google.com> am c602c577: am 48c7e6f3: am 24ff6823: Merge "prevent unnecessary warning logs caused by View.toString()"

* commit 'c602c577377d7f0d47718f3bfb77afc876f35626':
prevent unnecessary warning logs caused by View.toString()
c602c577377d7f0d47718f3bfb77afc876f35626 18-Sep-2015 Alan Viverette <alanv@google.com> am 48c7e6f3: am 24ff6823: Merge "prevent unnecessary warning logs caused by View.toString()"

* commit '48c7e6f3dc0462f43657b6003e4ba4021b0544ed':
prevent unnecessary warning logs caused by View.toString()
48c7e6f3dc0462f43657b6003e4ba4021b0544ed 18-Sep-2015 Alan Viverette <alanv@google.com> am 24ff6823: Merge "prevent unnecessary warning logs caused by View.toString()"

* commit '24ff6823c411f794aceaae89b0b029fbf8ef6b29':
prevent unnecessary warning logs caused by View.toString()
24ff6823c411f794aceaae89b0b029fbf8ef6b29 18-Sep-2015 Alan Viverette <alanv@google.com> Merge "prevent unnecessary warning logs caused by View.toString()"
90ebb99b36135e3ce29e72c5711ff31c45393c37 03-Jul-2015 kenzyun_chen <kenzyun_chen@htc.com> prevent unnecessary warning logs caused by View.toString()

If the id is negative, it is not from Resource.
Passing the negative value to getResourcePackageName makes AssetManager dump unnecessary warning logs.
It is reasonable not to get package/type/entry information for the negative id.

The warning logs :
W/ResourceType( 3711): No known package when getting name for resource
number 0x9b010100

Change-Id: Ic89acb4f32205ba5a2fdac61dc14b00ccf251148
/frameworks/base/core/java/android/view/View.java
3609ec6818164272f1e460d96c9135e40d81b5e5 17-Sep-2015 Alan Viverette <alanv@google.com> Merge "Clear accessibility focus when hierarchy is removed"
2371276e7d2af6bc088e1ec628ee04d06f05d6cf 17-Sep-2015 Alan Viverette <alanv@google.com> Clear accessibility focus when hierarchy is removed

Bug: 24127950
Change-Id: I428347fe6275bbeaa273793fac889d3f415324b8
/frameworks/base/core/java/android/view/View.java
ede5f5480e58dac9f6ddbd36a3085592d79c98ef 16-Jul-2015 Vladislav Kaznacheev <kaznacheev@google.com> Handle content URI permissions on drop

Change-Id: I846071f01ecd1eff8e3a54a1806e68e1a4b335d2
/frameworks/base/core/java/android/view/View.java
8e89b31a62fb9ec5ad33908c5e8e9c7ab2fd949f 10-Sep-2015 Chong Zhang <chz@google.com> Move window moving and resizing handling to WindowManager

- add a startMoving API to initiate a window move from app, once
the move starts WindowManager will take over the event handling.

- detect touch events along window's outside border and start
a resize if necessary

Change-Id: Ic7e8baba34e0aa27a43173e044ffb46e93e219e0
/frameworks/base/core/java/android/view/View.java
ad0020f8075ecf768cb610d60dbb167d41f0fbe5 04-Sep-2015 Alan Viverette <alanv@google.com> Invalidate when Drawable.setState() returns true

Ensures views that manage drawables follow the contract set forth in
the Drawable.setState() documentation.

Bug: 23792020
Change-Id: I4e5a449cd6535487873fd8443da50555c38e8ed9
/frameworks/base/core/java/android/view/View.java
102d45209c9449bb05caac622286c58386f9d638 02-Sep-2015 Alan Viverette <alanv@google.com> Actually fix docs build breakage this time

Change-Id: I980544b65342cc37cdc1cfcb589f32eae6b1b354
/frameworks/base/core/java/android/view/View.java
ed63b3a504738fd34079a561635d0d98c9737046 02-Sep-2015 Alan Viverette <alanv@google.com> Fix docs build breakage

Change-Id: Ibea95d06443f5bf42bd62b649bd02a3b9b644910
/frameworks/base/core/java/android/view/View.java
458e7589dd6adeebb4ff9458b69a720cc6db58a6 02-Sep-2015 Alan Viverette <alanv@google.com> Merge "Add note that getContentDescription() should not be overridden"
bea0c7daa6611d8b96e1271f8854f500a87342fc 01-Sep-2015 Alan Viverette <alanv@google.com> Keep local run queue in View to avoid posting to wrong thread

Previously any call to post() while a view was detached would stash the
runnable on a thread-local RunQueue. If the post() call happened off the
UI thread to which the view would later be attached, this would result
in the runnable either failing to run or running on some other UI thread.

Bug: 22828132
Change-Id: I5289ee91ea4b56c45f003a387a9f7f0e6dc050f9
/frameworks/base/core/java/android/view/View.java
8bc022a244f49a09a1dd975c527a35fa66155267 31-Aug-2015 Alan Viverette <alanv@google.com> Add note that getContentDescription() should not be overridden

Also adds an explanation to the setter of how content descriptions
should be used.

Bug: 22630335
Change-Id: I6e46828a20a0592cd3b7f90f7d2a2050811d9833
/frameworks/base/core/java/android/view/View.java
b2d48bc5ccfa3935cb01691b28d7608768315023 26-Aug-2015 Alan Viverette <alanv@google.com> Merge "Revert "Revert "View measurement optimization"""
e2acc5e2839abe7dfc59bf6e2154cc88cd039436 26-Aug-2015 Alan Viverette <alanv@google.com> Revert "Revert "View measurement optimization""

Refactors for readability and adds an API >M check to be compatible with
the LinearLayout fix that also targets API >M.

This revert commit reverts revert commit
9d8a230fbd71ac57ef806326f15fa133ba125083
which originally reverted commit
9cefbda11ee5308145d58b0b99ced0f66a0b1cf9.

Change-Id: I587d733abef0b35a1bb14b6272054322494a7cdd
/frameworks/base/core/java/android/view/View.java
0c8623c631405597bcda86c37af1040c14ad5ec4 25-Aug-2015 Alan Viverette <alanv@google.com> Add documentation on View for android:theme and <tag> element

The android:theme attribute itself is already documented in attrs.xml.

Bug: 23028410
Change-Id: I0543952395b5bf099d57d0799f814f38f74ae7b0
/frameworks/base/core/java/android/view/View.java
3aadd60521960be063ee06208562ccb63dc414e3 20-Aug-2015 Chris Craik <ccraik@google.com> Revert "Revert "Simplify TextureView draw path""

Fixed build breakage

This reverts commit d35dcb13115ca1dd8c07e397f43a186cd7fd1a01.

Change-Id: Id3a103fbaac15a05f558bce2161ce17b6e8d2ea3
/frameworks/base/core/java/android/view/View.java
d35dcb13115ca1dd8c07e397f43a186cd7fd1a01 20-Aug-2015 Bart Sears <bsears@google.com> Revert "Simplify TextureView draw path"

This reverts commit 20a248934c67b19c8734362dba76a5cc94254686.

Change-Id: Iaa3ebb1d868acbe184080087aec312b43e87e3c7
/frameworks/base/core/java/android/view/View.java
20a248934c67b19c8734362dba76a5cc94254686 19-Aug-2015 Chris Craik <ccraik@google.com> Simplify TextureView draw path

bug:20461288

Change-Id: I239fbd26ab2177481c84feb62a1da68faeb634ac
/frameworks/base/core/java/android/view/View.java
c6f220a503db0bbbd202f81494bce4d9d0463e8e 11-Aug-2015 Alan Viverette <alanv@google.com> Pass handling context when invoking resolved click handler

Bug: 23101112
Change-Id: I7d09487ad2c751cd9133fc39ea814f18424b8519
/frameworks/base/core/java/android/view/View.java
4ffb4f94db25360b07a2a5d63e1c3c4ddd279839 01-Aug-2015 Alan Viverette <alanv@google.com> am ac13014e: am 41343c0f: am 6550e461: am 0568a230: am 9d8a230f: Revert "View measurement optimization"

* commit 'ac13014e5f4d92fa6c051e9821eb03c010008ffa':
Revert "View measurement optimization"
f6f1a7ec9935c32e6c1155333de94ac9cd544442 01-Aug-2015 Dianne Hackborn <hackbod@google.com> am 628b4125: am bc2a8843: am b97c5ddd: am 9b36f526: am c1836bb0: Merge "Change MNC codename to just M." into mnc-dev

* commit '628b4125843b93dc7f3ed0c9bbea76ff470d2eed':
Change MNC codename to just M.
ac13014e5f4d92fa6c051e9821eb03c010008ffa 01-Aug-2015 Alan Viverette <alanv@google.com> am 41343c0f: am 6550e461: am 0568a230: am 9d8a230f: Revert "View measurement optimization"

* commit '41343c0f287863488a10a429d88ec094e9183938':
Revert "View measurement optimization"
628b4125843b93dc7f3ed0c9bbea76ff470d2eed 01-Aug-2015 Dianne Hackborn <hackbod@google.com> am bc2a8843: am b97c5ddd: am 9b36f526: am c1836bb0: Merge "Change MNC codename to just M." into mnc-dev

* commit 'bc2a88431e3dc51e2245cc28e327f11d0c78bd56':
Change MNC codename to just M.
6550e461e50626b88835576e7bf12f49bb322e73 01-Aug-2015 Alan Viverette <alanv@google.com> am 0568a230: am 9d8a230f: Revert "View measurement optimization"

* commit '0568a230b34f879215e65fbaa79dfa377085bb41':
Revert "View measurement optimization"
b97c5ddd2a828b6cadc4243ee902d533a5fae332 01-Aug-2015 Dianne Hackborn <hackbod@google.com> am 9b36f526: am c1836bb0: Merge "Change MNC codename to just M." into mnc-dev

* commit '9b36f526dd0378bda8f71c0e51ed37bf97742f8f':
Change MNC codename to just M.
d4c8f2a5e632df2c07587d5717eb017e9f459389 31-Jul-2015 Alan Viverette <alanv@google.com> am 9d8a230f: Revert "View measurement optimization"

* commit '9d8a230fbd71ac57ef806326f15fa133ba125083':
Revert "View measurement optimization"
9d8a230fbd71ac57ef806326f15fa133ba125083 31-Jul-2015 Alan Viverette <alanv@google.com> Revert "View measurement optimization"

LinearLayout relied on multiple measurement passes to hide a
discrepancy between EXACTLY and non-EXACTLY measurements.

This reverts commit 9cefbda11ee5308145d58b0b99ced0f66a0b1cf9.

Bug: 22810327
Change-Id: I515a80749420d00efc5002fa68221b7c236f03df
/frameworks/base/core/java/android/view/View.java
f2269f0454bd57d012c5df37e9b88023c2d924f2 30-Jul-2015 Dianne Hackborn <hackbod@google.com> Change MNC codename to just M.

Change-Id: I4281d200ff6560791c47cf9073ceea1cb509361e
/frameworks/base/core/java/android/view/View.java
0e3de6cacaffcfeda4d6353be61e2f1f9ed80705 30-Jul-2015 Dianne Hackborn <hackbod@google.com> Change MNC codename to just M.

Change-Id: I4281d200ff6560791c47cf9073ceea1cb509361e
/frameworks/base/core/java/android/view/View.java
0e95bc4fb2c9255223d1a27b1727416d81e4835c 29-Jul-2015 Vadim Tryshev <vadimt@google.com> Adding a drag flag to make drag shadow opaque.

The default is still a semitransparent shadow.

Bug: 22028725
Change-Id: I4b0090053fe28cc4ac009960b5b7866d1219a675
/frameworks/base/core/java/android/view/View.java
31d300f91428f1f04cf3bcca42896f1c519ee8de 03-Jun-2015 Filip Gruszczynski <gruszczy@google.com> Fix NPE when requesting outsets for detached view.

Outsets are used during measure/layout pass, but this can be called on a
view that is not currently attached.

This is a cherry pick that somehow didn't get through to master.

Bug: 21602590
Change-Id: I23e3acc45ca4bf7684d8913f839e29e8e9e94d78
/frameworks/base/core/java/android/view/View.java
8d94835b4901fb01804bee3a1be8d05dbf510f65 16-Jul-2015 Derek Sollenberger <djsollen@google.com> Remove unused HardwareLayer and associated code for generic views.

bug: 20461288
Change-Id: I4efa9e31a42682a8a90438d52c9c665a582f950c
/frameworks/base/core/java/android/view/View.java
5e16aa516434c190b66d1ec5431d89e2d9091f1b 09-Jul-2015 Filip Gruszczynski <gruszczy@google.com> am b52df916: am d705f355: am 45eb3ea6: Revert "Fix NPE when requesting outsets for detached view."

* commit 'b52df916207ac831b9b7e525fd967a4796a39a3a':
Revert "Fix NPE when requesting outsets for detached view."
d705f35568c85f2ae6e6ff1f4aae53c3556d6589 09-Jul-2015 Filip Gruszczynski <gruszczy@google.com> am 45eb3ea6: Revert "Fix NPE when requesting outsets for detached view."

* commit '45eb3ea667dac8d97a91781f01875148bacfe74c':
Revert "Fix NPE when requesting outsets for detached view."
45eb3ea667dac8d97a91781f01875148bacfe74c 09-Jul-2015 Filip Gruszczynski <gruszczy@google.com> Revert "Fix NPE when requesting outsets for detached view."

This reverts commit b010291ace13947fcc76b1a64eaa67880e15f0a6.

Change-Id: If86ce92daac9e80d5fc2e9f707d937e7c6e91a74
/frameworks/base/core/java/android/view/View.java
93c4f915945eb788a19ec6e25b0f1e3dfe9abd53 09-Jul-2015 Filip Gruszczynski <gruszczy@google.com> am c72a5821: am 886fd2f5: am b010291a: Fix NPE when requesting outsets for detached view.

* commit 'c72a582138c1db297c662e5f83ce6a2e97f8bf69':
Fix NPE when requesting outsets for detached view.
886fd2f5a05a5e36ac20f95c1c06e1716a52c8e9 09-Jul-2015 Filip Gruszczynski <gruszczy@google.com> am b010291a: Fix NPE when requesting outsets for detached view.

* commit 'b010291ace13947fcc76b1a64eaa67880e15f0a6':
Fix NPE when requesting outsets for detached view.
b010291ace13947fcc76b1a64eaa67880e15f0a6 03-Jun-2015 Filip Gruszczynski <gruszczy@google.com> Fix NPE when requesting outsets for detached view.

Outsets are used during measure/layout pass, but this can be called on a
view that is not currently attached.

Bug: 21602590
Change-Id: I23e3acc45ca4bf7684d8913f839e29e8e9e94d78
(cherry picked from commit e660d4e96a2e5ac35f2dd6e2b43c588dd7e28358)
/frameworks/base/core/java/android/view/View.java
5242e2c947fe31672726f199063dafd0a55d39d0 06-Jul-2015 Chris Craik <ccraik@google.com> am 5b0fb51e: am e29b4b11: am e8dab95b: am 74fed612: Merge "Clearer message when failing to draw a SW layer" into mnc-dev

* commit '5b0fb51ef4254c8dd45a988a2772415e163f4f91':
Clearer message when failing to draw a SW layer
acb1582040c81c2a831be56da06ce790df67d1ed 06-Jul-2015 Chris Craik <ccraik@google.com> am 74fed612: Merge "Clearer message when failing to draw a SW layer" into mnc-dev

* commit '74fed612336fad30c8a93a346160ee36c87bd843':
Clearer message when failing to draw a SW layer
74fed612336fad30c8a93a346160ee36c87bd843 06-Jul-2015 Chris Craik <ccraik@google.com> Merge "Clearer message when failing to draw a SW layer" into mnc-dev
1ee7dc939fc01d118b104d439384b96d312cca16 01-Jul-2015 Chet Haase <chet@google.com> am 58517a20: am 081ddbe2: Merge "Invalidate parent when scrolling child view back onto screen" into mnc-dev

* commit '58517a20011dfe777d75e2c16f6d47230e0a67b3':
Invalidate parent when scrolling child view back onto screen
2aa56c5428ba4052c689f992cf3c2977c9a1d551 01-Jul-2015 Chris Craik <ccraik@google.com> Clearer message when failing to draw a SW layer

bug:21376603

Change-Id: I7433491c16c5bc95cffc8e35aac07eb551be9c8e
/frameworks/base/core/java/android/view/View.java
1b7f8f99c31d49904d8522baf435b94c96e1d85c 01-Jul-2015 Chet Haase <chet@google.com> Invalidate parent when scrolling child view back onto screen

This bug caused views which used to be quick-rejected to continue to not
be drawn because the parent's DisplayList no longer contained them. The
fix is to notice when offsetting a view puts it back on screen and invalidates
the parent appropriately.

Issue #21413554 offsetTopAndBottom requires invalidating parent when view becomes visible again

Change-Id: I0f5d2cc48e3da912a41635712d9c37fb30e70c86
/frameworks/base/core/java/android/view/View.java
6b37bc507d45dd2052cbfe77ce3d4b1af637be99 26-Jun-2015 Adam Powell <adamp@google.com> am 45cb8b12: am 6356d3b2: Merge "Improve docs for View#addChildrenForAccessibility" into mnc-dev

* commit '45cb8b12add577d7d8518f7382c370be9bc67d4f':
Improve docs for View#addChildrenForAccessibility
6356d3b2504cefce59761d67b642ae37f8ba2d8b 26-Jun-2015 Adam Powell <adamp@google.com> Merge "Improve docs for View#addChildrenForAccessibility" into mnc-dev
3850b7c2e4ef841b154a3f1fe88493a663b550a5 26-Jun-2015 Dianne Hackborn <hackbod@google.com> am 8785d214: am ff81025a: Merge "Fix issue #22013372: Assist should take translationX and friends..." into mnc-dev

* commit '8785d21453b1928c0bc4e5b5ef1eba93378ea849':
Fix issue #22013372: Assist should take translationX and friends...
70d8be7616a450e9b7ef09c8bda5a8b25936a29a 23-Jun-2015 Dianne Hackborn <hackbod@google.com> Fix issue #22013372: Assist should take translationX and friends...

...into account when calculating the position information

Actually what we need here is the full transformation matrix, if it
is available. And that means actually computing the location of
views on the screen requires doing this all through transformations,
so the AssistVisualizer has been changed to do this (while still
also keeping the old mechanism for comparison to verify that things
are working correctly).

Also added new properties for elevation and alpha.

And optimized the parcelling of AssistStructure to not write things
that aren't needed; this reduces the parcelled size by about half.

Change-Id: I50b0dd2e6599c74701a5d188617a3eff64b07d03
/frameworks/base/core/java/android/view/View.java
cf392d143ef35888df43907c399d42fb16fd196b 25-Jun-2015 Adam Powell <adamp@google.com> Improve docs for View#addChildrenForAccessibility

Clarify the role of the list parameter and associated method
documentation.

Bug 22053511

Change-Id: Id0200bba8e60242caee2547bce30764dcabe02fd
/frameworks/base/core/java/android/view/View.java
c279a835d5dcb16ac5b4b5311940de5b4fbd72aa 25-Jun-2015 Narayan Kamath <narayan@google.com> am 37c68894: am a78c0e0b: Merge "Fixed Javadoc typos"

* commit '37c688948d4464d636cd64c537b98697cb4b795d':
Fixed Javadoc typos
802aa0f8a22524d8b338d8279c1e121f21b9cdc2 12-May-2015 Philipp Hasper <vcs@hasper.info> Fixed Javadoc typos

Simple single character typos

Change-Id: I17660dbb3b7ee6597637e8d76770f434ebf202ea
/frameworks/base/core/java/android/view/View.java
afaed06cda3473c3e182a48cf1a1a78c8a005055 25-Jun-2015 Dave Langemak <dlangemak@google.com> Revert "Throw IAE on invalid measure spec size"

This reverts commit ac6cfb32fec5e4b9ce47c4cde4bbcc7b43a0c4a7.

Change-Id: Ie60b48eac5f732071a5039b9b6bc7b18eb694d5b
/frameworks/base/core/java/android/view/View.java
ac6cfb32fec5e4b9ce47c4cde4bbcc7b43a0c4a7 24-Jun-2015 Alan Viverette <alanv@google.com> Throw IAE on invalid measure spec size

Crash immediately so that we can track down the cause. If we let it
through, we'll hit an ISE later in dispatchVsync() and never know why.

Bug: 21948478
Change-Id: I84edf93cdf09d755419e18a7606b7b6cbd059956
/frameworks/base/core/java/android/view/View.java
2f55a3f0b887ec8966d4cf1858b72612fcf358c2 10-Jun-2015 Maxim Bogatov <maximbogatov@google.com> Transfer a11y node with a11y event

b/19870218

Change-Id: I29519d029cb7a154de09627afab7a0307abe85bd
/frameworks/base/core/java/android/view/View.java
bbd3eeb9e53707bcbf0cc540acd7bb566252a969 12-Jun-2015 Adam Powell <adamp@google.com> Only read foreground attr for FrameLayouts for targetSdkVersion < M

Now that the android:foreground attribute is supported for all views
it turns out some existing apps were previously setting foreground or
applying styles with a foreground to unsupporting views even though
the values being set were not drawables. While this was silently
ignored before, now it results in app crashes.

The most expedient fix is to only support foreground on
non-FrameLayout views if the app sets targetSdkVersion to M or newer.

Bug 21646309

Change-Id: I8937f44988866e86e640555f4bbc5dd5b2e1cce1
/frameworks/base/core/java/android/view/View.java
3dcb9945fd0d9e8ccea41eb7cc2b5c7a13bf5185 12-Jun-2015 Chet Haase <chet@google.com> Remove View.getBackgroundColor()

This method was added earlier in M - removing it now based on API
Council feedback.

Issue #21572678 API Review: android.view.View.getBackgroundColor()

Change-Id: I04fad49c3c377218d0fb708dbeaea609aca46ce8
/frameworks/base/core/java/android/view/View.java
d5dbf4b2a09c9cf2d17fa6af3fdf75d1fb774056 11-Jun-2015 Adam Powell <adamp@google.com> Check targetSdkVersion when passing size hints for UNSPECIFIED specs

As of MNC stock widgets will pass a size in UNSPECIFIED MeasureSpec
values as a hint of the container size. This lets things like list items
size themselves at 1/3 the size of their container.

This breaks assumptions in a few existing applications, so maintain the
old expectation of 0 size in UNSPECIFIED MeasureSpecs for apps targeting
older SDK versions.

Bug 20975083

Change-Id: Ic7318e88854e00d96852dde2c0e10376b42bf77f
/frameworks/base/core/java/android/view/View.java
751afe2040a1954826f550c0fdc2c1f148fe21eb 10-Jun-2015 Chris Craik <ccraik@google.com> Merge "Dont ignore layer paint alpha in software path" into mnc-dev
f396f011eefb79e1728747dcc1df9c42278a8d44 09-Jun-2015 Chris Craik <ccraik@google.com> Dont ignore layer paint alpha in software path

bug:19412691

Change-Id: Ie56b2cbc667a078eb4a7c5bfe7b8e8dd6b0fc24b
/frameworks/base/core/java/android/view/View.java
78528b22c29f570469fe3c75328042f83a5a24c3 02-Jun-2015 Selim Cinek <cinek@google.com> Fixed a RTL layouting bug with LinearLayout

When the RTL properties of a horizontal LinearLayout
changed, nobody enforced the view to be layouted anew,
even though its layout is dependent on the layout
direction. This could lead to stale layouts being
temporarily layouted the wrong way.

Bug: 20495301
Change-Id: I979c8d86ee711626b2901b65ebdf007c1eb1c0fa
/frameworks/base/core/java/android/view/View.java
e1f3214e72b63ed7cbe368005622055f80da0e0d 08-Jun-2015 Mady Mellor <madym@google.com> Merge "Change stylus button press to context click in View - API review feedback" into mnc-dev
7c79c82b97dd7445974e740e8e58ca5dbb4fb121 08-Jun-2015 George Mount <mount@google.com> Merge "Don't cause requestLayout when transition changes Visibility." into mnc-dev
e5a93aa81ce79bf7fa529b09b50d7473f07a74a2 06-Jun-2015 George Mount <mount@google.com> Don't cause requestLayout when transition changes Visibility.

Bug 21400515

When a Visibility transition temporarily changes a View's
visibility, it should not cause a requestLayout or any other
action, such as focus change. This adds a hidden method to
View to allow it to tweak the visibility without causing
other side-effects.

Change-Id: I5a06149983051319080130e5b5e7cc7edda8dd3e
/frameworks/base/core/java/android/view/View.java
e860891b1a7d4c1b581f294fa5831999caac6506 05-Jun-2015 Mady Mellor <madym@google.com> Change stylus button press to context click in View - API review feedback

Updates all references in View's onStylusButtonPress to onContextClick
as per API review feedback.

Additionally listens for mouse right clicks and calls the onContextClick
method for these as well for the stylus button press.

Bug: 21572278
Change-Id: I5c1ee8c8f23a77d7c677b86356e89d0e4fc40056
/frameworks/base/core/java/android/view/View.java
e790c97787dbc05930ad0c4a708fad7cd7d3f2b9 04-Jun-2015 Chet Haase <chet@google.com> Hide View.getBackgroundColor() prior to removal

Issue #21572678 API Review: android.view.View.getBackgroundColor()

Change-Id: Ia4fa9e207db3af6e076581bf23747eba6e56bb69
/frameworks/base/core/java/android/view/View.java
d3c9df1a34ec41a8ab6c13911d0887a37170d0cc 04-Jun-2015 Alan Viverette <alanv@google.com> Merge "Update number picker styling for Material" into mnc-dev
cec5f733f573789fd1b61496c038f6ae455bb7e7 04-Jun-2015 Adam Powell <adamp@google.com> Fix view foreground tinting

Copy and paste is bad, mmkay?

Bug 21209639

Change-Id: I6c17e8a30fad6d5110f18e4723a5f5e6ddb814b8
/frameworks/base/core/java/android/view/View.java
bac9576928abd0abfab91e012f2ed06f533a7f53 03-Jun-2015 Dmitriy Ivanov <dimitry@google.com> Fix build

Bug: 21602590
Change-Id: Iffb9a7b74dc97bf30aea2014b0e3d2a96097291b
/frameworks/base/core/java/android/view/View.java
afa9e99c8849ede4a71610b0d2bcb86cb7cb6d66 03-Jun-2015 Svetoslav <svetoslavganov@google.com> Merge "Fix finding views by accessibility id." into mnc-dev
6cc4627d88932c93ce4c8821a5714b5382cd0425 03-Jun-2015 Svetoslav <svetoslavganov@google.com> Fix finding views by accessibility id.

1. If a view has a node provider, then the latter takes over
representation of the view tree. Hence, find by accessibility
id should not return children of a view with a provider.

2. Views can change their importantce for accessibility, so an
accessibility service may get a node and try to act on it
but the node became not important in the meantime. Hence,
find by accessibility id should respect importance.

Change-Id: Ib4d738c00f46c91300605a2928550f40705ea47b
/frameworks/base/core/java/android/view/View.java
e660d4e96a2e5ac35f2dd6e2b43c588dd7e28358 03-Jun-2015 Filip Gruszczynski <gruszczy@google.com> Fix NPE when requesting outsets for detached view.

Outsets are used during measure/layout pass, but this can be called on a
view that is not currently attached.

Bug: 21602590
Change-Id: I23e3acc45ca4bf7684d8913f839e29e8e9e94d78
/frameworks/base/core/java/android/view/View.java
3c1348773ad48edbd73cf32d9ae6d23841ea4cff 03-Jun-2015 Jun Mukai <mukai@google.com> Merge "Retire PFLAG_ONLY_DRAWS_BACKGROUND." into mnc-dev
d281428abde6e4a9846da4cace08bd51ef97fb3e 03-Jun-2015 Alan Viverette <alanv@google.com> Update number picker styling for Material

Implements several missing drawable maintenance methods (state, etc.)
for NumberPicker's divider.

Bug: 21588885
Change-Id: Ibe37884354864c43fbf84d9eb79d7183af46fcad
/frameworks/base/core/java/android/view/View.java
3427f57e036b3e535ca40076524eb53a72df4980 02-Jun-2015 Jun Mukai <mukai@google.com> Retire PFLAG_ONLY_DRAWS_BACKGROUND.

Per discussion on another CL, this CL retires
PFLAG_ONLY_DRAWS_BACKGROUND because this is over-optimizing and
misleading. Also setFlags() needs to care both the background
and the foreground.

Bug: 20734520
Change-Id: I57d63e776b5fbad9effd10ad87e683bbb2a6dacd
/frameworks/base/core/java/android/view/View.java
8fa8b95c9d38183497f08efc6bdf4d2c56a4116c 02-Jun-2015 Svet Ganov <svetoslavganov@google.com> Merge "Respect accessibility importance for before/after node ordering." into mnc-dev
2dca7ca9bfcb120f41d16923172796bb540103be 02-Jun-2015 Svet Ganov <svetoslavganov@google.com> Respect accessibility importance for before/after node ordering.

One can set a view to be visited before/after another one for
accessibility but the before/after target views were always added
to the node info for the view regardless if they are included
for accessiilbity. Now the target viwes are reported only if they
should be included for accessibility.

Change-Id: Iba64e6f0ee0dc090c8c3e6a0a940df8c7ecd49d9
/frameworks/base/core/java/android/view/View.java
069767717a8323bbb05988137a91d40968af2972 02-Jun-2015 Alan Viverette <alanv@google.com> Remove strict mode violation from value to string coercion

The legitimate uses of value to string coercion, including the
interaction between lax attribute formatting and AAPT type inference,
combined with the low likelihood of unintentional coercion and low cost
of most string coercions, makes the value to string coercion violation
overkill.

Bug: 21563086
Change-Id: I7892e776d3e5479fcba507749b074c2abdf1b781
/frameworks/base/core/java/android/view/View.java
ef24bc00399ceb627e9780f05eb68f955e6bd495 01-Jun-2015 Mady Mellor <madym@google.com> Merge "Update stylus button press recognition in View to use new MotionEvent APIs" into mnc-dev
99bcc3eee23ed8bd15bd108d068d6f9f694e4393 01-Jun-2015 Filip Gruszczynski <gruszczy@google.com> Merge "Revert "Revert "resolved conflicts for merge of 47249f2a to mnc-dev""" into mnc-dev
b13f015ab519b3e553c03eba971ada89b472fbbc 30-May-2015 Yohei Yukawa <yukawa@google.com> Close input session when the view is detached from the window.

This is the 3rd trial to fix Bug 20820914.

In followig CLs, we have tried to address a input session
leak when the focused view is detached from the focused
window by relying on IMM#focusOut() but failed because of
regressions like Bug 21508503.
- Ib4bd70ce0305a6bde6a929bcc6ad20a2b8402a97
- I219394178e4172bc47864297f1418e677dba25e5
- Id6afc8fc64512225578c62557b96c7dc2e969adf
- Ib1b037594ebbb4ad4cf2d59e21c7a8ca9d8dc930
- I2228ae0c48ad3d9e0b55875f0dcb5ef8c55b0c5f

What we have learned from Bug 21508503 was that re-enabling
IMM#focusOut() probably requires much more work than we
thought. Also relying on IMM#focusOut() might be overkill
because the situation in Bug 20820914 is really special where
the focused view is detached from the focused window hence
we should be able to be fix the issue more conservatively
by closing input session when and only when the focused
view is detached from the focused view, rather than
re-enabling IMM#focusOut() globally.

Bug: 20820914
Change-Id: Iaf3fe2c065b5bf91e49a729ba46262114bb6da88
/frameworks/base/core/java/android/view/View.java
2217f61e51ba4b19c56b19297c1e9cf74d7d860f 26-May-2015 Filip Gruszczynski <gruszczy@google.com> Revert "Revert "resolved conflicts for merge of 47249f2a to mnc-dev""

This includes the fix for the broken dialog windows. The outsets will
only be calculated and applied if the window is full screen, since
they don't make much sense otherwise.

This reverts commit 4bb6b751fbbb218e8a298db4aa008472a0aa8d31.

Change-Id: I977a85a78c990c1840784dc0be0dddd5a6d84e6b
/frameworks/base/core/java/android/view/View.java
68e280074dfdbce4329a3e1315d855a41dcb4e5e 27-May-2015 Mady Mellor <madym@google.com> Update stylus button press recognition in View to use new MotionEvent APIs

Button press events now occur in onGenericMotionEvent. This CL updates
the button press detection code in View to recognize the gesture within
onGenericMotionEvent rather than in onTouchEvent.

Bug: 21148238
Change-Id: I6b5d6d6840e7cb6d3dabf8b138828ae862db8ed4
/frameworks/base/core/java/android/view/View.java
d0699fa5697ba43c64c142ee67b245e0a346acfe 27-May-2015 Alan Viverette <alanv@google.com> Merge "Avoid strict mode violation during saveAttributeData" into mnc-dev
4bb6b751fbbb218e8a298db4aa008472a0aa8d31 23-May-2015 Dianne Hackborn <hackbod@google.com> Revert "resolved conflicts for merge of 47249f2a to mnc-dev"

This reverts commit c7becb7ee78881646251ff4846e63eb6b96bf7ec, reversing
changes made to 8562b08f04c1309cf40db1e749d612b6824f1d12.
/frameworks/base/core/java/android/view/View.java
eb2b0af22c7b3fd1cc0297547b9f96c7976a7d59 21-May-2015 Adam Powell <adamp@google.com> Restore app expectations around drawable visibility change timing

When we update drawable visibility has changed to be part of
View.onVisibilityChanged instead of an overload of
setVisibility. While this covers more cases that we were previously
missing, it also means that we now set drawable visibility from the
View constructor via the call chain view.setFlags to
view.onVisibilityChanged to drawable.setVisibility, resulting in us
passing a 'this' pointer all over before the object is fully
initialized. (i.e. a Bad Thing.)

In general we've gotten away with playing fast and loose with this
sort of thing as a part of view inflation - calling various non-final
setters that may invoke callbacks as needed rather than initializing
view fields directly. Unfortunately it also means that we can cause a
lot of hard to trace bugs and in the long run we should try to clean
up as much of it as we can.

In this case, some apps were expecting inflation to have finished
completely before any drawable visibility changed. If a view's
visibility changes but it's not attached to a window, does it make a
callback?

The fix: no. We won't dispatch onVisibilityChanged to detached views,
but we will dispatch it when a view becomes attached.

Also fix a bug where we could end up telling a view its visibility
changed to (INVISIBLE | GONE), which just doesn't make any sense.

Bug 20103422

Change-Id: Ifba54c36114e85cf64869afcca766c30d601a16c
/frameworks/base/core/java/android/view/View.java
c7becb7ee78881646251ff4846e63eb6b96bf7ec 21-May-2015 Filip Gruszczynski <gruszczy@google.com> resolved conflicts for merge of 47249f2a to mnc-dev

This is a merge of chin support.

Change-Id: I436b751b3c4aaa6b46cfcdb475e02eedfa5a5635
3e11bf33a6094da92d97702213aa12c67b21c4d1 20-Apr-2015 Filip Gruszczynski <gruszczy@google.com> Support for devices with a chin.

Information about the chin is now part of the config.xml instead of the
theme. It is retrieved by WindowManagerService and passed to the clients
as insets. Clients can adjust their behavior in a way that makes it
invisible to the user, that part of the surface doesn't actually exist.

Bug: 19908853

Change-Id: Iedf57bf3c848201b854f91ffeb3b59187d375c1f
/frameworks/base/core/java/android/view/View.java
a6f354b78ecba3add458df2857d4fbd7b3f0dcbc 19-May-2015 Alan Viverette <alanv@google.com> Avoid strict mode violation during saveAttributeData

Adds a new framework-private method for obtaining a string without
throwing a strict mode violation on coercion.

Bug: 21109507
Change-Id: I5a7f091fc92d5abfde9e1c31f30d59ed02c7569b
/frameworks/base/core/java/android/view/View.java
1b2e5c11b6a89d56d5058907c3b0c88bf0170857 14-May-2015 Michael Wright <michaelwr@google.com> Merge "Revert "Revert "Add new MotionEvent actions for button press and release.""" into mnc-dev
5bd69e6e6164c59a0423edd0d5243fc8c07e6af3 14-May-2015 Michael Wright <michaelwr@google.com> Revert "Revert "Add new MotionEvent actions for button press and release.""

This reverts commit 96238051621ba2dc8a1c20fa48a00ec6ec4735d6.
/frameworks/base/core/java/android/view/View.java
3d5286983447262f12b78785391681b20a71f6b2 14-May-2015 Michael Wright <michaelwr@google.com> Merge "Revert "Add new MotionEvent actions for button press and release."" into mnc-dev
96238051621ba2dc8a1c20fa48a00ec6ec4735d6 14-May-2015 Michael Wright <michaelwr@google.com> Revert "Add new MotionEvent actions for button press and release."

This reverts commit ec0ce51b733f10c620cb9447b074f022d042e31d.
/frameworks/base/core/java/android/view/View.java
07b83f1c9e8a7692a985aa2d13ac13fc5521aa4b 14-May-2015 Michael Wright <michaelwr@google.com> Merge "Add new MotionEvent actions for button press and release." into mnc-dev
ec0ce51b733f10c620cb9447b074f022d042e31d 08-May-2015 Michael Wright <michaelwr@google.com> Add new MotionEvent actions for button press and release.

Introduce ACTION_BUTTON_PRESS and ACTION_BUTTON_RELEASE as actions to
signal a button press or release. If these actions happen
simulanteously with a DOWN or UP event then they're explicitly
ordered to happen after the DOWN or preceding the UP in order to send
them to the most recently targeted view.

Also, introduce new stylus button constants that differ from the
constants we use for mouse buttons.

Bug: 20704355
Change-Id: I5b75e5c5e692171c1c117ee687dd185a0d9dd15c
/frameworks/base/core/java/android/view/View.java
a789325a0fddadd80f9ce24f020c3eab3e6c6489 13-May-2015 Alan Viverette <alanv@google.com> Update scrollIndicators XML enums to match View constants

Bug: 21027462
Change-Id: I41e503e218253cf63bc44a82345f8b086261e379
/frameworks/base/core/java/android/view/View.java
ed9af066b2407a36699fae2e475c4d1b53d2ca1d 08-May-2015 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #20655182: API Review: ViewAssistStructure" into mnc-dev
94a6d15ede149189bba9e5f474ed853c98230e75 06-May-2015 Siva Velusamy <vsiva@google.com> Use new hierarchy viewer protocol in all View subclasses

A previous CL introduced a new way of encoding view properties for
use by heirarchy viewer. This CL updates all views using the old
@ExportedProperty annotation to use this new method. The older
mechanism will be removed in a subsequent CL.

Change-Id: I6cc23b90cd9da1c6ce89b4caffe54874db203452
/frameworks/base/core/java/android/view/View.java
0d857b9028f2702ce439e13feccde8182d40e1e5 22-Apr-2015 Siva Velusamy <vsiva@google.com> Improve hierarchy viewer dump hierarchy latency

Hierarchy Viewer obtains the properties for each view by using
reflection and looking for fields and methods that have the
@ExportedProperty annotation. Using reflection made it quite slow
for large view hierarchies.

This CL adds a new method (encode) to each class that wishes to
export data to hiererachy viewer. Inside this method, the object
can write a sequence of key, value pairs corresponding to the
values it wants exported.

With this change, the dump hierarchy operation that used to take
more than 10 seconds can be performed in a few hundred milliseconds.

Change-Id: I199ac2e7ca3c59ebcfec7e6bd201e134c41fd583
/frameworks/base/core/java/android/view/View.java
49b043f37d7231b1544cb72e1bfb616e5a00688d 07-May-2015 Dianne Hackborn <hackbod@google.com> Fix issue #20655182: API Review: ViewAssistStructure

Fix the various view assist related APIs.

Also remove the blockAssist view attribute, and instead use
the window's FLAG_SECURE to drive blocking of the entire
hierarchy (which is semantically correct, and will protect
existing apps that have already indicated they need it).

Change-Id: I6beebc86b202809cba0a356cae9607d8d0fb5e78
/frameworks/base/core/java/android/view/View.java
922e1c6ed28da4c5b7ff6b1d4448fe3e8c11652f 06-May-2015 Alan Viverette <alanv@google.com> Add scroll indicators on View, use in AlertDialog

Also updates default fade duration for scrollbars to match Material
spec and moves around some padding in AlertDialog so that scrolling
text and list items aren't so close to the title.

Bug: 19098033
Change-Id: I40dca6a931480c4c48463e3ea5b8361534cbd8d7
/frameworks/base/core/java/android/view/View.java
d1808401ca3bfd6b6b9a975c1e739b194d18f849 05-May-2015 Prerepa Viswanadham <dham@google.com> Merge changes from topic 'mwd-merge-050415' into mnc-dev

* changes:
Merge commit 'b6f59f4' into master_merge
Merge commit 'f6db0ce' into master_merge
Merge commit '17455a3' into master_merge
Merge commit 'b4d5b32' into master_merge
Merge commit 'a1a2fa7' into master_merge
Merge commit '8dfdb98' into master_merge
Merge commit 'eba66c3' into master_merge
31a2d063df5111e730abe7d07be064690deedc34 01-May-2015 Chris Craik <ccraik@google.com> Revert "Revert "Merge getDisplayList and updateDisplayListIfDirty""

Fixes breakage from HwAccelerationTest

This reverts commit b2847afde24aac22c8fb804cdce0c24b8a7c40c4.

Change-Id: I762b3c9020fc1d06bac61ffa8b956049147515b1
/frameworks/base/core/java/android/view/View.java
5c705c595d6adbb4b6e8ad5dee29205246cd5cc4 01-May-2015 Chris Craik <ccraik@google.com> Merge "Fix build." into mnc-dev
b2847afde24aac22c8fb804cdce0c24b8a7c40c4 01-May-2015 Chris Craik <ccraik@google.com> Fix build.

Revert "Merge getDisplayList and updateDisplayListIfDirty"

This reverts commit f85d064b536d9b2028a83e21d98eac9b40b74e95.

Change-Id: I8b1566aba67c385d72759ea2aea16edcd8477813
/frameworks/base/core/java/android/view/View.java
f4ff8f701f8127ad9e187a30e9407375695a4b62 01-May-2015 Chris Craik <ccraik@google.com> Merge "Merge getDisplayList and updateDisplayListIfDirty" into mnc-dev
04c0f415b566932a98a65076a403a2e3b589a86c 01-May-2015 Chris Craik <ccraik@google.com> Merge "Update alpha documentation" into mnc-dev
dd2a3bc1ba1334495b76aaf008a696b2671c18fc 01-May-2015 Chris Craik <ccraik@google.com> Update alpha documentation

bug:19412691
bug:20254728

Change-Id: I5bcdd888fb7b6498d43957a3ef32d3ad13683ad0
/frameworks/base/core/java/android/view/View.java
f85d064b536d9b2028a83e21d98eac9b40b74e95 01-May-2015 Chris Craik <ccraik@google.com> Merge getDisplayList and updateDisplayListIfDirty

bug:17767704

Change-Id: I5dffc0fa343d5d67d5fe59c78eca77bb8645ce0e
/frameworks/base/core/java/android/view/View.java
d274400205d054010e60ddd69f1535bedf41d96b 01-May-2015 Mady Mellor <madym@google.com> resolved conflicts for merge of 04f2fe39 to master

Change-Id: I9cd9efb3ead33cef9a0de95417d71d535cbc1bce
e82067b57595a2bce656e5ba3a9bcf19048f2f25 30-Apr-2015 Mady Mellor <madym@google.com> Add onStylusButtonPress listener to View

The gesture is: stylus touching screen + button pressed, the event
is recognized when the button is pressed, not when it's released.
It can be pressed during DOWN or MOVE.

If the stylus touch + press button is occurring longpress cannot
occur and vice versa. Also adds the haptic feedback and accessibility
bits specific to the new gesture.

Bug: 19620479
Change-Id: Ibc4654978ef39e7b4251d17636453d90f3bf622d
/frameworks/base/core/java/android/view/View.java
aba56b648fd559d445ba04c3bdfcb9cdb048f729 30-Apr-2015 Maxim Bogatov <maximbogatov@google.com> Merge "Add accessibility actions for scrolling in different directions"
80a2f50315e9b219de7e0dc92afad625cbb88f1a 29-Apr-2015 Chris Craik <ccraik@google.com> am e58e0e50: am 737f0b22: am 7201bf2b: Merge "Unify View alpha implies clipping behavior" into mnc-dev

* commit 'e58e0e50efa429b47985acedf3ec7d8d5745ea95':
Unify View alpha implies clipping behavior
7201bf2b7ebac4ed0be6efd6b046f93a8de5b2d0 29-Apr-2015 Chris Craik <ccraik@google.com> Merge "Unify View alpha implies clipping behavior" into mnc-dev
40801e3d21aaf6b13f75f84904e0cc6692c971b3 29-Apr-2015 John Reck <jreck@google.com> am 6e51f4bd: am 6c921033: am b77a7551: Merge "Remove View:hasStaticLayer()" into mnc-dev

* commit '6e51f4bd71a7ead84ae35dc56c41b535942a1469':
Remove View:hasStaticLayer()
b77a7551121561f4ea7d5ce0c4030aeb7ce709e8 29-Apr-2015 John Reck <jreck@google.com> Merge "Remove View:hasStaticLayer()" into mnc-dev
33d82aeac394f9e46a008ff6597a178830bf3c94 29-Apr-2015 Adrian Roos <roosa@google.com> am 85b9577e: am dffb90fe: am ca067e97: Merge "Rename windowLightStatusBar" into mnc-dev

* commit '85b9577e4fd6c8cc3871a81364433078f7517b58':
Rename windowLightStatusBar
c7850626e41d3f53afc086d87014355f06d59849 29-Apr-2015 Chris Craik <ccraik@google.com> am 4527289b: am 0e7d1432: am ff623a5a: Merge "Remove unused flags and dirty rects" into mnc-dev

* commit '4527289b767865053ef6fa6aaa0a836ecba29dbb':
Remove unused flags and dirty rects
7ebc0eb2434ac80a8e6a063c1c87337b0be1c3c3 29-Apr-2015 Chris Craik <ccraik@google.com> Unify View alpha implies clipping behavior

bug:20254728

Change-Id: If472adf7c75ca9ccfeb0d22e005c1215aacfb80f
/frameworks/base/core/java/android/view/View.java
ca067e9703ab9fcee430d13aac28d04bdc46af2a 29-Apr-2015 Adrian Roos <roosa@google.com> Merge "Rename windowLightStatusBar" into mnc-dev
ff623a5ab3b26cd98790e355e316a65d76197cbd 28-Apr-2015 Chris Craik <ccraik@google.com> Merge "Remove unused flags and dirty rects" into mnc-dev
f4f84c98de630e6346f136ce074af464be6c4a00 28-Apr-2015 Adrian Roos <roosa@google.com> Rename windowLightStatusBar

Bug: 20642760
Change-Id: If961c758bb034ff9643d7b06a2baafe7307f4051
/frameworks/base/core/java/android/view/View.java
c2330f5d460b759de677e0924830e2cbd43bf264 28-Apr-2015 John Reck <jreck@google.com> Remove View:hasStaticLayer()

Bug: 19113169
Change-Id: I81286db45eecc92c0adf04a5983b752bf3290d45
/frameworks/base/core/java/android/view/View.java
4344e06c05436c003054be4a5af3020d50e0d5b4 28-Apr-2015 Alan Viverette <alanv@google.com> am c5378645: am e8518e7e: am f8fdf87c: Merge "Fix handling of android:onClick for ContextWrapper" into mnc-dev

* commit 'c537864580bbb3e272f9e227eba52523c6323731':
Fix handling of android:onClick for ContextWrapper
f8fdf87c060fa77a1910d8b6f4b6d26c83963033 28-Apr-2015 Alan Viverette <alanv@google.com> Merge "Fix handling of android:onClick for ContextWrapper" into mnc-dev
956f340aacc7d8fc2d10f776551f13fde2d8d3ab 28-Apr-2015 Chris Craik <ccraik@google.com> Remove unused flags and dirty rects

bug:17209071

Also update DisplayList->RenderNode naming in Editor

Change-Id: I1d505640ba7388a0b0042d9c787f859e45a24da5
/frameworks/base/core/java/android/view/View.java
b6710d4caa79a882dc10339d4da9144d0b9d0569 28-Apr-2015 Deepanshu Gupta <deepanshu@google.com> am cb8ca207: am 9014b31f: am 8381e2cd: Merge "Fix view outline for shadows in LayoutLib." into mnc-dev

* commit 'cb8ca207580ddda501336f77f7d1c39519524320':
Fix view outline for shadows in LayoutLib.
ac6ffce1711b84682521e6c2e55865c60929fd88 27-Apr-2015 Maxim Bogatov <maximbogatov@google.com> Add accessibility actions for scrolling in different directions

b/20157498

ACTION_SCROLL_UP, ACTION_SCROLL_DOWN, ACTION_SCROLL_LEFT and ACTION_SCROLL_RIGHT
actionos were added in addition to ACTION_SCROLL_FORWARD/BACKWARD

Change-Id: I8d5182a8add32085a354b280496b3d38ec79be32
/frameworks/base/core/java/android/view/View.java
dbc7ca0bac64e6f0e6f8463ac8e3d43dfac27eae 20-Apr-2015 Deepanshu Gupta <deepanshu@google.com> Fix view outline for shadows in LayoutLib.

Set the bounds on the drawable before getting the view outline for
shadow. Also, reuse the temp outline object in AttachInfo rather than
allocating a new one each time.

Change-Id: I69793d38d60c5b9f9050569f2b22fbc7b90620bf
/frameworks/base/core/java/android/view/View.java
87cfcaac1bd8cc9b7a5ef62fe252fe554e1cb88e 25-Apr-2015 Alan Viverette <alanv@google.com> Fix handling of android:onClick for ContextWrapper

DeclaredOnClickListener traverses up the context hierarchy until it
either finds the named method or runs out of contexts.

Bug: 19125347
Change-Id: I565348e2a9f5686d5c8041fbc301d44ec04d5703
/frameworks/base/core/java/android/view/View.java
83c6896cbf402623ef7d97f13ed65098df63429f 11-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate some APIs with threading annotations

Change-Id: I24bda29261cdecbe78b2529866624b9313ca5c03
/frameworks/base/core/java/android/view/View.java
799d8d0a0fa42d360f2ccd9cc66aace8eb167c67 23-Apr-2015 Dianne Hackborn <hackbod@google.com> Add "assist block" API.

To prevent assist structure traversal down the view hierarchy.

Change-Id: I50ce5f8de6f2eca3cb862de8eacd6422c40a2f7c
/frameworks/base/core/java/android/view/View.java
6eededad96f5627d3206465ab8d85e2000177367 21-Apr-2015 Chris Craik <ccraik@google.com> Merge "More state cleanup in View#draw"
b309825138120a379b9be2a441dc25a2e534d9b2 21-Apr-2015 Chris Craik <ccraik@google.com> More state cleanup in View#draw

bug:20254728

Change-Id: I988077aac59165dd1fcb3ebbcd5abded586256b5
/frameworks/base/core/java/android/view/View.java
33f0c93fa9d1fd793f02e91e4419233a1a228e65 21-Apr-2015 Alan Viverette <alanv@google.com> Merge "Update the popup reveal animation to more closely match window reveal"
05636471fcd16e797046fa6eae879aae1cdf9b77 17-Apr-2015 Filip Gruszczynski <gruszczy@google.com> Merge "Make UNSPECIFIED measure spec include size hint."
82d3cd69b5b2947a01657132de86c5a4e00692f1 16-Apr-2015 Adam Powell <adamp@google.com> Improve error reporting for buggy View subclasses

When a view doesn't call setMeasuredDimension, note the view ID
and class name as part of the exception message.

Bug 18037248

Change-Id: I1c5ed823378ad92a067801dc8c3be31b07c6f463
/frameworks/base/core/java/android/view/View.java
b6824bf58a0cd34395993fa204217e8e246de6fb 13-Apr-2015 Filip Gruszczynski <gruszczy@google.com> Make UNSPECIFIED measure spec include size hint.

Change-Id: I6c4f193d0590824c644e20e8af16d055a04ac9c9
/frameworks/base/core/java/android/view/View.java
95888c07e978f0d6af62ef96124acd228ac2ab13 16-Apr-2015 Alan Viverette <alanv@google.com> Update the popup reveal animation to more closely match window reveal

Hand-waves the default interpolators for efficiency's sake until we can
implement interpolator caching or preloading.

Change-Id: Ibc618a0c092b08a33fb91265ec15665c94831b6b
/frameworks/base/core/java/android/view/View.java
4b46ed3b425493b56d4c32b0a45f5338b2674889 15-Apr-2015 Chris Craik <ccraik@google.com> Merge "Simplify state in View#draw(canvas, parent, drawingTime)"
14c14ea49b0a68136b9ed09a00c51dcd340407f2 14-Apr-2015 Chris Craik <ccraik@google.com> Simplify state in View#draw(canvas, parent, drawingTime)

Simplify DisplayList / RenderNode state management in
View#draw (the ugly one).

Now, we simply differentiate between drawing with a RenderNode, and
drawing without it. This is because we expect drawing a view while
detached, or to a SW canvas should function the same.

Change-Id: I8b519222b651c4ec8211071c0a7b9b70b0a6a5cf
/frameworks/base/core/java/android/view/View.java
b51222a3010abdf3236cb00fd401b7062c28831e 13-Apr-2015 Roozbeh Pournader <roozbeh@google.com> Add more firstStrong alternatives for textDirection.

The current firstStrong value of textDirection is locale-dependent,
and can create problems when consistent display of text across
locales of potentially different direction is desired.

This adds two new values for textDirection, firstStrongLtr and
firstStrongRtl, which don't use the locale or the view's direction as
fallback, but explicit values of LTR or RTL.

Using firstStrongLtr also guarantees the exact algorithm defined in
the Unicode Bidirectional Algorithm to be used for determining
direction.

Bug: 13428339
Change-Id: I450d4f6b5197763ace7f9506c72cf87a90da4218
/frameworks/base/core/java/android/view/View.java
f518a3ab70acf70d2f7d3ef3d1f6effd09b224df 13-Apr-2015 Chris Craik <ccraik@google.com> Merge "Deprecate and disable legacy caching APIs"
5a6bbae6fca83e4534600be3701a28eb787ae71c 11-Apr-2015 Chris Craik <ccraik@google.com> Deprecate and disable legacy caching APIs

bug:20159889

Change-Id: Ib25bb6bceaee27b4d04a64e8ad298db9977b2719
/frameworks/base/core/java/android/view/View.java
d5bf3ed9b0138e9fd305da91386d1df03f9a75cc 27-Mar-2015 Clara Bayarri <clarabayarri@google.com> Show and trigger activities that implement Text Processing actions

This CL adds the Activities that support Intent.ACTION_PROCESS_TEXT
to the Text Selection Action Mode in Editor, and triggers an intent
with the currently selected text when they are selected.

It also adds the required mechanism to allow a View to request an
intent to be started, and return the activity result back to it.

Change-Id: I62ec618010edf01da41338c8c1a7dd4292a15227
/frameworks/base/core/java/android/view/View.java
61cbc1f74fd3e08cfb813468e12b5e44aa1679f5 07-Apr-2015 Alan Viverette <alanv@google.com> Merge "Add accessibility action for scrolling to a collection position"
23f4432437b2ab742971055b7eb79b346894f24b 07-Apr-2015 Alan Viverette <alanv@google.com> Add accessibility action for scrolling to a collection position

Cleans up verbose R package in GridView, accessibility action docs,
and some lint warnings in AccessibilityNodeInfo. Makes the action IDs
for SHOW_ON_SCREEN and SCROLL_TO_POSITION public so that we can
guarantee they won't change (and thus reference them in support lib).

Change-Id: Ica53b7be7a68b84054b9bac1fc7958a21a42e089
/frameworks/base/core/java/android/view/View.java
db22741540a8e838c1aabe57e9790c8dd97687c7 03-Apr-2015 George Mount <mount@google.com> Fix NPE in getForegroundTintList

Bug 20068789

Change-Id: I658c6f4504ca78ea839d635f497c48c35e1de6ca
/frameworks/base/core/java/android/view/View.java
ec3c97d27f2a424fa847561a3932a40c093a91a1 03-Apr-2015 Chris Craik <ccraik@google.com> Merge "Add compat path for restore underflow"
3891f3ad598561d5a82c07795e1fee7f1d3612d1 03-Apr-2015 Chris Craik <ccraik@google.com> Add compat path for restore underflow

bug:19829784

Change-Id: Ia761664208ab80c055ca11174db3ddc74457b92b
/frameworks/base/core/java/android/view/View.java
6251f0d42be7da54d7f1bc8f570a44883b7d9052 02-Apr-2015 Dianne Hackborn <hackbod@google.com> Rework assist to walk down the view hierarchy.

Instead of collecting all of the data directly in AssistStructure,
we now have a dispatch mechanism down the hierarchy to do so.
While doing this, also added the ability to automatically collect
assist data from AccessibilityNodeProviders attached to views
(so now we see all of the data in for example Calendar).

This is a first step needed towards being able to asynchronously
populate assist data.

Change-Id: I59ee1ea104ca8207bad8df7a38195d93da1adea7
/frameworks/base/core/java/android/view/View.java
67568647417c6289769e423a2cf93a756fc7e350 31-Mar-2015 Tor Norbye <tnorbye@google.com> Specify a maximum value for View.MeasureSpec.makeMeasureSpec

This adds an annotation to the size parameter for makeMeasureSpec
such that lint can flag potential overflows. (It also adds a typedef
for the mode parameter.)

Change-Id: If32aad2a744f8c582a6c793c2c833f81e9487102
/frameworks/base/core/java/android/view/View.java
34457f51e0a19555a7b9c6df6803ee1aa04c51b8 25-Mar-2015 Alan Viverette <alanv@google.com> Fix ViewRootImpl handling of content changes, fix ViewPager parenting

Previously content changes were only handled if they came directly from
the focused host, which meant that changes that occurred higher in the
tree were ignored. As a result, scrolling in ViewPager that contained
virtual nodes would fail to update the focus position.

Change-Id: I028bd8c670f1210339da331626e1986c5b5d4b87
/frameworks/base/core/java/android/view/View.java
60b674e07bf7346a673abd4a5f40bddeca16e7ff 25-Mar-2015 Alan Viverette <alanv@google.com> Clean up date picker attributes, add carets

Bug: 19819283
Bug: 19431364
Change-Id: Idd66f4ceb99d598c0f256d85c43bff6e25ccdd8f
/frameworks/base/core/java/android/view/View.java
9c66583379f4cd296da8c83f2c18dfb29df72861 26-Mar-2015 Adam Powell <adamp@google.com> Merge "Fix default gravity for View foreground drawables"
6579f5090affb9b5b6869af32297f4c422ea1c90 26-Mar-2015 Adam Powell <adamp@google.com> Fix default gravity for View foreground drawables

Use the expected default gravity of Gravity.FILL as FrameLayout used
to do. Reset the bounds correctly when a new drawable is set.

Bug 19922909

Change-Id: I80181923c37e33ba308e364e322d84f3cc86e93b
/frameworks/base/core/java/android/view/View.java
26c44eeecf665702c5398803d8b1145e0050a07d 25-Mar-2015 Alan Viverette <alanv@google.com> Add accessibility action for making a node visible on screen

Bug: 19872425
Change-Id: I39c971f949d08d6573da2e5567dca1e187a17d7e
/frameworks/base/core/java/android/view/View.java
16e30f5e5fd713bb8c684e3897d476a057552c0d 25-Mar-2015 Adam Powell <adamp@google.com> Merge "Fix right click to context menu behavior of View."
33e3036a38d0c32ab3e69a93116e3e6cce232030 24-Mar-2015 Jun Mukai <mukai@google.com> Fix right click to context menu behavior of View.

When the View opens the context menu, the mouse-down event is
already handled. Therefore, the next ACTION_UP should be canceled,
otherwise, single right click shows the context menu and then
invokes the normal click actions.

Also, the right-down event should always be consumed regardless
of the context menu support. "the right click opens the context
menu on some views, but it behaves as a normal click on some
other views" would confuse users.

Bug: 19641497
Change-Id: Ibbc18fe641745cf42382129b81858d8f3d14768b
/frameworks/base/core/java/android/view/View.java
2b25e2eee032a23fd20a136d5a747098f8b6452f 24-Mar-2015 Adam Powell <adamp@google.com> Move foreground drawable down from FrameLayout into View

This will allow any View to include foreground drawables. This is
useful for cases where a foreground drawable is a more appropriate
place to put a state list to show focus or touch highlighting.

Also add View#onDrawForeground as a public API hook for drawing
decorations after primary view content and child views such as
scrollbars, foreground drawables and EdgeEffects.

Change-Id: If1e4700af69db6876970f8f4ad5e3eab11b8034c
/frameworks/base/core/java/android/view/View.java
43c410eaacf7d287c6c3f5621e6e0b96501004dc 18-Mar-2015 Chris Craik <ccraik@google.com> Merge "Remove HardwareCanvas"
da81fa569ed2f955252d69c1e000ebc1a2850191 16-Mar-2015 Tor Norbye <tnorbye@google.com> Merge "Add resource type annotations to some APIs"
417ee5ba89f7e0fe5efd34fce74bf1ee5923d976 11-Mar-2015 Tor Norbye <tnorbye@google.com> Add resource type annotations to some APIs

Change-Id: I37c8afdaea455aa92bc8270bb2dfd60616c5f9bc
/frameworks/base/core/java/android/view/View.java
484bc6e5a79af1b7b0a2eb682802006522b274fd 13-Mar-2015 Dianne Hackborn <hackbod@google.com> Merge "More work on collecting assist data."
4423d91de5300d3fd318bf5bc2d4d7e5bb856abf 02-Mar-2015 Clara Bayarri <clarabayarri@google.com> Add a type parameter to startActionMode() calls.

This requires adding a new method to View and Window.Callback to pass
down the type as a parameter.

For compatibility purposes, the new method implementations keep the
type and call the old method, in case clients have subclassed it.

Change-Id: If5d857f131e33be8cc6a8814f2e9c4e85ad2da25
/frameworks/base/core/java/android/view/View.java
a83ce1dd2ad3a6b71e90ff4845afc1299fe17b9d 11-Mar-2015 Dianne Hackborn <hackbod@google.com> More work on collecting assist data.

Optimize parceling of AssistData (which is now renamed to
AssistStructure) by pooling duplicated class name strings.

Change text associated with a view node to a CharSequence,
so styling information comes along.

Include global text attributes -- size, colors, etc.

Introduce a new AssistContent structure, which allows us
to propagate information about the intent and data the
activity is looking at. This further allows us to propagate
permission grants, so the assistant can dig in to that data.
The default implementation propagates the base intent of an
activity, so if for example you bring up the assistant while
doing a share the assistant itself has the same information
and access that was given to the share activity (so it could
for example share it in another way if it wanted to).

Did some optimization of loading PersistableBundle from xml,
to avoid duplicating hash maps and such.

Changed how we dispatch ACTION_ASSIST to no longer include
the more detailed AssistStructure (and new AssistContent)
data when launching; now the example code that intercepts
that needs to be sure to ask for assist data when it starts
its session. This is more like it will finally be, and allows
us to get to the UI more quickly.

Change-Id: I88420a55761bf48d34ce3013e81bd96a0e087637
/frameworks/base/core/java/android/view/View.java
954289d9a9b1a26b1621037a427269bdbd67d5bc 27-Feb-2015 Filip Gruszczynski <gruszczy@google.com> Allow polling for WindowInsets.

Change-Id: I36feb2403b1bcf6de5d8808734c46999a38e7403
/frameworks/base/core/java/android/view/View.java
f6829a0a618b4523619ec53c996b04d67e3186b9 10-Mar-2015 Chris Craik <ccraik@google.com> Remove HardwareCanvas

Change-Id: I239646a7f00f09d3f76fe6b6162eed86bc0d6e77
/frameworks/base/core/java/android/view/View.java
a57e9365cae98d7599fd5877dce15718349aa7a9 10-Mar-2015 Chris Craik <ccraik@google.com> Add several CallSupers to View

Change-Id: I3011bd9757273f9c1d35f552bd6fefd4bf830029
/frameworks/base/core/java/android/view/View.java
b3ec733bb830f2d4425825d93f9ed95f284e9145 04-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate methods with size and range annotations

Change-Id: I666861f0dfae31402b1280e9a966a583b88e2e1a
/frameworks/base/core/java/android/view/View.java
c615c6fc9caca76cd96998f86e1f1e6393aeadbb 02-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate methods to be called from overrides with @CallSuper

Change-Id: Ibc587c2aaee9f3e7f448079f72a75459fe4e15e7
/frameworks/base/core/java/android/view/View.java
c0a1b7f9a6a496deb68b095d122ca85f22daad98 07-Mar-2015 Tor Norbye <tnorbye@google.com> Merge "Annotate ARGB integer parameters with @ColorInt"
5dc5c0aac8b4caff4854dc4f988e17734b59a20a 06-Mar-2015 Scott Kennedy <skennedy@google.com> Merge "Mark setAccessibilityDelegate()'s argument as @Nullable"
89809a1cd46a46438d15b83a814e14f790ace048 06-Mar-2015 Scott Kennedy <skennedy@google.com> Mark setAccessibilityDelegate()'s argument as @Nullable

Change-Id: I3c087e953e29e81285fc8efa4157f694eeaf075d
/frameworks/base/core/java/android/view/View.java
80756e38882720860db52f1fcc21fa1505a02abf 02-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate ARGB integer parameters with @ColorInt

Change-Id: I307f72a382272cf18ddb6b07d9fcb81228568d9a
/frameworks/base/core/java/android/view/View.java
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac 28-Feb-2015 John Spurlock <jspurlock@google.com> Remove unused imports in frameworks/base.

Change-Id: I031443de83f93eb57a98863001826671b18f3b17
/frameworks/base/core/java/android/view/View.java
25f0e6183b632e6f2ba1963e3a4e94c27824dce7 27-Feb-2015 Alan Viverette <alanv@google.com> Revert "Use ObjectAnimator for fading scrollbars, set initial duration to 1500"

Bug: 19522833
Bug: 19528265
This reverts commit 72710f11ecd3baf468bf649283453cb7aafe4d74.

Change-Id: I7235ae3ca53696f029cc18f19fe1d373c4f54bbf
/frameworks/base/core/java/android/view/View.java
228fd600cebe51e612357489310bc239d6bf24cc 27-Feb-2015 Alan Viverette <alanv@google.com> Merge "Implement landscape layout for time picker dialog"
a046faaf38ad818e6b5e981a39fd7394cf7cee03 26-Feb-2015 P.Y. Laligand <pylaligand@google.com> Always check for null when peeking at the InputMethodManager.

Change-Id: I8c0d66c63b617c58be3d5fcf3dfb0c55aa287dcb
/frameworks/base/core/java/android/view/View.java
62c79e9a64c3b2cafd5500ed3064977dff7b7da3 26-Feb-2015 Alan Viverette <alanv@google.com> Implement landscape layout for time picker dialog

Adds support overriding default alert dialog panel elements by including
them in the dialog's custom content view, but no public API (yet!) since
the panel IDs have never been public. Some minor cleanup and refactoring
in TimePickerDialog. Removes Holo styles for "clock" and "calendar" style
pickers since they are new in Material. If the new styles are used against
Holo they will match Material but with Holo primary/accent colors.

Also implements themed color state lists to resolve TODOs in both time
and date pickers.

Bug: 19431361
Change-Id: I095fd8d653e02d9e5d20d66611432a08a7a5685e
/frameworks/base/core/java/android/view/View.java
72710f11ecd3baf468bf649283453cb7aafe4d74 20-Feb-2015 Alan Viverette <alanv@google.com> Use ObjectAnimator for fading scrollbars, set initial duration to 1500

Fairly intensive refactoring of ScrollabilityCache.

Change-Id: I88669c0b9b79ca12a237606d5ff8be0e7e8b37ba
/frameworks/base/core/java/android/view/View.java
7b9c912f536925ac6ec43935d6e97506851b33d6 31-May-2013 Tor Norbye <tnorbye@google.com> Add @ResourceInt annotations on APIs

Change-Id: I119cc059c2f8bd98fd585fc84ac2b1b7d5892a08
/frameworks/base/core/java/android/view/View.java
c051955392840cb94bd6f0b2a8107a48d2ffc8b0 12-Feb-2015 Scott Kennedy <skennedy@google.com> Mark findViewById(int) @Nullable

Change-Id: I9bf7c08a896bd9c28400ff832179abc579fd502f
/frameworks/base/core/java/android/view/View.java
76c382ed6799f11df9d3d8da0f63411dba68a0e2 11-Feb-2015 Scott Kennedy <skennedy@google.com> Add @Nullable to AttributeSet in a couple constructors

Change-Id: I184113680c5dc867b353df81961e93523b91bbc5
/frameworks/base/core/java/android/view/View.java
e7fad2fa90c1e5935a33ceff6980cc04a42323e2 07-Feb-2015 Svet Ganov <svetoslavganov@google.com> am 763ce6c0: am 41daba00: am 060bca74: Merge "Accessibility: Handle a missed case when clicking focused views." into lmp-mr1-dev
automerge: 033c2a2

* commit '033c2a21f857948416eeaa36e6a613743b548eff':
Accessibility: Handle a missed case when clicking focused views.
a1c14fe945c00c55d4966aca943b2de8f4535a27 06-Feb-2015 Scott Kennedy <skennedy@google.com> Merge "Make setOn[Long]ClickListener() take a @Nullable argument"
a7bb6fbeab933326d58aa806d8194b7b13239d34 04-Feb-2015 Dianne Hackborn <hackbod@google.com> First quick implementation of auto assist data.

Introduce new AssistData class that contains all data
the framework automatically generates for assist. Currently
populated with a very simple tree structure representing
the app's view hierarchy.

Reworked how we populate the class name for accessibility
info, so this is provided through a new method call on View
that subclasses can override. This method is also used
to populate the class name in AssistData.

Change-Id: Ibd0acdc8354727d4291473283b5e4b70894905dc
/frameworks/base/core/java/android/view/View.java
0a2cceebd5503329f7038847906351af21434048 06-Feb-2015 Svet Ganov <svetoslavganov@google.com> Accessibility: Handle a missed case when clicking focused views.

The clicking logic was missing the case where a child of the accessibility
focused view reacts to the injected down up events for clicking. This
results of a whole class of views being non-interactive. Now if an event
is targeting accessibility focus and the dispatching view group has this
focus, we clear the flag before dispatching to children, so they can
handle the event rather ignoring it becuase they are not accessibility
focused.

bug:19252492

Change-Id: I6ac25bb7a50b35bb638ca4bfb9fc4198d08c2d4d
/frameworks/base/core/java/android/view/View.java
e6ca429720b944c0a573976cf9065d2ed8b281fa 06-Feb-2015 Scott Kennedy <skennedy@google.com> Make setOn[Long]ClickListener() take a @Nullable argument

Change-Id: I923d1f986fa26cbf2a884c52af70469941daf8ea
/frameworks/base/core/java/android/view/View.java
b989c5561ea10e623d73e7bb89b37ac38ccdd908 06-Feb-2015 Alan Viverette <alanv@google.com> resolve merge conflicts of da9653a to master.

Change-Id: I7458452389fb7b048fe5c6daa375fd4dbb9d9766
f8512ce08174426dfbba96e8108e5a64332f1e71 06-Feb-2015 Alan Viverette <alanv@google.com> Mutate scroll bar drawables

Bug: 19285726
Change-Id: I4bb596433c1fa1cc4e2fa53d0cdae992f9add858
/frameworks/base/core/java/android/view/View.java
75fa38539d1343eb7d4360c3a183e295a18185a8 27-Jan-2015 Adrian Roos <roosa@google.com> Add API for light status bar

Adds a systemUiVisibility flag and links it
to the status bar icon controller. Also adds a
theme attribute for setting the flag.

Bug: 19233606
Change-Id: I8a89a10cf2746cefa2feba50dc60c5eccd2ab28d
/frameworks/base/core/java/android/view/View.java
7e760ee59d77f0e8cbdd4c64c1d4bf0b89113878 03-Feb-2015 Svetoslav <svetoslavganov@google.com> Fix broken activation of the selected view in accessibility mode. automerge: ded133c automerge: b6b526e
automerge: f8acd7a

* commit 'f8acd7a961f3a36712519d0f925f86f3da8d0b7c':
Fix broken activation of the selected view in accessibility mode.
ded133c446fa9d0d23e6bde19a66fb2ce3980491 31-Jan-2015 Svetoslav <svetoslavganov@google.com> Fix broken activation of the selected view in accessibility mode.

We were using an approximation to determine where to send a pair of down
and up events to click on the view that has accessibility focus. We were
doing reverse computation to figuring out which portion of the view is
not covered by interactive views and get a point in this region. However,
determining whether a view is interactive is not feasible in general since
for example may override onTouchEvent. This results in views not being
activated or which is worse wrong views being activated.

This change swithes to a new approach to activate views in accessibility
mode which is guaranteed to always work except the very rare case of a
view that overrides dispatchTouchEvent (which developers shouldn't be
doing). The new approach is to flag the down and up events pair sent
by the touch explorer as targeting the accessibility focused view. Such
events are dispatched such that views predecessors of the accessibility
focus do not handle them guaranteeing that these events reach the accessibiliy
focused view. Once the accessibiliy focused view gets such an event it clears
the flag and the event is dispatched following the normal event dispatch
semantics.

The new approach is semantically equivalent to requesting the view to perform
a click accessiblitiy action but is more generic as it is not affected by
views not implementing click action support correctly.

bug:18986806
bug:18889611

Change-Id: Id4b7b886c9fd34f7eb11e606636d8e3bab122869
/frameworks/base/core/java/android/view/View.java
96ccd39d354d8b268eac32e4cf873ea141ef5ed4 31-Jan-2015 Alan Viverette <alanv@google.com> Use inherited visibility to set visibility of managed drawables

Previously we only used direct visibility, which resulted in strange
behavior when a parent view with an animated child was hidden. We were
also incorrectly awakening scroll bars for non-visible views, though
that's a much less visible (pun intended) bug.

Only handles the two most common cases for ripples. A subsequent CL will
update handling of View drawable management and fix this for all managed
drawables.

Bug: 15350931
Change-Id: I0d0fe2c51210e8d2e0a73b0248cec3b93bfc36f5
/frameworks/base/core/java/android/view/View.java
b59041595b08a7aca8d425fc6e6b16583a275f12 30-Jan-2015 Alan Viverette <alanv@google.com> Merge "Add transition support to PopupWindow"
5435a30ae552391f14009c4459731ae149675b18 29-Jan-2015 Alan Viverette <alanv@google.com> Add transition support to PopupWindow

Allows framework-added windows to manually specify surface insets, which
enables us to wrap the popup window's elevated content view with a root
view, which in turn allows us to use the Transition API for popup window
transitions.

Fixes a bug where the root view's render node forced clipping.

Bug: 13211166
Change-Id: I303dfa55a052cdf5d3b1485422529123e3cc867a
/frameworks/base/core/java/android/view/View.java
b032cd1f52835134e142b19f73648442237cd0d1 28-Jan-2015 Alan Viverette <alanv@google.com> Merge "Expose View.OnScrollChangeListener interface"
f9d7eedc4698d6fafa8615b9f3d497aca1b7c515 28-Jan-2015 Alan Viverette <alanv@google.com> Expose View.OnScrollChangeListener interface

Allows clients to observe changes to scrollX / scrollY.

Bug: 19098033
Change-Id: I070e61a9532fe1f6cb5437eab94f7fffc1b17e97
/frameworks/base/core/java/android/view/View.java
d8111138abbffa452a34fb97eb94b1c0e3b3b4f7 28-Jan-2015 Alan Viverette <alanv@google.com> resolve merge conflicts of e5743753 to master.

Change-Id: I83f4b6abb669963b9c4fcdf9870317e019360d46
b018835dc7849b9fb4d7f12f04a6e66eb6ce00fb 27-Jan-2015 Chris Craik <ccraik@google.com> am 00c53d66: am cdd8b7f8: Merge "Invalidate outline on padding update" into lmp-mr1-dev
automerge: 2da67b5

* commit '2da67b570c91a831550fee32f778e2a60055e0d8':
Invalidate outline on padding update
197adec3656fc087d4aa56396e601bb8d04aa9fd 27-Jan-2015 Svetoslav <svetoslavganov@google.com> Merge "Accessibility: Ignore overlapping siblings when computing a click location" into lmp-mr1-dev
c43a82094584d2112aef2ee7bf74e1510a7a0b16 26-Jan-2015 Chris Craik <ccraik@google.com> Invalidate outline on padding update

bug:19113359

Ensures that ViewOutlineProvider#PADDED_BOUNDS is always kept up to
date with the view's padding.

Change-Id: I5e090bd8272e89d6b8b9055dbe95ef3d45333fcb
/frameworks/base/core/java/android/view/View.java
a1ac6a09252a8a615230f08767ab6153bd23a165 24-Jan-2015 Svetoslav <svetoslavganov@google.com> Accessibility: Ignore overlapping siblings when computing a click location

To click a view we were computing a click location by ignoring overlapping
views that are actionable. However, detection whether a view is actionable
is not always possible as the view may handle touch events directly. This
leads to unhandled edge cases. We are taking a conservative approach and
ignore all overlapping siblings regardless if clickable. This is also has
limitations but hopefully less frequent edge cases.

bug:18889611

Change-Id: Icea0b7b3e2d4ed53e50e01cb6a99b880be560b14
/frameworks/base/core/java/android/view/View.java
029d039ea5df180218288f955f96f66d57b74bc3 22-Jan-2015 Alan Viverette <alanv@google.com> Ensure scroll drawables are managed correctly

Bug: 19035677
Change-Id: Ib86666ddd1b6747f921a6e2f048405aba0c04ef7
/frameworks/base/core/java/android/view/View.java
ec9fe1ad663d59829075029508673b2e913538d3 14-Jan-2015 Alan Viverette <alanv@google.com> Update radial time picker styling, clean up code

Uses activation color for picker background. Removes bounce animation
when switching between hour and minute pickers. Improves touch handling
when touch moves outside the circle. Cleans up use of string in XML
where float should have been used. Fixes layout so that padding can be
adjusted.

Change-Id: Ibc8e087a83ca522272cdcd434b36cf38583bf541
/frameworks/base/core/java/android/view/View.java
9a67d191ab9e3f7c5ac1c1f1cce1cb87e1ebd547 13-Jan-2015 Adam Powell <adamp@google.com> am 69c22e82: Merge "Add API for nested pre-processing of a11y events; fix ResolverDrawerLayout" into lmp-mr1-dev automerge: 57744dd
automerge: 1accc9c

* commit '1accc9c12ba9610bc592666c5f46be727f92e68d':
Add API for nested pre-processing of a11y events; fix ResolverDrawerLayout
5058c38a3177d974c1926302d505f34e58de76c8 06-Jan-2015 Chet Haase <chet@google.com> Add backgroundColor getter to View

Change-Id: I3a75169a2e91ec712fb1db4d130089a1261fc66b
/frameworks/base/core/java/android/view/View.java
b6ab098bad4b126eaaaa3aaa5a512fefc4e0749b 08-Jan-2015 Adam Powell <adamp@google.com> Add API for nested pre-processing of a11y events; fix ResolverDrawerLayout

Add API for handling nested pre-processing of accessibility events
similar to nested pre-scroll or pre-fling. This allows custom views to
delegate a nested scroll to a parent via the accessibility system.

Use this functionality to allow opening the ResolverDrawerLayout via
accessibility commands.

Bug 18827274

Change-Id: Icd5a502605b78a861bb03e7b11923841a72eb9ab
/frameworks/base/core/java/android/view/View.java
2d4c476aca79cc0f5b6f1e8561afd4bcc808dd54 08-Jan-2015 Alan Viverette <alanv@google.com> Merge "Fix accessibility delegation"
a54956a0bc611b1e9b3914edc7a604b59688f6b7 08-Jan-2015 Alan Viverette <alanv@google.com> Fix accessibility delegation

Ensures that delegate code is run last. Previously, calling the super
method from an accessibility delegate set on a widget would only run
code in the widget's parent. Next, the delegate code would run. Finally,
the widget's code would run. As a result, the widget code would override
any data supplied by the delegate.

By moving all overridden code to internal methods, we ensure that the
call chain for super includes the widget's parent code followed by the
widget's code. The delegate code will always run last.

BUG: 17641433
Change-Id: Ib9d403156c1fc4fb04f65f3c126d1277a44b3740
/frameworks/base/core/java/android/view/View.java
c5b95c20b6fd3f4e63147efb22dd19c657b17001 07-Jan-2015 Alan Viverette <alanv@google.com> Fix date picker color handling, expose StateSet utils in more places

Enabled use of color selectors for the day number text, which lets us
use the "activated" text color and push the selection background
opacity up to 100%. Also ensures the selector circle stays within the
bounds of the selected day.

BUG: 18864682
Change-Id: Ia36ea748f83e13683a1de8ac1a259d353578d61a
/frameworks/base/core/java/android/view/View.java
8a3323adc8cc8712d3ea6e03b4cb65553ffa15c0 05-Jan-2015 Alan Viverette <alanv@google.com> am bde76419: am 1f3f47b3: Merge "Avoid double-translating View background" into lmp-mr1-dev
automerge: 4d41e49

* commit '4d41e49f39322ae5ceee375e515636e29ed2dfbc':
Avoid double-translating View background
b15703c9b4bd77383344a06c0043f5f7448b24ae 05-Jan-2015 Alan Viverette <alanv@google.com> Avoid double-translating View background

Reverse-translate the canvas before passing to Drawable.draw() so that
we don't double-apply the drawable's translation.

BUG: 18904688
Change-Id: I8450de9b240ddeae887b4e1003c0608da814a001
/frameworks/base/core/java/android/view/View.java
0dd962db3e66e725241565bb6e8d45d8383e3aeb 20-Dec-2014 Kris Giesing <kgiesing@google.com> Merge "Fix minor spelling and grammar errors in public JavaDoc"
be2fba62322da1912f58d2ef3dad6a08bb875541 19-Dec-2014 Svet Ganov <svetoslavganov@google.com> am f64d26fc: am e130d6c1: Merge "Remove a bad heuristic when determining click location for accessibility." into lmp-mr1-dev
automerge: 19ecc78

* commit '19ecc7847faf0f6800c342eab806358d68b610c1':
Remove a bad heuristic when determining click location for accessibility.
257ffbda601d287a0f5d54160a0b30be1b2ebe5e 19-Dec-2014 Svet Ganov <svetoslavganov@google.com> Remove a bad heuristic when determining click location for accessibility.

As a bride-gap solution to click on partially covered views in accessibility
mode we compute a point on the screen where to send a down/up event pair.
A heuristic we used was that if the action target is covered by a view that
that has a touch listener we consider the target obscured by the one with
the listener. However, this generates false positives, for example the target
is covered by a view that observers touches for scrolling but not clicking.

bug:18782023

Change-Id: I31ff34011d45667f1eddda47373ec00e4a23dbf6
/frameworks/base/core/java/android/view/View.java
8b6216d31415e9b9377570ebc5b0727a16e36054 17-Dec-2014 Kris Giesing <kgiesing@google.com> Fix minor spelling and grammar errors in public JavaDoc

b/18777215

Change-Id: I2403db4fb94144f0a71243c6b74076482defc9a4
/frameworks/base/core/java/android/view/View.java
4ae0d9045f43f87354513e3d925fcea610c77fea 15-Dec-2014 Alan Viverette <alanv@google.com> am 2f11125a: am 9973643b: Merge "Give accessibility delegate the first pass at handling ACTION_CLICK" into lmp-mr1-dev
automerge: 878a5a6

* commit '878a5a6cd7109183928b9b8b533f11347fd0591a':
Give accessibility delegate the first pass at handling ACTION_CLICK
cd305ae3ceef14dd5de807d75aa6167dfcd69c86 12-Dec-2014 Alan Viverette <alanv@google.com> Give accessibility delegate the first pass at handling ACTION_CLICK

Delegation is broken for widgets, but this fixes the most egregious issue
where TextViews that are top-level list items weren't handling CLICK
actions correctly. This will still need work, since now the focus action
won't run, but it's an improvement.

BUG: 18736135
Change-Id: I808ef628198946cc87f13c53d6245cd162a1e517
/frameworks/base/core/java/android/view/View.java
70acef7df41fcc5a82de0d35d28353ff6e73277c 10-Dec-2014 Svet Ganov <svetoslavganov@google.com> am aad2ffe6: am 7f980d75: am 381a4236: Merge "When accessibility on cannot click on a view covered by a HorizontalScrollView" into lmp-mr1-dev

* commit 'aad2ffe67af43fcfc8784b57c0fb9fe4687c9d69':
When accessibility on cannot click on a view covered by a HorizontalScrollView
d3a0da9aac4c52683f59835de92840b875476380 09-Dec-2014 Alan Viverette <alanv@google.com> am 5a50a8bc: am e615da7e: am f1792c42: Merge "Fix hotspot coordinate propagation in ViewGroup and AbsListView" into lmp-mr1-dev

* commit '5a50a8bcabdb2593b48b06854a7455318399b6d1':
Fix hotspot coordinate propagation in ViewGroup and AbsListView
381a423634a293d53f972a0ce4abd7fe7cf7d703 08-Dec-2014 Svet Ganov <svetoslavganov@google.com> Merge "When accessibility on cannot click on a view covered by a HorizontalScrollView" into lmp-mr1-dev
b942b6f15c51c2ff48c59d8f620ee6156d00f67e 08-Dec-2014 Alan Viverette <alanv@google.com> Fix hotspot coordinate propagation in ViewGroup and AbsListView

There was a weird disconnect between setPressed() and hotspot propagation
behavior. This makes hotspot propagation work like setPressed(). Also
fixes ripple animation during drag-to-open.

BUG: 18631557
BUG: 18593243
Change-Id: Id4adf5d815e4d426b4182aac4d0c780f04472ae4
/frameworks/base/core/java/android/view/View.java
b3fa2787eabd2be6d7780e215db0d9a5904ba47c 05-Dec-2014 Svet Ganov <svetoslavganov@google.com> When accessibility on cannot click on a view covered by a HorizontalScrollView

In accessibility mode we send down and up events activate a view. We will later
switch to accessibility actions but for now as a bridge-gap we compute a point on
the screen where to click for activating the view. The heuristic we use has edge
cases such as a view that handles all touch events but does not have any listeners.
In this case we do not ignore the target view's area covered by a view that handles
all touch events. As a result we click on the wrong target. While we cannot solve
this generically, in the case of standard components such as HorizontalScrollView
we can.

bug:18612258

Change-Id: If8482aac0d0ea53c5c90367d099d1b8d3a4559ed
/frameworks/base/core/java/android/view/View.java
06e7fe5a70409d2050b2b3e1286500f5223099da 21-Nov-2014 Chris Craik <ccraik@google.com> resolve merge conflicts of f2235b6 to master.

Change-Id: Ibcef3a37ca0749931d509b53bd52e53a7d30ddbb
3b2ba44be3699a4e133d7a09cb4ed182405d7ff9 20-Nov-2014 Chris Craik <ccraik@google.com> Merge "Improve logging around performance critical events" into lmp-mr1-dev
70850ea258cbf91477efa57a1f1a23cc0044cc93 18-Nov-2014 Chris Craik <ccraik@google.com> Improve logging around performance critical events

bug:17702227

Add details useful to developers (such as layer size/View name), and
switch away from logging implementation names/details, since they
are generally not relevant to developers.

Change-Id: Iee605d182f241450f7e75a6d0c283d51fa1312f5
/frameworks/base/core/java/android/view/View.java
608c245ba7be13a4a9bd77dcf2f961a4e7d73da3 18-Nov-2014 John Reck <jreck@google.com> am de620d06: am 51ce9cac: am 37cdc191: Merge "Don\'t invalidate() on setClipBounds" into lmp-mr1-dev

* commit 'de620d06ffe3570f7a4548db22428aa7ba37b252':
Don't invalidate() on setClipBounds
c773f42858ea00848819c6f87f6480df9b65ae49 18-Nov-2014 John Reck <jreck@google.com> am cff98630: am fcd38813: am 3cf61d4b: Merge "Fix invalidateOutline" into lmp-mr1-dev

* commit 'cff98630e75eda78864c3f2559fa2023e1fae749':
Fix invalidateOutline
37cdc191e380cca8edcc58f116b9b319bea1c140 18-Nov-2014 John Reck <jreck@google.com> Merge "Don't invalidate() on setClipBounds" into lmp-mr1-dev
9029e5ecd09759cf566f34429a57b69af70c335f 18-Nov-2014 John Reck <jreck@google.com> Don't invalidate() on setClipBounds

Bug: 17510133

This is a RenderNode property now, so use
the faster invalidateViewProperty() shortcut
since a re-record isn't necessary

Change-Id: If3999bce9a1fb9b60e42f0ee624bb554361f96ac
/frameworks/base/core/java/android/view/View.java
c99d3c99f86be8cace507379c0d4f4b7a26fd1e1 17-Nov-2014 John Reck <jreck@google.com> Fix invalidateOutline

Bug: 18175261

invalidateOutline was switched to a lazy-method, but this doesn't
work because invalidateViewProperty intentionally does not
do a traversal, therefore the invalidate was never consumed.

However it was attempting to be lazy about work that is cheap to
do, so nuke the lazy aspect and restore invalidateOutline's previous,
correct behavior. rebuildOutline is kept to avoid triggering
traversals in places they are not needed

Change-Id: I70f8cbacd54a607c0bf0bc7fe6eea78554cb2ea3
/frameworks/base/core/java/android/view/View.java
b7fbcefcecf5c6250dbfef65d15a8223154215bd 14-Nov-2014 Alan Viverette <alanv@google.com> am db3aa6be: am 04bea090: am 0224d25d: Merge "Account for window bounds in accessibility view click point computation" into lmp-mr1-dev

* commit 'db3aa6be933b732c57e7e124f40388b0695a3638':
Account for window bounds in accessibility view click point computation
0224d25db2f897ddfc29a722ad91d67dcf2500a9 14-Nov-2014 Alan Viverette <alanv@google.com> Merge "Account for window bounds in accessibility view click point computation" into lmp-mr1-dev
4aa1ca3c5de44834e3c0f62e237a9a97481b5dc4 14-Nov-2014 Adam Powell <adamp@google.com> am 31de5dbe: am e2820ed9: am 87bc2acf: Merge "Optimize setting padding and backgrounds for views" into lmp-mr1-dev

* commit '31de5dbe1ed32a611a8ba0e132570359cd7956c9':
Optimize setting padding and backgrounds for views
87bc2acfd3e874ff94fd3da948c329d2547a2bfc 13-Nov-2014 Adam Powell <adamp@google.com> Merge "Optimize setting padding and backgrounds for views" into lmp-mr1-dev
0be5277cdca3ef3ebbf18bd6876945dad7490d0d 13-Nov-2014 George Mount <mount@google.com> am cc66b9df: am 4978ebe0: am fa781f8c: Merge "Update GhostView properly when underlying view changes." into lmp-mr1-dev

* commit 'cc66b9dfda509ea8fd16adaa91a9f5f6adc9e21b':
Update GhostView properly when underlying view changes.
4acd0ecc7b2351cadafc02986f8165f811e00cb1 12-Nov-2014 Alan Viverette <alanv@google.com> Account for window bounds in accessibility view click point computation

BUG: 18177402
Change-Id: If591d1b9e5a8a7c4cade3ef4f3ec5e42d623b53c
/frameworks/base/core/java/android/view/View.java
05f35127e322552b04633f38d45b6a6f6ca78f66 11-Nov-2014 Adam Powell <adamp@google.com> Optimize setting padding and backgrounds for views

Don't reset the entire chain of child views whenever we set our own
padding or background; clear our own bidi resolution bits only. This
prevents doing a lot of extra recursive work when changing properties
of a parent view that cannot affect children.

Bug 18159214

Change-Id: I94300402785c79c3199e768ad7b6d7027d8d5d5f
/frameworks/base/core/java/android/view/View.java
264d3a21a02cdf56857689d822396e3079e63f38 11-Nov-2014 George Mount <mount@google.com> Update GhostView properly when underlying view changes.

Bug 18308803

Change-Id: Iad1366ea8fe3ba488dfb82ff1f9e170cafb4b2ec
/frameworks/base/core/java/android/view/View.java
9fdfbb4b38580b70682a90158165cfdc85c6f965 07-Nov-2014 Florian Salbrechter <fsalbrechter@google.com> Fixed missing opening quotes for href in javadoc.

Change-Id: I3a09b605e3430a6e540311c4d5e299050cc6236f
/frameworks/base/core/java/android/view/View.java
107843de4507b3511006cb9c77b8d0364374385a 08-Sep-2014 Tom Hudson <tomhudson@google.com> Remove status return from all uirenderer::Renderer functions

This moves the interface closer to android::Canvas. The only use of
return values was in the OpenGLRenderer subclass; that is replaced
with an internal dirty flag: returned from finish(), checked by
CanvasContext.

This is part of a series of CLs to refactor the Graphics JNI bindings.

BUG:15672762
R=djsollen@google.com,ccraik@google.com

Change-Id: Ifd533eb8839a254b0d3a5d04fc5a2905afdfc89e
/frameworks/base/core/java/android/view/View.java
6c70290ff0b20329c8f173d5c3423eb83ddc46f1 10-Oct-2014 Svetoslav <svetoslavganov@google.com> Adding APIs to enable apps to influence accessibility traversal.

Accessibility focus is a token that can be put on any view and is
entirely controlled by accessibility services which decide whether
to put accessibility focus on a given view and what the traversal
strategy is.

Currently accessibility service use the view tree structure for
traversal which does not always reflect the logical order and the
user experience is sub-optimal. In such cases apps should be able
to influence how they are traversed for accessibility.

This change adds the notion of an accessibilty traversal order.
If a view has next in the traversal, an accessibility service has
to traverse the content of this view before traversing the content
next one.

This change will enable accessibility service to move away from
using the view tree and use spatial location of the content while
app developers can also influence the treversal order.

bug:17319923

Change-Id: Ib67ae4577f30b2c96575c71538dc1afdea08bfd3
/frameworks/base/core/java/android/view/View.java
104504053d33d337d52350960c48a1edc5ba1444 30-Oct-2014 Alan Viverette <alanv@google.com> Merge "Show scroll indicators in AlertDialog" into lmp-mr1-dev
154c2c24dc3b741bcc0d54c46d349478d24472ac 29-Oct-2014 Alan Viverette <alanv@google.com> Show scroll indicators in AlertDialog

BUG: 16353356
Change-Id: I0307283751ccb23b9d85b0c36cb78b01243e70dd
/frameworks/base/core/java/android/view/View.java
4e7c562c43e9014c8fb3e75d02ba98fa4edadbde 29-Oct-2014 Alan Viverette <alanv@google.com> Merge "Update drawable state after updating tint list" into lmp-mr1-dev
d5133792391443521dc15f7da7de5d280e6703dd 28-Oct-2014 Alan Viverette <alanv@google.com> Update drawable state after updating tint list

BUG: 18155988
Change-Id: Ic536027a54c10b2082fbc22476530165b76e2c59
/frameworks/base/core/java/android/view/View.java
632af849240f54f91b2b4fde77d3a51c4d045f74 28-Oct-2014 Alan Viverette <alanv@google.com> Ensure accessibility focus rect is drawn correctly

Reverts previous change that draws it as part of View.draw() and ensures
that the display is always redrawn if a view has accessibility focus.
Correctly removes focus from views with accessibility focused ancestors.

Also reverts the focus indicator to use a solid line since the dotted
line looked janky.

BUG: 17675993
Change-Id: I25718334cc1ae1c2cd19d3c23af1c18c6a67504c
/frameworks/base/core/java/android/view/View.java
03d5c6f55b316a5b0e1aae405077d1083df60b36 27-Oct-2014 George Mount <mount@google.com> Merge "Add resizeClip attribute to ChangeBounds." into lmp-mr1-dev
b7573c2dbaff442a0f9f814bdc05aaa685574870 24-Oct-2014 George Mount <mount@google.com> Add resizeClip attribute to ChangeBounds.

Bug 17765948

Added the XML attribute for the resizeClip property of
ChangeBounds. Also updated support for resizing a view
using its clip bounds and position to fix the TODO.

Change-Id: I358d07d6a28fed4b7f39f9ccb9d89b9325f64239
/frameworks/base/core/java/android/view/View.java
74a4a8d6162dde06297ff6c3ef264e7f9066b88f 24-Oct-2014 Svetoslav <svetoslavganov@google.com> Merge "Enhance computation of click point for accessibility." into lmp-mr1-dev
523a129ced08a41468f3d52cf16ebb237f280e39 23-Oct-2014 George Mount <mount@google.com> Merge "Use one method to change bounds in ChangeBounds." into lmp-mr1-dev
d359952459f96a9b57f50a7434b8660836c6e987 23-Oct-2014 George Mount <mount@google.com> Use one method to change bounds in ChangeBounds.

Bug 17936593

Instead of calling setLeft(), setTop(), setRight(), setBottom()
separately, make one call that does all at the same time.

Change-Id: I986274f3a98b3136e71204501ffc272986ad31dd
/frameworks/base/core/java/android/view/View.java
8c4e97db879eef3b943325a971a145e5223f49f8 23-Oct-2014 Svetoslav <svetoslavganov@google.com> Enhance computation of click point for accessibility.

In explore by touch mode the user performs a double tap to click on
an item. In this case the system sends down and up events at the
location of accessibility focus. The accessibility focused view may
be partially covered. In order to click in this view we compute a
point where to send the down and up events. This clicking strategy
is a bridge-gap and we will switch to accessibility actions in the
future.

When computing the point to click we were taking into account whether
the view was covered by a clickable sibling or a clickable sibling of
a predecessor. Despite our expectation cases in which this is not
enough happen in practice. In particular, the focused view may be
covered by a clickable descendant of a non-clickable sibling of a
predecessor that covers the focused view. This change takes care
of handling this case. Note that computing the click point is a fair
amount of work but this happens very rarely and on demand. Also the
code is short circuiting where possible.

Change-Id: I4d3cd8b67a7baf0bcc12f370ea7ba1b04c42c355
/frameworks/base/core/java/android/view/View.java
9cefbda11ee5308145d58b0b99ced0f66a0b1cf9 15-Oct-2014 Adam Powell <adamp@google.com> View measurement optimization

If a view hasn't explicitly requested layout and it's asked to measure
with MeasureSpec.EXACTLY in both dimensions and sizes that match its
current measured size, the measure operation is a no-op.

This helps out a number of ViewGroups that perform initial speculative
measurements with AT_MOST or UNSPECIFIED followed by looping over
child views and measuring EXACTLY to lock in the final measurement
with perhaps some extra leftover space distributed. In practice this
happens a fair bit, especially for views high up in the view
hierarchy. This optimization allows ViewGroup measurement code to be a
little cleaner in not having to keep track of this on its own.

Change-Id: I88ff46a7d37aeda7a4cd16204b68cab0d051b341
/frameworks/base/core/java/android/view/View.java
be98cdc702e9efef11274fef699c7513aa07de09 14-Oct-2014 Alan Viverette <alanv@google.com> Send VIEW_SELECTED event when View selection state changes

BUG: 11354667
Change-Id: I55d69e0e156c7bd83c14025f313a9d7261b7ccda
/frameworks/base/core/java/android/view/View.java
d84ce32bd2d7c3cebac15545504f4fec464a6956 02-Oct-2014 Newton Allen <newt@google.com> Merge "Fix some documentation typos." into lmp-dev
46cbf7e1903f5cf1c3960e63989499f373ad7db4 30-Sep-2014 Adam Powell <adamp@google.com> Inset the non-overlay contextual action bar without a status guard

When the status guard is not available, (e.g. when the window is not
drawing system bars) do not consume the insets when an action mode is
active.

Bug 17691453

Change-Id: I459622eaf161a96152fb9ac5f60bb9508aa4de89
/frameworks/base/core/java/android/view/View.java
8f8a11b7fa26e603519131001ab46596aa30ba1a 26-Nov-2013 Newton Allen <newt@google.com> Fix some documentation typos.

Change-Id: I747a0ade5c7b9c45d4465bf327952338bbc1cfaa
(cherry picked from commit 4465d1a03ee5fddc5987c19fc36b0bb79e19572f)
/frameworks/base/core/java/android/view/View.java
27652eff447a3331701466cf969a50cc106a9940 15-Sep-2014 Chet Haase <chet@google.com> Avoid invalidating view during some outline invalidations

We were invalidating the view during outline invalidation far
too often. Sometimes, it's appropriate to invalidate the view when
the outline changes, but not when the outline is being invalidated
in the middle of drawing the view, which is done in reaction to a view
invalidation.

Issue #17460940 Volantis: panning in Calendar from month to month is only at 30fps

Change-Id: I7bdee17dc9c7df89d4cd3d781010823cef931222
/frameworks/base/core/java/android/view/View.java
b56f5d2ab18f881eb075b698e9ce1b4a4a09ff64 15-Sep-2014 Alan Viverette <alanv@google.com> Clean up view drawable tinting methods, fix default modes

Calling setTint now only modifies the tint. It won't force a mode change.

BUG: 17494736
Change-Id: I91392634869ed23981d8e61a403bb2be42aa7a07
/frameworks/base/core/java/android/view/View.java
d72068b38ec4e5732dde6093e39b2602babc27a3 12-Sep-2014 Adam Powell <adamp@google.com> Provide a public API for View#computeFitSystemWindows

The current hidden API is necessary to perform correct inset behavior
for support libraries like appcompat. Provide a public method
consistent with the new WindowInsets APIs.

Bug 17411097

Change-Id: I71a63eea0238b94cae6b5c6f1721d5567560ba81
/frameworks/base/core/java/android/view/View.java
5eb3ffc24cbcce7e0c2995d0d4be62844fef4999 12-Sep-2014 Adam Powell <adamp@google.com> Remove View methods that can't be used safely from the SDK

View methods that previously accepted a TypedArray to initialize
parameters parsed from xml cannot be used correctly by apps. The
TypedArray passed must always be obtained from a context using the
filter array com.android.internal.R.styleable.View, which is not
visible to the SDK.

A previous change already made this safe for existing apps already
using it so that they don't crash, this change removes these methods
from the SDK entirely.

Change-Id: I62099087ad6fd5bf8363e863b04fd0434b8cdfca
/frameworks/base/core/java/android/view/View.java
2bb02c799cac8facc712a9e87dddfe3c50363222 08-Sep-2014 Svet Ganov <svetoslavganov@google.com> Merge "Clicking on partially coverd views by other views or windows." into lmp-dev
7498efdc5e163d6b4a11db941c7d13c169d37284 04-Sep-2014 Svet Ganov <svetoslavganov@google.com> Clicking on partially coverd views by other views or windows.

In touch exploration mode an accessibility service can move
accessibility focus in response to user gestures. In this case
when the user double-taps the system is sending down and up
events at the center of the acessibility focused view. This
works fine until the clicked view's center is covered by another
clickable view. In such a scenario the user thinks he is clicking
on one view but the click is handled by another. Terrible.

This change solves the problem of clicking on the wrong view
and also solves the problem of clicking on the wrong window.
The key idea is that when the system detects a double tap or
a double tap and hold it asks the accessibility focused node
(if such) to compute a point at which a click can be performed.
In respinse to that the node is asking the source view to
compute this.

If a view is partially covered by siblings or siblings of
predecessors that are clickable, the click point will be
properly computed to ensure the click occurs on the desired
view. The click point is also bounded in the interactive
part of the host window.

The current approach has rare edge cases that may produce false
positives or false negatives. For example, a portion of the
view may be covered by an interactive descendant of a
predecessor, which we do not compute (we check only siblings of
predecessors). Also a view may be handling raw touch events
instead of registering click listeners, which we cannot compute.
Despite these limitations this approach will work most of the
time and it is a huge improvement over just blindly sending
the down and up events in the center of the view.

Note that the additional computational complexity is incurred
only when the user wants to click on the accessibility focused
view which is very a rare event and this is a good tradeoff.

bug:15696993

Change-Id: I85927a77d6c24f7550b0d5f9f762722a8230830f
/frameworks/base/core/java/android/view/View.java
5c75c52e048a01c23b18f4e31ae624b5fe43e23c 05-Sep-2014 Chris Craik <ccraik@google.com> Add shadow/clipping properties to HierarchyViewer

bug:15777980

Change-Id: Ic3d24326f585d2d2b9889486f0ed322eb98b5af8
/frameworks/base/core/java/android/view/View.java
2d3f9033f8803d471720be60228d9894dd385488 04-Sep-2014 Chris Craik <ccraik@google.com> Merge "Prioritize reveal clipping over Outline clipping" into lmp-dev
e83cbd451868a734bfac07ccd680d5617080b579 04-Sep-2014 Chris Craik <ccraik@google.com> Prioritize reveal clipping over Outline clipping

bug:15780987
bug:17350602

Also update docs around clipping nesting behavior,
and some Z ordering behavior.

Change-Id: Iaa204350a0adfdcbd8c4b821fb4a9c0ae22f2613
/frameworks/base/core/java/android/view/View.java
eb3ca22426f2789761a5f4b25f258722a3a6b68b 04-Sep-2014 Alan Viverette <alanv@google.com> Fix clip rect when drawing accessibility focus rect

BUG: 17320910
Change-Id: I4112c2c9c10187d4b085c7eb96112fab090612ce
/frameworks/base/core/java/android/view/View.java
a8a8ff000b2902eb4e187e62be39fd9535c6c839 03-Sep-2014 Alan Viverette <alanv@google.com> Remove partial support for hotspot changes on focus movement

Also removes unused x/y position and tween values on RippleBackground. The
background is now always centered within the hotspot area.

BUG: 17300399
Change-Id: I1904c9f44e6bebb2b434d2b092205edd42204263
/frameworks/base/core/java/android/view/View.java
4c5a27b5f667ebc7cb2b188655820ad3fddedb52 28-Aug-2014 John Reck <jreck@google.com> Merge "Animator stuff" into lmp-dev
040a7f0526532995a072a0473483e69b6575ac72 28-Aug-2014 Svetoslav <svetoslavganov@google.com> Merge "Fix live region updates." into lmp-dev
119907cd2575c56b1ebf66348b52e67aaf6a88d8 14-Aug-2014 John Reck <jreck@google.com> Animator stuff

Bug: 17228458

Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
/frameworks/base/core/java/android/view/View.java
f86cb678a5afd94505c42497817e7f63427683b9 26-Aug-2014 Alan Viverette <alanv@google.com> Use bounds in screen for better A11y backwards compatibility

BUG: 17203775
Change-Id: I9db3de6bf4a67d705489d4ca9d29efe52a36e071
/frameworks/base/core/java/android/view/View.java
99db6030e135f0cee88408c4ec6588a6fce23963 22-Aug-2014 George Mount <mount@google.com> Merge "Add Parent Change to ChangeTransform" into lmp-dev
c94e2b393f6eba684ee2c84eaa50746fc1459d0f 22-Jul-2014 Dake Gu <dake@google.com> Add Parent Change to ChangeTransform

Bug 16460123

Modified ChangeTransform to support any pivot changes.
Modified ChangeTransform to support changes between parents.

Change-Id: I6374890dab9f3d795f334b951bdb9d51d434b8ee
/frameworks/base/core/java/android/view/View.java
d78a44576c6bac5541e04c1f38599d43c9943653 21-Aug-2014 Alan Viverette <alanv@google.com> Jump drawable state (including ripples) on view detach

BUG: 15350931
Change-Id: I09928f59fb7b9f6d87b1f5219353a41ae6b5681d
/frameworks/base/core/java/android/view/View.java
9f44eeaedc8d95921d015f696eeb0b8acd1b8d7f 20-Aug-2014 Svetoslav <svetoslavganov@google.com> Fix live region updates.

There is a sequence of update requests that put the logic
for sending live region events in a bad state where no events
are being sent anymore.

bug:15146442

Change-Id: Id53756ddfcc835f063bf9790e53c246296f9dc6e
/frameworks/base/core/java/android/view/View.java
4a5ccead04aa5046539832434b793323d5d30298 21-Aug-2014 John Reck <jreck@google.com> Merge "Implement full View.buildLayer" into lmp-dev
3e8249568cc428296ac76c7ddce3f0382d40fe5b 20-Aug-2014 John Reck <jreck@google.com> Implement full View.buildLayer

Bug: 17152292

Change-Id: Ia3cc2aadf72fe14517f50762fc634794df51ad5a
/frameworks/base/core/java/android/view/View.java
f56885d413b9910a414716c4652c26f888dac316 08-Aug-2014 Chris Craik <ccraik@google.com> Add outlineProvider attribute

bug:16871683
Change-Id: Iae9326c41872ac03d40ebeec6257522a34cbe1ff
/frameworks/base/core/java/android/view/View.java
997aa40645a1ccdd30c88ba6d5b7bb389fcec72c 19-Aug-2014 Alan Viverette <alanv@google.com> Draw accessibility focus in View rather than ViewRootImpl

This ensures that the focus rect position is correct when running in
render thread accelerated mode. Also adds a missing call to draw the
overlay.

BUG: 16796647
BUG: 17063342
Change-Id: I377e5eaea89d3f20c8c7e82c264a0f106021d58b
/frameworks/base/core/java/android/view/View.java
836c0a8b949d71293c996761691e065f0651acef 11-Aug-2014 Jon Miranda <jonmiranda@google.com> Exposes style and theme data, adds developer option.

Adds support for a String[] return type in ViewDebug; and in addition to that,
the hasAdjacentMapping method can use the String array as means to map a key to
its value.

Adds DEBUG_VIEW_ATTRIBUTES to Settings so that the heavy per-view
computations only affect those who opt in. This setting is used in
CoreSettingsObserver to avoid impacting start time.

Change-Id: I8f507e4e5361414c30d247e8d9815205feb5e91f
/frameworks/base/core/java/android/view/View.java
fb5899d6e08c231901cbaefa8156b27ff92b8801 16-Aug-2014 John Reck <jreck@google.com> Don't mangle layer paint's alpha

Bug: 15918037

Change-Id: Iecca0908c6e3b77f15807f75a8294d34975533b4
/frameworks/base/core/java/android/view/View.java
9985aaf2688a84181f4c0efec47f51d453f76379 09-Aug-2014 George Mount <mount@google.com> Merge "Move shared elements to overlay when in a transition group." into lmp-dev
fe361d2113b8f3c54797d7bd720ca739328bd7aa 09-Jul-2014 George Mount <mount@google.com> Move shared elements to overlay when in a transition group.

Bug 15744995

Change-Id: Icf1ee603de23c7bb3bce3723cb24009e36f153d7
/frameworks/base/core/java/android/view/View.java
dbcbca447564245921697c6965b77d69cb1e795f 08-Aug-2014 Alan Viverette <alanv@google.com> Don't make ripples respond to selection state

Also exports view pressed state for hierarchyviewer.

BUG: 16622634
Change-Id: I754428dd1d59f3b7450b01976a73d5151d27152e
/frameworks/base/core/java/android/view/View.java
f79aad63085445384086f921a754d872397594c1 08-Aug-2014 Alan Viverette <alanv@google.com> Send accessibility click event after calling click listener

This ensures that any state changes made by the click listener are
correctly reflected in the accessibility event.

BUG: 16847704
Change-Id: Ib0a3b3cd5879bb77c2cd3d97e923cdfa31c8051a
/frameworks/base/core/java/android/view/View.java
a426445dfdab43886dd894f2ba8a1d55bfcbb278 29-Jul-2014 Alan Viverette <alanv@google.com> Separate tint and tintMode properties

BUG: 16054922
Change-Id: I820fb857b671faf9eb27612e470e820c5c4cd6b5
/frameworks/base/core/java/android/view/View.java
e4cf152cb766784b514f99caf82da5648e5de358 05-Aug-2014 Chris Craik <ccraik@google.com> Move clip bound execution into drawChild()

bug:15698973

This makes native and java implementations match up in the sequence of
clip vs applying other properties / draw calls.

Change-Id: Ia75e00c5b42f81ecd516722ef1c5233d483e0c97
/frameworks/base/core/java/android/view/View.java
6efd17588bc29b1ff37143d6627f04309b1a0d7d 04-Aug-2014 Chris Craik <ccraik@google.com> Set default outline alpha to 1.0f

bug:16795461
Change-Id: I7ccecee84b47a2bbf91fc11ad3005160f913ba77
/frameworks/base/core/java/android/view/View.java
af4d04cab6d48ae0d6a5e79bd30f679af87abaad 29-Jul-2014 Chris Craik <ccraik@google.com> Use RoundRect clipping for circle reveal animation

bug:16630975

Also, remove inverse clipping feature from reveal animator.

Change-Id: I770a4eb48cd123b0ca0f39d16a0f3eefd1be3653
/frameworks/base/core/java/android/view/View.java
0615026ba15d7d7a68d0a191d449da47a1ceabea 29-Jul-2014 Jon Miranda <jonmiranda@google.com> Merge "Exposed getLocationOnScreen, added formatToHexString method." into lmp-dev
4597e9806948256e82b9f1cdaa7019cbbd912668 29-Jul-2014 Jon Miranda <jonmiranda@google.com> Exposed getLocationOnScreen, added formatToHexString method.

In order to use the ExportedProperty annotation, I needed a public non-void
method which is why I created a new "public int[] getLocationOnScreen()."

The formatToHexString method is used to convert an int or byte to a hex string
prefixed with "0x". I set the value to true on these flags: mGravity,
mPrivateFlags, mSystemUiVisibility, mViewFlags, mGroupFlags, mMarginFlags,
and flags.

Change-Id: I5914992ba19b80643dfcc6caa487398452e18cbc
/frameworks/base/core/java/android/view/View.java
807e40c55cd74004ecc2392f8655fb89b3bb5304 09-Jul-2014 George Mount <mount@google.com> Allow a "ghost view" that paint a different view from the overlay.

Bug 15744995

The ghost view doesn't route touch events, but hides another
view in its normal parent, and paints it as a child of another
ViewGroup or ViewGroupOverlay.

Change-Id: I352e14c366ccfb7303cee1dbff8563c673fd12ff
/frameworks/base/core/java/android/view/View.java
a753f4c6cb8558795e673df1896532cd148781e2 24-Jul-2014 Chris Craik <ccraik@google.com> Move ClipBounds to native

bug:15698973

Also simplifies RenderNode LTRB properties

Change-Id: I09263a697b71d325a46b57cd5250a2b165f251c8
/frameworks/base/core/java/android/view/View.java
88c11754c19a6bbdbf9f822d928761d23029f31f 22-Jul-2014 Adam Powell <adamp@google.com> Allow focusable in touch mode views to ignore touchscreen focus blocks

Bug 16284253

Change-Id: I7cddf1988b0c24ae3050a13d2ce6fb3143d8aade
/frameworks/base/core/java/android/view/View.java
4f64c048505a432e549ccb756634ecebf28f9e80 22-Jul-2014 Alan Viverette <alanv@google.com> Clean up view tinting APIs, tileModeX/Y attribute docs

BUG: 16400590
BUG: 16403307
Change-Id: Ie924815a39eb0e683d1982b08ec478ed3edbfb7b
/frameworks/base/core/java/android/view/View.java
c01bd1167a1b08d59557f214ddc48cf24d3b8d0a 19-Jul-2014 John Reck <jreck@google.com> Return Animator instead of ValueAnimator

Change-Id: I29a7cfdc7ffbb3a4d33f9e64f9d7ca791f5c947c
/frameworks/base/core/java/android/view/View.java
31ba192dd201df2cad96a8c503f730130ab0d80f 18-Jul-2014 Chris Craik <ccraik@google.com> Tweaks to outline API

b/15283203
b/16142564

Remove boolean return value chaining, as it's redundant with
the data in the Outline itself.

Change-Id: I3116e57cd1b35c98b74e95195117edd7e39fb2df
/frameworks/base/core/java/android/view/View.java
7bf379c8af399626d5b8b568fe1d4f96f56badcc 16-Jul-2014 Dake Gu <dake@google.com> ActivityTransition: fix wrong width/height applied to sharedelement.

transform screen position/size to position/size in parent of sharedelement.
fixed bug of transformMatirxToLocal() and transformMatrixToGlobal() that gets

Change-Id: I4c7b12f1ada7004ab7594961df4079be4ca4c909
/frameworks/base/core/java/android/view/View.java
d3de42cae84fadfa1befd082a2cf1bf72f9ad82a 15-Jul-2014 John Reck <jreck@google.com> Add RT-enabled reveal animator

Bug: 16161431

Also re-writes RevealAnimator to avoid using any listeners internally,
removing the logic around shadowing the update listeners.

Change-Id: I6ed8126398eed971a87f20bccb7584c9acafbb6c
/frameworks/base/core/java/android/view/View.java
b72be59a6a5ca5fae3ede2470f1662598098b666 17-Jul-2014 Adam Powell <adamp@google.com> Add nested pre-fling for nested scrolling

Nested pre-fling allows a nested scrolling parent to consume a fling
operation before the child view does. If a parent has been consuming
nested pre-scroll events in a particular direction, this is generally
a good indication that it should also consume the resulting fling at
the end.

Bug 15538504

Change-Id: I88e8753a96c9b41815c3be530cafab8345164e64
/frameworks/base/core/java/android/view/View.java
889fc94ffa70633e510e812b9da86723f4eee384 17-Jul-2014 Chris Craik <ccraik@google.com> Merge "Add accessibility text contrast setting" into lmp-dev
cce47eb580d666ead1f6095d1e3b65233592bbaa 17-Jul-2014 Chris Craik <ccraik@google.com> Add accessibility text contrast setting

b/14624452

Adds a feature which draws all text (in the HW accelerated standard
path) in a high contrast mode. Text is drawn at full alpha, and either
white or black (depending on its original color) with a starkly
contrasted outline beneath it.

Change-Id: I943f624b6367de35367cced3b2a8298f2bc62377
/frameworks/base/core/java/android/view/View.java
7068c39526459c18a020e29c1ebfa6aed54e2d0f 14-Jul-2014 Alan Viverette <alanv@google.com> Fix hotspot movement on focus change

BUG: 15726988
Change-Id: I97f88e5f7e404ecfcd5c254fddd18c8f6616064e
/frameworks/base/core/java/android/view/View.java
7b7ca3cdf25bee73aa9e58aaaf6ce75fe81bd045 11-Jul-2014 Chris Craik <ccraik@google.com> Disable setOutline() functionality, pending full removal

bug:15283203
Change-Id: Ibf127fecfcda835117c6087180c64f622b3041e4
/frameworks/base/core/java/android/view/View.java
685206cb03c086fd7282df03f58f6b6b22578cd3 11-Jul-2014 Chet Haase <chet@google.com> Merge "Optimize gatherTransparentRegions to account for transparent bg"
2b45a16b8b0f46090c0e612ef8a3d6084997fc27 11-Jul-2014 Chet Haase <chet@google.com> Optimize gatherTransparentRegions to account for transparent bg

gatherTransparentRegions() incorrectly takes the background into account
even when that background drawable is a completely transparent ColorDrawable
(which you can get by calling View.setBackgroundColor(0)). Checking
the opacity of the drawable allows us to ignore drawables that are not
visible.

Issue #13465427 Performance suggestion: View.setBackgroundColor(0) should set background to null

Change-Id: Ic552bf6a07cc9229fd32febc3ada73a0701cad0c
/frameworks/base/core/java/android/view/View.java
f3de5a2e34412710234cd1f5f3933ce266ea0e49 09-Jul-2014 George Mount <mount@google.com> Remove modified APIs

viewName was changed to transitionName and
MoveImage was replaced with ChangeImageTransform + ChangeBounds.

Change-Id: I5e0b0250ef3c926d1c3de212de3a5e1503e89b86
/frameworks/base/core/java/android/view/View.java
d66a8719b019e948d1dfbda2dace8762189e298f 11-Jul-2014 Leon Scroggins III <scroggo@google.com> Merge "Simplify Shader.setLocalMatrix."
ab87983a11e0bd2e08d752d86d5e945ea7d39a04 09-Jul-2014 Leon Scroggins III <scroggo@google.com> Simplify Shader.setLocalMatrix.

Previously, calling setLocalMatrix updated any Paint that had the
Shader attached. This depended on deprecated behavior in Skia. Use
new Skia APIs, and do not modify any Paints that use the Shader.

In addition, update callers to call setShader (again) after modifying
the Shader.

Sample app at ag/499573 for testing.

Depends on I673801444f0a8fd4f192b5b7effdde1aa83e702b in external/skia.

BUG:14315916
Change-Id: I3c3316377874e89fccc85afb864bc038b0ef3890
/frameworks/base/core/java/android/view/View.java
ff0d298adb4a91499779fece33e97e1c4d8cea32 11-Jul-2014 Adam Powell <adamp@google.com> Add API to block focus in the presence of a touchscreen

For the sake of devices with touchscreens and optional keyboards, add
the touchscreenBlocksFocus attr and associated get/set methods to
ViewGroup. This will act much like FOCUS_BLOCKS_DESCENDANTS, but only
if the context reports that a touchscreen is present. This allows an
app to define much coarser-grained block elements for focus instead of
navigating between each individual (normally) focusable element, on
the theory that the readily available touchscreen or other keyboard
shortcuts allow for more fine-grained interaction. Keyboard focus
navigation thereby becomes more efficient at a coarse level.

Bug 13987814

Change-Id: Ie652b8845122a59046e96ad6074b3de163779adc
/frameworks/base/core/java/android/view/View.java
dcba6725e8b9d3eba9ad7a01258d6aa974feafba 08-Jul-2014 John Reck <jreck@google.com> Fix layers lifecycle issues

Bug: 16118540

Fix an issue where we could have a reference to a Layer after
the GL context was destroyed

Change-Id: I7bfd909d735ca6b942ebe188fc10099422eb6d95
/frameworks/base/core/java/android/view/View.java
83601538918620e63f5a765d3eaab3a63494b454 08-Jul-2014 John Reck <jreck@google.com> Revert "Fix destroyHardwareResources"

This reverts commit bac48c4d0c6f71f67074a430cd365ea2e15924b8.

Change-Id: Iba8b729d5e91ca31976fc2bdf9c1dd5fdb19de9a
/frameworks/base/core/java/android/view/View.java
7f87e8acbbe02cb28af35f9f6dde09e700d7c5d2 08-Jul-2014 Chris Craik <ccraik@google.com> Merge "Query outline on background size change"
0f632046ddb26740aff356ef21b374521912075b 08-Jul-2014 Chris Craik <ccraik@google.com> Query outline on background size change

Background bounds are updated out of sync with View bounds, so query
as they change.

Change-Id: I9c94df17bac42dfcd4bb93b31903b59ebb58204b
/frameworks/base/core/java/android/view/View.java
ec0c92548071801c81e02ca72b9864739e1c080c 08-Jul-2014 John Reck <jreck@google.com> Fix destroyHardwareResources

The UI thread needs to know whether or not the display list is
valid, so bring back View.destroyHardwareResources and instead
have the native side assert that View did the right thing

Change-Id: I4f8dee6e9c13ec7ab520becdc5cfe20e92a76f8f
/frameworks/base/core/java/android/view/View.java
fa10423fa00f3495e451016acba9b6848eb995c9 21-Jun-2014 Adrian Roos <roosa@google.com> Add stable insets for stable system windows

Adds a new kind of inset that only accounts for stable system
windows like the system or navigation bar.

Bug: 15457292
Change-Id: I681b711f6f40a94c25b7acd3a44eb3539486afab
/frameworks/base/core/java/android/view/View.java
f159c1a460a98b47a9f5ac14cbf75bc65559a882 01-Jul-2014 Svetoslav <svetoslavganov@google.com> Reverting change in accessibility focus behavior

bug:15995066

Change-Id: Ie22f203b9a95c3002188dacc3d753ff5d789ffd9
/frameworks/base/core/java/android/view/View.java
d907e5b1efeae51c302fd502f42a06bd16d6cae3 01-Jul-2014 John Reck <jreck@google.com> Merge "Fix onTrimMemory for HardwareRenderer"
f47a594f5250b1914c36423ee6b371f0b8db09d0 01-Jul-2014 John Reck <jreck@google.com> Fix onTrimMemory for HardwareRenderer

Also fixes detachFunctor possibly drawing after return

Bug: 15189843
Bug: 15990672

Change-Id: I64c48cb674c461a8eeaba407b697e09f72c98ce3
/frameworks/base/core/java/android/view/View.java
9a347f199284ad8bcb8a81bfbd306fe0b1a710ba 28-Jun-2014 Chris Craik <ccraik@google.com> Initial replacement of setOutline() with ViewOutlineProvider API

bug:15283203

A View's outline is now managed by its outline provider. This means
the outline is automatically requeried when needed (e.g. drawable
updates or resize), with customizable querying behavior.

Also adds 'isFilled' property to outline, to be used for hinting
shadow overdraw avoidance.

Change-Id: Ie137548fa850f1ff7863ab2f660d05145c2ad11e
/frameworks/base/core/java/android/view/View.java
bbc9cd32d70343ff0144fe706b4090e776ec5a0c 24-Jun-2014 Bo Liu <boliu@google.com> Merge "Remove View.executeHardwareAction"
26cab31d784c44a2e2605ec3478562f9e6ffd99d 23-Jun-2014 Bo Liu <boliu@google.com> Remove View.executeHardwareAction

Webview does not need this anymore.

BUG: 13961296
Change-Id: Ia0681dea35155513b916844ecf83faf6d544a2e3
/frameworks/base/core/java/android/view/View.java
287c0361877057e50190cc0d7224e5bb2a7c4955 23-Jun-2014 Adam Powell <adamp@google.com> Compatibility shim for apps calling View methods with TypedArray params

Apps calling the View methods that accept TypedArray params have
always been wrong. There is no way to call these methods safely since
apps can't get at the correct filter array assumed in these methods'
implementations. Do the best we can with these calls anyway; ignore
whatever they did pass and just get the styled attributes from the
Context used to construct the view and its associated theme.

Bug 15792674

Change-Id: I6dfa1abf273b581e79a17a72f68c97ff9a9148c5
/frameworks/base/core/java/android/view/View.java
eeda22b46f8ebd30ec065070c89eb3952a955e48 23-Jun-2014 George Mount <mount@google.com> Merge "Revert "Revert "API Review: Change View viewName attribute to transitionName."""
0a2ae002e60f7ea9b6bea282086b5eb0ae3c6e51 23-Jun-2014 George Mount <mount@google.com> Revert "Revert "API Review: Change View viewName attribute to transitionName.""

This reverts commit 1bdfbc68e22a64215ab8fa3e3d17676513546997.

Change-Id: Ie3fdf53b33cb2f61c1878055940f52ed9dfc8b08
/frameworks/base/core/java/android/view/View.java
a3c1025b80c910fd7c0e9b1c178de32cab83f6de 23-Jun-2014 John Reck <jreck@google.com> Revert "API Review: Change View viewName attribute to transitionName."

This reverts commit f1b1adf51b2a84e0ac83685812c7e8d86590af12.

Change-Id: I0e49aeed84f2a548e272a59f4e13c3fb74c2bfd9
/frameworks/base/core/java/android/view/View.java
a7090e0cfd7c719a6d4c03aae34f5db98754cbdd 21-Jun-2014 Chris Craik <ccraik@google.com> Update 'DisplayList' vs 'RenderNode' naming in several places

Change-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287
/frameworks/base/core/java/android/view/View.java
4fb48d24bb5fb534cc6f017d80c3d6c423d9f94a 23-Jun-2014 John Reck <jreck@google.com> Merge "Revert "API Review: Change View viewName attribute to transitionName.""
7a73fda47d968954cb7de7143ee6709926b6ecf0 23-Jun-2014 George Mount <mount@google.com> Merge "API Review: Change View viewName attribute to transitionName."
125578a8637a9ad5e7430d16b9fc0096a8b596d7 18-Jun-2014 George Mount <mount@google.com> API Review: Change View viewName attribute to transitionName.

Bug 15548520

Change-Id: I4009458d83dbffb20ff0100aaa42eea44d943378
/frameworks/base/core/java/android/view/View.java
8de1494557cf1d00c1c3fce439138a28de7fbd61 19-Jun-2014 Alan Viverette <alanv@google.com> Fix switch & slider anim, make View drawable hotspot API public

BUG: 15287810
Change-Id: Ic7a9549dc1ba8afd07e9a196371ed349a54aaf2f
/frameworks/base/core/java/android/view/View.java
e3c433aa457138425e514494e4d06590076a1d07 19-Jun-2014 Alan Viverette <alanv@google.com> Persist selector on ListView and GridView layout

BUG: 15472031
Change-Id: I0d10be3e0cf8a4d7580bd834e432c1c15fc481f5
/frameworks/base/core/java/android/view/View.java
1f681448c6b7db451c31af7d61c0b85b7b5af04f 18-Jun-2014 Alan Viverette <alanv@google.com> Merge "Add attributes and accessors for tinting View drawables"
911743652b597057a1bd7ef8a921e9ff8dce0f4a 17-Jun-2014 Alan Viverette <alanv@google.com> Add attributes and accessors for tinting View drawables

Also cleans up handling in setters for managed drawables.

BUG: 15391544
Change-Id: Idc08f7eaea0050feb6403566985a6d58185b81f8
/frameworks/base/core/java/android/view/View.java
ca0608af3ce04121fc5889f93b161cbad0f7e620 17-Jun-2014 John Reck <jreck@google.com> Fix setLayerType

Bug: 15682142

mLayerType/getLayerType() can modify the display list, so invalidate()
is necessary

Change-Id: I1d323c1bd4356b31159b51d4299de099e53a0389
/frameworks/base/core/java/android/view/View.java
8a30b31a7765b9a3beaacd2ebc9467fedba73d3f 13-Jun-2014 Adam Powell <adamp@google.com> Fix CTS regression in fitSystemWindows

Don't attempt to apply null insets from a call to fitSystemWindows.
Immediately return false since null insets cannot be applied.

Bug 15452706

Change-Id: I1ad4cc0288db36b3e9485481173e64b2140a0204
/frameworks/base/core/java/android/view/View.java
30794097acd0911ca481a2636bfa62d8514edbcf 14-Jun-2014 Alan Viverette <alanv@google.com> Fix NPE in focus hotspot management

BUG: 15631051
Change-Id: I24b014f940c43a1f92fd050439bb6a42b8e24310
/frameworks/base/core/java/android/view/View.java
cebc6bab51d9c77db8f346c1390169eabac4f27d 14-Jun-2014 Alan Viverette <alanv@google.com> Support hotspots in View drawables

BUG: 15285217
Change-Id: Iad44454fe16ac27ed20b9c17ae2df69649339eed
/frameworks/base/core/java/android/view/View.java
1e96bdf344d7395bd377ae07eacaa75ba17c1204 13-Jun-2014 John Reck <jreck@google.com> Don't buildLayer if size == 0

Bug: 15598692

Change-Id: Ia4e9e68c712b318b8d66e8cdfb2aceda4e892289
/frameworks/base/core/java/android/view/View.java
816f71b7e0dc263362e9fc8d251c8d1944bff17c 13-Jun-2014 John Reck <jreck@google.com> Merge "Move LayerType to RenderNode"
25fbb3fa1138675379102a44405852555cefccbd 12-Jun-2014 John Reck <jreck@google.com> Move LayerType to RenderNode

Change-Id: Icb79a5015cb0362b1f3a66d09007450730135a97
/frameworks/base/core/java/android/view/View.java
a447d29c65fb811cd184775a3476101a1cede929 12-Jun-2014 John Reck <jreck@google.com> Fix DA bugs

* Now aware of transform of DrawDisplayListOp
* Supports projection

Bug: 15539677
Bug: 15506680

Change-Id: Ic16f482cd48c3add12e49eca529281be12b93491
/frameworks/base/core/java/android/view/View.java
cadc7a200a5f21088deee06bcb42d1e5a5574db9 12-Jun-2014 Winson Chung <winsonc@google.com> Merge "Exploring transitions to/from Recents."
d42a6cfe2bf632222617450a1ed340268e82f06c 04-Jun-2014 Winson Chung <winsonc@google.com> Exploring transitions to/from Recents.

- refactored hwlayers and change view property animations to use a reference counted trigger
- cleaned up RecentsConfiguration, and move it into classes using it
- moved task bar animations back into TaskBarView
- refactoring enter/exit animations to use an animation context

Change-Id: Ia66b622b094f22145c2fab07c2a9bdfd62344be2
/frameworks/base/core/java/android/view/View.java
90132dd7ca8427af768c5167e5722cb611d95f7c 12-Jun-2014 Adam Powell <adamp@google.com> am c72a2a82: Merge "Explicitly track consumed state for WindowInsets" into lmp-preview-dev

* commit 'c72a2a82160099e8f20c42eb0d36881c31537130':
Explicitly track consumed state for WindowInsets
0d9fdbad751318b1e9a7a2789bf0e9240252e15f 12-Jun-2014 Adam Powell <adamp@google.com> Explicitly track consumed state for WindowInsets

Treating 0-insets as fully consumed is incorrect since it means that
you can't dispatch empty insets down the view hierarchy - traversal
terminates immediately. Track consumed state independent of actual
values. Replacing a given set of insets with all zeroes will mark it
consumed.

Bug 15341653

Change-Id: I55b33b7dfbf4cae1e906a82140537156cffdbf47
/frameworks/base/core/java/android/view/View.java
446956f7893aec7adb618d0a3749325ff22c29d8 09-Jun-2014 George Mount <mount@google.com> Merge "Capture right/bottom of images properly when doing Activity Transitions."
7f8d1c3f3e693d7dd8f20fab1bba7f3bfadec723 06-Jun-2014 Chris Craik <ccraik@google.com> am 493ae7d7: Add doc for View.getElevation()

* commit '493ae7d7aa547f366c6de244f5535ba2c0417598':
Add doc for View.getElevation()
5985dfbf1458f487c7f162a486874467997e699c 29-May-2014 Chris Craik <ccraik@google.com> Add doc for View.getElevation()

Change-Id: I5a843969fa03db6bb0faef80962c1256c64aa450
/frameworks/base/core/java/android/view/View.java
a798c0a984f29f7180883a61839f68d2cbf0c6ce 15-May-2014 Svetoslav <svetoslavganov@google.com> Refactor printing

Change-Id: I19850154ef2798afff511e4490a268ce38e8cbae
/frameworks/base/core/java/android/view/View.java
8e43d6d62fb3a94b2a7175d1dee3174c62f217ba 06-Jun-2014 George Mount <mount@google.com> Capture right/bottom of images properly when doing Activity Transitions.

Bug 15140681

Change-Id: I91baf1708fc40e13133db8aa791697ac6bb654f8
/frameworks/base/core/java/android/view/View.java
743922e9dfe295d4cc837eee1646272aa88da135 06-Jun-2014 John Reck <jreck@google.com> Merge changes Ie0773f85,Ie5e75505

* changes:
Even FASTER damage calculations!
Have all the setters return changed
537d7ea039425b867fbcce9731205cd74bdc9a2b 06-Jun-2014 ztenghui <ztenghui@google.com> am 42decb1b: Merge "API Review: move the CreateRevealAnimator to ViewAnimationUtils" into lmp-preview-dev

* commit '42decb1bfe354923205a7cdf856f395f9070b64f':
API Review: move the CreateRevealAnimator to ViewAnimationUtils
62f30e0bb14b38c54d5fed4771141dc5b3fb6f4b 05-Jun-2014 ztenghui <ztenghui@google.com> API Review: move the CreateRevealAnimator to ViewAnimationUtils

b/15451650

Change-Id: If270bbf757047ce7847cab457d3836d756830124
/frameworks/base/core/java/android/view/View.java
e4267ea4f20740c37c01bfb6aefcf61fddc4566a 04-Jun-2014 John Reck <jreck@google.com> Even FASTER damage calculations!

* Now with more native!
* Less matrix math thanks to bulk-property-update support!
* Zero JNI on the View.damageInParent() path!
* Fully aware of RT-driven animators!
* Likely full of new and exciting bugs!
* But it also fixes at least 1 existing invalidate bug!

Change-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f
/frameworks/base/core/java/android/view/View.java
a5dd05f26f8498f609fcc0bca8ffcad64cd9203a 03-Jun-2014 Adam Powell <adamp@google.com> am ef7c0948: Merge "Add an internal method for setting optical insets." into lmp-preview-dev

* commit 'ef7c0948ea1379ee9f3f5f40267ca2cf5e76a36b':
Add an internal method for setting optical insets.
84a4c887a07c1c2939443f4e0587d7f1ac109e4b 30-May-2014 John Reck <jreck@google.com> Remove GLRenderer

Change-Id: I180286417c1a354fc7eb1eadb1884ac6add0795c
/frameworks/base/core/java/android/view/View.java
dbb06e0c8c60ade44d38cda0dc570ccf588d324f 02-Jun-2014 Adam Powell <adamp@google.com> Add an internal method for setting optical insets.

This will allow views to calculate their own optical insets
e.g. during measurement. Candidate for public API down the road once
it proves itself for framework views.

Change-Id: I098d7b7b52e5aaf7eccc8ef34d79791d127d8c77
/frameworks/base/core/java/android/view/View.java
f87ec6a64484e263e66795f24faea73b3620cacb 28-May-2014 Chris Craik <ccraik@google.com> am 365dfe93: Merge "Update docs around empty/null outline behavior" into lmp-preview-dev

* commit '365dfe93dd3baab1417e20bc9ba7e3175600faa0':
Update docs around empty/null outline behavior
67c360f3d52e705258182dbc448ef528599482fa 27-May-2014 Chris Craik <ccraik@google.com> Update docs around empty/null outline behavior

bug:15257846
Change-Id: Ie4d1b0aaeb900eaaa7e54097f3e0d795beb8f445
/frameworks/base/core/java/android/view/View.java
2a89b08eb1d48208f52eeaf12cb8b687abe81e1c 23-May-2014 Michael Wright <michaelwr@google.com> Merge "Add ability to request unbuffered dispatching."
7dc5b41e609d3ff55ca194682832d14a7236fa87 20-May-2014 Chris Craik <ccraik@google.com> Clean up Outline API, method on drawable

bug:15025466
bug:15089680
Change-Id: I8d3b64a0d9dbdbaf679042c8b384d2050323a8e6
/frameworks/base/core/java/android/view/View.java
c80ad99a33ee49d0bac994c1749ff24d243c3862 20-May-2014 Alan Viverette <alanv@google.com> TouchFeedbackDrawable is now RippleDrawable

Change-Id: I59f5f04b73089215c6320560556ac21beb03db06
/frameworks/base/core/java/android/view/View.java
9d744c731295e6ba9b0031f3fb63b0df13e591d8 19-Feb-2014 Michael Wright <michaelwr@google.com> Add ability to request unbuffered dispatching.

While in general input batching has a lot of benefits, some apps would prefer
the input system not batch at all. This is typically because they do some of
the batching as part of their own input processing, as is the case with Chrome.

Bug: 12973909
Change-Id: I2e0c2b4c51bacc06f88245c528aa8849e4c4dab2
/frameworks/base/core/java/android/view/View.java
ad2f8e334f3ef22d3e412b0660a2e1f996f94116 16-May-2014 Alan Viverette <alanv@google.com> Update ripple behavior, use render thread animation

Change-Id: Ib6bc1e08b05d29606f452961963d58b8fc866746
/frameworks/base/core/java/android/view/View.java
c9ee304c91b5572f0c1cd95e9bd1e4a84e28587d 16-May-2014 Chris Craik <ccraik@google.com> Merge "Round rect outline clipping"
deeda3d337aed1eee218b89a7aba5992ced371f0 06-May-2014 Chris Craik <ccraik@google.com> Round rect outline clipping

Change-Id: Iee9cf4f719f6f1917507b69189ad114fa365917b
/frameworks/base/core/java/android/view/View.java
e78e6f923774ac2cadee43fbf09b4df6b2b4ee87 15-May-2014 Adrian Roos <roosa@google.com> Merge "Colorize SystemUI"
74bc19476536f2b5462eaa29e6f3029ee897c16d 29-Apr-2014 Kristian Monsen <kristianm@google.com> Adding custom events to AccessibilityNodeInfo

Change-Id: Id7a1985d1a6c4a9f7153f6d4d7e45f80c8d2b2b0
/frameworks/base/core/java/android/view/View.java
ea56251d92050e9a672d1f66d0d4621e4dd4136e 05-May-2014 Adrian Roos <roosa@google.com> Colorize SystemUI

Makes the color of the status and navigation bars customizable by
the app.

Bug: 14564488
Change-Id: I036edc228cfe1b659c7f11a43cdc4598ee705ff8
/frameworks/base/core/java/android/view/View.java
abb352a941cbd87c14cce9ccfa83157b913d41f2 09-May-2014 George Mount <mount@google.com> Change sharedElementName to viewName.

Bug 14624181

Change-Id: Ic98554c257d4115a917481eb50505373f6d58fa8
/frameworks/base/core/java/android/view/View.java
17048b84ec10e406da3d25f966b69f91871da5f8 10-May-2014 Adam Powell <adamp@google.com> Merge "Revert "Remove the View#initializeScrollbars API""
d20aa6c5315b817f053a84f86e5c3e44049399d7 10-May-2014 Adam Powell <adamp@google.com> Revert "Remove the View#initializeScrollbars API"

Looks like there are some bugs in the API checker for @removed.

This reverts commit 172c26e20fd71a2b4489a80b96ea5f6292db6430.

Change-Id: Ia4e610f71af19c5521fc019b9a6c26d0c11f23f1
/frameworks/base/core/java/android/view/View.java
0604dbc18e4f6fcb6ba35da4e0867cc4cf1a8f4a 10-May-2014 Adam Powell <adamp@google.com> Merge "Remove the View#initializeScrollbars API"
5d4c35d1eabd4b8b58d606099b6664d2611c6fc0 10-May-2014 Adam Powell <adamp@google.com> Remove the View#initializeScrollbars API

This was never a safe API for apps to call since the TypedArray
parameter must have been obtained by filtering on
android.R.styleable.View, which is not public. Any behavior in the
wild has therefore been undefined.

Change-Id: Id19f571c92748ef2a8c036072fd83a417527f779
/frameworks/base/core/java/android/view/View.java
f4c5bf30b445874cf353e1b96cab94185a39ce6d 07-May-2014 Yigit Boyar <yboyar@google.com> State based animators for Views

Set quantum theme buttons to elevate 2dp on press

Change-Id: Ibf4f5ef166b901382c304d392eba075836a96a35
/frameworks/base/core/java/android/view/View.java
4297409e458646db914d78f20aef71606622ca7e 07-May-2014 Guang Zhu <guangzhu@google.com> resolved conflicts for merge of 1e8a87dd to master

Change-Id: Id51218b4e2ca06344b5e7596ebde355fba9cfa54
05ee2bd617f50fe129cf36ae306e6059335e02aa 07-May-2014 Adam Powell <adamp@google.com> am bfbddcad: am 4f295fe8: Merge "Clean up WindowInsets API for release" into klp-modular-dev

* commit 'bfbddcad6004b7d178fb777c3a2b8b8a3dfe53ad':
Clean up WindowInsets API for release
1e8a87dd3c7735a8a0c6c1115450ba80501800c2 07-May-2014 Guang Zhu <guangzhu@google.com> am f31d73c9: Merge "send accessibility events on view property invalidation" into klp-modular-dev

* commit 'f31d73c9859a4124e5d4e618f4b147f55f693ef6':
send accessibility events on view property invalidation
f31d73c9859a4124e5d4e618f4b147f55f693ef6 07-May-2014 Guang Zhu <guangzhu@google.com> Merge "send accessibility events on view property invalidation" into klp-modular-dev
84e25098233ff3776357cb74edeeb33e3c3f6c3d 02-May-2014 Guang Zhu <guangzhu@google.com> send accessibility events on view property invalidation

from certain call sites of invalidateViewProperty, appropriate
accessibility event needs to be delivered as well.

Below is a list of call references found, ones with "*" are
modified by this change:

package: android.view
View
*offsetLeftAndRight(int) (4 matches)
*offsetTopAndBottom(int) (4 matches)
*setAlpha(float)
setCameraDistance(float) (2 matches)
setLayerPaint(Paint)
setPivotX(float) (2 matches)
setPivotY(float) (2 matches)
*setRotation(float) (2 matches)
*setRotationX(float) (2 matches)
*setRotationY(float) (2 matches)
*setScaleX(float) (2 matches)
*setScaleY(float) (2 matches)
setTransitionAlpha(float)
*setTranslationX(float) (2 matches)
*setTranslationY(float) (2 matches)
ViewGroup
*offsetChildrenTopAndBottom(int)
ViewOverlay
OverlayViewGroup
invalidateViewProperty(boolean, boolean) (2 matches)
ViewPropertyAnimator
AnimatorEventListener
onAnimationUpdate(ValueAnimator) (2 matches)

Bug: 14262013

Change-Id: Ibc9ed438f476ad10a6ad8df668142958c5903f55
/frameworks/base/core/java/android/view/View.java
bfbddcad6004b7d178fb777c3a2b8b8a3dfe53ad 07-May-2014 Adam Powell <adamp@google.com> am 4f295fe8: Merge "Clean up WindowInsets API for release" into klp-modular-dev

* commit '4f295fe8c66ef2878d93be420f73745d88422e35':
Clean up WindowInsets API for release
f4a3941ebe0dab5eeded96059a6a5f7c1d075e64 06-May-2014 Adam Powell <adamp@google.com> Clean up WindowInsets API for release

Hide window decor inset methods and rename the clone* methods to have
less baggage.

Bug 14566960

Change-Id: Ia06bb959fd77acd6ff69f337c3200047a529612a
/frameworks/base/core/java/android/view/View.java
55d47f6be8ba5aab8d9d9cc19e3549c354f08e4f 06-May-2014 Chris Craik <ccraik@google.com> Merge "Fix pivot update rejection logic"
6c1787cfea03758d4884119d387b348d629c2794 06-May-2014 Chris Craik <ccraik@google.com> Fix pivot update rejection logic

bug:14228573
Change-Id: Ia4c88f878ce325ee961117cf255c971d9947d5c6
/frameworks/base/core/java/android/view/View.java
b36e4f944fe28ce68182f9ec91e5341866b49084 01-May-2014 Adam Powell <adamp@google.com> Add support for hiding action bars on scroll.

Also tweak the nested scrolling API around nested flings and fix a bug
where recursive nested scrolling would stop prematurely.

Change-Id: I561226db878b2493970440a6af3e2332c56a1913
/frameworks/base/core/java/android/view/View.java
f38475bc28fe5596e27d44cfad74d4efb537623c 29-Apr-2014 Chris Craik <ccraik@google.com> Merge "Add Z property to View"
8efc566abf4060f295505cf761906b16ceef3e70 29-Apr-2014 Selim Cinek <cinek@google.com> Merge "Fixed a bug where the outline was not correctly updated"
61571f1422e1f62397c60ef38d60fd8d03c02ea0 29-Apr-2014 Selim Cinek <cinek@google.com> Fixed a bug where the outline was not correctly updated

The outline was not correctly copied to the field when it already
existed.

Change-Id: I02a7006f7ceff9241b1c52c73ea159c59aa7464e
/frameworks/base/core/java/android/view/View.java
9103e4f748b3950ecfe3c3f6171c6b404ee8ae0d 29-Apr-2014 Chris Craik <ccraik@google.com> Add Z property to View

Change-Id: Iff0b2fc616c650c46e5567a1cc81301afffcbfce
/frameworks/base/core/java/android/view/View.java
cc39e16cb98855f35079941b5e7e6eac2b7bc388 26-Apr-2014 Chris Craik <ccraik@google.com> Add elevation, Z properties to View

Change-Id: I3dd3b683a66e248a0fdf2ca69d1e962615b0daf9
/frameworks/base/core/java/android/view/View.java
d1ca75bffef070f62ab70ed514f7f91824f73cbc 28-Apr-2014 Alan Viverette <alanv@google.com> Quantum ripple for ListView selector

Also fixes row clipping and ripple alpha channel. Only supports showing
ripple on a single list row -- multiple rows for focus traversal and
drag-to-open are coming soon.

BUG: 13212804
BUG: 14257108
Change-Id: Ided15611dc868a513e8d2a994723cdf57b0d206c
/frameworks/base/core/java/android/view/View.java
6689c9700da7d391a0e0e90adfe9fa34a88fc3ea 26-Apr-2014 Chris Craik <ccraik@google.com> Merge "Support Oval GradientDrawable outlines, and ShapeDrawable"
7979388d4f7d5d9dbfcf7e1cc4709f8088c034ae 25-Apr-2014 Chris Craik <ccraik@google.com> Support Oval GradientDrawable outlines, and ShapeDrawable

Change-Id: Ifc9e55757d3325cb28a1a812ec696512d4a18b39
/frameworks/base/core/java/android/view/View.java
07064fa73066c1b1aa03b9181794cfe449137281 25-Apr-2014 Adam Powell <adamp@google.com> Merge "Fix ScrollView nested scrolling with touch down on buttons"
e9a16a5a3e7e41551e8c95b84d0e2af0dd130afe 25-Apr-2014 Adam Powell <adamp@google.com> Fix ScrollView nested scrolling with touch down on buttons

Start ScrollView's nested scroll in onIntercept to signal nested
scrolling parents not to intercept along the vertical axis.

Change-Id: Ieb343ff6b8216b113d3876bf93a804e609257f2a
/frameworks/base/core/java/android/view/View.java
07f0b8ee730be00a2a4bccf797bd8cb71e556546 25-Apr-2014 Chris Craik <ccraik@google.com> Merge "Refactor Drawable outline production, flesh out Outline methods"
e6a39b12656ab8d5c77d8366b24aa6410fd42e11 24-Apr-2014 Chris Craik <ccraik@google.com> Refactor Drawable outline production, flesh out Outline methods

Change-Id: I1b8c25384b5f123e86cf5e0b2270eb741bc3159b
/frameworks/base/core/java/android/view/View.java
10ba27734ee6274a772be8d6b1faa703ee3a3d6b 15-Apr-2014 Adam Powell <adamp@google.com> Nested scrolling!

or, "Excuse me, Egon, you said crossing the streams was bad."

Add API for driving a nested scroll from the most deeply nested
applicable scrolling view. The deepest scrolling view dispatches
high-level scrolling events up to cooperative parent views.

Augment ScrollView to support nested scrolling. Next up, more public
framework scrolling views.

Change-Id: I53b5e207fcdece796e08c8592ddb4496b96f600e
/frameworks/base/core/java/android/view/View.java
05e858400adee0f579b1e27e321b48bd55843fbd 23-Apr-2014 John Reck <jreck@google.com> Add missing try/finallys

Change-Id: I32be65f5a46768449f26b69f72f502acd1e72769
/frameworks/base/core/java/android/view/View.java
c3f35b01b5a21e110ca4eedf09c8c6164ab85dfb 22-Apr-2014 Alan Viverette <alanv@google.com> Add touch feedback to edit text

Change-Id: Id25692bfa40f5145d6ca807111bbd5d0c4774d07
/frameworks/base/core/java/android/view/View.java
19cadc203e3fdede40a89b13738464493ed3834a 16-Apr-2014 Selim Cinek <cinek@google.com> ViewGroup now applies clipBounds to its children

Fixed a bug where a ViewGroup did not clip its children to the
set clipBounds unless willNotDraw was set to true.

Bug: 14104527
Change-Id: I4892639bb860c1767f1ae6892f3e69525691e55e
/frameworks/base/core/java/android/view/View.java
e1070928795210a1894a454ff88e9d529ca381a7 15-Apr-2014 Adam Powell <adamp@google.com> am 50d7bfd8: DO NOT MERGE Refactoring of fitSystemWindows to applyWindowInsets for views

* commit '50d7bfd8224f9da170dac668888bcf0831373051':
DO NOT MERGE Refactoring of fitSystemWindows to applyWindowInsets for views
50d7bfd8224f9da170dac668888bcf0831373051 03-Feb-2014 Adam Powell <adamp@google.com> DO NOT MERGE Refactoring of fitSystemWindows to applyWindowInsets for views

Applying insets is now handled by:

* WindowInsets class - Encapsulate system insets and local decor
insets into a single object, written specifically so that new inset
categories may be added later. Apps cannot construct their own
WindowInsets, only clone with optional modifications. This is to
prevent losing data in the event of new insets added in the future.

* onApplyWindowInsets - Actually perform the application of insets.

* OnApplyWindowInsetsListener - Allow an app to use a separate
Listener object to apply insets to a View. This allows for things
like support lib integration in custom views written for older
versions where the verifier would otherwise complain about the use
of the new WindowInsets class as a method parameter. It also allows
for applying insets in a custom way without writing a custom view.

* dispatchApplyWindowInsets - Dispatch the call to self and children
in turn, if applicable. An OnApplyWindowInsetsListener will override
the behavior of the view's default onApplyWindowInsets method; a
listener wishing to call down to the 'superclass' implementation as
part of its own operation should call view.onApplyWindowInsets. App
code should generally not override this method and instead override
onApplyWindowInsets or provide a listener.

Compatibility support with the existing fitSystemWindows method has
been provided in both directions: for code that previously called
fitSystemWindows on arbitrary views and also for code that overrode
the fitSystemWindows method in custom views. A view that supports the
newer onApplyWindowInsets mechanism should not mix that behavior with
other calls to fitSystemWindows or vice versa. Support lib-style code
should take care to consistently use one mechanism or the other at
runtime.

Change-Id: Ie88b96e0382beb5d3c3f6cd013f7043acbc0a105
/frameworks/base/core/java/android/view/View.java
15b0bef9250e084bfbceb388716d28ed62ca018f 12-Apr-2014 Jeff Brown <jeffbrown@google.com> am 9e2fde9c: am d912e1f6: Use the display\'s actual state in the view hierarchy.

* commit '9e2fde9c8a3557d6e8d1f3971a421ecdf5c2ce07':
Use the display's actual state in the view hierarchy.
9e2fde9c8a3557d6e8d1f3971a421ecdf5c2ce07 12-Apr-2014 Jeff Brown <jeffbrown@google.com> am d912e1f6: Use the display\'s actual state in the view hierarchy.

* commit 'd912e1f6a111fb33118d116bd72da1a328041bca':
Use the display's actual state in the view hierarchy.
d912e1f6a111fb33118d116bd72da1a328041bca 12-Apr-2014 Jeff Brown <jeffbrown@google.com> Use the display's actual state in the view hierarchy.

Previously, the view hierarchy would suppress drawing whenever the
PowerManager.isScreenOn() method returned false. However, this method
really describes the interactive state of the device rather than the
actual display state. This is especially a problem when there are
multiple displays but it also breaks drawing while in doze mode.

This change makes the view hierarchy consider the actual state of the
display instead on an individual basis.

Bug: 13133142
Change-Id: I69870b6b14a3504607a30562aa48c3452f777c1f
/frameworks/base/core/java/android/view/View.java
c70f3db80ad522bdb5938b5944b3d9c7d7758f12 11-Apr-2014 John Reck <jreck@google.com> Merge "Simplify matrix calculations"
f7483e3af0513a1baa8341d403df2e0c0896a9ff 11-Apr-2014 John Reck <jreck@google.com> Simplify matrix calculations

Bug: 13913604

Change-Id: I2c0f85a34e1e520050a5a6131306d6b7c352d827
/frameworks/base/core/java/android/view/View.java
1e0d4af9986c8c2a658769a63bf8b385d25e0435 11-Apr-2014 Svetoslav <svetoslavganov@google.com> Adding system support for a single accessibility focus.

Now that we have APIs to query all interactive windows and allow
an accessibility service to put accessibility focus in each of
them we have to guarantee that there is a single accessibility
focus. This is required for correct operation of the touch
explorer as on double tap in clicks in the center of the focused
area, hence having more that one focus is an issue. Also the
system is maintaining a single input focus so now accessibility
focus behaves consistently with that.

bug:13965563

Change-Id: I0b5c26dadfabbf80dbed8dc4602073aa575ac179
/frameworks/base/core/java/android/view/View.java
8de65a8e05285df52a1e6f0c1d5616dd233298a7 10-Apr-2014 John Reck <jreck@google.com> Switch DisplayListData to a staging model

Bug: 13912977

Change-Id: I5b2f664e797be22a58300964f57ceb4fab60528c
/frameworks/base/core/java/android/view/View.java
ef4c0c9fd5db395b2eea0a246b93bce9cc9e859a 03-Apr-2014 Chris Craik <ccraik@google.com> Merge "Move most TransformationInfo properties to RenderNode"
45dc35b3c9e7e1494c09f4ed167426da6d376a7d 03-Apr-2014 Alan Viverette <alanv@google.com> Fix dialog style, selectable item bg pinning, and pressed state

BUG: 13746931
Change-Id: I31c2959f3e773a3aeb66ba5842d8d6fbb288acc1
/frameworks/base/core/java/android/view/View.java
49e6c73913e9bee58ea5e3984be151ee8e033163 31-Mar-2014 Chris Craik <ccraik@google.com> Move most TransformationInfo properties to RenderNode

This change dedupes the various properties that were represented both
in TransformationInfo, and RenderProperties on the native side.

RenderNode (and its associated properties) are now permanently
attached to a View in SW or HW. The native copy of these properties
are their sole representation.

Alpha to come in a later CL.

Also fixed issue with copying RenderNode's transform, and added
support of deleting RenderNodes in software rendering.

Change-Id: Ideb6e7f32b780e87aa1c32637c368356b3eee3a1
/frameworks/base/core/java/android/view/View.java
2f9ec3560d21e3db4f91a64e68d6b678714cd749 31-Mar-2014 ztenghui <ztenghui@google.com> Merge "Make the reveal animation API public"
be23fa2f73f24aa158bec5e1e8639be36f9ee368 28-Mar-2014 ztenghui <ztenghui@google.com> Make the reveal animation API public

Change-Id: Iafb17bc768b33b320ffa731a9474be05382126e6
/frameworks/base/core/java/android/view/View.java
42dda81e15490193fe5a9d10464dd9049c3362cc 29-Mar-2014 Chris Craik <ccraik@google.com> Merge "Update several stale RenderNode variable names"
64a12e177de64ae5d907e3020ea3f37cc96ee325 29-Mar-2014 Chris Craik <ccraik@google.com> Update several stale RenderNode variable names

Change-Id: I61c8c66f5a79e3a89ae0d3cffbfd351c05bd6a2b
/frameworks/base/core/java/android/view/View.java
4669cfff1ed590087eade846aee8b4ef58f31739 29-Mar-2014 Michael Wright <michaelwr@google.com> am d020fd33: Merge changes Ib18c99b9,I9f42eeb9 into klp-modular-dev

* commit 'd020fd33d147c88a9cda4976d2fa559e55b4ab03':
Generate and respect ACTION_CANCEL for joystick fallbacks. DO NOT MERGE
Adds API for determining confirm and cancel keys.
69a30b5e549e9da545e3545391e6027d9822e022 29-Mar-2014 Chris Craik <ccraik@google.com> Merge "Simplify RenderNode refresh/build/update process"
df0c431e6cc23c0348d2e71fd834d74379afa33d 29-Mar-2014 Chris Craik <ccraik@google.com> Simplify RenderNode refresh/build/update process

A View's RenderNode is created lazily, but the instance never changes
afterward.

Change-Id: I0b05769cd49aa55061d3fb8c2ea55a04e8391e48
/frameworks/base/core/java/android/view/View.java
efaf51ad0cb7a371aefe9ac7e08bff637ba59021 29-Mar-2014 Alan Viverette <alanv@google.com> Merge "Fix drag-to-open forwarding behavior"
78efdbac8a35a199f602e10a2d9ec3d86c0dbf5f 29-Mar-2014 Alan Viverette <alanv@google.com> Fix drag-to-open forwarding behavior

BUG: 13695088
Change-Id: I4c6e824267b145e6dcedb1aa46c8378fd5b6ff83
/frameworks/base/core/java/android/view/View.java
4dc16b370ca633d6937c8e0ebf9f5aca46baa9a4 25-Mar-2014 ztenghui <ztenghui@google.com> Add RevealAnimator

Expose this as a ValueAnimator throught a new API as
View.createRevealAnimator().

Change-Id: Ia6aac452988f001023478ee1ca0f268960e23f25
/frameworks/base/core/java/android/view/View.java
1e3c93975ee9c88284449406d49df2569f03f498 24-Mar-2014 Michael Wright <michaelwr@google.com> Adds API for determining confirm and cancel keys.

Bug: 13624048
Change-Id: I9f42eeb9c3a6bdae35eb0d7213fb4ac0fd8dc0d9
/frameworks/base/core/java/android/view/View.java
62828dfca2b009d42a414b60117d7f34034841f8 26-Mar-2014 Chris Craik <ccraik@google.com> Merge "Add private circular reveal API on View/RenderNode"
8a2b46d535e28c102b972407faa866cd15246445 26-Mar-2014 Svetoslav <svetoslavganov@google.com> Merge "Wrong constant used for undefined accessibility window id."
cbcc9695f0a701d620f48de75eaee05c4fef6f22 26-Mar-2014 Svetoslav <svetoslavganov@google.com> Wrong constant used for undefined accessibility window id.

Change-Id: I8b14db034a42a7ffd211a46fa3fee7bf2a6eac8f
/frameworks/base/core/java/android/view/View.java
8c271ca63b62061fd22cfee78fd6a574b44476fd 25-Mar-2014 Chris Craik <ccraik@google.com> Add private circular reveal API on View/RenderNode

Change-Id: I139c8e12b354083149a665f6768f3f6931a8dd15
/frameworks/base/core/java/android/view/View.java
f975823773ffddde476e8a8563702f5acc45ab6c 25-Mar-2014 Chris Craik <ccraik@google.com> Fix doc build

Change-Id: I18627229be3e8e242e469af83e7e5ae580b03707
/frameworks/base/core/java/android/view/View.java
76c30ce3c1d8f1a818502aaea2c42c84d6bd3f92 24-Mar-2014 Chris Craik <ccraik@google.com> Merge "Rework Outline API, remove isolatedZVolume remnants"
b49f446c98096c4790a11d9b5bc83a4e585278c9 20-Mar-2014 Chris Craik <ccraik@google.com> Rework Outline API, remove isolatedZVolume remnants

Change-Id: I30c2fe832dcb98fa6329b1a595b3d3aafbdcad6b
/frameworks/base/core/java/android/view/View.java
d15990aa501b683c143700e246b390c8bb79b210 21-Mar-2014 Mathew Inwood <mathewi@google.com> Fix log spam from View.toString().

If a view has a non-zero ID that is not defined in resources (i.e. has been
set pragmatically), the calls to Resources.getResourcePackageName() and
Resources.getResourceEntryName() result in a log warning:
No package identifier when getting name for resource number 0x00000001

Fix this by not attempting to resolve the package & name when there is
none.

Change-Id: Id88a61539fffb36187da7911f8e8a42d5a1bb951
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
c768e1b673fa02719db3e5323803c0109dd78ec9 19-Mar-2014 Jeff Brown <jeffbrown@google.com> am 3e1b03e4: am 5693d403: am 96abebd0: am 80af5316: am f260ed09: Merge "Fix inverted conditional in View.setFilterTouchesWhenObscured." into klp-dev

* commit '3e1b03e4e73d46a752537e6dcec9abdf6f5116a6':
Fix inverted conditional in View.setFilterTouchesWhenObscured.
5693d403600b430acb995573d1648f6a551ed510 19-Mar-2014 Jeff Brown <jeffbrown@google.com> am 96abebd0: am 80af5316: am f260ed09: Merge "Fix inverted conditional in View.setFilterTouchesWhenObscured." into klp-dev

* commit '96abebd02559137fa320a17c5b7a985d6fc068ba':
Fix inverted conditional in View.setFilterTouchesWhenObscured.
96abebd02559137fa320a17c5b7a985d6fc068ba 19-Mar-2014 Jeff Brown <jeffbrown@google.com> am 80af5316: am f260ed09: Merge "Fix inverted conditional in View.setFilterTouchesWhenObscured." into klp-dev

* commit '80af53162477385f20956a55305d0c048ef5c1df':
Fix inverted conditional in View.setFilterTouchesWhenObscured.
80af53162477385f20956a55305d0c048ef5c1df 19-Mar-2014 Jeff Brown <jeffbrown@google.com> am f260ed09: Merge "Fix inverted conditional in View.setFilterTouchesWhenObscured." into klp-dev

* commit 'f260ed09263d60ff941225e31e22d344afd90c0f':
Fix inverted conditional in View.setFilterTouchesWhenObscured.
aba566589e0011c4b973c0d4f77be4e9ee176089 19-Mar-2014 Jeff Brown <jeffbrown@google.com> Fix inverted conditional in View.setFilterTouchesWhenObscured.

Bug: 13530806
Change-Id: Icdaf909c355f5b22635e1060f2190502916b144f
/frameworks/base/core/java/android/view/View.java
34f67f26e355925aa1e00a20bc11e09b8dc32988 17-Mar-2014 Chris Craik <ccraik@google.com> Remove castsShadow and globalCamera APIs

Change-Id: I5c1c375f45946609b1635d952c5adf55e23bdd60
/frameworks/base/core/java/android/view/View.java
618236fe886b84f99cd7c48ece96b16f82a9d2b2 17-Mar-2014 Chris Craik <ccraik@google.com> Revert "Remove castsShadow and globalCamera APIs"

This reverts commit 0334c314a5721f49b4d172a9cefe10f157cb28a4.

Change-Id: I64714d17fb877e1b43c65eb44820d1128281c7a2
/frameworks/base/core/java/android/view/View.java
0334c314a5721f49b4d172a9cefe10f157cb28a4 15-Mar-2014 Chris Craik <ccraik@google.com> Remove castsShadow and globalCamera APIs

Change-Id: I4d81a7849eba60a1a9debce74eedd55d6331842d
/frameworks/base/core/java/android/view/View.java
f666ad7046c0b1b255835f75aeb7d1391067df93 15-Mar-2014 John Reck <jreck@google.com> Rename DisplayList->RenderNode

Change-Id: Idcca6f26ba6282594789962f5edb3ed53a290fef
/frameworks/base/core/java/android/view/View.java
40503f9f8cc75c37d38ca0b34049e9b337ba040c 13-Mar-2014 John Reck <jreck@google.com> App compat

Bug: 13450310

Change-Id: I32d948a243385d1bb9f2615759127f4b13ce01bd
/frameworks/base/core/java/android/view/View.java
e769cdf017bb5a8e45648ef1bdd657f5320b2691 11-Mar-2014 Jeff Brown <jeffbrown@android.com> am 1491aaf5: am 14006523: am 33282d66: am a41ddccd: Merge "Fixed typo errors in documentation"

* commit '1491aaf503de47491bc97457c77bb51c0320793e':
Fixed typo errors in documentation
140065230900b465f85f64c5da5181d124076e1d 11-Mar-2014 Jeff Brown <jeffbrown@android.com> am 33282d66: am a41ddccd: Merge "Fixed typo errors in documentation"

* commit '33282d66155e8d68acea512989ec61cb15fae1ce':
Fixed typo errors in documentation
a41ddccdc67ace7c9363efebbf6e51710928ce12 11-Mar-2014 Jeff Brown <jeffbrown@android.com> Merge "Fixed typo errors in documentation"
005c0324c52b7affd8a5fac1a4925c23fc22f3db 11-Mar-2014 Adam Powell <adamp@google.com> am 8566f156: am c8b43bc0: am fd6b9975: Prevent overflow from MeasureSpec.adjust; measure cache fix

* commit '8566f1561bb99eeff16b7845156c978b42ada227':
Prevent overflow from MeasureSpec.adjust; measure cache fix
c8b43bc0021aea63858044551f13cae86f4e5699 11-Mar-2014 Adam Powell <adamp@google.com> am fd6b9975: Prevent overflow from MeasureSpec.adjust; measure cache fix

* commit 'fd6b99750bfab7f930ee375a79009874a3196165':
Prevent overflow from MeasureSpec.adjust; measure cache fix
fd6b99750bfab7f930ee375a79009874a3196165 07-Mar-2014 Adam Powell <adamp@google.com> Prevent overflow from MeasureSpec.adjust; measure cache fix

Extract the size from the MeasureSpec value before adding the
delta. The opposite order could result in a negative delta causing
overflow into size from the EXACTLY mode, creating a very large size
value in the resulting MeasureSpec.

Don't reapply optical bounds insets after pulling a value from the
measurement cache. (The insets will have already been applied before
insertion into the cache.)

Change-Id: Ib0154f4d6c3a7c31e7fee24fd7d5d10cc5dc71a1
/frameworks/base/core/java/android/view/View.java
be34f2f3b340196426bdf558b28951359a4d84fa 10-Mar-2014 John Reck <jreck@google.com> 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
/frameworks/base/core/java/android/view/View.java
30c86ad4754e228ecc0ff07ecb3d76ea37a619e0 10-Mar-2014 Jean Chalard <jchalard@google.com> Merge "Improve doc for EditorInfo#initialSel{Start,End}"
29cc47a5f1021ad42f4699f08ebaea025925f410 08-Mar-2014 Chris Craik <ccraik@google.com> Update Z documentation to avoid hidden API

Change-Id: I723930b951327a06dfbf2aeb8417409e6ce02c2e
/frameworks/base/core/java/android/view/View.java
b14dfe20ef300c47cc5cdfbd844c21f7fd302f0c 06-Mar-2014 John Reck <jreck@google.com> Revert "Revert "Workaround apps not calling super.onDetachedFromWindow()""

This reverts commit bac16fae7e6fceb1e516252ede673844b772e7c3.

Change-Id: I61e997b23fac1aa984129fdc0328426ff8891bdd
/frameworks/base/core/java/android/view/View.java
acbc41d656be91854d9c128aee06b5ecc9f54528 06-Mar-2014 Bart Sears <bsears@google.com> Merge "Revert "Workaround apps not calling super.onDetachedFromWindow()""
bac16fae7e6fceb1e516252ede673844b772e7c3 06-Mar-2014 Bart Sears <bsears@google.com> Revert "Workaround apps not calling super.onDetachedFromWindow()"

Requested by jreck to fix the build.

This reverts commit 198d20842a537f3df3584ea084e74220e172b086.

Change-Id: I733065cc124b59bf914034f5bac5e2e951a5b604
/frameworks/base/core/java/android/view/View.java
d621e77c8dfc99d0c347ff4cef765e9809f51333 06-Mar-2014 John Reck <jreck@google.com> Merge "Workaround apps not calling super.onDetachedFromWindow()"
198d20842a537f3df3584ea084e74220e172b086 06-Mar-2014 John Reck <jreck@google.com> Workaround apps not calling super.onDetachedFromWindow()

Bug: 13338698
Move the releasing of hardware resources to a new
@hide onDetachedFromWindowInternal

Change-Id: I52b4e6ba4d5b3ce20b89cabffa248d1d780e3e81
/frameworks/base/core/java/android/view/View.java
b7d0cfa0d8d10ec613bcd6f5072729571d3a9588 06-Mar-2014 Chris Craik <ccraik@google.com> Merge "Add Path.isConvex, and force View outlines to be convex"
eef19cc2ee55de75817db3c5ce22c712a97aeb77 05-Mar-2014 John Reck <jreck@google.com> DisplayList lifecycle fixes

Bug: 13324014
Bug: 13324861

Don't use a DisplayList for the background if the View is detached.
mAttachInfo can be null in onDetachedFromWindow

Change-Id: I6d1413b956dd35cd2f5256860223013d2a570870
/frameworks/base/core/java/android/view/View.java
24ba99c235c328824ec8bcc1bf0382972f5b1616 05-Mar-2014 John Reck <jreck@google.com> Merge "DisplayList overhaul"
44fd8d24f761f82d21e9b00932648a1b6bf91449 26-Feb-2014 John Reck <jreck@google.com> DisplayList overhaul

Change-Id: I53418d580c98f706e971545cff81b9921c12cc5f
/frameworks/base/core/java/android/view/View.java
c15254781569fdc75362f1a0ba50ae019fddab4c 04-Mar-2014 Chris Craik <ccraik@google.com> Pass correct paint to HW layer

bug:13299767

Change-Id: I8372a830b2076c489ed0837aba9a85650a4202fd
/frameworks/base/core/java/android/view/View.java
7b57d6162ea14a48970c32eebd83437a39cf7ef7 04-Mar-2014 Svetoslav <svetoslavganov@google.com> Merge "Reverting changes to the accessibility layer."
1100714350923fb96d825bacd4809df2c97bea3d 04-Mar-2014 Svetoslav <svetoslavganov@google.com> Reverting changes to the accessibility layer.

1. Views not important for accessibility should still fire accessibility
events as some accessibility service may be registered to introspect
all views.

2. Reverting a correct fix from AccessibilityNodeInfoCache to port it in
a separate change for cherry-pick.

Change-Id: If768259597ed1c884952209dad948c46dff14878
/frameworks/base/core/java/android/view/View.java
5be83edd15e11420287cc0af93a95d5a6dfae68f 04-Mar-2014 Chris Craik <ccraik@google.com> Add Path.isConvex, and force View outlines to be convex

Change-Id: Idf3f1ee44240d77f7a7ddd0da898da8aa5d41864
/frameworks/base/core/java/android/view/View.java
0ebe07263da8c102102ffac7457bb89ab2d1b31a 03-Mar-2014 Chris Craik <ccraik@google.com> Ensure setLayerType pushes Paint changes

Even if layerType and Paint instance haven't changed, since values in
the Paint may have changed.

bug:13208986
Change-Id: Ieb817ba2347bcaf4dce84ee921588ce92d537bb0
/frameworks/base/core/java/android/view/View.java
e180337ee99b9155fe441ea55451f4d2167b5d9a 26-Feb-2014 George Mount <mount@google.com> Change Activity Scene Transitions to be more automatic redo.

This reverts commit 206e30cd93afe3eb72ec94178324417db5424ed2
along with removing the additional startActivity* methods
and replaces them with ActivityOptions makeSceneTransitionAnimation
methods.

Change-Id: I52bec31ae3c4cea6d549810ae5a7acd8aea176d8
/frameworks/base/core/java/android/view/View.java
206e30cd93afe3eb72ec94178324417db5424ed2 26-Feb-2014 George Mount <mount@google.com> Revert "Change Activity Scene Transitions to be more automatic."

This reverts commit f10587faadb9080a7bf9991cbe04bac5525da482.

Change-Id: I2785a3d2d6b667cad6d61dcbbc1c624161735fa4
/frameworks/base/core/java/android/view/View.java
121e25dcf0d4da5c1c97fad2bd27dbd361db4153 26-Feb-2014 George Mount <mount@google.com> Merge "Change Activity Scene Transitions to be more automatic."
f10587faadb9080a7bf9991cbe04bac5525da482 06-Feb-2014 George Mount <mount@google.com> Change Activity Scene Transitions to be more automatic.

Shared element transitions are enabled by default
when the Window has a TransitionManager.

Shared element location and size are captured and
transferred to the target Activity.

ActionBar is treated as a shared element.

Change-Id: I0f22ea4e5cbe80254e848444e3f235cb742684f4
/frameworks/base/core/java/android/view/View.java
ff641477a75b7318a936f048e2bd87a1ae114b98 21-Feb-2014 Chris Craik <ccraik@google.com> Damage IsolatedZVolume when shadows change

bug:12874322
Change-Id: I3dd92f551dfb00965ccd08647586f378f8949b1c
/frameworks/base/core/java/android/view/View.java
550267f72b6217f797e7f93bb312ecbe6541ff49 22-Feb-2014 Alan Viverette <alanv@google.com> Fix refactoring of invalidate methods

Was incorrectly clearing the DRAWN flag and updating mLastIsOpaque from
partial invalidations, though why this should be different is somewhat
of a mystery.

BUG: 13138721
Change-Id: Ic8d11a64406bc78e94adec7355c1f50d87567887
/frameworks/base/core/java/android/view/View.java
3b49a8a629fb66431bf320d0a759299c5383cb06 22-Feb-2014 Alan Viverette <alanv@google.com> Fix typo in invalidate

BUG: 13138721
Change-Id: If7e10208c3ba752eca5f5cbcf26f8a63b1f4ad51
/frameworks/base/core/java/android/view/View.java
f4f4e863bea74b243a1afada6db7a21df693f8fa 22-Feb-2014 Alan Viverette <alanv@google.com> Fix conditional in invalidateInternal

BUG: 13138721
Change-Id: I433faff7d3e93796dca59ac5b2706c59901558ba
/frameworks/base/core/java/android/view/View.java
3a4ab768a95a249baceef025a8a214fa0c499a16 21-Feb-2014 Alan Viverette <alanv@google.com> Merge "Invalidate projection receiver, refactor invalidate methods"
449e46600f75a21975ceb1c991f768f833ed7fbf 21-Feb-2014 Elliott Hughes <enh@google.com> am 0047d3e0: am e253b514: am 29d60b95: am 8d41e653: Merge "Miscellaneous small documentation fixes."

* commit '0047d3e025b43fd2dc05734f7ea6229291445046':
Miscellaneous small documentation fixes.
6fd68e0930a0260437a50b3a0e3edbac073dfcec 20-Feb-2014 Jean Chalard <jchalard@google.com> Improve doc for EditorInfo#initialSel{Start,End}

Bug: 12772035
Change-Id: I2fe444685b9d02c15d002d36b1cb1fcfce42cb37
/frameworks/base/core/java/android/view/View.java
d7a1054b7ab47774cbad217800a5b4e7ee08b0bb 21-Feb-2014 Alan Viverette <alanv@google.com> Invalidate projection receiver, refactor invalidate methods

Change-Id: I61bd705abeadbdc6ef611d1c7368cecfd908076f
/frameworks/base/core/java/android/view/View.java
81547effacfea78a3c26d34b77e1e99ffc89c89a 20-Feb-2014 Alan Viverette <alanv@google.com> Always redraw background display list when view is redrawn

BUG: 12974357
Change-Id: I358351257e8b099a681e93be8f64e396fdfd6720
/frameworks/base/core/java/android/view/View.java
5efe5a2d35604595913c9e372c904b85c32e71c8 19-Feb-2014 John Reck <jreck@google.com> Merge "Support HardwareLayers in RenderThread"
19b6bcfd83eb7fb92ebd06d2fec89e308311f1d0 15-Feb-2014 John Reck <jreck@google.com> Support HardwareLayers in RenderThread

Also has a few HardwareLayer lifecycle fixes

Change-Id: I6308cb05f8f199eed72189ace768013a46815941
/frameworks/base/core/java/android/view/View.java
66d792b6631a8dfd0dd0b7abc75077760fa083cc 19-Feb-2014 Chris Craik <ccraik@google.com> Merge "Make outline and shadow APIs public"
e9b8817bd720cd2a294126074eb533f943a9348f 11-Feb-2014 Chris Craik <ccraik@google.com> Make outline and shadow APIs public

Change-Id: If40dc27b2fdc41c3ed355bc9029474b1344c1a03
/frameworks/base/core/java/android/view/View.java
b9122c672e76923018198ab0eda07fa6a2145dbc 12-Feb-2014 ztenghui <ztenghui@google.com> Fix one flag setting bug

TODO: encapsulate the bit operations into functions.

Change-Id: I68ada214c080ac54ea43c327684c87dacef85491
/frameworks/base/core/java/android/view/View.java
04fc583c3dd3144bc6b718fcac4b3e1afdfdb067 06-Feb-2014 John Reck <jreck@google.com> Refactor HardwareLayer

Defer all the things!
Groundwork to allow hardware layers to work in a renderthread world

Change-Id: Ib3aa47525f393083621254a743dbaa6352f933bd
/frameworks/base/core/java/android/view/View.java
b67a7bf27ba2ecdb55be2117717b6818053f47fc 08-Feb-2014 Chris Craik <ccraik@google.com> Add shadow casting / global perspective APIs, hidden for now.

Global perspective isn't yet hooked up in rendering.

Change-Id: I64ad272ea5dc523505260ce114f0a6bebdcfe9dc
/frameworks/base/core/java/android/view/View.java
fad4593a3c9db193a4308c34168cc91c28218e2b 06-Feb-2014 ztenghui <ztenghui@google.com> Add the clipToOutline by just using the clipPathOp

Change-Id: I6ba23b589e579599d018600d0744be0efe2028c1
/frameworks/base/core/java/android/view/View.java
27bfb24518934f0344c79a1d655ea8d1208d2446 07-Feb-2014 Chris Craik <ccraik@google.com> Merge "Rework and clean up DisplayList projection"
1df26446b7eac7050767c38ca977fde03a41a033 06-Feb-2014 Chris Craik <ccraik@google.com> Rework and clean up DisplayList projection

Move the projection surface to be a property of a DisplayList,
set to true for every background drawable.

Additionally, handle a projecting view background such that it doesn't
try to project onto itself (which is undesirable).

Change-Id: Ic70b17474bd87340e80767f8518f73b233419c7a
/frameworks/base/core/java/android/view/View.java
6250c59e0d917fb3641ac499ca69b011aa50a4bd 06-Feb-2014 Adam Powell <adamp@google.com> Merge "Refactoring of fitSystemWindows to applyWindowInsets for views"
d5154ec2bc7e7c0bdfd14fc784912d390afe43cc 06-Feb-2014 Alan Viverette <alanv@google.com> Add prototype for borderless touch feedback drawable

Change-Id: I6366855b1fb838aa077bc6bdb62adc2134c51dca
/frameworks/base/core/java/android/view/View.java
dc9125880c372b3d3a2af09d48225c9c50b962f7 05-Feb-2014 Alan Viverette <alanv@google.com> Merge "Temporary fix for background invalidation"
e6875f1575a71402cd86f75e4d031c95ccd43cc4 05-Feb-2014 Alan Viverette <alanv@google.com> Temporary fix for background invalidation

Not a complete solution, since we could be more efficient, but enough
to have both background display lists and proper invalidation.

Change-Id: I0216a104948c0930760275bb2b98318b0a4487e7
/frameworks/base/core/java/android/view/View.java
46e38fd9abe1af3ccb903a80ff89bc3faef4d3e3 03-Feb-2014 Adam Powell <adamp@google.com> Refactoring of fitSystemWindows to applyWindowInsets for views

Applying insets is now handled by:

* WindowInsets class - Encapsulate system insets and local decor
insets into a single object, written specifically so that new inset
categories may be added later. Apps cannot construct their own
WindowInsets, only clone with optional modifications. This is to
prevent losing data in the event of new insets added in the future.

* onApplyWindowInsets - Actually perform the application of insets.

* OnApplyWindowInsetsListener - Allow an app to use a separate
Listener object to apply insets to a View. This allows for things
like support lib integration in custom views written for older
versions where the verifier would otherwise complain about the use
of the new WindowInsets class as a method parameter. It also allows
for applying insets in a custom way without writing a custom view.

* dispatchApplyWindowInsets - Dispatch the call to self and children
in turn, if applicable. An OnApplyWindowInsetsListener will override
the behavior of the view's default onApplyWindowInsets method; a
listener wishing to call down to the 'superclass' implementation as
part of its own operation should call view.onApplyWindowInsets. App
code should generally not override this method and instead override
onApplyWindowInsets or provide a listener.

Compatibility support with the existing fitSystemWindows method has
been provided in both directions: for code that previously called
fitSystemWindows on arbitrary views and also for code that overrode
the fitSystemWindows method in custom views. A view that supports the
newer onApplyWindowInsets mechanism should not mix that behavior with
other calls to fitSystemWindows or vice versa. Support lib-style code
should take care to consistently use one mechanism or the other at
runtime.

Change-Id: Ie88b96e0382beb5d3c3f6cd013f7043acbc0a105
/frameworks/base/core/java/android/view/View.java
0a778eda690a66173733a63622886e888d405c45 13-Dec-2013 George Mount <mount@google.com> Cross-Activity Scene transition API.

First pass at API for cross-Activity Scene transitions.
Remaining work:
Transition back
Automatically capture hero element info
Transfer of surface texture to synchronize between Activities
Possibly use scene names to indicate preferred transition

Change-Id: I59d07de1fae694a46b92b1c82525daa301ec1377
/frameworks/base/core/java/android/view/View.java
143b46d50c0c01970c7d280228bd1e58c2afb32b 04-Feb-2014 Alan Viverette <alanv@google.com> Check for null display list

BUG: 12764584
Change-Id: I071aa0d9bc4f4ac353a5d0f534cf7c44964d4bf0
/frameworks/base/core/java/android/view/View.java
9f244efbfac8d592a0af0321f7985761ed17ec6c 04-Feb-2014 Alan Viverette <alanv@google.com> Merge "Make background projection a property of View"
4085aac5833e6d88c3f77b6c86cc7520a2550bfc 04-Feb-2014 Alan Viverette <alanv@google.com> Make background projection a property of View

BUG: 12764584
Change-Id: Id80afd6d26c814d3fd551f6690d4a88c441b0b9f
/frameworks/base/core/java/android/view/View.java
8eea3ea5591e59f55cbb4f6b2b7e9363a285ced3 04-Feb-2014 Alan Viverette <alanv@google.com> Add APIs for obtaining themed Drawable from Theme, Context

BUG: 12611005
Change-Id: Ic0057be4e4c2d0c61ce02a019b3f7d0625e3a016
/frameworks/base/core/java/android/view/View.java
a2fe7affd3d077ac163da90996cb2e5e0ca3b8d1 29-Jan-2014 Chris Craik <ccraik@google.com> Add initial hidden outline APIs

Background drawable outline usage and drawable outline calculation
still to come.

Change-Id: I8c7539f1638f86e1f8eb11f4fe49f705f61d58ba
/frameworks/base/core/java/android/view/View.java
6657a6c53930eb0ff8d03317eb10ea7ddb0c49b4 26-Jan-2014 Chris Craik <ccraik@google.com> Update reordering method names, and make 3d reordering API public

IsContainedVolume -> hasIsolatedZVolume conveys that this affects Z
ordering of views

ProjectToContainedBackground -> ProjectBackwards, since it ended up
using its own projection target, separate from the 3d volume bit

Change-Id: Ia2cde838cc4da134366fe6ff623290fbd65e50c3
/frameworks/base/core/java/android/view/View.java
5bd2c855af2cac7774776019e6c737962c7a8bd3 17-Jan-2014 Alan Viverette <alanv@google.com> Explicit documentation for View.getTag() return value when not set

Change-Id: I143d445b0c801ffabe04f0042e559594e52d07ed
/frameworks/base/core/java/android/view/View.java
9525f2a72e2786f1b53927878dd8234859ea5c39 02-Jan-2014 Mark Doliner <markdoliner@google.com> Miscellaneous small documentation fixes.

Most of these I noticed on my own. The change to docs/html/tools/testing/testing_ui.jd is mentioned in a bug report:
https://code.google.com/p/android/issues/detail?id=56324

Signed-off-by: Mark Doliner <markdoliner@google.com>
/frameworks/base/core/java/android/view/View.java
d863a10b2870ca27f631b2ec69f3e13faed1d02a 19-Dec-2013 Chris Craik <ccraik@google.com> Add initial APIs for 3d view manipulation.

Change-Id: I6de00bc577d5b3a1fbc9ca3a3b3668fcfa32b867
/frameworks/base/core/java/android/view/View.java
223622a50db319d634616311ff74267cf49679e7 17-Dec-2013 Alan Viverette <alanv@google.com> Add reveal drawable, APIs for forwarding Drawable focus and touch

Hotspot APIs are hidden pending finalization of how we handle IDs.

BUG: 11416827
Change-Id: Iecacb4b8e3690930d2d805ae65a50cf33482a218
/frameworks/base/core/java/android/view/View.java
18809c063b89d9b235401d080b952885a4ef9628 13-Dec-2013 Chris Craik <ccraik@google.com> Merge "3d view system!"
f8bc964289df5ea53672df401c6d51dd47c02e53 26-Nov-2013 Svetoslav <svetoslavganov@google.com> Fixing some accessibility bugs.

1. Views not important for accessibility should not send events.

2. The base View implementation should not add it self to the
list of children for accessibility.

3. Null pointer exception in AccessibilityNodeInfoCache.

Change-Id: Ie5b373362269200ead13ffe632679bd42ee40309
/frameworks/base/core/java/android/view/View.java
f57776b2d195f0937906eb88b777bb55ccc36967 26-Oct-2013 Chris Craik <ccraik@google.com> 3d view system!

True 3d transformations are now supported by DisplayLists and the
renderer, initially with the translationZ property on view.

Renderer operations used directly by DisplayList (formerly,
clip/save/restore/saveLayer) are now more simply managed by allocating
them temporarily on the handler's allocator, which exists for a single
frame. This is much simpler than continuing to expand the pool of
pre-allocated DisplayListOps now that more operations are called
directly by DisplayList, especially with z ordered drawing.

Still TODO:
-APIs for camera positioning, shadows
-Make Z apis public, and expose through XML
-Make invalidation / input 3d aware

Change-Id: I95fe6fa03f9b6ddd34a7e0c6ec8dd9fe47c6c6eb
/frameworks/base/core/java/android/view/View.java
71c8fa17762d517c4c5daa11c7471882bf26a978 10-Dec-2013 John Reck <jreck@google.com> Merge "RenderThread work"
cec24ae16e9a0a7c3075f1a8d9149bb7fb3813fc 05-Nov-2013 John Reck <jreck@google.com> RenderThread work

Hacky prototype needs a private API to enable

Change-Id: I21e0ddf3cdbd38a4036354b5d6012449e1a34849
/frameworks/base/core/java/android/view/View.java
1eb87f2c57718379d43893852668abd7d9e1fdac 09-Dec-2013 Alan Viverette <alanv@google.com> Merge "Unhide accessibility focus and importance getter APIs"
06f37728b92450035a256504fe4e289d058861ef 03-Dec-2013 Alan Viverette <alanv@google.com> Merge "Generalize mapping between local and global View coordinates"
4ecee5c2a6a350860b19d2bc7fab740afaa02621 28-Nov-2013 Alan Viverette <alanv@google.com> Unhide accessibility focus and importance getter APIs

BUG: 11421928
Change-Id: Ica5cf80fc7e4c1cb0900d4d0d2e7b0d02ff13c87
/frameworks/base/core/java/android/view/View.java
180979f76b0c99cd7053a44692f6408721b74bce 15-Nov-2013 John Spurlock <jspurlock@google.com> Fix logic problems in AnimationDrawable and View.

1. View now checks both queues when unscheduling runnables,
fixing the case where work was scheduled pre-attach, and unscheduled
post-attach.

2. AnimationDrawable avoids posting duplicate runnables when rescheduling
itself.

3. Decouple is-animation-running state from current frame pointer in
AnimationDrawable. Some calls init to the first frame, but do not
kick off the animation.

4. Remove workaround in SystemUI's AnimatedImageView (status bar icon)
now that the underlying framework issues are fixed.

Bug:11694594
Change-Id: I77ca6bd80262f7edcf980b2d7efc2592f8051f29
/frameworks/base/core/java/android/view/View.java
fed3f728b7fea15c73d4fda551bd0433dd4f85eb 14-Nov-2013 Alan Viverette <alanv@google.com> Generalize mapping between local and global View coordinates

Change-Id: Ib7f5d51debe2e9773d9ef2fa60a33379b229371a
/frameworks/base/core/java/android/view/View.java
c3c0c18d5a3c38c057948ec592ae42d46ab16d90 14-Nov-2013 Adam Powell <adamp@google.com> am 73a4aeb9: am 75ae8983: am 48d2bcf2: Reset padding flags when set programmatically or implicitly from background

* commit '73a4aeb9ffa15a2c08edf3ba69157c08821930ee':
Reset padding flags when set programmatically or implicitly from background
75ae89837615fa9cebd6cbb051213c025c48bcf6 14-Nov-2013 Adam Powell <adamp@google.com> am 48d2bcf2: Reset padding flags when set programmatically or implicitly from background

* commit '48d2bcf2ce2305356c5a4f0dfbb928dc5a4c8331':
Reset padding flags when set programmatically or implicitly from background
48d2bcf2ce2305356c5a4f0dfbb928dc5a4c8331 14-Nov-2013 Adam Powell <adamp@google.com> Reset padding flags when set programmatically or implicitly from background

Bug 11673480

Change-Id: I4f33c7ae46e937302e625bf1f3260adb25843645
/frameworks/base/core/java/android/view/View.java
43983c7bd9796a2d547c3c3faa0af65c3870f1c1 12-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> am d303549b: am db976ea0: am 3f183a23: Merge "Fix bug #11586041 Regression: text truncation in Clock" into klp-dev

* commit 'd303549b5175d3e589ca656c5e01a88b55bf373a':
Fix bug #11586041 Regression: text truncation in Clock
db976ea0fc4f21b94666f0c91b7369c45ed1dd80 12-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> am 3f183a23: Merge "Fix bug #11586041 Regression: text truncation in Clock" into klp-dev

* commit '3f183a234bef643080d4f9dce44bcaa68e5d4694':
Fix bug #11586041 Regression: text truncation in Clock
82d37b40c55722e87428a146800e21e7412a4f6b 08-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #11586041 Regression: text truncation in Clock

Background padding should be used only and only if
- no padding is already defined into a layout file
- an explicit call to setBackground() / setBackgroundDrawable() has been done

Change-Id: I0a732c61b898e006ee86377bcbe7691740d68111
/frameworks/base/core/java/android/view/View.java
3083579424785e55ca8f82856a6553ee983c3ffb 07-Nov-2013 John Reck <jreck@google.com> More refactoring

Merge GlRenderer and Gl20Renderer
Move GLRenderer to its own file
Move native methods from HardwareRenderer to GLRenderer

Change-Id: Ib4680b03dd98101b2a428062cc94774ff73baa75
/frameworks/base/core/java/android/view/View.java
badb59cd5d2a2905494964889f002a277211000a 07-Nov-2013 Newton Allen <newt@google.com> am 47feee53: Merge "Fix some documentation typos." into klp-docs

* commit '47feee535f9e4e77165b93b6b9f10379e7aa4bbd':
Fix some documentation typos.
339f901ba65d6b8478b6d7680cfb2f5421e42d9b 06-Nov-2013 John Reck <jreck@google.com> Cleanups

Simplify DisplayList creation
Remove unnecessary debug code

Change-Id: I310c9196485c6bf65a6793669bd2dc2b9a8a0a15
/frameworks/base/core/java/android/view/View.java
79d81e68aa61fe7b00cdcba433f9f58f255cb368 05-Nov-2013 John Reck <jreck@google.com> Remove dead code

Change-Id: I242eacf68067ffe353802f07d6bfe5bb152fe9d0
/frameworks/base/core/java/android/view/View.java
93c9093a32876f97a3c6c1a70538e650f3d02ec1 05-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> am 641bac8e: am 073041c3: am f48bcd5b: Merge "Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales" into klp-dev

* commit '641bac8e21673a2d526b9c0ccf28d5fd08bd6994':
Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales
49d68621837a7895479a819526553acb55b7ab7c 05-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> am 346d001b: am 0804ff1f: am cad157b3: Merge "Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape" into klp-dev

* commit '346d001b6fae9c5abb0de8d58b3c6d778d3508dc':
Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape
641bac8e21673a2d526b9c0ccf28d5fd08bd6994 05-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> am 073041c3: am f48bcd5b: Merge "Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales" into klp-dev

* commit '073041c3708b5856a027d32c93c6945e2266336e':
Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales
346d001b6fae9c5abb0de8d58b3c6d778d3508dc 05-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> am 0804ff1f: am cad157b3: Merge "Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape" into klp-dev

* commit '0804ff1f5a27239c7bc5b02581585f4a61e72aa6':
Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape
f48bcd5b68613b0a4ff0162091047fb9465b5290 05-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales" into klp-dev
cad157b370524782183de688bf97c9078c1c08da 05-Nov-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape" into klp-dev
ff236f5fc1a088b1210d37a67b0e88b06c0fbdb2 13-Aug-2013 Newton Allen <newt@google.com> Fix some documentation typos.

Change-Id: I0360d468d54d970c87f313e24e50965245206f28
(cherry picked from commit c502744f2ddcc80a34f5197b5d2c0d701c7d6e71)
/frameworks/base/core/java/android/view/View.java
c502744f2ddcc80a34f5197b5d2c0d701c7d6e71 13-Aug-2013 Newton Allen <newt@google.com> Fix some documentation typos.

Change-Id: I0360d468d54d970c87f313e24e50965245206f28
/frameworks/base/core/java/android/view/View.java
bd88de46a126c1e6dfc84ba6c1f942f51fe57582 28-Oct-2013 Taeho Kim <jyte82@gmail.com> Fixed typo errors in documentation

Fixed some type errors in developer documentation.

Change-Id: I92629a4350508fb96fda1842741c5ced64171464
Signed-off-by: Taeho Kim <jyte82@gmail.com>
/frameworks/base/core/java/android/view/View.java
600d7dd1c6d9d1ff81b71085eff2a6be50d6f36c 16-Oct-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales

Background Drawable padding was not taken into account in RTL Locales

- make sure the Drawables are resolved before resolving padding
- during padding resolution take care about background padding

Change-Id: Ib0c722adf5341ab4fa2182a0d0ac2ca639e85cfc
/frameworks/base/core/java/android/view/View.java
b77c586050f1bef63db1683ee595d85bef70f07a 18-Oct-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape

Right padding was wrong for the LinearLayout with id/recents_linear_layout. Its value
was first correctly set by the fitSystemWindows(Rect insets) call but then was reset
to "0" during padding resolution.

Thus make sure that the initial values for user padding left/righ are also set to the
ones coming from the computed ones.

Change-Id: I60390ff7a24286a8f7214eaff8606cb76268ee90
/frameworks/base/core/java/android/view/View.java
e81f80ad9416949758f1471246c2a4f4bcf5d93e 15-Oct-2013 Adam Lesinski <adamlesinski@google.com> am 04e2a47a: am 461f06f4: am 53a5e317: Merge "Wrap measurement optimization in targetSdk check" into klp-dev

* commit '04e2a47ab72038672647a9994f19e1254c90413a':
Wrap measurement optimization in targetSdk check
cf18b47ed44157e7aadc55fe8c4796df13e1b86f 14-Oct-2013 Adam Lesinski <adamlesinski@google.com> Wrap measurement optimization in targetSdk check

A measurement optimization has exposed some apps that are relying
on incidental layout requests to have themselves update. With the
optimization enabled, these apps break.

Apps targetted at older versions of Android should not
break due to this optimization.

bug:11192311
Change-Id: Id5fc7f83ec2cb1541d3d0d16f951cd57c0afaccd
/frameworks/base/core/java/android/view/View.java
37c4687190410bbd0bd417a8a29ccb8c1d737b85 14-Oct-2013 Chris Craik <ccraik@google.com> am e0db6fc6: am 8d56f667: am 709129ba: Merge "Document special case in hasOverlappingRendering" into klp-dev

* commit 'e0db6fc6847f0404b704c179d4795b27d9025693':
Document special case in hasOverlappingRendering
c09127a7c3282326cacabcd4ffd32c22306bc782 11-Oct-2013 Chris Craik <ccraik@google.com> Document special case in hasOverlappingRendering

bug:11121809

Change-Id: I074ac47aa510bd2362cfda7dffc73930f07e925c
/frameworks/base/core/java/android/view/View.java
b44c4439ad237913de03908cd0751b285b18f787 09-Oct-2013 Alan Viverette <alanv@google.com> am 606fadc8: am 6d1e4522: am d9f53c02: Merge "Clear accessibility focus when view becomes invisible" into klp-dev

* commit '606fadc84a96b7e0a1f0b95bc03c9430b32ad22f':
Clear accessibility focus when view becomes invisible
d9f53c02766d9a9c00f303d8047cacef4e9673cf 09-Oct-2013 Alan Viverette <alanv@google.com> Merge "Clear accessibility focus when view becomes invisible" into klp-dev
4d873d87cc813b899709742217b39c3adfbbfbf2 09-Oct-2013 John Spurlock <jspurlock@google.com> am bba545e7: am 4f241a29: am 92128144: Merge "Introduce View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY." into klp-dev

* commit 'bba545e73ca63be2e275b6e982251ab930d0a644':
Introduce View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY.
a12dccc0981cbde289c678c54aa57d9b86edfb1f 09-Oct-2013 John Spurlock <jspurlock@google.com> Introduce View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY.

The existing View.SYSTEM_UI_FLAG_IMMERSIVE flag will be somewhat
redefined. Swiping will clear the flags, revealing the normal bars.

The new View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY flag will enable
hideybars - the auto-hiding, semi-transparent bar mode.

Bug:11062108
Change-Id: Ibf8be9072f0075953baa4580cd976e7562d44455
/frameworks/base/core/java/android/view/View.java
e94ec3e79aa787d1201d91eb58961f5006689d3c 09-Oct-2013 Alan Viverette <alanv@google.com> am 57cc6283: am 76597552: am 3a407fad: Merge "Fix HIDE_DESCENDANTS accessibility importance mode" into klp-dev

* commit '57cc628355e434d4b313e9b60e1a68a0643fda04':
Fix HIDE_DESCENDANTS accessibility importance mode
2e84a9946750fbc0e411a4ea1f4ef5b565ce20bf 08-Oct-2013 Alan Viverette <alanv@google.com> Clear accessibility focus when view becomes invisible

BUG: 10912882
Change-Id: I8c7c6906fcf7688ecdfac6649464f088dd812c41
/frameworks/base/core/java/android/view/View.java
24cafbc56cacfad42af375e7545de45ff500cdbe 08-Oct-2013 Alan Viverette <alanv@google.com> Fix HIDE_DESCENDANTS accessibility importance mode

Ensures accessibility framework is notified when subtree visibility
changes as a result of hiding descendants. Fixes collision between
HAS_TRANSIENT_STATE flag and IMPORTANT_FOR_ACCESSIBILITY mask.

BUG: 11087525
Change-Id: I92dba27350970a09e76b5a878c7604ea06cae197
/frameworks/base/core/java/android/view/View.java
13431ad822a6479c8512ea4a6ab799e2f5b46d97 07-Oct-2013 John Spurlock <jspurlock@google.com> am 4818db0f: am b88ede00: am d5102f19: Merge "Transparent system ui flags -> Translucent WM flags." into klp-dev

* commit '4818db0fc5dec465a2cdb76c0faff4750a3a3fff':
Transparent system ui flags -> Translucent WM flags.
bd95740648372449a4d5c164d7050eee352d4c24 03-Oct-2013 John Spurlock <jspurlock@google.com> Transparent system ui flags -> Translucent WM flags.

Migrate View.SYSTEM_UI_FLAG_TRANSPARENT_(STATUS/NAVIGATION) to
WindowManager.LayoutParams.FLAG_TRANSLUCENT_(STATUS|NAVIGATION).

Add associated public attrs for both new window flags:
windowTranslucentStatus
windowTranslucentNavigation

Introduce convenient four new themes that set translucent decor:
Theme.Holo.NoActionBar.TranslucentDecor
Theme.Holo.Light.NoActionBar.TranslucentDecor
Theme.DeviceDefault.NoActionBar.TranslucentDecor
Theme.DeviceDefault.Light.NoActionBar.TranslucentDecor

Update PhoneWindowManager mechanism to plumb these values back to
SystemUI to drive bar mode state.

The new translucent flags come from the top fullscreen window, not
the focused window, so translucency does not change when opening
dialogs.

Imply some window-level system-ui visibility if one or both of these
new flags are present, specifically:
FLAG_TRANSLUCENT_STATUS implies LAYOUT_STABLE, LAYOUT_FULLSCREEN
FLAG_TRANSLUCENT_NAVIGATION implies LAYOUT STABLE, LAYOUT_HIDE_NAV

Rename all associated variable & resource names to use the term
translucent instead of transparent. (Retain the term semi-transparent
for the transient bar style).

Recents activity allowed to inherit translucent decor state via the
new PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR. Compensating changes
to use the full screen area more appropriately.

Update keyguard to use new WM flags.

Update docs and various api artifacts.

Sanity-check fixes:
- Toasts and alerts given stable layout.
- Suppress nu-gradient when in transient (hidey) mode.
- New translucent flags use top-fullscreen window, dialogs don't clear.

Bug:10674960
Bug:11062108
Bug:10987178
Bug:10786445
Bug:10781433
Change-Id: If667a55bea4cf5e008549524b9899197fab55ebe
/frameworks/base/core/java/android/view/View.java
1461e26674d73e9ad7d7896c59c936a2f88af3f4 04-Oct-2013 Alan Viverette <alanv@google.com> resolved conflicts for merge of 92a827b8 to master

Change-Id: Ia262f5c80cdaa391db08f766cee62919a8705e80
23be199171bedb05e81864f8941492af066fa667 03-Oct-2013 Alan Viverette <alanv@google.com> Add importantForAccessibility mode to block entire hierarchy

Since older versions of the platform will crash if the mode is
set to 3, this CL adds an extra bit and uses 4 as the mode. This
will also cleanly default the mode to AUTO on unsupported
platforms.

BUG: 11031947
Change-Id: I48035abbf35523d65cead6f27be10f8087973ceb
/frameworks/base/core/java/android/view/View.java
67ee6fe019e551f477624fca59d0966d7e0e055e 02-Oct-2013 Alan Viverette <alanv@google.com> am 0adaf034: am 6320305a: am f079a6d0: Merge "Set live region property on AccessibilityNodeInfo" into klp-dev

* commit '0adaf034886d9e3dd0ed81aa192f07fcff49c1a5':
Set live region property on AccessibilityNodeInfo
d09d5f9e4cb9cd03c47eab0f1e9256dc1e2a7527 02-Oct-2013 Jeff Brown <jeffbrown@google.com> am 10478213: am 5e65adaf: Merge "Reset insets when inset computer is removed." into klp-dev

* commit '10478213759a486524000c4164e4176437afa2d7':
Reset insets when inset computer is removed.
f079a6d07f64045526a094077a1e9f4ceb40da76 01-Oct-2013 Alan Viverette <alanv@google.com> Merge "Set live region property on AccessibilityNodeInfo" into klp-dev
f877ed96b78a48503d3a302d61cab55e445160b8 01-Oct-2013 Alan Viverette <alanv@google.com> Set live region property on AccessibilityNodeInfo

BUG: 11012854
Change-Id: I2c88468be597eb3694fe3d0eb2f2d86981ea9829
/frameworks/base/core/java/android/view/View.java
2e05ec3235150a93a3459cd260be45f02dadbe84 01-Oct-2013 Jeff Brown <jeffbrown@google.com> Reset insets when inset computer is removed.

When an inset computer is registered with the view tree observer,
we report content insets to the window manager. When an inset computer
is subsequently unregistered, we must take care to clear these insets.

This patch remembers whether the previously computed insets were
non-empty so that it can force insets to be reset when needed.

Bug: 10840662
Change-Id: I4cce5ba64cc5234b98363b025ac4bb42e64349f1
/frameworks/base/core/java/android/view/View.java
e3fb7eca81d078a993901daa23a6523d33875e66 30-Sep-2013 Romain Guy <romainguy@google.com> am 33ed738d: Expose View.executeHardwareAction() Bug #10911502

* commit '33ed738d49dce3af5851d0566739e9ed593057a5':
Expose View.executeHardwareAction() Bug #10911502
33ed738d49dce3af5851d0566739e9ed593057a5 26-Sep-2013 Romain Guy <romainguy@google.com> Expose View.executeHardwareAction()
Bug #10911502

Views creating hardware resources need a way to safely interact
with the hardware. This new method invokes HardwareRenderer.safelyRun()
which executes a Runnable after making sure the hardawre rendering
context is in a valid state.

With the OpenGL backend, executeHardwareAction() tries to call
eglMakeCurrent() if needed. This method is not guaranteed to
work.

Change-Id: I38ec65132eeba85605cffb1a6de12b7a0184e213
/frameworks/base/core/java/android/view/View.java
7adbecf0004a7aa0ad9d221220dd5db4cb1f1079 18-Sep-2013 Chet Haase <chet@google.com> am c8bcf4f2: am d73d34c8: Merge "Use transition-only alpha property for fading transitions" into klp-dev

* commit 'c8bcf4f21ac81ab8e36470d50c3a238c7627b970':
Use transition-only alpha property for fading transitions
c46181a963be736186ae29101625a05b5c1f0ba8 16-Sep-2013 Chet Haase <chet@google.com> Use transition-only alpha property for fading transitions

The original bug is fixed already, but showed up some problems in
the underlying fade-transition implementation. This fix addresses
those and other issues. The biggest part of the change should help
transition robustness in general, as it removes the dependency on the
public 'alpha' property of views and uses, instead, a new hidden property
on views called 'transitionAlpha'. This is a value which is normally
opaque (1), but which can be used by transitions (only) to animate the
translucency of views without disturbing the actual 'alpha' value which
might be manipulated outside of transitions. This should make transitions
much more robust in general.

In implementing and testing this overall fix, I noticed a couple of things
about transitions that were simply wrong (such as starting fades from the
wrong start value, and incorrectly avoiding transitions on some views
that didn't happen to have ids), and those are fixed in this CL as well.

Issue #10726905 ActionBar weirdness in People app
Issue #10727937 Menu items in gallery appear in faded color after selecting an image/album by long press

Change-Id: If1618446db10c1bfcff4761449241de4f559afc1
/frameworks/base/core/java/android/view/View.java
bd51158d61ef10cea65a31d5795887444d2d9cbf 13-Sep-2013 Kenny Root <kroot@google.com> resolved conflicts for merge of aca95ca0 to master

Change-Id: I91adf923288ca724a8040ecf887e28e42ad7e259
77e9a28e2faa36f127231b842476d47f9823a83a 13-Sep-2013 Alan Viverette <alanv@google.com> Add live region politeness to View, AccessibilityNodeInfo

Alters the content change API to contain a bit mask of types of
changes represented by the event. Live regions send CONTENT_CHANGED
events immediately. Removes unused APIs for EXPANDABLE/EXPANDED.

BUG: 10527284
Change-Id: I21523e85e47df23706976dc0a8bf615f83072c04
/frameworks/base/core/java/android/view/View.java
f3142095fda28cbe2355aaad897b68e94b022f97 13-Sep-2013 Jeff Brown <jeffbrown@google.com> am 3cb86769: am 26267660: Merge "Make View onKeyUp symmetric with onKeyDown." into klp-dev

* commit '3cb86769fd04891f01e2ea8fcf54edb9ecb97922':
Make View onKeyUp symmetric with onKeyDown.
311913d09eb6305c968daf8a24f6c27ad6d9d653 13-Sep-2013 Tor Norbye <tnorbye@google.com> Removing trailing comma in initializer; fails on some javac versions

Change-Id: Ie651ca8ee625a881f739dc3ede5190adb9eb9860
/frameworks/base/core/java/android/view/View.java
26267660957a4428a66d8f142e2bdfa6ce6fe12f 12-Sep-2013 Jeff Brown <jeffbrown@google.com> Merge "Make View onKeyUp symmetric with onKeyDown." into klp-dev
fb07349c073ab6aa3c8a24435a68e3236c8ede23 12-Sep-2013 Jeff Brown <jeffbrown@google.com> Make View onKeyUp symmetric with onKeyDown.

Properly use KeyEvent.isConfirmKey() in both methods.

Change-Id: Id87158f2163f75af20350dc445df6a59f7190752
/frameworks/base/core/java/android/view/View.java
d9273d6f289d9b55da3fd0db2f659fdfb48106a8 31-May-2013 Tor Norbye <tnorbye@google.com> Add typedefs and nullness annotations.

This changeset adds in typedef annotations (custom annotations
marked with @IntDef) for various int parameters and return values
in the API. It also adds nullness annotations for cases where the
documentation explicitly mentioned null policy, or where it was
blindingly obvious from the context. Also fixed some typos in the
documentation.

Change-Id: Ica27c01368895818e26237544edd8483007155bb
/frameworks/base/core/java/android/view/View.java
5b73e365079198e24f0872c9915446629ca6205f 10-Sep-2013 Alan Viverette <alanv@google.com> Merge "Add View constructor that supplies a default style resource"
617feb99a06e7ffb3894e86a286bf30e085f321a 10-Sep-2013 Alan Viverette <alanv@google.com> Add View constructor that supplies a default style resource

Also updates the constructor of every class that extends View.

BUG: 10676369
Change-Id: Ifaf27bf82028d180afa4931c0e906df88d858ac3
/frameworks/base/core/java/android/view/View.java
d94b1e11b94b599a70e4a8cf738a9f62b7d67e36 09-Sep-2013 Chet Haase <chet@google.com> Merge "Show view overlays in hierarchyviewer" into klp-dev
183e2a351daa8071be69eacb514b9405193a7a35 11-Jun-2013 Chet Haase <chet@google.com> Propagate pivot values of 0 to native layer

Logic in pivotXY setters noops when the new value equals
the previous value. However, the initial value is "0" even
though we actually use a value of the view's midpoint by
default. If an app sets a new value of 0, we don't send it
down to the native layer because it's the same as the initial
value, even though we're actually using a midpoint value instead.
This causes a conflict between the matrix used for invalidations
(which use the actual values the app set) and the matrix used
for rendering (which uses the default midpoint values).

The fix is to make sure we send down the initial value, even when it
equals the default value, by checking to see whether this is the
first time we're setting the pivot.

Issue #9337635 Clipping and bad rendering of view corners when y pivot is set

Change-Id: I4aa20c4a3c9a866ca17df3e067232b832d0ef504
/frameworks/base/core/java/android/view/View.java
68bf5bd3858684dbaa79f265943d7adaba982e85 06-Sep-2013 Chet Haase <chet@google.com> Show view overlays in hierarchyviewer

ViewOverlays can hold Drawables and Views. But none of these things
show up in hierarchyviewer, so what you see on the screen is not necessarily
what you see in hierarchyviewer.

This CL adds logic to ViewDebug to enable these views/drawables to be displayed.

Issue #8943158 plumb overlay views through into hierarchy viewer

Change-Id: I020e85530a68390b37986269fa3e9e7e43725bab
/frameworks/base/core/java/android/view/View.java
a73c3a54886c302cc72e469d27603ef6bb92a6a1 05-Sep-2013 Adam Powell <adamp@google.com> Merge "Add View#cancelPendingInputEvents API" into klp-dev
e8222dddaf2e3da14380101e818d4254899e0c0d 05-Sep-2013 Chet Haase <chet@google.com> Change build version from KEY_LIME_PIE to KITKAT

Issue #10631619 Change build version to KitKat

Change-Id: I6ad13f6169ad74204078d36929479998b498ad8b
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
d82c8ac4db7091d2e976af4c89a1734465d20cd2 26-Aug-2013 Chet Haase <chet@google.com> Transition API changes from API council recommendations

Issue #10460684 KLP API Review: android.view.transition and android.animation
Issue #10570740 Transitions: inflate transition targets from xml

Change-Id: I7a3f6d3aece2fcafc5efd555d033f79e86635c98
/frameworks/base/core/java/android/view/View.java
5f25f7c37390e407b5c3d8545c5d6e0ef03b753a 04-Sep-2013 Chet Haase <chet@google.com> Merge "Perform layout and invalidation after bringChildToFront()" into klp-dev
cb96db8d144a01aa41ec396247c548d8aa496131 04-Sep-2013 Chet Haase <chet@google.com> Perform layout and invalidation after bringChildToFront()

Previously, calls to ViewGroup.bringChildToFront() or View.bringToFront()
would need to be followed by calls to requestLayout() and invalidate()
to force the container to redraw with the new child ordering. This
change calls requestLayout() and invalidate() automatically.

Issue #8667065 bringtoTop does not work

Change-Id: Id37ce7a64dead82119e49f7a1b28385cf0d1f20d
/frameworks/base/core/java/android/view/View.java
3e8105e212e65005c0ef0ecc345b47eb0bf129bd 03-Sep-2013 Romain Guy <romainguy@google.com> Merge "Update Bitmap.Config.ARGB_4444 documentation Bug #10510122" into klp-dev
25ba1c86945a441428194d9ebcabbf31be75a45a 03-Sep-2013 Romain Guy <romainguy@google.com> Update Bitmap.Config.ARGB_4444 documentation
Bug #10510122

ARGB_4444 is deprecated and always replaced with ARGB_8888.

Change-Id: I0da96216af701a7df00ad35913066fbfa997d790
/frameworks/base/core/java/android/view/View.java
b432ca60c6c7af42989db28594137f6fe1e888b4 29-Aug-2013 Alan Viverette <alanv@google.com> Merge "Fix documentation regarding defStyle in View constructor" into klp-dev
ab8fe692961bb3bf71169fd7a43aff4de837ab26 29-Aug-2013 John Spurlock <jspurlock@google.com> Merge "Rename hideybars constant to SYSTEM_UI_FLAG_IMMERSIVE." into klp-dev
fb410d219fae2e07a6be3c7365bedc3e11c96f6c 29-Aug-2013 Alan Viverette <alanv@google.com> Fix documentation regarding defStyle in View constructor

BUG: 8912583
Change-Id: Ib8b1f8baa4ee98aae0e66edc547ab014b2401415
/frameworks/base/core/java/android/view/View.java
3d1b3cb9d9ea206d4244ed369224faf4d859973e 28-Aug-2013 Alan Viverette <alanv@google.com> Merge "Add documentation to onTouchEvent for accessibility" into klp-dev
e47193d8e1795f334bcb29819a571f08bb742c68 27-Aug-2013 John Spurlock <jspurlock@google.com> Rename hideybars constant to SYSTEM_UI_FLAG_IMMERSIVE.

And add more colour to the docs.

Bug:10460791
Change-Id: I703d927101bb034ba6dd061e6afd3e1946440fe5
/frameworks/base/core/java/android/view/View.java
3c6e8f43b43b0f493d5a589adb2cf60f09a6da4b 27-Aug-2013 Alan Viverette <alanv@google.com> Add documentation to onTouchEvent for accessibility

BUG: 10429918
Change-Id: I2e2826601ba1560186e19f15928de41674a72505
/frameworks/base/core/java/android/view/View.java
6820751c0ad396328da39adfb3756ffc838c0cc7 22-Aug-2013 Alan Viverette <alanv@google.com> Use transient state to preserve accessibility focus in ListView

Removes several stray calls to clearAccessibilityFocus() that were
preventing temporarily detached views from retaining accessibility
focus.

BUG: 10089858
Change-Id: Ieb88a6cd14fe1069ebeeb78bc0edba7a10131f5b
/frameworks/base/core/java/android/view/View.java
5b9145bf990a9bbf4fdef1739e61ff8c70ec868f 20-Aug-2013 John Spurlock <jspurlock@google.com> Improve transient bar transitions.

1. If app clears transient flag w/ a gesture, the touch-outside
listener would always win, causing an unsightly hide + immediate
reshow. Instead, give the app some time to clear the flag, then
perform a smooth transition in place.

2. When the transient bars are hidden, we do not know ahead of time
which background will be used on reshow (if transient bars are
revealed, the background is semi-transparent, if transient bars
are cleared, the background is opaque). Window manager is responsible
for showing windows, but sysui is responsible for setting the view
background. Therefore, we need some level of coordination between
the two in this case. Introduce two new non-public sysui flags
that represent the window manager's request to reshow the hidden
bars, but do not reshow until sysui acknowledges (by clearing the flag).
This gives sysui whatever time is necessary to prepare itself for
reshow, avoiding unsightly blip from opaque -> transparent during
the enter animation.

3. When both system bars are hidden, any low-profile changes are
moot. Avoid unsightly low-profile animations during bar reshow
by suppressing the flag in this case.

4. Improve transient bar home -> launcher transition by cancelling
the -> opaque animation. This also fixes a bug where hitting
home from the transient bar would leave you with a semi-transparent
bar in a non-transient state.

Bug:10284800
Change-Id: I238210561d8d5f70c1a517283b986c9105a1ec75
/frameworks/base/core/java/android/view/View.java
77b2a86144365ce3dee557b5c444075c0e0a4033 17-Aug-2013 Alan Viverette <alanv@google.com> Merge "Fix padding resolution" into klp-dev
46bfc4811094e5b1e3196246e457d4c6b58332ec 17-Aug-2013 Romain Guy <romainguy@google.com> Fix hardware layers lifecycle
Bug #10075732

Hardware layers could survive across EGL terminate events.

Change-Id: Ie8565d55cb29fe6625fa1584d695edfecd37ab5e
/frameworks/base/core/java/android/view/View.java
7b1a6f76de4470f6ad7ca7ec49cde50b1cf962ad 17-Aug-2013 Alan Viverette <alanv@google.com> Fix padding resolution

BUG: 10361243
Change-Id: I61b03c08b45ca9c921bf787274bdbb3f174bbc7e
/frameworks/base/core/java/android/view/View.java
70e907f51f75bf8d481e11e0d6411e2974b83b06 15-Aug-2013 Alan Viverette <alanv@google.com> Merge "Prevent refocus after entering touch mode" into klp-dev
76e696f6d288babc20fcb1eb7e1d6e720e651924 15-Aug-2013 Alan Viverette <alanv@google.com> Merge "Add motion event forwarding hidden APIs to View" into klp-dev
6fb3b9eb28fad2447d8231356ee557b428ac55e5 14-Aug-2013 Alan Viverette <alanv@google.com> Add motion event forwarding hidden APIs to View

Change-Id: Ia7ab5496f8064c96b34912b5f5e9af6fd0978b34
/frameworks/base/core/java/android/view/View.java
973f3b4ebf79c8ce9233e2320d13c2b92d420f93 14-Aug-2013 Alan Viverette <alanv@google.com> Prevent refocus after entering touch mode

BUG: 10210009
Change-Id: I9a5d7016728cc7d1fb1c759708b6df41c81865bb
/frameworks/base/core/java/android/view/View.java
7facd7f6f1e81bbf1847296163cdbd1e8ec08080 13-Aug-2013 John Spurlock <jspurlock@google.com> Sysui flag-related doc fixes.

Add new flags to existing flag listings, fix a broken @link, and
tweak wording.

Change-Id: Iebc4f5fc1c6fc3f8685c6252f88d8044fe08b79d
/frameworks/base/core/java/android/view/View.java
2632b5d0d2c307f28bd3416ca6414d6cc1e2ffdc 08-Aug-2013 Chet Haase <chet@google.com> Reduce amount of invalidation when old-style animations are running

Previously, old animations (view.animation.*) would cause invalidations on
both the area of the child view and then the entire parent area. There's no
reason for the second invalidation; only the child area need be redrawn.

Issue #10229470 Old animation code in View.draw() may be invalidating too much

Change-Id: I4d0d16321e20b2f34dc579eacf5d3841aed33d6d
/frameworks/base/core/java/android/view/View.java
be11c364e77a9d805cde9bfe5530cbc7b2afd3aa 09-Aug-2013 Alan Viverette <alanv@google.com> Merge "Fix padding adjustment for scrollbars in View, FastScroller" into klp-dev
26bb253b4001b7d4d876656b0c6bd11b6aab4131 09-Aug-2013 Alan Viverette <alanv@google.com> Fix padding adjustment for scrollbars in View, FastScroller

BUG: 10224791,10248282
Change-Id: Ia89d2cbea163b7cad567ea37161552c1cfd66045
/frameworks/base/core/java/android/view/View.java
4155e2e175d73bb98b13ecb2fbbe6a6dffe28fe5 09-Aug-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #10210182 CTS: android.widget.cts.TextViewTest#testDrawableResolution is failing on KLP

This issue has been actually revealed by a fix for bug #7034321 (Need Drawable RTL support)
where I identified an issue with Drawables resolution in TextView (was missing a call to
resetResolvedDrawables() and resolveDrawables()).

- add missing resetResolvedDrawables() and resolveDrawables() in TextView.setRelativeDrawablesIfNeeded()
- fix View.resolveDrawables():

this was a bit trycky as View.resolveDrawables() was wrongly supposing that the layout direction was
resolved and it could access View.getLayoutDirection() and could position the PFLAG2_DRAWABLE_RESOLVED
bit.

Dont forget that resolution of RTL properties (layoutDirection, Drawables ...) is happening in
View.measure() but in our case (TexView constructor) we still need to resolve the Drawables.

So now, be sure that we cannot resolve the Drawable if layout direction has not being resolved and the
raw layout direction is LAYOUT_DIRECTION_INHERIT.

But we can also "cheat" if the raw layout direction is LAYOUT_DIRECTION_LTR or LAYOUT_DIRECTION_RTL
or LAYOUT_DIRECTION_LOCALE as its resolution will give the same value :-)

Change-Id: I7a242d918697e1e1c2febf229e8edf1866b855be
/frameworks/base/core/java/android/view/View.java
e1f366faf8691f0dacde1dad35b28fcc37120776 05-Aug-2013 John Spurlock <jspurlock@google.com> Introduce new transparent bars sysui flags.

Two new public sysui flags for views to request transparent
bars:
View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS
View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION

This first change simply introduces the flags at the framework
level, and makes the requisite layout tweaks to WM.

As part of this change, expunge the term "hideybars" from the
codebase. The flag to declare support for transient bars is called:
View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT

Final visuals/transitions between opaque/transparent bars will be
done as a subsequent change. Right now the transparent style is
identical to the transient bars.

Change-Id: I5ead9c5e7b77f212df5b2a5f6e770596cd2226f3
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
deababcd53056bbe5cd586454e9cf50e03ab1b0f 26-Jul-2013 Chet Haase <chet@google.com> Fix lazy measure logic to not use obsolete values

Issue #10022821 Lazy measure broken

Change-Id: I618ed5e80291304b5430c853d51e70e09f057e4c
/frameworks/base/core/java/android/view/View.java
ed7821a60ca80197384b2a4678b6c4ea307457e6 25-Jul-2013 Alan Viverette <alanv@google.com> Use clearFocus() when entering touch mode

Calling unFocus() leaves the view hierarchy in an inconsistent
state. This is okay in ViewGroup, where the state is manually
updated, but causes issues in ViewRootImpl.

BUG: 9983358
Change-Id: Id63e62962d895e6bd4f816f202dcf77254ceab4e
/frameworks/base/core/java/android/view/View.java
25b0c3096131e532e57f5aac48769430dca42c75 10-Jul-2013 Michael Wright <michaelwr@google.com> Debounce touch navigation taps and button presses

Bug: 8990644
Change-Id: Ib4ef2e2ab699a109c12614c1d64e4b7e63b514b0
/frameworks/base/core/java/android/view/View.java
7a46dde1ae56a85fcb5cdac91173424b6355bf3c 17-Jul-2013 Chet Haase <chet@google.com> Changed name of recent hasLayout() method to isLaidOut()

This new method on view reflects whether the view has been laid out
at least once since it was attached. hasLayout() seems too vague for that
meaning; every View that has a parent has a layout (since we use container,
parent, and layout interchangeably). The new version of the method
is closer to the actual meaning.

Change-Id: I519745739b6a6317faeb077aa61f994025cf81f3
/frameworks/base/core/java/android/view/View.java
93c567cddc9354b33f66cb62d514386ac2e052b0 17-Jul-2013 Romain Guy <romainguy@google.com> Skip unnecessary measurements when possible

This change introduces a new measure cache to View, to remember
the measured dimensions for previous pairs of measure specs. The
measure cache is cleared whenever a View requests layout.

Unfortunately some Views rely on measure being always called when
layout is invoked. To work around this problem, we need to remember
when we hit the measure cache to force a call to measure just prior
to calling onLayout(). This does not completely removes all measure
calls but enough to optimize a number of layouts.

Change-Id: Ie085fbcf186e9d7505e1127e0786a12968ebc344
/frameworks/base/core/java/android/view/View.java
fe4fb365baf73da6b34150eec97b5e2ee58905f4 16-Jul-2013 John Spurlock <jspurlock@google.com> Merge "Un@hide View.PRESSED_STATE_SET."
0a55c94730d1d9ff836330979533c2e6736d6116 15-Jul-2013 John Spurlock <jspurlock@google.com> Un@hide View.PRESSED_STATE_SET.

Looks like an oversight. The other state sets are public, and we
reference this one in the public docs.

Change-Id: I1c2d8bec3cb277ebfb55ccaacefab0cb38703177
/frameworks/base/core/java/android/view/View.java
6098c5d3555860f272d8ddbd353a42f4c8474e1c 17-Jun-2013 John Spurlock <jspurlock@google.com> Docfixes in IBinder, Context, View, and Intent.

Fix links in @throws clauses, typos, redundant "returns"
and use @code for true + false in returns.

Change-Id: Ic3c4c75d6061732d997a386dc3232475c992c188
/frameworks/base/core/java/android/view/View.java
258f8de22c59f484ce97ae5e52b90c443c28ac39 12-Jul-2013 Adam Powell <adamp@google.com> Tweak error fallback behavior for view direction resolution

If the required ViewParent methods aren't present for resolving text
direction or alignment, mark them resolved with default results and
skip further resolution steps.

Change-Id: I0ea6b0ce968cc24ffed77a2d1e66dfafbec49f9c
/frameworks/base/core/java/android/view/View.java
504a10f2f5c7343c863d31490700620109deb7ae 12-Jul-2013 Adam Powell <adamp@google.com> Un-hide all ViewParent methods

Make it possible for code outside the framework to implement the
ViewParent interface.

Change-Id: Ic1b4eb15a4b3da1d16c92b59e039d89861d893e4
/frameworks/base/core/java/android/view/View.java
21f4230274f858bf156441374f0bae84e7334d7a 29-Jun-2013 Romain Guy <romainguy@google.com> Make sure textviews draw in layers

Change-Id: I993a430880ab66739aed1fa7ae625290b2349835
/frameworks/base/core/java/android/view/View.java
3d15a2b8f43f5b184f8fdcd3661711111bcf4674 26-Jun-2013 Alan Viverette <alanv@google.com> Minor ListView clean up. Exposes View.pointInView() as hidden API.

Change-Id: Ia628f8438fac5af2471efd8558c8876fae3dafb0
/frameworks/base/core/java/android/view/View.java
e93482f5eac3df581d57e64c2a771a96aa868585 17-Jun-2013 Romain Guy <romainguy@google.com> Cancel layer update when a layer is about to be destroyed
Bug #9310706

Change-Id: I73eea6314c326f15a979617e3a05b525935f0d3f
/frameworks/base/core/java/android/view/View.java
6410c0aaf13c9aec606b90ee942f2ac2d98b1609 17-Jun-2013 Romain Guy <romainguy@google.com> Lazily allocate seldom-used data structures

Change-Id: I8d6b9d2d821168329206c01ed6539a1466af272f
/frameworks/base/core/java/android/view/View.java
405436021da156fbe3c5d4de48bdefa564cf7fc0 13-Jun-2013 Romain Guy <romainguy@google.com> Restore buildLayer()'s old behavior; it's synchronous again
Bug #9193833

Change-Id: I4ee07e65c0a8967f0b55da030ecaad6dfc46136f
/frameworks/base/core/java/android/view/View.java
2be7ec671b2aa60d4596cea559fe82616f2b3ada 11-Jun-2013 Adam Powell <adamp@google.com> Add View methods isAttachedToWindow and hasLayout

isAttachedToWindow does what it says on the label and provides a
standard, public API for checking a view's attachment state. This
removes the need for tracking this out of band in response to
onAttachedToWindow/onDetachedFromWindow in custom view
implementations.

hasLayout returns true whenever the view has been through at least one
call to layout() since the last time it was attached to or detached
from a window. This allows for standard checks in code that needs to
behave differently if first layout has not completed yet, such as
whether or not to no-op an animation in order to set up initial state.

Change-Id: I8dab70dcd5a22a32e260ed50987ccdaa4100072b
/frameworks/base/core/java/android/view/View.java
00dbe81fea7be57ee2ff8a97844faf1bc15a427f 10-Jun-2013 Svetoslav <svetoslavganov@google.com> Notification for changed subtree in accessibility mode not fired properly.

We fire notifications that the a view subtree changed for accessibility.
In some cases the notifications were fired if accessibility is not
enabled. This is now fixed. Also the runnable for making the recurring
subtree change was not dequeued if it was pending but we received a
request which we decided to run immediately.

bug:9337912

Change-Id: I27401b3d11f81c653e8761a704ee530263b08c3a
/frameworks/base/core/java/android/view/View.java
494cb689d09a82025b9d892241e62aa149ce3239 07-Jun-2013 Svetoslav <svetoslavganov@google.com> Merge "Optimizing AccessibilityNodeInfo caching."
f69913056b8c6000ff0306573a97971702e8d35a 06-Jun-2013 Romain Guy <romainguy@google.com> Remove unnecessary allocations

Change-Id: Ia561a0a312ca2737d5afa742184f5392bb2f29a3
/frameworks/base/core/java/android/view/View.java
6254f4806dd3db53b7380e77fbb183065685573e 05-Jun-2013 Svetoslav <svetoslavganov@google.com> Optimizing AccessibilityNodeInfo caching.

1. Before we were firing an accessibility event from the common
predecessor of views with accessibility related state changes
every X amount of time. These events designate that the tree
rooted at the source is invalid and should not be cached.
However, some of the state changes do not affect the view tree
structure and we can just refresh the node instead of evicting
and recaching nodes infos for views that did not change. Hence,
we need a way to distinguish between a subtree changed over a
node changed.

Adding a new event type will not work since if say two siblings
have local changes and their predecessor fires a window state
change event, the client will drop the subtree rooted at the
parent including the two views with changes. Subsequent, more
specialized events emitted from the two changed siblings will
be useless since the parent which did not changed is already
evicted from the cache. Conversely, if the specialized events
are fired from the two siblings with local changes and they
are refreshed in the cache the subsequent window state change
event from the common predecessor will force the refreshed
nodes to be evicted.

Hence, to enable distinction between node being changed and
a subtree baing changed while not changing existing behavior,
we will fire only window content change event with an additional
argument specifying what changed - node or a subtree for now.
Also if the changes are local to a view we fire the window
content changed event from the view. So, the two siblings will
fire such an event independently and the client will know that
these are local changes and can just refresh the node. If the
changes are structural, then we fire the window state change
event from the common predecessor.

2. Added the input type of a text view as one of the properties
reported by an AccessibilityNodeInfo. It is nice to prompt the
user what input is expected.

3. Added a bundle for optional information to AccessiiblityNodeInfo.
For example, it will be used for putting web specific properties
that do not map cleanly to Android specific ones in WebView.

4. AccessibilityInteractionController was not taking into account
whether the current accessibility focused node is shown before
returing it. Hence, a disconnected node would be returned and
caching it puts our cahche in an inconsistent state.

Change-Id: I8ed19cfb4a70bdd7597c3f105487f1651cffd9e0
/frameworks/base/core/java/android/view/View.java
450dc7554de90026a6dd2a1ec7108c1423fce18e 05-Jun-2013 Romain Guy <romainguy@google.com> Remove string allocations when creating display lists

Change-Id: Id520db981a3988cb980c8da5dbea8f26ef94989f
/frameworks/base/core/java/android/view/View.java
c00930f4fec3590cb604f32b6c62eeb6ab429e24 30-May-2013 John Spurlock <jspurlock@google.com> am 50ef7ab7: Docfix: remove confusing "disabled" link label.

* commit '50ef7ab70ad02deb9ad3694fb894741d6007564a':
Docfix: remove confusing "disabled" link label.
50ef7ab70ad02deb9ad3694fb894741d6007564a 29-May-2013 John Spurlock <jspurlock@google.com> Docfix: remove confusing "disabled" link label.

Change-Id: I1acb9c8c20b6cda0e6cfb2fc1e450f37e7cd4eeb
/frameworks/base/core/java/android/view/View.java
0ffefdf9fc87670fb31f4ae8c87dd3310399e017 29-May-2013 John Spurlock <jspurlock@google.com> Docfix: remove confusing "disabled" link label.

Change-Id: I96ebc44fe69de60e187f200b5e9d0b5adc478c17
/frameworks/base/core/java/android/view/View.java
be7a7e546f409442c2f6505dd7a0526553fa395c 28-May-2013 John Spurlock <jspurlock@google.com> am ee352cca: Merge "Fix typo in View.java javadocs" into jb-mr2-dev

* commit 'ee352cca1f3beb577dfdf1c18a08242e4f94d01b':
Fix typo in View.java javadocs
0efd4f0215f1df1207b67240d7a52b1da6af43c8 28-May-2013 John Spurlock <jspurlock@google.com> Merge "Fix typo in View.java javadocs"
44b1edd94886d00118d573473cbba5e0b5b651de 28-May-2013 John Spurlock <jspurlock@google.com> Fix typo in View.java javadocs

Change-Id: I85b9b2bd30d1f9d38954c31f24a352930a230ced
/frameworks/base/core/java/android/view/View.java
9643d40395b3ecfbed8b22d8e711c28efcfeeacc 28-May-2013 John Spurlock <jspurlock@google.com> Fix typo in View.java javadocs

Change-Id: I6da88e18fe32c4763c916990f6aa17dda21f5c8f
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
49f2e4098d4823a995d7346be77c130037e8029e 21-May-2013 Romain Guy <romainguy@google.com> Merge "Destroy display lists when running complete memory trims Bug #8833153"
779321fde1c6461884b521c2ce7134468e085ba5 21-May-2013 Romain Guy <romainguy@google.com> Destroy display lists when running complete memory trims
Bug #8833153

Display lists ops might now keep references to GL resources so they
must be destroyed when the EGL context goes away.

Change-Id: I0feb18f5539b345234a58dafa6f0775d7d7460dc
/frameworks/base/core/java/android/view/View.java
f1cfdcee273a2313f7483582332e2afc2cc62c70 21-May-2013 Svetoslav Ganov <svetoslavganov@google.com> am 5315953b: am 78a4630e: Merge "Taking into account data change for AbsListView when prefetching node infos." into jb-mr2-dev

* commit '5315953b86ee7ca29756504535e124b053286623':
Taking into account data change for AbsListView when prefetching node infos.
5315953b86ee7ca29756504535e124b053286623 21-May-2013 Svetoslav Ganov <svetoslavganov@google.com> am 78a4630e: Merge "Taking into account data change for AbsListView when prefetching node infos." into jb-mr2-dev

* commit '78a4630edaa11846b09bdad84bac18a0441c500a':
Taking into account data change for AbsListView when prefetching node infos.
50776863a2a2ed6e4015edc60bacd4f562a907ee 18-May-2013 Svetoslav Ganov <svetoslavganov@google.com> Taking into account data change for AbsListView when prefetching node infos.

We are prefetching accessibility node infos to minimize the number of IPC
calls when an accessibility service introspects the screen. It is however,
possible that the view we are prefetching is a child of an AbsListView whose
adapter changed its data but the AbsListView still did not perform a layout
pass to sync its children with the new adapter state. This may lead to an
exeption when trying to query for the state of a child's position. If the
data of the adapter is changed and the layout pass still not performed,
we return null for the AbsLIstView's children. When the layout pass
completes we already notify the accessibliity layer so it will be able to
refetch the children of the AbsListView.

bug:8433433

Change-Id: I56313c721aef3848b15fad50027d068ba1d291f7
/frameworks/base/core/java/android/view/View.java
aa29a97f6db94f97555d00486dd453e912d970c6 18-May-2013 Romain Guy <romainguy@google.com> Clear display lists when a View becomes GONE/INVISIBLE

We force an invalidate whenever a View becomes VISIBLE so there is
no need to keep the display list object while the view is either
GONE or INVISIBLE. In particular this clears the lists of references
kept by GLES20DisplayList, which helps the GC free large objects
such as Bitmaps.

Change-Id: Ifde0cb40baa1f35e5e6439d3bf8eab3c4c1270f0
/frameworks/base/core/java/android/view/View.java
f27796cbbea78b01467a5a35f20be573815c1b5b 15-May-2013 Chet Haase <chet@google.com> am 944a8725: am bee0495f: Merge "Dirty rect must expand, not contract." into jb-mr2-dev

* commit '944a8725e6e2ccb310c9515c9067f995c034b724':
Dirty rect must expand, not contract.
944a8725e6e2ccb310c9515c9067f995c034b724 15-May-2013 Chet Haase <chet@google.com> am bee0495f: Merge "Dirty rect must expand, not contract." into jb-mr2-dev

* commit 'bee0495fa17b7e385d880f18e510e295c000cfa9':
Dirty rect must expand, not contract.
5495c726121737b5565ea58a28efdd6dbc471891 15-May-2013 Chet Haase <chet@google.com> Dirty rect must expand, not contract.

Different devices have different precision, leading to different pixels
being touched during rendering operations. We need to ensure that the
dirty rect we draw with (and which gets erased on the following frame)
encompasses all possible pixels instead of some ideal rounded rectangle.

The bug from this code led to dropped-pixels artifacts on some devices,
where we'd scale a view, drawing it into some pixels, then invalidate
that same area on the next frame, but the invalidation rectangle didn't
cover the same pixels as the device drew into.

The fix is to floor() the left/top pixels and ceil() the right/bottom
pixels of the transformed invalidation rectangle.

Issue #8971348 dropped pixel artifacts during some scaling operations

Change-Id: Iedb1afd5621dff43bf7a3919bdbd8d2251647fd2
/frameworks/base/core/java/android/view/View.java
06ccc77f4849f9f9fc6ef33cd5ef6cfd00898d00 14-May-2013 Svetoslav <svetoslavganov@google.com> am 80127981: am c0a979ce: Merge "Fixing the accessibility text traversal in extend mode." into jb-mr2-dev

* commit '80127981f85a0be842007596830c1675a9a3665e':
Fixing the accessibility text traversal in extend mode.
80127981f85a0be842007596830c1675a9a3665e 14-May-2013 Svetoslav <svetoslavganov@google.com> am c0a979ce: Merge "Fixing the accessibility text traversal in extend mode." into jb-mr2-dev

* commit 'c0a979ce30cf9b96c0a84d0679aeeef7153a22fa':
Fixing the accessibility text traversal in extend mode.
c0a979ce30cf9b96c0a84d0679aeeef7153a22fa 14-May-2013 Svetoslav <svetoslavganov@google.com> Merge "Fixing the accessibility text traversal in extend mode." into jb-mr2-dev
abad55d860be793b8b9b3e288a74214da89fb368 08-May-2013 Svetoslav <svetoslavganov@google.com> Fixing the accessibility text traversal in extend mode.

We added APIs to allow an accessibility service to extend the
selection while moving the cursor at a given granularity such
as word, character, etc. The problem is that the traversal was
extending only the end of the selection while moving forward
and the start of the selection while moving backward. This leads
to a case in which the user cannot shrink/extend the selection
because for example instead of shrinking the end of the selection
the implementation was extending the start.

Now extending the selection moves only the selection end. This is
the same behavior as text view using a keyboard.

Tests: https://googleplex-android-review.googlesource.com/#/c/307062

bug:8839844

Change-Id: Id6965b102647df909f61301fcc8ec05458dd5881
/frameworks/base/core/java/android/view/View.java
e555d1642120da10d73db0e0807cf1c0f2d02470 11-May-2013 Craig Mautner <cmautner@google.com> am c3797f40: am 4754f401: Merge "Avoid NullPointerException in getHandler()"

* commit 'c3797f40c1a8a8f7ca72816642110221933ff8fd':
Avoid NullPointerException in getHandler()
6f3a6a453ac55ac2974d32ead4615746594382c8 11-May-2013 Svetoslav <svetoslavganov@google.com> am 1e4c6589: am b3c2b21b: Merge "Accessibility should not query for list items when data set changed." into jb-mr2-dev

* commit '1e4c6589941e459871eed6e9d4675b05d977325c':
Accessibility should not query for list items when data set changed.
c3797f40c1a8a8f7ca72816642110221933ff8fd 10-May-2013 Craig Mautner <cmautner@google.com> am 4754f401: Merge "Avoid NullPointerException in getHandler()"

* commit '4754f401a912305e1ceec04b62ad9b9f7d3c2ff6':
Avoid NullPointerException in getHandler()
5b578daac9cea174b15fcd13528270270aadd8a2 08-May-2013 Svetoslav <svetoslavganov@google.com> Accessibility should not query for list items when data set changed.

AbsListView is backed by an adapter. After the adapter data changes
the view sets a flag that its state is dirty and requests a layout.
If an accessibility service asks for the state of a list item at
this point, it may incur an error since the views and the adapter
are not in sync.

Now if an accessibility service queries for a list item when the
data set is changed and the item views are dirty, we pretend the
children do not exist. After the layout happens, we notify the
accessibility layer that the screen content changed so it can
refetch the views if desired (this notification mechanism is
already in place in AbsListView#handleDataChanged()).

bug:8433433

Change-Id: I4287a0ac2ef6bb33f1f988d5ddad973556c305ca
/frameworks/base/core/java/android/view/View.java
ad3e6cb4db99ad33fcfc61f236d37cd83446866d 30-Apr-2013 John Spurlock <jspurlock@google.com> Navigation hideybar via new system ui opt-in flag.

Apps using SYSTEM_UI_FLAG_HIDE_NAVIGATION to hide the nav bar
or SYSTEM_UI_FLAG_FULLSCREEN to hide the status bar can now
opt into hideybars by also using a new public sysui flag:
View.SYSTEM_UI_FLAG_ALLOW_OVERLAY

When opting in, apps accept the fact that bars can be overlayed
over their content, but gain the ability to use the entire gesture
space - something that was not possible before, particularly when
hiding the nav bar.

Swiping from the nav bar edge of the screen will reveal the new hidey
version of the nav bar, if applicable.

Bug: 8682181
Change-Id: I6405bee50e6516667ba6b9a62d4f1e43490b5562
/frameworks/base/core/java/android/view/View.java
7caa1a87fe5d8dd229b296323191eaf9326a6786 06-May-2013 Fabrice Di Meglio <fdimeglio@google.com> am a8549041: am 8c2e3a41: Merge "Optimize RTL properties resolution" into jb-mr2-dev

* commit 'a8549041ccdf38f8ddbdc5fc2bce84d737a89a7e':
Optimize RTL properties resolution
09ecb255a6d37567c8ce43dcd01bfb7ed7488a5d 04-May-2013 Fabrice Di Meglio <fdimeglio@google.com> Optimize RTL properties resolution

- dont bother children about resolving RTL properties if the ViewGroup parent
has not done anything

Change-Id: Iedf8a337097e04e1ab0054d59fc347e06b347ea7
/frameworks/base/core/java/android/view/View.java
c6031ab7c80b9bf8c19f3bced4797bb0bacae3f2 01-Apr-2013 Koji Fukui <koji.fukui@sonymobile.com> Avoid NullPointerException in getHandler()

mAttachInfo may be set to null by other threads while running
getHandler().

This fix assigns mAttachInfo to a local variable. Checking null pointer
and getting a member variable are executed through the local variable.
This local variable is constant. So NullPointerException doesn't occur
even if mAttachInfo is set to null while running getHandler().

Change-Id: I4013dfb7951bd864628868ed58f8c4f5b7cbd1d3
/frameworks/base/core/java/android/view/View.java
0bd6a395d82d9b9cfa847678c65e243ba491df6e 26-Apr-2013 Svetoslav Ganov <svetoslavganov@google.com> am d3859994: am 951ce6c9: Merge "Revert change f449c0c381239dc0f78b0f01ecfb3889e056a597." into jb-mr2-dev

* commit 'd3859994624af39e0f75fd70fe623403f38c408d':
Revert change f449c0c381239dc0f78b0f01ecfb3889e056a597.
951ce6c966311d36328a89784d4c2e6836e9ae87 26-Apr-2013 Svetoslav Ganov <svetoslavganov@google.com> Merge "Revert change f449c0c381239dc0f78b0f01ecfb3889e056a597." into jb-mr2-dev
80246dbdb5d00b4509152d2d0837839f473a44f0 26-Apr-2013 Chris Craik <ccraik@google.com> am 57fc8122: am addc906f: Merge "Force clipping on layers that fail to be allocated" into jb-mr2-dev

* commit '57fc8122eabc08b19a41f308d409795d094856d8':
Force clipping on layers that fail to be allocated
addc906f70ba24aa4b649fff7f98d88b96c8d808 26-Apr-2013 Chris Craik <ccraik@google.com> Merge "Force clipping on layers that fail to be allocated" into jb-mr2-dev
e7a4e636ac0923d72505efd6df8cd130c83fe97c 26-Apr-2013 Alan Viverette <alanv@google.com> Revert change f449c0c381239dc0f78b0f01ecfb3889e056a597.

Previously, onHoverEvent() would return true if a view was hoverable
and consume the event. After the change, it would return the result of
dispatchGenericMotionEventInternal(). As a result, touch exploration
caused multiple hover events to be sent from every view under a given
touch point. This change reverts to the original behavior and fixes
touch exploration.

BUG: 8723842
Change-Id: I0c7362f19c51bf21ed842711a03b7f02613958d2
/frameworks/base/core/java/android/view/View.java
afab4fd00b0e045027442bfc43e9fb1afb56aa04 26-Apr-2013 Svetoslav <svetoslavganov@google.com> am c6eeacd9: am c38bc5ab: Merge "Lockscreen widgets not always announced." into jb-mr2-dev

* commit 'c6eeacd9341c0348c2eb29d1808eb17ea08464f4':
Lockscreen widgets not always announced.
eaddac6d2662f4443561a75b355c472c751ef6fc 26-Apr-2013 Chris Craik <ccraik@google.com> Force clipping on layers that fail to be allocated

bug:8666842

In SW rendering, a previous optimization avoided clipping to the
bounds of views that are layers. This breaks if the view fails to
create a layer (such as if it's too big), so instead look at whether
the view has a layer.

Change-Id: I653882035512012aefd91f06ff0bdc73aa5e4430
/frameworks/base/core/java/android/view/View.java
4293e233dce185e2b8163b23efa8c17ec3266a87 25-Apr-2013 Svetoslav <svetoslavganov@google.com> Lockscreen widgets not always announced.

1. The accessibility events for switching a widget were dispatched
before we update the important for accessibility property. We
were lucky to get events in some cases since the pages in the
pager had alpha grater than zero, i.e. the page was already
set as important for accessibility, due to a running animation.

2. Accessibility focus clear event not fired if we give focus to
another view. The old focus was correctly cleared just the
events were not dispatched.

bug:8599670

Change-Id: Ia2647d77eaa4e10fbaf3a047dc9ea5b728f9c3c3
/frameworks/base/core/java/android/view/View.java
490d0c446841e28df9944ddebab5e79d2b14da56 25-Apr-2013 Chet Haase <chet@google.com> am 6b4d0f21: am 42689769: Merge "Document behavior and usage of ViewGroup.bringChildToFront()" into jb-mr2-dev

* commit '6b4d0f21109209f1390125f301f20aa32e83b91a':
Document behavior and usage of ViewGroup.bringChildToFront()
0187a5d424c8618709b8f11dd7200caa0178c40e 23-Apr-2013 Chet Haase <chet@google.com> Document behavior and usage of ViewGroup.bringChildToFront()

A call to ViewGroup.bringChildToFront() or View.bringToFront()
(which delegates to the parent's bringChildToFront() method) needs
to be followed by a call to requestLayout() and invalidate() on the
parent container in order for the changes to
actually happen. That is, the order of the child views would change, but
the parent container would not run layout or even invalidation without
being told to, so there would be no visible change until something else
caused a layout and invalidation to occur.

This change clarifies this requirement in the javadocs.

Issue #8667065 bringtoTop does not work

Change-Id: Ibe41a6318dddf9fb79382e1c9fd1d21ab4510976
/frameworks/base/core/java/android/view/View.java
684634144b15e4da0ed04baa2c4531ef538652a6 21-Apr-2013 Chet Haase <chet@google.com> am 371d4ccc: am 339ac854: Merge "Fix quickReject logic to account for setClipChildren() setting" into jb-mr2-dev

* commit '371d4cccde56ec4d26e51f8e82ef68f196169a3d':
Fix quickReject logic to account for setClipChildren() setting
339ac85483145972da010ad34cbcb29ed70cb822 20-Apr-2013 Chet Haase <chet@google.com> Merge "Fix quickReject logic to account for setClipChildren() setting" into jb-mr2-dev
dd671599bed9d3ca28e2c744e8c224e1e15bc914 19-Apr-2013 Chet Haase <chet@google.com> Fix quickReject logic to account for setClipChildren() setting

The rendering code optimizes by rejecting drawing operations that
lie outside of the bounds of their views. This works in most
situations, but breaks down when containers have called
setClipChildren(false), because we reject drawing that is outside
of that container, but which should be drawn anyway.

Fix is to pass in the value of that flag to the DisplayList drawing
routines which take that flag into account when deciding whether
to quickReject any particular operation.

Issue #8659277 animation clipping

Change-Id: Ief568e4db01b533a97b3c5ea5ad777c03c0eea71
/frameworks/base/core/java/android/view/View.java
7ed5180df7bd0f566d27d34d9d016dc0a7fbce7a 19-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> am 1c6e609b: am 2623a24f: Merge "Fix bug #8654490 android:paddingStart doesn\'t override android:paddingLeft" into jb-mr2-dev

* commit '1c6e609b2b5409b34d5928f506306ed9ad21adb7':
Fix bug #8654490 android:paddingStart doesn't override android:paddingLeft
2623a24ffa4d75206757684b12b06318167f8788 19-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #8654490 android:paddingStart doesn't override android:paddingLeft" into jb-mr2-dev
1ae3b6aedde52a4b13003ee078aa193ffc611793 19-Apr-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #8654490 android:paddingStart doesn't override android:paddingLeft

- in RTL mode only and if you have left/start or right/end at the same time,
the initial left/right padding (coming from the background drawable or from
some explicit definition) was still used.

- now, override the background left/right initial pading by the left/right one
only and only if there is no start/end padding defined at the same time
(because when start/end are defined, we do not care about left/right padding
except the background ones)

Change-Id: Icc6e69c95ace1307b0c5e9673cbdf3b611b62733
/frameworks/base/core/java/android/view/View.java
faebd8f0795b7d275fb4e503533c8c0c4a9acc21 18-May-2012 Chet Haase <chet@google.com> First draft of Scenes & Transitions feature

This checkin has preliminary API (in flux, definitely changes still
to be made) and implementation for a new "Scenes & Transitions" feature.
The current implementation allows you to define different Scenes
(via layout resource IDs or callbacks) and Transitions to be used when
changing to those scenes. By default, scene changes will use AutoTransition,
which generally does the right thing.

There are no overview docs or tutorials yet. The best way to learn how things
work is to see the code for the various tests in
frameworks/base/tests/TransitionTests.

Expect the API to change. Expect the implementation to change (mostly to add
more functionality). Expect bugs, but tell me if things do not work
as expected.

Change-Id: Ib025a9f565678b225afa4759325cf6d496cc7215
/frameworks/base/core/java/android/view/View.java
68293ecb916677c51fa5ef826dc28f90b2dd6a96 18-Apr-2013 Chet Haase <chet@google.com> am 78296cb7: am bc09a364: Merge "Fixes for setClipBounds()" into jb-mr2-dev

* commit '78296cb760bff8bf951e88d6f4ec9a6ff3059406':
Fixes for setClipBounds()
21f9a3608d618e3dcd30bc73dc60ebfb18690041 17-Apr-2013 Chet Haase <chet@google.com> Fixes for setClipBounds()

The invalidate region when the clip bounds are set needs to encompass both
the old clip bounds and the new bounds, to make sure that the right area
of the view gets erased as well as drawn.

Also, we need to keep our own internal copy of the bounds, not just use the
instance passed into the setter.

Issue #8634060 setClipBounds() problems

Change-Id: I123c49cff16e3debe8866974a5612a4efd010de4
/frameworks/base/core/java/android/view/View.java
32beb2c6b1ed87e122973d2c30d990cfe90514b5 11-Mar-2013 John Spurlock <jspurlock@google.com> Hideybars part I - Overlay status bar via an intent.

Implement new mode for status bar, allowing it to overlay
windows that use WM.LP.FLAG_FULLSCREEN, and introduce
transparency.

No gesture is implemented yet, for now the auto-hiding
status bar can be shown using a debugging intent.
android.intent.action.HIDEYBARS

The auto-hiding status bar hides 3 seconds after shown,
or 3 seconds after last user-interaction with the shade.

Change-Id: Ie4bd625b9cbcddea8f818154719c7a6075972f2a
/frameworks/base/core/java/android/view/View.java
1d9648df5198cbc47ecb836ce084e9258624e0d2 13-Apr-2013 Chet Haase <chet@google.com> am d04215c4: am 0a41431d: Merge "API and doc cleanup, plus small animation/UI features" into jb-mr2-dev

* commit 'd04215c440e7b7f4bbfe8aaa9a47ccdf3a8dacf5':
API and doc cleanup, plus small animation/UI features
430742f09063574271e6c4091de13b9b9e762514 12-Apr-2013 Chet Haase <chet@google.com> API and doc cleanup, plus small animation/UI features

Adding features which round out the animation APIs (missing
getters, etc.). Also fix doc typos.

Issue #8350510 Add APIs needed for future animation capabilities

Change-Id: I063736848ba26e6d6c809b15fc3a103c74222f46
/frameworks/base/core/java/android/view/View.java
c6b0589b085931f10836e47ef6871962359271e0 09-Apr-2013 Chet Haase <chet@google.com> am 15c9e15e: am b9604a34: Merge "Amend getOverlay() docs for SurfaceView/TextureView" into jb-mr2-dev

* commit '15c9e15e71dba40370946ca3837b80327d2925c2':
Amend getOverlay() docs for SurfaceView/TextureView
95399493c6070638946e5e6acd3b3872d3a90451 08-Apr-2013 Chet Haase <chet@google.com> Amend getOverlay() docs for SurfaceView/TextureView

SurfaceView and TextureView do not currently support overlays
correctly; the docs now reflect this constraint.

Change-Id: I79183c02b51ae4cd14638198d0668b2c2e3e22e1
/frameworks/base/core/java/android/view/View.java
b7045d2fb9d4b37333dbccb25a2ae9eee3b54577 08-Apr-2013 Chet Haase <chet@google.com> am cbfce445: am edf6f4b4: Make adding views specific to a ViewGroup\'s overlay

* commit 'cbfce445c500a12fee63e526251471839f44e26b':
Make adding views specific to a ViewGroup's overlay
edf6f4b49f6e77c349f5055372ce381b74f12efb 26-Mar-2013 Chet Haase <chet@google.com> Make adding views specific to a ViewGroup's overlay

Adding views to views (possible with the new Overlay API) is weird.
This change moves the view-management facilities of Overlay to a subclass
that is specific to the overlay returned from ViewGroup.getOverlay().
So now you can add drawables to all view overlays, but only add/remove
views to/from the overlay returned from ViewGroup.getOverlay().

Also, the previous approach of using an interface for Overlay was
changed to classes for both ViewOverlay and ViewGroupOverlay.

Finally, this change makes not handling touch correctly the proper,
and documented, behavior of overlay views. There are various tricky issues
to sort out with input in overlays (including click handling as well as focus)
and we don't want developers starting to use overlays as some kind of general
container hierarchy, so we're purposely constraining overlays to have visual-only
behavior.

Issue #8459085 Overlay needs to handle touch correctly

Change-Id: I207b8dbf528f87c92369d270d8b0a6556826d207
/frameworks/base/core/java/android/view/View.java
7ee8002aabdf96ef8a2e018692489cd43902b169 03-Apr-2013 Scott Kennedy <skennedy@google.com> resolved conflicts for merge of b5d6b3fe to master

Change-Id: Ib7beb5c22fadd7aae5039d49a819fbc91d355b6b
688c33448572fa3879b1486d8fa1bf16cd946211 03-Apr-2013 Scott Kennedy <skennedy@google.com> am 23eda7cd: am 76f9a0a6: am c318dbcf: am 2dd01a0b: am 555c82cd: am f7c06ddb: Merge "docs: Typos and other fixes" into jb-mr1-dev

* commit '23eda7cd0a2b80bafcba7c24f49a73a2f11f782f':
docs: Typos and other fixes
23eda7cd0a2b80bafcba7c24f49a73a2f11f782f 03-Apr-2013 Scott Kennedy <skennedy@google.com> am 76f9a0a6: am c318dbcf: am 2dd01a0b: am 555c82cd: am f7c06ddb: Merge "docs: Typos and other fixes" into jb-mr1-dev

* commit '76f9a0a6800d8a8945156a95dea79f16ec704b3d':
docs: Typos and other fixes
555c82cd43ef8d11bcf54f023864619869c06411 03-Apr-2013 Scott Kennedy <skennedy@google.com> am f7c06ddb: Merge "docs: Typos and other fixes" into jb-mr1-dev

* commit 'f7c06ddbfc79921d389ed6699df17e54c428571e':
docs: Typos and other fixes
f7c06ddbfc79921d389ed6699df17e54c428571e 03-Apr-2013 Scott Kennedy <skennedy@google.com> Merge "docs: Typos and other fixes" into jb-mr1-dev
92ce5e95b8b87eba0a0b41f7b89312dae37680d8 02-Apr-2013 Chris Craik <ccraik@google.com> am bb3c5e18: am 94d6170b: Merge "Update view\'s alpha and layer docs" into jb-mr2-dev

* commit 'bb3c5e184a41ec3ad7d11c3a0a66439edda4f74d':
Update view's alpha and layer docs
16ecda5317c40fc3da284952d9b3add34d6763ae 29-Mar-2013 Chris Craik <ccraik@google.com> Update view's alpha and layer docs

bug:8501661

Makes the performance issues and interaction with layer type/paint
more clear.

Additionally, corrects change from 47ab7d6612e2b5b8b66fb261dafef7c91264e173
to still allow displayList alpha to override layer paint

Change-Id: Ic94d75865700820489370461cd8ac9f9077a8d90
/frameworks/base/core/java/android/view/View.java
89d4c0f3cb88b6366f26b1745db78bcef3680831 26-Mar-2013 Chet Haase <chet@google.com> am 656ed307: am bc6c050f: Merge "Fix touch processing for Overlay views" into jb-mr2-dev

* commit '656ed307168ec2006108877a03788a31b15ebb78':
Fix touch processing for Overlay views
9c17fe693deb0cc84099b619185472f192c2b52d 23-Mar-2013 Chet Haase <chet@google.com> Fix touch processing for Overlay views

Previous implementation processed Overlay touch after other children in
a ViewGroup; it should be the other way around.

Also, fixed some invalidation issues.

Finally, added new behavior to automatically place View which is already
parented into the same global position, by calculating where the overlay is
on the screen relative to the previous parent of the View.

Issue #8459085 Overlay needs to handle touch correctly

Change-Id: Ic2cee12d2bc345f64ed3f4d855a5c3496967a201
/frameworks/base/core/java/android/view/View.java
a7724c4588e1c86c3cd142d01adb9a56b4067530 19-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> am cfd610ff: am 5054803a: Merge "Add missing ViewDebug infos for View.getTextDirection()" into jb-mr2-dev

* commit 'cfd610ffd9c301740aabd73a980136a8f2f7f481':
Add missing ViewDebug infos for View.getTextDirection()
83f15e657cc131ba1095d63fe22256d62800210e 19-Mar-2013 Fabrice Di Meglio <fdimeglio@google.com> Add missing ViewDebug infos for View.getTextDirection()

- as getTextDirection() values were not showing in hierarchyviewer

Change-Id: I4ae74963a3c3b350ba996d098e5714b6538d9553
/frameworks/base/core/java/android/view/View.java
728713258ffef4df053b85e0a3488334cbcba24c 27-Feb-2013 Chet Haase <chet@google.com> DO NOT MERGE: ListView transient state fix

ListView child views with transientState (setHasTransientState(true)) are not
handled correctly when the data set changes, such as when an item is added
or removed. The problem is that the transient views are cached by their
position, but this position is out of sync between the ListView and the adapter
until the ListView layout process is complete.

A better way, which unfortunately only works on ListViews with stable IDs, is
to cache the views by their itemID instead, and to use that ID to determine when
and where to reuse/retrieve a transient view during the ListView layout.

Issue #8254775 View.setHasTransient state has side-effects when deleting content in ListView

Change-Id: I2fc25e71ed6655af30b9c3f47fdf014e9b667616
/frameworks/base/core/java/android/view/View.java
36350a9592425c2bb4984eb2374356d2459238c4 18-Mar-2013 Chet Haase <chet@google.com> am fb38986e: am 138c58a9: Merge "Add overlays to views" into jb-mr2-dev

* commit 'fb38986e452a51b6ce37131f293316adedc75ff0':
Add overlays to views
138c58a941e624c6a969f874ef2f1da1d04b0132 18-Mar-2013 Chet Haase <chet@google.com> Merge "Add overlays to views" into jb-mr2-dev
91cedf1c3dbf7a52c2892294b2e5ba3e40ef3583 11-Mar-2013 Chet Haase <chet@google.com> Add overlays to views

It is useful, particularly in animations, to be able to add a view, or at
least some graphics, on top of a view. For example, to have a child of a layout
fade away, we might want to remove the child from that layout and then fade it out
gradually. Meanwhile, we have to have a place to put that view where it will be
drawn. We could do this in the content container sometimes, but this is not a
reliable workaround in the general case, and may obscure other siblings/parents of
the layout/view in the hierarchy. A better approach would be to place a view/graphic
temporarily in the layout itself.

This feature adds the ability to add one or more Views and Drawables to an "overlay"
layer, after which the view will handle drawing that extra content when it redraws itself.

Issue #8350510 Add APIs needed for future animation capabilities

Change-Id: I70bf78c46ee3db8bd87ea1cdc2ecb5c0747ccbf9
/frameworks/base/core/java/android/view/View.java
47d07fde90fa4e9c5eb68f91e858b0a8c208e247 15-Mar-2013 Jeff Sharkey <jsharkey@android.com> am 20a1cf34: am 93b04b91: Merge "Avoid warnings about synthesized IDs." into jb-mr2-dev

* commit '20a1cf345f5f7952677d5f9cd97efe1a9a197930':
Avoid warnings about synthesized IDs.
47b50333c110194565498011379988e5c05f7890 15-Mar-2013 Jeff Sharkey <jsharkey@android.com> Avoid warnings about synthesized IDs.

Bug: 8153518
Change-Id: I5d638e17581f63c6d4a10ff6bc2c1bf9997a78b3
/frameworks/base/core/java/android/view/View.java
607dcedaa6a8ea87347f777d0ccec6e36090a92b 12-Mar-2013 Michael Wright <michaelwr@google.com> am 63530ed8: am b13eb3e7: Merge changes I674b9804,If2d2e37b into jb-mr2-dev

* commit '63530ed8dad1ca77d5f9d20f2af7317611cdd175':
Add touch navigation input source
Add InputDevice#isFromSource convenience method
74e4156e5c62392c37f4a70358de30dcfff4956f 08-Mar-2013 Michael Wright <michaelwr@google.com> Add InputDevice#isFromSource convenience method

Change-Id: If2d2e37bc3fff5a862ea3652c7ef9778018e7ecc
/frameworks/base/core/java/android/view/View.java
c6cf2abfdb1c3836599a11706bc141d05a3b5588 08-Mar-2013 Adam Powell <adamp@google.com> am 41ac9727: am 15061d74: Merge "Make View#computeOpaqueFlags recognize OUTSIDE_OVERLAY scrollbars" into jb-mr2-dev

* commit '41ac97278f4506e9d06e447b99a94125dc6358db':
Make View#computeOpaqueFlags recognize OUTSIDE_OVERLAY scrollbars
f158b52e20004850641e3d7b8e7698dd87651359 07-Mar-2013 Adam Powell <adamp@google.com> Make View#computeOpaqueFlags recognize OUTSIDE_OVERLAY scrollbars

While the inset scrollbars may change padding and how backgrounds are
drawn such that an otherwise opaque view is no longer opaque. However,
OUTSIDE_OVERLAY scrollbars don't change the padding and should not
affect the determination of opacity.

Change-Id: I8c0c1408aeb540813de3351f0c0d1ad12ba5919c
/frameworks/base/core/java/android/view/View.java
4a682c2c8fb3d6e00a873d4c99c137c01a803f45 06-Mar-2013 John Spurlock <jspurlock@google.com> Merge "Quick typo fix to View.java docs."
7eae2d5d97528323ea560eda9b456423187759dc 06-Mar-2013 John Spurlock <jspurlock@google.com> Quick typo fix to View.java docs.

navagation -> navigation

Change-Id: I0afd46824afc9a9aedcfc383e633b4bed6b28918
/frameworks/base/core/java/android/view/View.java
ee61a7fb95b96880042a963c78774a148eed8c15 05-Mar-2013 Dianne Hackborn <hackbod@google.com> am 530b2b1c: am a5513616: Merge "Add new WindowId for cross-process monitoring of focus." into jb-mr2-dev

* commit '530b2b1c98e3a3d86fd90cd91a08005370b8aa49':
Add new WindowId for cross-process monitoring of focus.
e3f23a36d86fedf6c8c6503378cd6d2190c5ab23 01-Mar-2013 Dianne Hackborn <hackbod@google.com> Add new WindowId for cross-process monitoring of focus.

This is a class representing a window and providing limited
interaction with it, which can be handed across processes.

Change-Id: I22885f2064a9cc8c68d690a5858c2e28bbb6a0f3
/frameworks/base/core/java/android/view/View.java
573596de3bf4565213f88aa718c55bf01a3489c1 05-Mar-2013 Chet Haase <chet@google.com> Merge "ListView transient state fix"
f091b662467eeca05ac0de9c8f3f120f4dde5bdc 27-Feb-2013 Philip Milne <pmilne@google.com> Optical Bounds: clear inherited layoutModes when layoutMode of root layout is set to a new value.

This is an addendum to:

https://googleplex-android-review.googlesource.com/#/c/246507

Change-Id: Ia9d6fdfe7fdb76c1152466315ff3b1c42c077ee2
/frameworks/base/core/java/android/view/View.java
9e7c7d7b854b950ebed473c9b7c4cf72af75e610 27-Feb-2013 Chet Haase <chet@google.com> ListView transient state fix

ListView child views with transientState (setHasTransientState(true)) are not
handled correctly when the data set changes, such as when an item is added
or removed. The problem is that the transient views are cached by their
position, but this position is out of sync between the ListView and the adapter
until the ListView layout process is complete.

A better way, which unfortunately only works on ListViews with stable IDs, is
to cache the views by their itemID instead, and to use that ID to determine when
and where to reuse/retrieve a transient view during the ListView layout.

Issue #8254775 View.setHasTransient state has side-effects when deleting content in ListView

Change-Id: Ic3b1669ed79dd6cf9e4c1c6c26f9d75ccf074b3e
/frameworks/base/core/java/android/view/View.java
c4aad01cbbb69c916ef323693e1fd0560b0eccba 23-Feb-2013 Dianne Hackborn <hackbod@google.com> Formalize overscan metrics.

The window manager now maintains and reports a new formal
"overscan insets" for each window, much like the existing
content and visible insets. This is used to correctly
position the various UI elements in the various combination
of layout options. In particular, this allows us to have
an activity that is using fitSystemWindows to have the content
of its UI extend out to the visible content part of the screen
while still positioning its fixed UI elements inside the
standard content rect (and the entire window extending all
the way into the overscan area to fill the screen as desired).

Okay, maybe that is not written so clearly. Well, it made
my head hurt too, so suffer!

The key thing is that windows now need to know about three
rectangles: the overall rectangle of the window, the rectangle
inside of the overscan area, and the rectangle inside of the
content area. The FLAG_LAYOUT_IN_OVERSCAN option controls
whether the second rectangle is pushed out to fill the entire
overscan area.

Also did some improvements to debug dumping in the window
manager.

Change-Id: Ib2368c4aff5709d00662c799507c37b6826929fd
/frameworks/base/core/java/android/view/View.java
52036b19a5f82bc4d75cfcbff99c65df8d25a99b 15-Feb-2013 Romain Guy <romainguy@google.com> Expose display list APIs

The exposed APIs are slightly simpler than the full APIs used internally.
Only APIs useful to applications are exposed.

Change-Id: Ie03014628d40ad5ef63dedbc52ce3def84429d54
/frameworks/base/core/java/android/view/View.java
71c240597786e84135d672a28d53111620da3c86 12-Feb-2013 Chet Haase <chet@google.com> Fix getHitRect() to return correct rect for transformed child

Previous code incorrectly included pivot point in calculation, which
resulted in offset rectangle

Issue #8178031 getHitRect() incorrect when view is transformed

Change-Id: Ie6c4c51614577d208016584cf1bf4eed570f730d
/frameworks/base/core/java/android/view/View.java
35ae8748fec1179be65c6b8c2e50140fe74c4c64 12-Feb-2013 Svetoslav <svetoslavganov@google.com> Merge "Optimize loading of resource name when reported to accessibility."
a33243eb6491bc5a20ede53db3313f6078e8b694 12-Feb-2013 Svetoslav <svetoslavganov@google.com> Optimize loading of resource name when reported to accessibility.

Loading of the resource id name was unnecessarily complex and
was generating spam in the log as a result.

bug:8153518

Change-Id: Ib2c1118fd36b86ba8ce803ba3190fa01ab06e8c3
/frameworks/base/core/java/android/view/View.java
9dd4c5c6867f8b6de19096d2d68365dccb744c19 09-Feb-2013 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7381967 Add RTL APIs to ViewParent

- add RTL apis to ViewParent
- remove awful and performance bottleneck casts in View during LayoutDirection,
TextDirection and TextAlignment resolutions.

Change-Id: I92a56b16382e13c28c1dad35f6f205620eb01bfe
/frameworks/base/core/java/android/view/View.java
b4c1dc1c1580d0970631cc291b4b4c6e9dc96af3 08-Feb-2013 Romain Guy <romainguy@google.com> Merge "Don't clip when drawing a layer"
63696bfc0592a0b8808aa2b1c40bcf33c656c659 08-Feb-2013 Romain Guy <romainguy@google.com> Don't clip when drawing a layer

A layer will, by definition, clip its content already. The extra
clip added by the UI toolkit/renderer is wasteful and in some
situations very expensive. If a layered view is rotated, the clip
will be transformed into a non-rectangular region, thus forcing
the renderer to rely on the stencil buffer. The whole point of
using layers is to draw efficiently so let's avoid this case.

Change-Id: I813465f6468cc386b84a4d058c11a258fef8507a
/frameworks/base/core/java/android/view/View.java
8ca4642b7460057be0ee8ba97633d6fb1dfcd532 07-Feb-2013 Jeffrey Brown <jeffbrown@android.com> am edc93331: am a0d547b4: am dac4a90d: Merge "fix hover events consume issue"

# By Masanori Ogino
# Via Android Git Automerger (2) and others
* commit 'edc933318c9690761866a4da63b551ae09054104':
fix hover events consume issue
a0d547b43b3508c7253da234f529acf60d00fd13 07-Feb-2013 Jeffrey Brown <jeffbrown@android.com> am dac4a90d: Merge "fix hover events consume issue"

# By Masanori Ogino
# Via Gerrit Code Review (1) and Masanori Ogino (1)
* commit 'dac4a90d656dca86bd14cd91d685c07d8a6b29a4':
fix hover events consume issue
bcc46a0d037e62fcb5e5f0f5e1acef5a8c1314b0 06-Feb-2013 Svetoslav <svetoslavganov@google.com> Set accessibility cursor in non-text views with content description.

We support text traversal at a granularity over non-next views with
content description, hence we should support setting the cursor position
in such views.

bug:8134469

Change-Id: I4dba225b0ade795b7a20c201fb906ae7146c065d
/frameworks/base/core/java/android/view/View.java
eecedffe4286321c3a4e58ef66a536420cd1f239 05-Feb-2013 Svetoslav <svetoslavganov@google.com> Renaming some APIs

Change-Id: I9e226d39648796f95dd0e86ffecbb3f93544243b
/frameworks/base/core/java/android/view/View.java
d0c83cccca9955da92d076dfdfbc3e349fbbc415 05-Feb-2013 Svetoslav <svetoslavganov@google.com> Set accessibility cursor position in non-editable views with content description.

While an accessibility service can set the cursor position in an editable
text field, it was not possible to set it for non-editable views with
content description. This patch enables that.

bug:8134469

Change-Id: I28b0ef1666b9e3ed5c0642718fbe63d4c9616569
/frameworks/base/core/java/android/view/View.java
7c51284d8019ed04ab296be84839d8a90ac042fa 31-Jan-2013 Svetoslav <svetoslavganov@google.com> Add accessibility actions for text editing.

Currently text editing is pretty hard (certain operations even
impossible) for a blind person. To address the issue this change
adds APIs that enable an accessibility service to perform basic
text editing operations such as copy, paste, cut, set selection,
extend selection while moving at a given granularity.

The new APIs enable an accessibility service to expose a gesture
driven efficient text editing facility.

bug:8098384

Change-Id: I82b200138a3fdf4c0c316b774fc08a096ced29d0
/frameworks/base/core/java/android/view/View.java
a62dbfd953ba8dec1f69d6eb92481d069b74f745 15-Nov-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix Javadoc for View layoutDirection / textDirection / textAlignment - DO NOT MERGE

Change-Id: I19b7a53c1c7d805fb9b1611e8944db27c82fc986
/frameworks/base/core/java/android/view/View.java
80943d8daa6ab31ab5c486d57aea406aa0730d58 02-Jan-2013 Svetoslav Ganov <svetoslavganov@google.com> Adding UI test automation APIs.

This change adds APIs support for implementing UI tests. Such tests do
not rely on internal application structure and can span across application
boundaries. UI automation APIs are encapsulated in the UiAutomation object
that is provided by an Instrumentation object. It is initialized by the
system and can be used for both introspecting the screen and performing
interactions simulating a user. UI test are normal instrumentation tests
and are executed on the device.

UiAutomation uses the accessibility APIs to introspect the screen and
a special delegate object to perform privileged operations such as
injecting input events. Since instrumentation tests are invoked by a shell
command, the shell program launching the tests creates a delegate object and
passes it as an argument to started instrumentation. This delegate
allows the APK that runs the tests to access some privileged operations
protected by a signature level permissions which are explicitly granted
to the shell user.

The UiAutomation object also supports running tests in the legacy way
where the tests are run as a Java shell program. This enables existing
UiAutomator tests to keep working while the new ones should be implemented
using the new APIs. The UiAutomation object exposes lower level APIs which
allow simulation of arbitrary user interactions and writing complete UI test
cases. Clients, such as UiAutomator, are encouraged to implement higher-
level APIs which minimize development effort and can be used as a helper
library by the test developer.

The benefit of this change is decoupling UiAutomator from the system
since the former was calling hidden APIs which required that it is
bundled in the system image. This prevented UiAutomator from being
evolved separately from the system. Also UiAutomator was creating
additional API surface in the system image. Another benefit of the new
design is that now test cases have access to a context and can use
public platform APIs in addition to the UiAutomator ones. Further,
third-parties can develop their own higher level test APIs on top
of the lower level ones exposes by UiAutomation.

bug:8028258

Also this change adds the fully qualified resource name of the view's
id in the emitted AccessibilityNodeInfo if a special flag is set while
configuring the accessibility service. Also added is API for looking
up node infos by this id. The id resource name is relatively more stable
compared to the generaed id number which may change from one build to
another. This API facilitate reuing the already defined ids for UI
automation.

bug:7678973

Change-Id: I589ad14790320dec8a33095953926c2a2dd0228b
/frameworks/base/core/java/android/view/View.java
f449c0c381239dc0f78b0f01ecfb3889e056a597 22-Jan-2013 Masanori Ogino <ogino.masanori@sharp.co.jp> fix hover events consume issue

View#onHoverEvent() would always consume hover events over the view
if an application window has the clickable view/widget on it.
That's happened even if accessibility/talkback is disabled.
So those events will not dispatch to activity#onGenericMotionEvent().

The onHoverEvent method should return a real consumed state.

Change-Id: I9cac13b82866e5cdda0b03befb0de752a0a2e741
/frameworks/base/core/java/android/view/View.java
a8396686a20ec7219efb3d1e7050c1cd999ec83e 16-Jan-2013 Scott Kennedy <skennedy@google.com> docs: Typos and other fixes

External 42844
External 42778
External 42768
External 42730
External 42720
External 42678
External 39381

Change-Id: Ia9d54ce87dc266650d0620fd3adc63137322e20b
/frameworks/base/core/java/android/view/View.java
149567f9d59a07a9d7793ea455ff4c2586c3ae53 09-Jan-2013 Svetoslav Ganov <svetoslavganov@google.com> Fixing a memory leak in ViewRootImpl and a focus change callback issue.

1. ViewRootImpl was keeping reference to the old focused view so it can
call back the global on focus change listener when another view gets
focus. The stashed reference, however was not cleared which caused a
memory leak if the last focused view was removed from the view tree.
In general keeping additional state for the last focus in ViewRootImpl
is not a good idea since this add complexity due to additional book
keeping work that is required. The view tree already keeps track of
where the focus is and it should be the only place that holds this
data. Since focus does not change that frequently it is fine to look
up the focus since this operation is O(m) where m is the depth of the
view tree. This change removes the duplicate book keeping from
ViewRootImpl and the focus is looked up as needed.

2. ViewRootImpl was calling the global focus change callbacks when focus
is gained, lost, or transferred to another view. This was done in
*ChildFocus methods. In the case of a child losing focus, i.e. in
clearChildFocus, there was a check whether focus searh yields a view
to take focus and if so it did not call back the global focus listener
assuming the the found view will take focus (the view tree gives focus
to the first focusable when a view looses focus). This is not a correct
assumption since some views override methods called as a result of
View.requestFocus that determine what the next focused view should
be. For example, HorizontalScrollView overrides onRequestFocusInDescendants
and changes the direction of the search. In fact focus search does not
take into accound ViewGroup descendant focusability. Hence, the view found
by calling the focus search from the root is not necessarily the one
that will get focus after calling requestFocus. Actually, it is
possible that the focus search will find a view but no view will
take focus. Now the View class is responsible for calling the
global focus listeners which avoids the above problem. Also this
saves book keeping in ViewRootImpl.

bug:7962363

Change-Id: Ic95a18b364e997021f3f6bb46943559aac07d95a
/frameworks/base/core/java/android/view/View.java
cc699b4fe396b3f93d45211d0df6f02baa325b2f 13-Dec-2012 Chet Haase <chet@google.com> Fix for requestLayout-during-layout inefficiencies

An earlier fix made it possible to call requestLayout() during layout
(which is not recommended in most cases outside of a ListView) without
ending up with blank content and internal layout flags in a confused state.
However, that fix incorrectly detected a problem in some cases (such as
ListView practices of adding views during layout) which were actually okay;
as long as you make sure to measure and layout your children properly
before returning from layout(), then it's not a problem. We were improperly
spamming the log with supposed problems, and causing more overhead in correct
cases by running a full request/measure/layout pass after the first layout
pass, all of which is unnecessary in cases where the containers know what
they're doing.

This new fix changes the logic to only cause the second layout pass (and third,
posted to the next frame, if things are really done incorrectly) if the layout-request
flags are still set on the requesting views after the full layout pass is complete.
This situation causes the blank screens we've seen in buggy apps, and is exactly
what we should avoid. However, correct cases (e.g., ListView) will not have these
problems because they run measure/layout correctly after the request calls, which
clears these flags. The upshot is that buggy cases will be detected and compensated for
(by clearing the flags and then running a second request/measure/layout pass, as in the
original fix) and non-buggy cases will be noop'd, going back to their previous, working
logic flow.

The bug below is one of the buggy apps to demonstrate this problem. I noticed that the
original problem (blank screen) is no longer reproducible. I suspect that logic was
added to the app to force a refresh after it is attached. You can still detect the problem
(and the fix) by seeing that prior to the fix (say, on mr1.1) there is a delay of about
a second between the end of the progress bar updates and the showing of content on a
screen that used to just remain blank. With the fix (both the previous version and this
one), the content is updated immediately, because we now handle the buggy request-
during-layout situation in the same frame as it occurs.

Issue #6914123 News and Weather app sometimes loads to a blank screen

Change-Id: I4c34817cc3dd44ba422ff50de4321624c0824d83
/frameworks/base/core/java/android/view/View.java
ba534dece2c1917a7473a5fe78976c66f0189ad5 10-Dec-2012 Adam Powell <adamp@google.com> Merge "Update documentation to mention compatibility versioning"
2c8cc972c3b03b76a80db517dde1e68895bbdd66 08-Dec-2012 Adam Powell <adamp@google.com> Update documentation to mention compatibility versioning

Mention changes involving MeasureSpec/RelativeLayout/ImageView
behavior changes when apps target SDK > 17.

Change-Id: I232492a76ac048f7b460d28a87bd84cbbec4e4d7
/frameworks/base/core/java/android/view/View.java
e3833c2ba4971f287cb57641a01b5d098fdfc05e 08-Dec-2012 Adam Powell <adamp@google.com> Merge "Compatibility measurement hacks when targetSdkVersion <= JB-MR1"
7da4b73a236b7c72d1337696949df7a00776dd06 08-Dec-2012 Adam Powell <adamp@google.com> Compatibility measurement hacks when targetSdkVersion <= JB-MR1

All three of these are interrelated!

* Allow broken MeasureSpec values. The long-standing implementation
of MeasureSpec.makeMeasureSpec has been to add both values rather
than masking/or-ing the values together. Some old code relied on
this, such as if it mixed up size/mode params.

* Disable ImageView adjustViewBounds allowing the view to grow beyond
its initial size. A bug in RelativeLayout in the presence of the
above MeasureSpec fix causes this not to work properly in apps.

* Allow RelativeLayout to send overflowed/bogus MeasureSpec values
when measured with MeasureSpec.UNSPECIFIED mode. Some apps have
custom child views that do not properly handle UNSPECIFIED
measurements, but the exact overflow semantics caused this to
generate AT_MOST $REALLYBIG MeasureSpecs for those views instead if
they were placed inside a RelativeLayout in a scrolling container.

Change-Id: I977a5f1ba5637f0cba3d26a70139e2bcd021fc9c
/frameworks/base/core/java/android/view/View.java
ee0ff18c36ff27977a868c4a6ea695a21723f52b 04-Dec-2012 Romain Guy <romainguy@google.com> Merge "Optimize onAttachedTo/onDetachedFromWindow"
fbb93fa2f3abf8b50ea945a319c0a190f2aae213 04-Dec-2012 Romain Guy <romainguy@google.com> Optimize onAttachedTo/onDetachedFromWindow

Apps detaching/attaching large subtrees would waste a few milliseconds
dealing with dirty display lists. This change removes the need to do
ArrayList.remove() on every detachedFromWindow().

Change-Id: Icee72516c40d48ff0fd9d6f3128589f99bf61428
/frameworks/base/core/java/android/view/View.java
5412ba1cb91527070dda81c3b0e602631765164e 01-Dec-2012 Fabrice Di Meglio <fdimeglio@google.com> resolved conflicts for merge of 8794c80d to master

Change-Id: I61313a3dd4cd0bcbf04c16dc17996a997b43fe0c
ce463847db68afbb796377c6a55209e102774f8c 01-Dec-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7651552 resetRtlProperties() is called way too often" into jb-mr1.1-dev
cb5f9db47a471620061ccb6a574afc209c610dd2 01-Dec-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7651552 resetRtlProperties() is called way too often

- remove unnecessary calls to resetRtlProperties().
- now reset of RTL properties will only be done when adding a View
(and no more when removing it)

Change-Id: I0d42128c9f7df6085fb92bb5af5c9bd4d1ba88a3
/frameworks/base/core/java/android/view/View.java
488c2d274b739784e26a75eaa4a1e12701279427 30-Nov-2012 Svetoslav Ganov <svetoslavganov@google.com> am d902dbb2: am ed734d98: am 0e7adaff: am 438a3b35: Merge "Cannot move edit text cursor to first position using character granularity." into jb-mr1-dev

* commit 'd902dbb2ea7fa3cf50e89d84d1758bac4738e0e1':
Cannot move edit text cursor to first position using character granularity.
0e7adaff99778c596bfd3f4c1e42710592c472a2 30-Nov-2012 Svetoslav Ganov <svetoslavganov@google.com> am 438a3b35: Merge "Cannot move edit text cursor to first position using character granularity." into jb-mr1-dev

* commit '438a3b35f7a6184a19919de90f733be82e21a84c':
Cannot move edit text cursor to first position using character granularity.
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
/frameworks/base/core/java/android/view/View.java
f6ae4b897b78fa855eb3c75654c05367afecaa95 27-Nov-2012 Romain Guy <romainguy@google.com> Reset stored background resource when setting a bg color

This sequence of operations would prevent the background from
changing:

setBackgroundResource(R.something)
setBackgroundColor(aColor)
setBackgroundResource(R.something)

The last call would be no-oped.

Change-Id: I436a33599c88e35f6f36bdd63e9c256c9219e052
/frameworks/base/core/java/android/view/View.java
02c6fca90ad28c391ad6f0f70b24996acb206d74 27-Nov-2012 Svetoslav Ganov <svetoslavganov@google.com> Cannot move edit text cursor to first position using character granularity.

Navigating over text backwards by character does not allow the cursor to get
at the beginning of the text and it stops one position before the start. Now
the cursor can get to index zero which is before the first character.

bug:7307336

Change-Id: I109b579835cc080907b20b01e0cf07811e962c6c
/frameworks/base/core/java/android/view/View.java
b920b40510cd237b9dd60a00717527cd4ece2247 20-Nov-2012 Fabrice Di Meglio <fdimeglio@google.com> am e784ae8e: am d689e8c3: am b0f895b3: Merge "Fix Javadoc for View layoutDirection / textDirection / textAlignment" into jb-mr1.1-dev

* commit 'e784ae8e6a0eab3d29afc9b19f65714e7b268b97':
Fix Javadoc for View layoutDirection / textDirection / textAlignment
7d529cd6ebd15b88df07278a3cbee55090ffa2d6 15-Nov-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix Javadoc for View layoutDirection / textDirection / textAlignment

Change-Id: I2fa2f02bd2f59ee93ccd56fc6bd28b93e4713cc4
/frameworks/base/core/java/android/view/View.java
d307640724a34ffd696e84897dc8b63c734730fe 06-Nov-2012 Svetoslav Ganov <svetoslavganov@google.com> am 9d456661: am c9300f19: am 0f4d5df5: Merge "View\'s visibility to the user not checking predecessor alpha." into jb-mr1-dev

* commit '9d4566611928ed71e58c8a7aaf231c6e306b204f':
View's visibility to the user not checking predecessor alpha.
11f19f15ea474edde07bf34877d2531fff6c26f0 03-Nov-2012 Svetoslav Ganov <svetoslavganov@google.com> View's visibility to the user not checking predecessor alpha.

1. A view is visible to the user if is attached to a visible window,
its visibility is VISIBLE, its alpha is not zero, all its
predecessors have visibility VISIBLE and non zero alpha, the
view is not fully covered by predecessors and is within the
screen.

The function that computes whether a view is visible for
accessibility purposes was not taking into account the
predecessors' alpha.

bug:7454355

Change-Id: I7609f4366da260091d68e5b25832498843fd3d0a
/frameworks/base/core/java/android/view/View.java
331b552734ab47bc5256a0e2e4e9d152c67fc069 01-Nov-2012 Romain Guy <romainguy@google.com> am aabe4bb4: am 9c0010f8: am 998d03bd: Merge "A new clock widget to create lock screen appwidgets" into jb-mr1-dev

* commit 'aabe4bb4776c21592db7e0714b3fec960b6778c7':
A new clock widget to create lock screen appwidgets
3d1728c03a0cd1aaed6bc81c97de27d62c771a6e 01-Nov-2012 Romain Guy <romainguy@google.com> A new clock widget to create lock screen appwidgets

This new widget replaces DigitalClock. It listens to all the correct
system events and offer the ability to customize the formatting
patterns in 12-hour and 24-hour modes. It also supports fixed
time zones to create world clocks.

One more step towards becoming ClockOS!

Change-Id: I677e5dfca8cd8c8d1f8c49e54d7507f4d1885bf4
/frameworks/base/core/java/android/view/View.java
46e62fe39874abf2a9bdfab7635df98011c03cd1 30-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 024e70c8: am dd80335e: am 07ce0ca2: Merge "Fix bug #7419054 TextView Drawables resolution is broken in RTL mode" into jb-mr1-dev

* commit '024e70c8156a0fa2d702ff2fba4a38c1f6b68f98':
Fix bug #7419054 TextView Drawables resolution is broken in RTL mode
07ce0ca265274c5ba95e6ec3e0950e38b8ce97ea 27-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7419054 TextView Drawables resolution is broken in RTL mode" into jb-mr1-dev
1957d281ea123e4925e51fa5ad22ce239ef2a07d 26-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7419054 TextView Drawables resolution is broken in RTL mode

- check layout direction previous value in the onResolveDrawables(int) callback
- dont do any Drawables resolution if we cannot resolve the layout direction
- also remove unnecessary call to resolveRtlPropertiesIfNeeded() in ViewGroup when
adding a child as the call to resolveRtlPropertiesIfNeeded() will be done into
the measure() call itself later

Change-Id: I62237af3d307dfea203f7f2865551d1c61a0e0b8
/frameworks/base/core/java/android/view/View.java
809312791c02464b10d781f8760f6feb288b6da3 25-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 0182dc39: am 3b53061e: am 3e297339: Merge "FIx bug #7414801 Should make private and final View.TEXT_DIRECTION_DEFAULT and View.TEXT_ALIGNMENT_DEFAULT constants" into jb-mr1-dev

* commit '0182dc39bd969b797614c90e44978b83ac57fd1c':
FIx bug #7414801 Should make private and final View.TEXT_DIRECTION_DEFAULT and View.TEXT_ALIGNMENT_DEFAULT constants
72898e982867ff11ff6494ad71898176e30127a9 25-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> FIx bug #7414801 Should make private and final View.TEXT_DIRECTION_DEFAULT and View.TEXT_ALIGNMENT_DEFAULT constants

- made them private and final
- fixed comment

Change-Id: Ia1d22329edb7ac26e7bcd0489770a99ad41c4f0e
/frameworks/base/core/java/android/view/View.java
c5b9ea70b908bf0126771de14298361daa38d18a 22-Oct-2012 Adam Powell <adamp@google.com> am f4c6a4e4: am cad6dce5: am cd92db84: Merge "Remove View\'s long press callbacks when ACTION_CANCEL is received" into jb-mr1-dev

* commit 'f4c6a4e42e11a8bf829335426d67be92b0e7ab5c':
Remove View's long press callbacks when ACTION_CANCEL is received
5311c4476ec59f0cd1502b81b03141bac48ee385 22-Oct-2012 Adam Powell <adamp@google.com> Remove View's long press callbacks when ACTION_CANCEL is received

Bug 7391646

Change-Id: Icd100d3eff63a54c892367fb70dec517257a01f8
/frameworks/base/core/java/android/view/View.java
c2c4f8d895898ab401f2ae1c354998ae13a3fbe9 22-Oct-2012 Daniel Sandler <dsandler@android.com> am 50ad6326: am 466b77e9: am 2dd0c3a5: Merge "New lockscreen: allow search gesture from nav bar." into jb-mr1-dev

* commit '50ad6326c5814d092cf1510847bcdfb940a46738':
New lockscreen: allow search gesture from nav bar.
d5483c3157a28e2ebc05a0c918df8a2be0a7fc89 19-Oct-2012 Daniel Sandler <dsandler@android.com> New lockscreen: allow search gesture from nav bar.

Show a lights-out pip if home is invisible but search is
still OK.

Change-Id: Ifc69c12296cc8e8cf7c89dd06173d7abf499a878
/frameworks/base/core/java/android/view/View.java
f9d08423e3d922d22f628e2628885b3d966e40be 19-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 6cb9d909: am 8c2bc7cc: am 07f85fec: Merge "Fix bug #7374285 GridLayout layout param margins are broken in RTL mode" into jb-mr1-dev

* commit '6cb9d909f06433c5b9130c55dc08ce8d55e7dac8':
Fix bug #7374285 GridLayout layout param margins are broken in RTL mode
fcc3348f61b2992f0b84e8e8dcb3535fc715298f 18-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7374285 GridLayout layout param margins are broken in RTL mode

- resolve layout params in ViewGroup when layout direction is changed
- layout param resolution is checking the previous layout direction to
check if we need to resolve

Change-Id: I70af2ad2b4ec83c2ec6c93b3ff445852500d1687
/frameworks/base/core/java/android/view/View.java
1c80844464fbe977c5303cd56af9abb81a2bc218 16-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> am 7d5de594: am d46503d5: am 40b7ea44: Merge "Accessibility focus drawing does not take into account view\'s transformation matrix." into jb-mr1-dev

* commit '7d5de5941d24aadf57d883198f79cf39da324635':
Accessibility focus drawing does not take into account view's transformation matrix.
78bd9835eb99fd829026a05dc543c6708367ca5b 16-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus drawing does not take into account view's transformation matrix.

1. We are using the view drawing bounds but did not take into account the transformation
matrix. This leads to showing ugly artifacts on the launcher's hotseat which is
pretty much the first thing we see.

2. Updated the documentation of View.getDrawingRect to be more explicit that the
results does not have the transformation matrix applied.

bug:7354033

Change-Id: Ief2e0ea8da05471d71e215ce4497d94ff6e92d1a
/frameworks/base/core/java/android/view/View.java
5dc228d2343009dc1d958d307c14166865b50e7d 15-Oct-2012 Romain Guy <romainguy@google.com> am a97a9bef: am 807e4375: am f2e28abb: Merge "Update javadoc" into jb-mr1-dev

* commit 'a97a9beff7e3c66ca41a6e2029433bc9f1f390ba':
Update javadoc
edc900528937cd03f0d3a94fdf73d019324a2054 15-Oct-2012 Romain Guy <romainguy@google.com> Update javadoc

Some View.post*() methods can be invoked from arbitrary thread
independently of whether the View is attached to a window.

Change-Id: I587b5909ab8b06665978d001548d56c8c22043c1
/frameworks/base/core/java/android/view/View.java
58072b573d4840199e3d19f3d6f6a873281c2e40 13-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am df4bcd6a: am b65b5133: am f9307c5c: Merge "Fix bug #7334966 Padding is still broken in RTL languages" into jb-mr1-dev

* commit 'df4bcd6a36ae2e0248791f35c10f6f100543b2c6':
Fix bug #7334966 Padding is still broken in RTL languages
84ebb35f392478600ddf8f08107fb345f13ef91c 12-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7334966 Padding is still broken in RTL languages

- do correct resolution and reset propagation for all RTL properties (padding and drawables included)
- fix CheckedTextView padding too

Change-Id: Ie603683a2324b2a6ef2c03633d01d5726c883b90
/frameworks/base/core/java/android/view/View.java
6fdd3176e6532f67b81ea6a6b3a2fc03b2220751 12-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> am 02942145: am a1489d30: am 9aefa145: Merge "Send accessibility event for content change upon setting content description." into jb-mr1-dev

* commit '0294214519df70978b5440b01ec6c2597f4eecec':
Send accessibility event for content change upon setting content description.
9aefa1457967b52f1865173aa70896db84f111f1 11-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Send accessibility event for content change upon setting content description." into jb-mr1-dev
b708f7703b98e14f01311dbc93e2636abe4790c9 11-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> Send accessibility event for content change upon setting content description.

1. Since the content description is generated dynamically we need to notify
clients when it changes so they can drop cached state to get the most
recent content. This really is used by the caching we do to optimize
the window query APIs. Otherwise, the user does not see the current
content.

bug:7327556

Change-Id: I9be46508e86864566e027c64565eb1d787ec9363
/frameworks/base/core/java/android/view/View.java
6acf744fab8441f18e8aa1599aa9d6937ac8707a 11-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am f4a1dad6: am 5b04d032: am b8021a88: Merge "Fix bug #7326778 Rename LayoutParams.onResolveLayoutDirection(int)" into jb-mr1-dev

* commit 'f4a1dad63db89b805df0c83b2044dad0d60e3686':
Fix bug #7326778 Rename LayoutParams.onResolveLayoutDirection(int)
2918ab6c3258639148b8a5c78a34483af195246e 11-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7326778 Rename LayoutParams.onResolveLayoutDirection(int)

- rename to LayoutParams.resolveLayoutDirection(int)
- upate 17.txt too

Change-Id: I54fe28dc47cfdb65ef0b5b0244dabbe1d675c781
/frameworks/base/core/java/android/view/View.java
ca4dabc3609cbe869e7f78312c35b32b8e220a5a 10-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> am 8ca8e02b: am 52c59ddf: am 27258209: Merge "Return true on successful accessiblity action click/long click." into jb-mr1-dev

* commit '8ca8e02bf207e77fcae644d8ecb30143ec098f6d':
Return true on successful accessiblity action click/long click.
96985fccdcff69c8410caee23aa088cbd8af34b6 10-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> Return true on successful accessiblity action click/long click.

1. If a view is clickable or long clickable perfroming the corresponding
accessiblity action should return true no matter whether there is a
registered on click/long click listener. Currently true is returned
only if there is a listener but it is also possible that a sub-class
overrides performClick and does work there. For example CompoundButton.
Now if the view is clickable or long clickable we will call the
perfrom* method and return true, which is we clicked.

2. Fixed some JavaDoc indentation.

bug:7318777

Change-Id: Id603fee378b8f7d07f1128b5641ede57640bab53
/frameworks/base/core/java/android/view/View.java
82fa5ffbbc4a0b9842c809d0d4fdbec622819f38 04-Oct-2012 Romain Guy <romainguy@google.com> am bf8d8e73: am 5971d03f: am f7ee2a03: Merge "Fix rendering artifacts on tiled renderers Bug #7275145" into jb-mr1-dev

* commit 'bf8d8e73e4123f529845e88de6d74b62853b9786':
Fix rendering artifacts on tiled renderers Bug #7275145
dfab363807b3b44be4032e410f016e0a0d018426 03-Oct-2012 Romain Guy <romainguy@google.com> Fix rendering artifacts on tiled renderers
Bug #7275145

This change fixes ViewRoot and adds extra debug information. It does
not solve the problem entirely. Another CL will.

Change-Id: I7e604ba38aad7f421769783dcbd998d6905ab2d9
/frameworks/base/core/java/android/view/View.java
c6af4fe1f74e1dbd291bbc9c9da4af3050cc8795 03-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 12ff4138: am 2e4f54de: am 046184f9: Merge "Fix bug #7266459 android.widget.cts.TableLayoutTest#testColumnStretchableEffect failures on JO" into jb-mr1-dev

* commit '12ff4138d53297a0b8ed31bd72035ee5a69df667':
Fix bug #7266459 android.widget.cts.TableLayoutTest#testColumnStretchableEffect failures on JO
acb1c124aca178b6231bf3029745e20fffdf2020 02-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7266459 android.widget.cts.TableLayoutTest#testColumnStretchableEffect failures on JO

- do not ask for requestLayout() nor invalidate() in View.onMeasure() when
resolving RTL properties

Change-Id: I7961fcb4c046d96391a4e748350573534481ae2b
/frameworks/base/core/java/android/view/View.java
91aef0cfc4cea680ad4ab96c1ba3b993dce879c0 02-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> am 913883d3: am 87779f63: am 87d7d946: Merge "Accessibility focus should not scroll automatically." into jb-mr1-dev

* commit '913883d30200d33ffaf712953f05ce3990202440':
Accessibility focus should not scroll automatically.
a85236e510b26002761bd5856fb371f7aed37527 02-Oct-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus should not scroll automatically.

1. We use auto scroll when a view gets accessibility focus.
Pros: Having magnification and TalkBack enabled together (not a common use case)
will have the accessibility focused view on the screen (it is auto panned).
Cons: A blind user can get stuck in a very lock scroll view - not good.

2. We do not auto scroll when a view gets accessibility focus.
Pros: A blind user cannot get stuck in a long scroll view as he has to explicitly
scroll.
Cons: The magnified area will not pan to ensure the accessibility focused view
is visible.

Option one is the better trade off and this change removes the auto scrolling.

bug:7265773

Change-Id: I209b54ed18acad36c1f35b4c09b980e45ec9bbff
/frameworks/base/core/java/android/view/View.java
3dadb63c7f8a2c311c4318e76aa540e3c0117036 02-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 44bfaedd: am 338a3853: am efe9b483: Merge "Fix bug #7259242 text is left justified with no padding" into jb-mr1-dev

* commit '44bfaedd1e0b4abad9748b2c6f70d805af22bb27':
Fix bug #7259242 text is left justified with no padding
efe9b483547ac44dbc88bdfd6a54be5c95c2d889 02-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7259242 text is left justified with no padding" into jb-mr1-dev
6e6d78116b584272aeda6924d1802ba18d4b8758 02-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7259242 text is left justified with no padding

(padding is still hard)

- fix Toasts: basically the background drawable padding was not
taken into account

Change-Id: Iefd29782f50b6f6a56578cfeb2af119d381207f0
/frameworks/base/core/java/android/view/View.java
aae1299e2989db09681c230647299f92fe9bcccb 02-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 8135814a: am 9b6f05f8: am 749a9970: Merge "Fix bug #7259242 text is left justified with no padding" into jb-mr1-dev

* commit '8135814af23f85e129e8e3b7ed3ddaa41eca46fe':
Fix bug #7259242 text is left justified with no padding
946d05b95f849684b709a3750ef189388d6dc5a9 02-Oct-2012 Adam Powell <adamp@google.com> DO NOT MERGE - Revert fixes for ImageView/MeasureSpec/RelativeLayout

MeasureSpec.makeMeasureSpec has a bug where a negative or very large
size parameter will cause the resulting MeasureSpec value to
overflow. RelativeLayout partially relies on this when measuring
children with mode UNSPECIFIED; a default value of -1 in a local
variable ends up being passed to makeMeasureSpec, overflowing a mode
value to create a measurespec that is very large in size, with AT_MOST
as the mode. The correct behavior is for RelativeLayout to propagate
the UNSPECIFIED mode.

Unfortunately a number of custom view implementations in apps rely on
the buggy behavior as they do not implement their own onMeasure
method. This makes them fall back to View's default onMeasure
implementation, which accepts the spec's size unconditionally for
AT_MOST or EXACTLY modes, but falls back on
getSuggestedMinimum[Width|Height] for UNSPECIFIED. If the view had no
background drawable with dimensions and no minWidth field set, this
fix for RelativeLayout causes some views to measure with a size of 0
rather than a size of the 30-bit version of 0xFF...

Revert these fixes in the interests of compatibility. The next version
will conditionally use the new behavior if targetSdk > JB-MR1.

This also required reverting a fix for ImageView's adjustViewBounds
functionality, as it cannot be implemented reliably if this
RelativeLayout fix is not also in place.

Revert "Fix UNSPECIFIED measurement in RelativeLayout"

This reverts commit 132a742b94b9716451ddef30cec20548b346f1b9.

Revert "Fix adjustViewBounds handling for ImageView"

This reverts commit d5edc7721791ad807b9a8fbd923b8d6e73c399cc.
/frameworks/base/core/java/android/view/View.java
80766f1bdf19493bcbd4eae95fcea393c0b7f7ac 01-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7259242 text is left justified with no padding

(padding is hard)

- set correct values to mUserPaddingLeftInitial / mUserPaddingRightInitial
- reset padding to initial values depending on layout direction

Change-Id: I5cfb941b4874eafbfcfb5e2926f5a3c80b4931d3
/frameworks/base/core/java/android/view/View.java
d2e74f34003c38111c974dfa187cae6c331f2841 01-Oct-2012 Chet Haase <chet@google.com> am 1dd00221: am bcdaf8cb: am 62ea4363: Merge "Fix texture corruption" into jb-mr1-dev

* commit '1dd002214e9734aa862db9b7e7092aacd737e46d':
Fix texture corruption
51e1f8c2a0e49d2f72caa47b3147446f396ed166 01-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am e05c1726: am 3332a701: am 10c84edc: Merge "Fix bug #7199562 UI mirroring for RTL locales (Arabic, Hebrew, Farsi): Play settings" into jb-mr1-dev

* commit 'e05c17263827fa26e63f83a82cb024af6b62900c':
Fix bug #7199562 UI mirroring for RTL locales (Arabic, Hebrew, Farsi): Play settings
725fc438a1399db0155af9ea819abdd66861dc51 01-Oct-2012 Romain Guy <romainguy@google.com> am d49faf39: am 25c8c198: am 8ed6b6a9: Merge "Perform a long computation to catch bitmap sizes > 32 bits Bug #7257930" into jb-mr1-dev

* commit 'd49faf39ec1eaff58d51e7f6458347ffd51e137c':
Perform a long computation to catch bitmap sizes > 32 bits Bug #7257930
639d09b4663b5bf44d2fd8dc00d6ef81dbc603cf 01-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 840ea01f: am 93cea34a: am f2e5cf48: Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev

* commit '840ea01fcbafe5d6b3fc8d90dcb5d99a65fa0113':
Fix bug #6427629 Clean up layout direction APIs
6a2d17f71342f981c9df1dc5beff33e30eb3ae2b 30-Sep-2012 Chet Haase <chet@google.com> Fix texture corruption

When memory gets low on a device, activities flush everything they can.
Hardware-accelerated activites, such as Launcher, flush GL resources and destroy
the GL context. However, some resources were still hanging around, due to deferred
destruction policies (we don't delete layers until the DisplayLists they are in
are finalized, to ensure we don't deref deleted objects). This meant that we were
referring to obsolete GL data in these objects. in particular, it meant that we might
come around later, after a new GL context was created, and delete a texture object
that was incorrect. We use the layer's "texture id" to refer to the texture underlying the
layer. But if there's a new GL context, then this texture ID is no longer valid, and
we may be deleting the texture that a different object (layer, icon, whatever) is referring
to, because the driver may return that same ID under the new GL context.

The fix is to more aggressively delete things that we know will not be used again
when the GL context is destroyed. In particular, we delete all resources being used
by all DisplayLists at GL context destruction time.

Issue #7195815 Textures corruption on all devices, in many apps

Change-Id: I52d2d208173690dbb794a83402d38f14ea4c6c22
/frameworks/base/core/java/android/view/View.java
10c84edcfa674f13d798f4de65f95c76269c6191 30-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7199562 UI mirroring for RTL locales (Arabic, Hebrew, Farsi): Play settings" into jb-mr1-dev
8ed6b6a96bf887e0b49c48838a9f22bb0f256296 30-Sep-2012 Romain Guy <romainguy@google.com> Merge "Perform a long computation to catch bitmap sizes > 32 bits Bug #7257930" into jb-mr1-dev
af61cc4cbb307dc3b9cb6f4aa232a0257157c9d2 30-Sep-2012 Romain Guy <romainguy@google.com> Perform a long computation to catch bitmap sizes > 32 bits
Bug #7257930

Change-Id: I28d08024fabe8103251d480524b0b0f2fd2d2aba
/frameworks/base/core/java/android/view/View.java
47fb191841c50f45f39c5fcce3554e4990188583 29-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7199562 UI mirroring for RTL locales (Arabic, Hebrew, Farsi): Play settings

- do not need those variables. Use what we already have in View.
- reset padding to initial values before changing it.

Change-Id: Ib396b3dca6e98a94d83a538a9b594b5eb426c453
/frameworks/base/core/java/android/view/View.java
f2e5cf487e9bda4da1b902cb5c816ba48c9b7004 30-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev
343e11345ed496003f605e1b3bba5850d3e6cf0e 29-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6427629 Clean up layout direction APIs

- remove onPaddingChanged(int) and fold it into onRtlPropertiesChanged(int)

Change-Id: I1d7f02d2b4538c6c991bd4285501bbc73e6aa5c3
/frameworks/base/core/java/android/view/View.java
686d8e73ac5c95ce65fb2ac377d8de534fb77f94 29-Sep-2012 Adam Powell <adamp@google.com> am 2e35df06: am 4984ec72: Merge "Fix adjustViewBounds handling for ImageView" into jb-mr1-dev

* commit '2e35df06e795e89af66850a9e12d9b1c53f9a53d':
Fix adjustViewBounds handling for ImageView
d5edc7721791ad807b9a8fbd923b8d6e73c399cc 27-Sep-2012 Adam Powell <adamp@google.com> Fix adjustViewBounds handling for ImageView

When computing the adjusted view bounds, don't constrain the
dimensions by the original estimate if the opposite dimension has a
fixed size. This can result in the view never getting properly
enlarged.

Also fix a long-standing bug in MeasureSpec.makeMeasureSpec where
oversized or negative values could result in broken packed values.

Bug 7240251

Change-Id: I359d108ff52b6f3b5c4bf393d2271d28999c0127
/frameworks/base/core/java/android/view/View.java
658d260b1af30998af2b5857c8c621284f2cd06e 28-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am b1b6be8b: am 669aa7cb: Merge "Other improvements for bug #6427629 Clean up layout direction APIs" into jb-mr1-dev

* commit 'b1b6be8bc36a95eab263c04cc77d3b7d29ca06f4':
Other improvements for bug #6427629 Clean up layout direction APIs
669aa7cb35e0d32fbf6f26a44e5ab8f6fae37de9 28-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Other improvements for bug #6427629 Clean up layout direction APIs" into jb-mr1-dev
3fd13cb4be84d8a1bc2d9688b76ab3642aca1027 28-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am ac7348a3: am 10a2979e: Merge "Fix bug #7249363 Icons in the Camera UI (to switch camera types and on the focus ring) are missing" into jb-mr1-dev

* commit 'ac7348a3228177a0e08b8be2fec88e23b82c6043':
Fix bug #7249363 Icons in the Camera UI (to switch camera types and on the focus ring) are missing
c1432543f637cb9e2f39c66dd891e791c842a953 28-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am f119af67: am 41148af5: Merge "Fix bug #7241988 Padding is mostly set to "0"" into jb-mr1-dev

* commit 'f119af675b77e34e791d3b02cae9401d0fdcfc06':
Fix bug #7241988 Padding is mostly set to "0"
75aefb8fe8d3b1fd6664f73273ad18d0236d4e82 28-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7249363 Icons in the Camera UI (to switch camera types and on the focus ring) are missing

- no need to initialize mPaddingLeft/Right to UNDEFINED_PADDING

Change-Id: Icfdcc9bcb904228443e9adfde8038b5d8764365b
/frameworks/base/core/java/android/view/View.java
9a04856d5ecb07dea564feae2942fd485b53f3dd 26-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Other improvements for bug #6427629 Clean up layout direction APIs

- hide isLayoutRtl() from public API

- canResolveXXX() is now smarter: use recursion to get its returned value

- in ViewGroup, if resolution cannot be done then dont ask resolution for
its children

- in ViewGroup, addViewInner() needs to ask to resolve the child. This is
needed for example by ListView which is using the same measurespec before
and after its childs being attached.

It also take care of the general case where a measure pass is done when not
attached to a parent (and thus asking for resolution that will "fail" if we
are using IHNERIT) and never done again. That would lead to never do a
resolution.

- some code refactoring

Change-Id: I120dd2fef7397944f5ba8deff0686b108dc827d2
/frameworks/base/core/java/android/view/View.java
bbd1029b702ea56804101ece9acd455282174293 27-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7241988 Padding is mostly set to "0"

- make RTL compatibility mode more straighforward. Done only in constructor
and resolved() is only done for real RTL case.

- fix also issue concerning needRtlPropertiesResolution(): we were missing
padding and drawables bits.

Change-Id: Ic0569f7542a0d66244e8c4bd35ae85949e39c559
/frameworks/base/core/java/android/view/View.java
d28c3643a60853dfd4cdf71496a5ab4aabd6fb43 26-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am 21289957: am fea9df63: Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev

* commit '21289957a91213c922236deb6010dbde1d652c5e':
Fix bug #6427629 Clean up layout direction APIs
fea9df6386d66089b004719f194625e159bb344a 26-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev
b2caa627bef2126799aae4d67b0f6a38e3eb48ac 26-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> am a5d09204: am 1908cf9e: Merge "Fixing argument expectations of View.requestRectangleOnScreen" into jb-mr1-dev

* commit 'a5d09204ff87539147163807428265ce857ee618':
Fixing argument expectations of View.requestRectangleOnScreen
989ae759f8037fc5427ce8c289a3f49151080df4 26-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Fixing argument expectations of View.requestRectangleOnScreen

1. In a previous patch the implementation of the method was fixed
in terms of end result but this broke some assumptions about the
method arguments. This change updates the argument expectations.

bug:7172035

Change-Id: I76d738b1c74dfb1dd45fc667f3217911f1c10a5f
/frameworks/base/core/java/android/view/View.java
1f88ba8bf67bb9264e39547ab1201aa3c5395d0e 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6427629 Clean up layout direction APIs

- getLayoutDirection() / getTextDirection() / getTextAligment() dont do resolution
- resolution done into onMeasure()
- use XX_RESOLVED bits to check if resolution needs to be done
- code formatting

Change-Id: Ie46a5535860e90f3449b96cfe0aa04dd7e3006d7
/frameworks/base/core/java/android/view/View.java
8c549d6ffec427ed3f8f99eb25ffefaf55003893 25-Sep-2012 Philip Milne <pmilne@google.com> Merge "Bug #6110465. Optical bounds support for all ViewGroup subclasses."
793d9abb892ea8e2c6714f08fda1520450c9b581 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am c86c9fc0: am f7a3e979: Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev

* commit 'c86c9fc092280cb961bf46e87050da9c46836278':
Fix bug #6427629 Clean up layout direction APIs
c60a19e36880ad2f01b515e20ce050742d29f2b7 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am 402bab75: am be4c5dd9: Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev

* commit '402bab75c360fd038910b3baedff54a1f4762c3d':
Fix bug #6427629 Clean up layout direction APIs
525926078b5f4b9eeceb21662cdebe763f4c5b45 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am 72d65718: am 239e4305: Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev

* commit '72d657182312c7bac049b3ed94a4658c3935ae28':
Fix bug #6427629 Clean up layout direction APIs
42f11c981c0666a988fc9a5e1a0d78a0a8d5a5b1 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am c81a319f: am e3f2ac9e: Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev

* commit 'c81a319f1a2834590f1b7e5cfed0bbdba49d0838':
Fix bug #6427629 Clean up layout direction APIs
f7a3e979a7ab3be4715408b6328f27e56a7c9326 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev
1a7d487380460b4aea37140baf6bf4bf7f92f8a5 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6427629 Clean up layout direction APIs

- rename getResolvedTextAlignment() to getTextAlignment()

Change-Id: I6a2b6c9ec4f5cea1adde46e35d5f3c49880791ee
/frameworks/base/core/java/android/view/View.java
be4c5dd9d0b3ec1e020431f0e618a4cf38f9c57d 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev
97e146cf02f87b91f81c37d53644e5415efddb72 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6427629 Clean up layout direction APIs

- rename getResolvedTextDirection() to getTextDirection()

Change-Id: Id2a6025daf5521dcd676e454fc6bb9955fdccf2d
/frameworks/base/core/java/android/view/View.java
239e430578fd2d3bd38a646595a82bca95359bd7 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev
e3f2ac9e526e5b4de4d2ae113e644c1cb14b1ce6 24-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6427629 Clean up layout direction APIs" into jb-mr1-dev
e56ffdc7b31b0937628609cc3bbaa15879023569 23-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6427629 Clean up layout direction APIs

- rename getResolvedLayoutDirection() to getLayoutDirection()

Change-Id: I3afe56c0db0751952f5056c23893cb7455531d29
/frameworks/base/core/java/android/view/View.java
4457e85a7090ad51726d50a4daf981d917cceedd 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6427629 Clean up layout direction APIs

- canResolveXxx() should be hidden
- resetResolvedXxx() should be hidden
- resolveDrawables(), resolveLayoutDirection(), resolvePadding(), resolveTextAlignment(), resolveTextDirection() should be hidden
- onResolvedXxx() should be merged into one callback
- fix also an issue with setting the layout direction of the drawable in ImageView
- fix also an issue with checking if TextAlignment can be resolved

Change-Id: I1402269ddf8632525f5550f80e5610e1a7b4034d
/frameworks/base/core/java/android/view/View.java
7b7578184567f4e4f0740ce935cc192765410cca 20-Sep-2012 Philip Milne <pmilne@google.com> Bug #6110465. Optical bounds support for all ViewGroup subclasses.

This CL generalizes the optical bounds support previously contained in the
GridLayout implementation and then incorporates the new form directly into
the base View and ViewGroup implementations. After this change, GridLayout is
returned to an 'optical bounds' unaware state, and all layouts (including non-platform
ones) inherit the ability to perform their layout operation by optical (rather than clip)
bounds using their existing implementations.

The "layoutMode" property of ViewGroup and its associated constants are
made public in this CL.

Change-Id: Ic1bba0e1c6fc14da4aeab0b28c975d562b5f82dd
/frameworks/base/core/java/android/view/View.java
7fdf367d7ad63c90c13ddf553d05f58030454191 21-Sep-2012 Romain Guy <romainguy@google.com> am 0b697061: am 3f7c246f: Merge "Update layers in a single batch at the beginning of a frame Bug #7186819" into jb-mr1-dev

* commit '0b69706103dc6ddf765fa2e86265a6428f6728bb':
Update layers in a single batch at the beginning of a frame Bug #7186819
11cb642756093a4af901b1525375b1eb2b5c3e2b 21-Sep-2012 Romain Guy <romainguy@google.com> Update layers in a single batch at the beginning of a frame
Bug #7186819

Change-Id: Ice5926dfedfb3be3a3064e65008dafa2852407da
/frameworks/base/core/java/android/view/View.java
69235be49312dcf2b6c3181a27509259a18d553a 21-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> am eedda1d1: am 8da91a69: Merge "Fix bug #7205072 Text inside popup window is too close to the edge" into jb-mr1-dev

* commit 'eedda1d1c66c736b68027c452402292edef4d4ae':
Fix bug #7205072 Text inside popup window is too close to the edge
3e27c34e0ef0563be9ee14ca9fc80cf6adabdd70 21-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7205072 Text inside popup window is too close to the edge

- if targetSDK is pre JB-MR1 then we really need to use the User padding
when it is defined and valid

Change-Id: If416fbc181b8784de446e9171529147ab03c9373
/frameworks/base/core/java/android/view/View.java
7e5b586a26603e3f59881789bf7dfd8e8a76b92c 20-Sep-2012 Jeff Sharkey <jsharkey@android.com> am 4747d052: am 4e7b551f: Merge "Move HAS_TRANSIENT_STATE flag into a safe area." into jb-mr1-dev

* commit '4747d0520035dab151e71d839fee898c3f8dd8ae':
Move HAS_TRANSIENT_STATE flag into a safe area.
971405797f1131d69cb77ac449e66ac4a6276100 13-Sep-2012 Chet Haase <chet@google.com> Handle requestLayout() calls during layout

Calling requestLayout() during a layout pass is inadvisable, but
happens often enough in applications (especially when it occurs in
very indirect means that the application may not easily be able to
control) that we need to handle the situation without breaking. In particular,
applications that have run across this problem have had artifacts which are
difficult to debug (like things just not showing up on the screen) and
also difficult to fix. One of the side-effects of the problem is that it
leaves the view hiearchy in an unpredictable state where some views have
requested layout and are waiting to be layed out while the root view has
not received those requests, so it is never calling layout on those views.

The fix is to try to do the 'right' thing, while avoiding getting into
an inifinite loop (which could result from calling layout, which calls requestLayout(),
which causes another layout, which ...). The solution is two-tier: we handle
all requests that happen during layout by delaying them until after the current
layout is done. We then process those requests and call layout again.
If we receive more requests during that second layout, we post them to the
next frame, to allow us to finish the current one.

Issue #7155974 handle requestLayout() during layout more robustly

Change-Id: I9d13c405be28a19c86add22210e69817ddddaf8b
/frameworks/base/core/java/android/view/View.java
36901b6c6029b561b4600916cbacc57d4e933703 20-Sep-2012 Jeff Sharkey <jsharkey@android.com> Move HAS_TRANSIENT_STATE flag into a safe area.

Previously, this flag conflicted with other text direction flags,
which can cause weird interactions across the View hierarchy,
specifically with ListView.

Also adds dumpFlags() utility to dump values of all know flags for
documentation and sanity checking.

Bug: 7189738
Change-Id: Iceb2f93f68a800e19a5889ced93abcce4932b067
/frameworks/base/core/java/android/view/View.java
072533e934e759b95228ba61152e7d958b641b96 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7146516 Padding can be "over" resolved" into jb-mr1-dev
efa568525fc7755ac49e44e75246b2be1ef5269f 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix some typos in Javadoc for Accessibility APIs" into jb-mr1-dev
69542e48c3ee35f116431c2eb64a8db3073c9f8e 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix some typos in Javadoc for Accessibility APIs

Change-Id: Ie3ca20e1c3bb11fb59bd7dcaed9ea92be320b3eb
/frameworks/base/core/java/android/view/View.java
9ffc6047f14883f853b643a2913bd590995b9031 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7173155 API REVIEW: android.view.View" into jb-mr1-dev
c11f77fbae8391ca3c2d3ec93d024cba0be5cf55 19-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7173155 API REVIEW: android.view.View

- remove getFocusRect(Rect) as it was redundant
- fix Javadoc

Change-Id: I3784c4b0a38770cba5d3ba09196f9271050a3c20
/frameworks/base/core/java/android/view/View.java
20586fa0353f63453766140b32a4778793ce2b43 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7173351 API REVIEW: android.util.LocaleUtil" into jb-mr1-dev
dbed514e137de66d19050b72ad941a687e13c9d4 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #7172699" 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
/frameworks/base/core/java/android/view/View.java
49b0a9b4705d869f05a57ed3acf42ba5652294b2 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7172699

- remove @link as we are already using a @see which is doing a link by itself

Change-Id: I6ff6979bb2d960c3c980cdf0a88885b92e80fd7f
/frameworks/base/core/java/android/view/View.java
603f6de35f21d74ae242d52d501f4f5c25ff4f4c 15-Sep-2012 Chet Haase <chet@google.com> Fix occasional crash bug with layers

Launcher occasionally crashes with a stack trace indicating that the memory
of a Layer object is corrupt. It is possible for us to delete a Layer
structure and then, briefly, use it to draw a DisplayList again before
that DisplayList gets recreated (without the layer that got deleted).

When this happens, if the memory got corrupted, it's possible to crash.

The fix is to add Layer to the other objects which we currently refcount
(bitmaps, shaders, etc.). Then instead of deleting a Layer, we decrement the
refcount. We increment when creating it, then increment it again when it's
referenced from a DisplayList. Then we decrement the refcount instead of
deleting it, and decrement when we clear a DisplayList that refers to it.
Then when the refcount reaches 0, we delete it.

Issue #6994632 Native crash in launcher when trying to launch all apps screen

Change-Id: I0627be8d49bb2f9ba8d158a84b764bb4e7df934c
/frameworks/base/core/java/android/view/View.java
33aef98fd28dcac0a2ad37e7329afd3e666f5e0a 13-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Allowing association between a view and its label for accessibility.

1. For accessibility purposes it is important to be able to associate
a view with content with a view that labels it. For example, if
an accessibility service knows that a TextView is associated with
an EditText, it can provide much richer feedback.

This change adds APIs for setting a view to be the label for another
one and setting the label for a view, i.e. the reverse association.

bug:5016937

Change-Id: I7b837265c5ed9302e3ce352396dc6e88413038b5
/frameworks/base/core/java/android/view/View.java
7eac0f557cd87486d0f10b7c72e25aeb195a4351 13-Sep-2012 Craig Mautner <cmautner@google.com> Propagate systemUiVisibility changes to window manager

The mAttachInfo.mSystemUiVisibility value was changing in
View.dispatchAttachedToWindow but
mAttachInfo.mRecomputeGlobalAttributes was not being set.
Consequently ViewRootImpl.collectViewAttributes was returning
without updating the subtreeSystemUiVisibility. This is fixed
by calling needGlobalAttributesUpdate in dispatchAttachedToWindow.

WIthin ViewRootImpl.collectViewAttributes the assignment to
subtreeSystemUiVisibility was only being made if
mAttachInfo.mSystemUiVisibility was changed within
collectViewAttributes. But mAttachInfo.mSystemUiVisibility
was changing outside of collectViewAttributes in
dispatchAttachedToWindow. Consequently subtreeSystemUiVisibility
was never updated. By looking for a mismatch between
subtreeSystemUiVisibility and mSystemUiVisibility
subtreeSystemUiVisibility gets assigned whenever it is out of
sync.

Fixes bug 7091817.

Change-Id: I1e97a7dec14dc9594876175ae26370fb9030a8a6
/frameworks/base/core/java/android/view/View.java
7e7786a4d11351519d8047cd60f59a43d460ee9e 11-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7146516 Padding can be "over" resolved

- need to cache the initial User padding and use it for restoring
to the initial state of padding before doing padding resolution

Change-Id: I4efdaea7ba21930537bf5032e80e70d70bf38b5b
/frameworks/base/core/java/android/view/View.java
ee6c6ae5b2111bbb602dbc8030ba3c8eb014cc6e 11-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Fixing implementation of View.requestRectangleOnScreen(Rect, boolean).

1. The implementation was not taking into account the transformation
matrices if the views.

2. The rectangle that was passed as an argument to
ViewParent.requestChildRectangleOnScreen was modified by
some implementations - now care is taken to prevent it.

3. The scroll of child was used when a rectangle of its coordinate
system was mapped to one in the parent system. However, the
scroll shows how much a parent has scrolled its descendants, so
the scroll of the parent has to be used not the child.

bug:7139556

Change-Id: I5b09eb7f105047e95282f74308968d5465831c84
/frameworks/base/core/java/android/view/View.java
d15ebf25c595b855f6978d0600218e3ea5f31e92 05-Sep-2012 Chet Haase <chet@google.com> Enable changing properties of layer paint

Previously, to draw a layered view with a changed Paint object for the
drawLayer operation, you'd have to invalidate the parent view, to get the
native DisplayList to pick up the new Paint properties. This change adds
API and functionality so that the developer can call setLayerPaint(), which
does the proper invalidation (lightweight, doesn't cause redrawing the view).

Issue #6923810 Make it easy to efficiently animate a layer's Paint

Change-Id: I7fea79788d50f6d9c86dd5e5b2a4490cb95142bb
/frameworks/base/core/java/android/view/View.java
6543c292b2d1cb3547f4565f89b7cb649ad955d6 07-Sep-2012 Romain Guy <romainguy@google.com> Merge "The drawables cache strikes again Bug #7117785" into jb-mr1-dev
f6aa537c2dddfa9c68af161c082b5d4f316bd068 07-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Make ProgressBar / SeekBar / RatingBar widgets aware of layout direction" into jb-mr1-dev
3540f1f28be473d066bf79956e6b3184c85b32b5 07-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Granular navigation uses mContentDescription instead of getCpontentDescription()s" into jb-mr1-dev
05282aa43eec80485fea126afd901f7009433adb 07-Sep-2012 Svetoslav Ganov <svetoslavganov@google.com> Granular navigation uses mContentDescription instead of getCpontentDescription()s

1. Getting the value of the content description via the method since
there is nothing preventing developers to override the method to
return a desired value (they should not do that but it is feasible).

bug:7079008

Change-Id: Iaf5848e9b065454ebfefccf685415fbf034ae475
/frameworks/base/core/java/android/view/View.java
1cf70bbf96930662cab0e699d70b62865766ff52 06-Aug-2012 Svetoslav Ganov <svetoslavganov@google.com> Screen magnification - feature - framework.

This change is the initial check in of the screen magnification
feature. This feature enables magnification of the screen via
global gestures (assuming it has been enabled from settings)
to allow a low vision user to efficiently use an Android device.

Interaction model:

1. Triple tap toggles permanent screen magnification which is magnifying
the area around the location of the triple tap. One can think of the
location of the triple tap as the center of the magnified viewport.
For example, a triple tap when not magnified would magnify the screen
and leave it in a magnified state. A triple tapping when magnified would
clear magnification and leave the screen in a not magnified state.

2. Triple tap and hold would magnify the screen if not magnified and enable
viewport dragging mode until the finger goes up. One can think of this
mode as a way to move the magnified viewport since the area around the
moving finger will be magnified to fit the screen. For example, if the
screen was not magnified and the user triple taps and holds the screen
would magnify and the viewport will follow the user's finger. When the
finger goes up the screen will clear zoom out. If the same user interaction
is performed when the screen is magnified, the viewport movement will
be the same but when the finger goes up the screen will stay magnified.
In other words, the initial magnified state is sticky.

3. Pinching with any number of additional fingers when viewport dragging
is enabled, i.e. the user triple tapped and holds, would adjust the
magnification scale which will become the current default magnification
scale. The next time the user magnifies the same magnification scale
would be used.

4. When in a permanent magnified state the user can use two or more fingers
to pan the viewport. Note that in this mode the content is panned as
opposed to the viewport dragging mode in which the viewport is moved.

5. When in a permanent magnified state the user can use three or more
fingers to change the magnification scale which will become the current
default magnification scale. The next time the user magnifies the same
magnification scale would be used.

6. The magnification scale will be persisted in settings and in the cloud.

Note: Since two fingers are used to pan the content in a permanently magnified
state no other two finger gestures in touch exploration or applications
will work unless the uses zooms out to normal state where all gestures
works as expected. This is an intentional tradeoff to allow efficient
panning since in a permanently magnified state this would be the dominant
action to be performed.

Design:

1. The window manager exposes APIs for setting accessibility transformation
which is a scale and offsets for X and Y axis. The window manager queries
the window policy for which windows will not be magnified. For example,
the IME windows and the navigation bar are not magnified including windows
that are attached to them.

2. The accessibility features such a screen magnification and touch
exploration are now impemented as a sequence of transformations on the
event stream. The accessibility manager service may request each
of these features or both. The behavior of the features is not changed
based on the fact that another one is enabled.

3. The screen magnifier keeps a viewport of the content that is magnified
which is surrounded by a glow in a magnified state. Interactions outside
of the viewport are delegated directly to the application without
interpretation. For example, a triple tap on the letter 'a' of the IME
would type three letters instead of toggling magnified state. The viewport
is updated on screen rotation and on window transitions. For example,
when the IME pops up the viewport shrinks.

4. The glow around the viewport is implemented as a special type of window
that does not take input focus, cannot be touched, is laid out in the
screen coordiates with width and height matching these of the screen.
When the magnified region changes the root view of the window draws the
hightlight but the size of the window does not change - unless a rotation
happens. All changes in the viewport size or showing or hiding it are
animated.

5. The viewport is encapsulated in a class that knows how to show,
hide, and resize the viewport - potentially animating that.
This class uses the new animation framework for animations.

6. The magnification is handled by a magnification controller that
keeps track of the current trnasformation to be applied to the screen
content and the desired such. If these two are not the same it is
responsibility of the magnification controller to reconcile them by
potentially animating the transition from one to the other.

7. A dipslay content observer wathces for winodw transitions, screen
rotations, and when a rectange on the screen has been reqeusted. This
class is responsible for handling interesting state changes such
as changing the viewport bounds on IME pop up or screen rotation,
panning the content to make a requested rectangle visible on the
screen, etc.

8. To implement viewport updates the window manger was updated with APIs
to watch for window transitions and when a rectangle has been requested
on the screen. These APIs are protected by a signature level permission.
Also a parcelable and poolable window info class has been added with
APIs for getting the window info given the window token. This enables
getting some useful information about a window. There APIs are also
signature protected.

bug:6795382

Change-Id: Iec93da8bf6376beebbd4f5167ab7723dc7d9bd00
/frameworks/base/core/java/android/view/View.java
0af4b8b0c8b038bca9b4f60eb81f71e186f471ce 12-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Make ProgressBar / SeekBar / RatingBar widgets aware of layout direction

- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: I8d76299090abf6b2b187696b1a83e71d7a44b1ce
/frameworks/base/core/java/android/view/View.java
5f49c3023a512efbef8bc9515d310c7a72be4af2 07-Sep-2012 Romain Guy <romainguy@google.com> The drawables cache strikes again
Bug #7117785

Draawables created from the ConstantState cache found in Resources must be
mutated before they can be safely modified by apps. Failure to do so results
in all drawables sharing the same constant state to be affected by the
modification.

In the case of the bugreport above, the status bar code plays tricks with
a background drawable and modifies its color to implement a fade in/out
effect. This drawable comes from a cached resource (color 0x0) and the
modifications made by the status bar apply to other clients of this drawable,
most notably the recents panel.

This change fixes several things:
- Simplifies colors caching by removing the assetCookie from the key. This
should result in better reuse of cached drawables
- Makes View.setBackgroundColor() honor the mutate() contract
- Ensure StateListDrawable properly mutates its children before modifying
them
- Optimize Bitmap/ColorDrawable to mark them mutated when they are not
created from an existing ConstantSate. The same optimization should be
applied to other drawables in the future

Change-Id: I54adb5d5b914c7d8930bf9b46f7e3f9dcbf4bcab
/frameworks/base/core/java/android/view/View.java
3667aa364f6882cc37b46f87c55b7e1230158d1c 06-Sep-2012 Chris Craik <ccraik@google.com> Don't trigger log for empty views

Change-Id: Idb2193d6dd064e5c4af1f02d0df2a83a7db0e0f8
/frameworks/base/core/java/android/view/View.java
10e9d1d7ad6296fca388451c71238cc43fe54756 06-Sep-2012 Chris Craik <ccraik@google.com> Log if a view fails to fit in the drawing cache

Large software layers won't draw if they're larger than the size of the drawing
cache, in which case this log will be triggered.

bug:7078391
Change-Id: Ib42a060b8e3b3642417df9243a086aa15b2989b1
/frameworks/base/core/java/android/view/View.java
fbb4321b94927fd6bd39d327fe56787989b11c71 31-Aug-2012 Romain Guy <romainguy@google.com> Don't quickReject() children if FLAG_CLIP_CHILDREN isn't set

External report: http://code.google.com/p/android/issues/detail?id=36788

Change-Id: Ibdaecf37ab013e30b16e9dc7a6e50156d72c3e4f
/frameworks/base/core/java/android/view/View.java
7808581ca3b462fb187aed6b0d1b86fb83a8a215 30-Aug-2012 Romain Guy <romainguy@google.com> Merge "Pre-multiply color components for 2-stop gradients Bug #7033344" into jb-mr1-dev
d679b57ef279239cf11bb6c9bd14fb99b07971c9 30-Aug-2012 Romain Guy <romainguy@google.com> Pre-multiply color components for 2-stop gradients
Bug #7033344

Change-Id: Ia168501f1dc56ba7a1bb0c55078320432309a66a
/frameworks/base/core/java/android/view/View.java
d5ea3b464795d4e6adbdd174d1bd2f78b628e280 30-Aug-2012 Jeff Brown <jeffbrown@google.com> Merge "Add initial multi-display support." into jb-mr1-dev
bd6e1500aedc5461e832f69e76341bff0e55fa2b 28-Aug-2012 Jeff Brown <jeffbrown@google.com> Add initial multi-display support.

Split the DisplayManager into two parts. One part is bound
to a Context and takes care of Display compatibility and
caching Display objects on behalf of the Context. The other
part is global and takes care of communicating with the
DisplayManagerService, handling callbacks, and caching
DisplayInfo objects on behalf of the process.

Implemented support for enumerating Displays and getting
callbacks when displays are added, removed or changed.

Elaborated the roles of DisplayManagerService, DisplayAdapter,
and DisplayDevice. We now support having multiple display
adapters registered, each of which can register multiple display
devices and configure them dynamically.

Added an OverlayDisplayAdapter which is used to simulate
secondary displays by means of overlay windows. Different
configurations of overlays can be selected using a new
setting in the Developer Settings panel. The overlays can
be repositioned and resized by the user for convenience.

At the moment, all displays are mirrors of display 0 and
no display transformations are applied. This will be improved
in future patches.

Refactored the way that the window manager creates its threads.
The OverlayDisplayAdapter needs to be able to use hardware
acceleration so it must share the same UI thread as the Keyguard
and window manager policy. We now handle this explicitly as
part of starting up the system server. This puts us in a
better position to consider how we might want to share (or not
share) Loopers among components.

Overlay displays are disabled when in safe mode or in only-core
mode to reduce the number of dependencies started in these modes.

Change-Id: Ic2a661d5448dde01b095ab150697cb6791d69bb5
/frameworks/base/core/java/android/view/View.java
b72fe7a2635906d6244efedfe302c2c46e564803 28-Aug-2012 alanv <alanv@google.com> Don't overwrite accessibility delegates in AbsListView items.

Bug: 6856579
Change-Id: I2963edcefdc0dd5e1413b57858e6f319904a269d
/frameworks/base/core/java/android/view/View.java
98365d7663cbd82979a5700faf0050220b01084d 20-Aug-2012 Jeff Brown <jeffbrown@google.com> Refactor for multi-display support.

Split WindowManagerImpl into two parts, the WindowManager
interface implementation remains where it is but the global
communications with the window manager are now handled by
the WindowManagerGlobal class. This change greatly simplifies
the challenge of having separate WindowManager instances
for each Context.

Removed WindowManagerImpl.getDefault(). This represents the
bulk of this change. Most of the usages of this method were
either to perform global functions (now handled by WindowManagerGlobal)
or to obtain the default display (now handled by DisplayManager).

Explicitly associate each new window with a display and make
the Display object available to the View hierarchy.

Add stubs for some new display manager API features.

Start to split apart the concepts of display id and layer stack.
since they operate at different layers of abstraction.
While it's true that each logical display uniquely corresponds to a
surface flinger layer stack, it is not necessarily the case that
they must use the same ids. Added Display.getLayerStack()
and started using it in places where it was relatively easy to do.

Change-Id: I29ed909114dec86807c4d3a5059c3fa0358bea61
/frameworks/base/core/java/android/view/View.java
4702a856973a553deb82f71b1d3b6c3db5dbf4ba 18-Aug-2012 Dianne Hackborn <hackbod@google.com> More view hierarchy, fragment debugging.

Add a View.toString() method.

Rename all of the View private flags to have a PFLAG prefix to
avoid going insane trying to figure out which constant goes with
which flag.

Activity.dump() now includes a summary of the activity's view
hierarchy, using the View.toString() method.

All exceptions thrown by FragmentManager now perform a dump of
the owning activity state, where appropriate.

Change-Id: I6482e397e10cb5a0612ab02ce6ed5131823437a6
/frameworks/base/core/java/android/view/View.java
23c89fd1685a006957dc0f2aacf167b4449f3d80 13-Aug-2012 Fabrice Di Meglio <fdimeglio@google.com> Improve resolution of RTL related properties

- fix bug #6887370 ListPreference shows misaligned radio drawables (in CheckedTextView?)
- fix bug #6938146 "Show more cards..." text on bottom button is not centered

- also defer scrollbar initialization as we need resolved padding values for them

Change-Id: Ife651ffe6bbcc228ff6724f3d9b91079fac3a740
/frameworks/base/core/java/android/view/View.java
96f1ee9867f966857c2dbd8cdd168d8fcdf72224 08-Aug-2012 Adam Powell <adamp@google.com> Merge "Fix a padding resolution bug for adapter-based views" into jb-mr1-dev
0090f20001470ed078177ccfc1f5e03842258fe1 08-Aug-2012 Adam Powell <adamp@google.com> Fix a padding resolution bug for adapter-based views

If padding has not been resolved by the time measure() is called,
resolve it.

Bug 6938579

Change-Id: Idd3ffa3e4e441cd462d6594b1e20d153d7632994
/frameworks/base/core/java/android/view/View.java
2440e670de0294bdf64592849613db9b8f00ee11 07-Aug-2012 Romain Guy <romainguy@google.com> Catch padding changes in ViewGroup to properly clip children
Bug #6886339

RTL support introduced a new way to handle padding which broke
existing behavior in ViewGroup.setPadding(). The new code path
was not notifying ViewGroup which would prevent it from setting
a flag used to clip children.

Change-Id: I584143714cb81fd664b4ecd9fb51d56bae04ba05
/frameworks/base/core/java/android/view/View.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.
/frameworks/base/core/java/android/view/View.java
ddd88726a247e4100cb62b3dc9d0887ca2ae2ec4 26-Jul-2012 Jeff Smith <whydoubt@yahoo.com> am 71930dd7: am a45746ef: Fix several cases of broken droiddoc syntax external issue 35214

* commit '71930dd77e4dc6f6be5c648019d2ab0da5f0584c':
Fix several cases of broken droiddoc syntax external issue 35214
71930dd77e4dc6f6be5c648019d2ab0da5f0584c 25-Jul-2012 Jeff Smith <whydoubt@yahoo.com> am a45746ef: Fix several cases of broken droiddoc syntax external issue 35214

* commit 'a45746efadd11bb7dfab026fb3c81a25fae74ca4':
Fix several cases of broken droiddoc syntax external issue 35214
a45746efadd11bb7dfab026fb3c81a25fae74ca4 19-Jul-2012 Jeff Smith <whydoubt@yahoo.com> Fix several cases of broken droiddoc syntax
external issue 35214

patch contributed by Jeff Smith <whydoubt@yahoo.com>

Change-Id: I70dcee88a140699bf3e1ab369bed6dcd2fdd3d83
/frameworks/base/core/java/android/view/View.java
599913d6e8e610665fad7edd7dfbd3cd48758b3a 24-Jul-2012 Chet Haase <chet@google.com> Account for static child transformations correctly

Optimizations in drawing and invalidation in JB did not correctly
account for static child transforms
(View.getChildStaticTransformation()).
For the invalidation part, this meant that views were not properly
setting the invalidation bounds (which should be transformed by
the static transform), so the affected area of the invalidation
was potentially incorrect. For the drawing part, this meant that
views outside of their parent's bounds were being incorrectly
rejected when the static transform would, in fact, place the views
inside of those bounds.

The fix is in two parts:
- drawing: avoid the early quickReject() logic for containers that
have static transformations set on them
(ViewGroup.setStaticTransformationsEnabled()).
- invalidation: Include the static transform in the invalidation
area propagated up the view hierarchy.

Issue #6864203 The child position outside of parent is not drawn
even it will be drawn inside of the parent after applying static
transformation

Change-Id: I73bea01feab250bdcae2d575313be355a4a3c8f5
/frameworks/base/core/java/android/view/View.java
34caec99407570766d27106f73668802150e7357 20-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> Views with node providers are important for accessibility in auto mode.

1. If a view's important for accessibility attribute is set to auto the
framework is responsible to determine if it really is. Views with
accessibility node providers should be important for accessibilty
since they are roots of virtual view trees and such trees are
always important.

bug:6843043

Change-Id: I4b352c59fdefdf9ad220714a43ecb9e01d1c1c1f
/frameworks/base/core/java/android/view/View.java
016456e4327fdd501afafc1958653bdbc4fe7af5 18-Jul-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix padding resolution

Change-Id: I2181a0a4057be0d20744b1512dbc1fbc53490d81
/frameworks/base/core/java/android/view/View.java
a9108a217e039492855fbeacda2ab6c4f4a3f70a 18-Jul-2012 Adam Powell <adamp@google.com> Add View#generateViewId; make RadioGroup use it

Bug 6448164

generateViewId provides a way for applications to generate opaque ID
values suitable for use with View#setId that will not collide with
values generated by aapt for R.id.

Fix a bug where RadioGroup assumes object hash codes will always be
positive.

Change-Id: I3e2870cd672d6061bb465128f428c81aeef0c44b
/frameworks/base/core/java/android/view/View.java
c9c9a48e7bafae63cb35a9aa69255e80aba83988 16-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> Removing a workaround for incorrect window position on window move.

1. The window manager was not notifying a window when the latter
has been moved. This was causing incorrect coordinates of the
nodes reported to accessibility services. To workaround that
we have carried the correct window location when making a
call from the accessibility layer into a window. Now the
window manager notifies the window when it is moved and the
workaround is no longer needed. This change takes it out.

2. The left and right in the attach info were not updated properly
after a report that the window has moved.

3. The accessibility manager service was calling directly methods
on the window manager service without going through the interface
of the latter. This leads to unnecessary coupling and in the
long rung increases system complexity and reduces maintability.

bug:6623031

Change-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d
/frameworks/base/core/java/android/view/View.java
87e8b25ea3c95be5921a79c65fbf4060de2e2e84 13-Jul-2012 Chet Haase <chet@google.com> Merge "Remove redundant computeScroll() call for hw-accelerated views"
401b1f85746ab7005907747a59534def967d825b 13-Jul-2012 Romain Guy <romainguy@google.com> Merge "Remove obsolete optimization"
f877308f77f7c6f3edd91618a092207dd3be9077 13-Jul-2012 Romain Guy <romainguy@google.com> Remove obsolete optimization

Change-Id: I2d43c009c62a7f4a4a2e0a6303bdfa692c4b8c8c
/frameworks/base/core/java/android/view/View.java
526057bc77150e608666bbc80a0c9626254650a0 13-Jul-2012 Chet Haase <chet@google.com> Remove redundant computeScroll() call for hw-accelerated views

View.draw() calls computeScroll() to initialize scrolling values correctly.
But getDisplayList() also calls computeScroll() for the same reason, resulting
in 2 calls to that method for hw-accelerated views.
Fix: avoid calling computeScroll() in View.draw() for views with display lists.

Change-Id: I57a3862e2d554752cd0fdb862513cbb3dfb3105c
/frameworks/base/core/java/android/view/View.java
f0af1d5cb255f136d2fff773be7518ffd7ae3b93 12-Jul-2012 Romain Guy <romainguy@google.com> Remove unused View.flushLayer() API

Change-Id: I5d4c7388afb5265964ab6b769cc0abfee9745c84
/frameworks/base/core/java/android/view/View.java
7d3082a3f09e32e7c42b2896e90902157039b10e 12-Jul-2012 Romain Guy <romainguy@google.com> Update View's opacity when changing the background color

Change-Id: Ib5851d47918c99d4906055a9d0245ea100aee231
/frameworks/base/core/java/android/view/View.java
4c9dfc4da992f67a86209d8b2b8539d697373ad6 12-Jul-2012 Romain Guy <romainguy@google.com> Merge "Update layers' opaque property when needed"
846a533945576e5cb1a66529ca3a52d71749f04f 12-Jul-2012 Romain Guy <romainguy@google.com> Update layers' opaque property when needed

Before this change, changing a View's opacity would not be reflected
by hardware layers. This could cause layers to retain their previous
opacity.

Change-Id: Iba2c8b4242deca021651df9324cc7c585a64653d
/frameworks/base/core/java/android/view/View.java
fbf885b652272013f44da71e9f77923333bf62eb 10-Jul-2012 Craig Mautner <cmautner@google.com> Merge "Notify client side of window movement."
905bd369510838b35db61c30d6b8e2c5f564be6a 10-Jul-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Make ScrollBar widget aware of layout direction"
55aeca913f17e5cb9ab07ef79b0b01377ae88cbd 10-Jul-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Improve resolution of inherited layout direction"
fd8d9c4c0a3930c9b2585cd54ea4288fbb15cceb 10-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> AccessibilityNodeInfo bounds in screen incorrect if application scale not one V2.0.

1. If the application does not accommodate different screen density the
system applies an application scale equal to the device density over
the a default density. The AccessibilityNodeInfo coordinates were not
reported after applying the compatibility scale, therefore the bounds
in parent and screen were not as perceived by the user.

bug:6764586

Change-Id: Id9de3de885210d0725d1f3fde38e769b0cfd12a7
/frameworks/base/core/java/android/view/View.java
9dc2cc53ac332d73376f64cc8e7c713762d74bdd 04-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "AccessibilityNodeInfo bounds in screen incorrect if application scale not one."
983119ab22a18c743e4084dff27f35e3f490dd34 04-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> AccessibilityNodeInfo bounds in screen incorrect if application scale not one.

1. If the application does not accommodate different screen density the
system applies an application scale equal to the device density over
the a default density. The AccessibilityNodeInfo coordinates were not
reported after applying the compatibility scale, therefore the bounds
in parent and screen were not as perceived by the user.

bug:6764586

Change-Id: Iae2d6ea81049364194c7cb09df2240b5eda3d939
/frameworks/base/core/java/android/view/View.java
a0fd78897c532246e0da3819bcfcb66299076084 03-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Remove the accessibility focus search code."
7a82b2be0674cc9c925c6892aa8a534896e277f9 03-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> AnnounceForAccessibility is broken for any view that has a ContentDescription.

1. The purpose of the View#announceForAccessibility method is to
give a message to the user that is not related to a predefined
view state change. The current implementation is grabbing the
source view's content description which in general overrides
the event text which defeats the purpose of the announcement.

bug:6721440

Change-Id: I8814914bea38c5f4c04f57391a64cf2bb06cb975
/frameworks/base/core/java/android/view/View.java
27e2da7c171afa39358bbead18fbe3e6b8ea6637 03-Jul-2012 Svetoslav Ganov <svetoslavganov@google.com> Remove the accessibility focus search code.

1. In JellyBean we have added some APIs to search for next accessibility
focus in various directions and set accessibility focus from hover.
However, we have decided that there is not clean answer for how this
should behave and the APIs were hidden. Now the accessibility service
is responsible for that. The unused code is now taken out.

2. This patch also takes out the hidden attribute accessibiligyFocusable
since we moved the responsibility for implementing focus search strategy
to accessibility services and we did not need that for Jellybean which
is a good sign that this is not needed. I general this is one less thing
for an app developer to worry about. We can add this if needed later.

bug:6773816

Change-Id: I0c858d72c93a2b7ff1f8f35a08d33ec4b9eb85fd
/frameworks/base/core/java/android/view/View.java
5702d4dfb5b81491f873a3617f8d8fc8dc5279e6 30-Jun-2012 Craig Mautner <cmautner@google.com> Notify client side of window movement.

Add a one way method to notify Views that the window has moved
on the screen. Fixes issues arising from the IME popping up and
translating the window that uses it. Accessibility was left unaware
of these movements and was drawing the box around the wrong widgets.
Similarly PopupWindow used getLocationOnScreen to determine how
much screen real estate was above and below the anchor point to
determine where to put an anchored window.

Fixes bug 6623031.

Change-Id: I4731a94d5424c1ec77bf1729fba8fc9ea34cae46
/frameworks/base/core/java/android/view/View.java
ba64974141bb04d35759c7a8f1741d23c172f9a5 29-Jun-2012 Michael Jurka <mikejurka@google.com> Removing setChildrenLayersEnabled

Change-Id: I88d8228eadb59160648f2c4e131fcd85945f2109
/frameworks/base/core/java/android/view/View.java
b93911f2e05450de86aa0075144750bc31f499c2 27-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Improve resolution of inherited layout direction

allow to resolve it even more lazily: if resolution is asked then do it
only if possible (the View needs to have a parent that can also do its
resolution)

Change-Id: I8e808f0ef392521e59b27b82f86e9058f20af9ba
/frameworks/base/core/java/android/view/View.java
41e6e0c49f51e5bafca4912d407202f572d4e208 23-Jun-2012 Jean-Baptiste Queru <jbq@google.com> am c34188a9: resolved conflicts for merge of f8f76d52 to jb-dev-plus-aosp

* commit 'c34188a95405526416325604386af4f48ba20918':
Add the possibility to modify the View focus rect
c34188a95405526416325604386af4f48ba20918 23-Jun-2012 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of f8f76d52 to jb-dev-plus-aosp

Change-Id: I83beeb45320de2c3fc3a00c2f5cd86a17ac1dc9f
c91b6ca442cc4573a314c78864d1e5a3e1f27ac6 22-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Make ScrollBar widget aware of layout direction

- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)
- also use isLayoutRtl() for being more concise

Change-Id: Ibf861333effdc646398fcd9354d96f2156550607
/frameworks/base/core/java/android/view/View.java
c32b2091d6441e7709342ca62f0976fc4a0367e4 18-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am 45c4a8df: am ec7c7ebf: Merge "API for finding accessibility focus in virtual tree not needed." into jb-dev

* commit '45c4a8df9487f53af37ded1f5a1ebe500e89b493':
API for finding accessibility focus in virtual tree not needed.
041982bf50b3ce4a26170c52c732f328f519f650 18-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am 11832db4: am 531d5866: Merge "Accessibility focus search and setting it from hover are performed by the client." into jb-dev

* commit '11832db437d04d71dec9a78382138b2dd6518e37':
Accessibility focus search and setting it from hover are performed by the client.
45a02e0809c14a52aa24658666df0d41ce661857 18-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> API for finding accessibility focus in virtual tree not needed.

1. The function for finding where the accessibility focus in a virtual
node tree presented by an AccessibilityNodeProvider is not needed
API since the framework already keeps track of the accessibility
focused virtual node in order to draw the focus rectangle. This API
adds unnecessary complexity to developers of AccessibilityNodeProviders.

bug:6675330

Change-Id: I84774686b06a995073a39e45b8ef22f2cd04b773
/frameworks/base/core/java/android/view/View.java
8ffe8b304e4778b3c95e57ad5a77cd41c9cf9f7b 15-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus search and setting it from hover are performed by the client.

1. Currently we are providing accessibility focus search algorithm in the
framework and we are also setting accessibility focus from hover. It
appears that implementing a focus search strategy that works for all
accessibility services is non trivial task if feasible. Based on
feedback from the developers of two such services at Google - TalkBack
and BarilleBack - the built in focus search does not quite match what
they need and they would like to implement a custom strategy.

Hence, having APIs for accessibility focus search in the framework does
not make. Therefore, we are hiding this APIs and later will take out the focus
search logic and allow the accessibility service to implement search.

Also putting accessibility focus from hover is tightly integrated with
the focus search since the set of views that get accessibility focus
from hover should be the same as the set of views returned by the
focus search routine. Therefore, we are letting the accessibility service
decide where to put accessibility focus when it gets an accessibility
hover event.

bug:6675330

Change-Id: Ie152230990a6602f3fd1d82de2177d0b1444d654
/frameworks/base/core/java/android/view/View.java
23ef5fcff4d99ce05ace9fd43dd0c1ace9489579 12-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am 5d15f40a: am f372e331: Merge "NPE when iterating by character and word in Launcher widgets." into jb-dev

* commit '5d15f40a19be01fa9c5a9674b31b6b18774cbeac':
NPE when iterating by character and word in Launcher widgets.
bbd31559f32f86a100904fe8a5bc37677b5ba441 11-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> NPE when iterating by character and word in Launcher widgets.

1. The character and word iterators were use the application
context to keep track of locale changes. However, for widgets
the context from which the app context is obtained is custom
created therefore the app context is null and the iterators
code does not expect that. Now we are caching the locale
and update it when the configuration changes.

bug:6642281

Change-Id: I3fd201ab9e4efd79e3bdc8afd8ee644e4354a7fb
/frameworks/base/core/java/android/view/View.java
4210a6f08b18604b94df5a8983628650645112b5 07-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am 8114f439: am ddbcce81: Merge "Cannot interact with dialogs when IME is up and on not touch explored popups." into jb-dev

* commit '8114f439fe8b409a00ac704b37128922690e2186':
Cannot interact with dialogs when IME is up and on not touch explored popups.
86783474fdec98a22bc22e224462767eab13e273 07-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Cannot interact with dialogs when IME is up and on not touch explored popups.

1. If the last touch explored location is within the active window we
used to click on exact location if it is within the accessibility
focus otherwise in the accessibility focus center. If the last touch
explored location is not within the active window we used to just
click there. This breaks in the case were one has touch explored
at a given place in the current window and now a dialog opens *not*
covering the touch explored location. If one uses swipes to move
accessibility focus i.e. to traverse the dialog without touching
it one cannot activate anything because the touch explorer is using
the last touch explored location that is outside of the active
window e.g the dialog.

The solution is to clear the last touch explored location when a
window opens or accessibility focus moves. If the last touch
explored location is null we are clicking in the accessibility
focus location.

bug:6620911

2. There is a bug in the window manager that does not notify a
window that its location has changed (bug:6623031). This breaks
accessibility interaction with dialogs that have input because
when the IME is up the dialog is moved but not notified. Now
the accessibility layer gets incorrect location for the
accessibility focus and the window bounds.

The soluion is when the accessibility manager service calls
into the remove thress to obtain some accessibility node infos
it passes the window left and top which it gets from the
window manager. These values are used to update the attach info
window left and top so all accessibility node infos emitted
from that window had correct bounds in screen coordinates.

bug:6620796

Change-Id: I18914f2095c55cfc826acf5277bd94b776bda0c8
/frameworks/base/core/java/android/view/View.java
5fccbbebdf010ed9457cab8a720f68a0b4e9d4c7 06-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am cf27a374: am 538252cd: Merge "Removing leftover code to sync accessibility and input focus." into jb-dev

* commit 'cf27a3743941d9ccb1d20a294085819049fac028':
Removing leftover code to sync accessibility and input focus.
538252cd37945612a4761ff03d87022d56e33b96 06-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Removing leftover code to sync accessibility and input focus." into jb-dev
462a7284b52503f1d7f2b3b9c9e9397d0c40d0ed 06-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Removing leftover code to sync accessibility and input focus.

1. We have decided to let the accessibility services take care
for syncing accessibility and input focus. Some apps may
move input focus when a given view takes input focus which
dragging accessibility focus can lead to a loop in the
focus traversal. This change removes some leftover sync
code.

bug:6616861

Change-Id: I57cb44e315a386d13596794d3767b559e9ee3d99
/frameworks/base/core/java/android/view/View.java
7510230583e5ef5a94392e8ccdb1416b8d9f37cc 06-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am f1abc425: am cab5b8a9: Merge "Nodes with contentDescription should always be important for accessibility." into jb-dev

* commit 'f1abc4253111907ffb8e5ba19dffa8d00d92fc45':
Nodes with contentDescription should always be important for accessibility.
e47957a0bbe2164467ff6e7a566b0c9e4689cdc9 05-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Nodes with contentDescription should always be important for accessibility.

1. Now after setting the content description on a view we mark is as
important for accessibility of the current important for accessibility
mode of that view is auto.

2. Minor tweak to a touch explorer coefficient to make performing double
tapping easier.

bug:6615353

Change-Id: I3b477f533a3ebde85d425caf32ace5e851240f88
/frameworks/base/core/java/android/view/View.java
0fc37e46b44774f7706dea08b7b1ea7030d0fbe8 05-Jun-2012 Chet Haase <chet@google.com> am 7c54ef9a: am 14f73a02: Merge "Restore opaque alpha value when AlphaAnimation finishes" into jb-dev

* commit '7c54ef9a0e27b5146a51ebeb267a0a6a1fd9174f':
Restore opaque alpha value when AlphaAnimation finishes
bce6f97202dba948808e702a7a75d9ed8f46f537 05-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am b25605cd: am 72d6835c: Merge "Accessibility focus should not clear selection when taken away." into jb-dev

* commit 'b25605cd7111bcab41ec10547f015bd2d6215c91':
Accessibility focus should not clear selection when taken away.
2143337d50a983e9d9579f8ffb9fad8282f618e0 05-Jun-2012 Chet Haase <chet@google.com> Restore opaque alpha value when AlphaAnimation finishes

Alpha values were being set correctly on native Display Lists during an
AlphaAnimation, but not when the animation finished. Only non-1 values
were being propagated to the Display List properties.

The fix is to track when we've set a non-1 alpha value from an AlphaAnimation
and to notice that flag when the value is 1 (because the animation ended), so that
we propagate that value correctly. Using the flag avoids sending a value of 1
(by far the most common case) unless we really need to restore it after animating
it with non-1 values.

Issue #6600592 Sometimes album art blends with list asset on queue

Change-Id: I51047d756a4ac42a2d907a4d77963cc23dfb1db3
/frameworks/base/core/java/android/view/View.java
defdb1e49172fe7c9737347489dbb77361af955a 15-Dec-2010 Tobias Dubois <tobias.dubois@sonyericsson.com> Add the possibility to modify the View focus rect

This change makes it possible for a view to supply a different rectangle than
the drawing rect to be used by the FocusFinder when finding a new view to give
focus to. This is useful if e.g. the total view area is larger than the
interactive area of the view.

The default implementation of getFocusRect() will return getDrawingRect().
The existing behaviour is only changed if getFocusRect() is overridden by a
subclass of android.view.View

Change-Id: I52dd95c6fa296b744e354217051dcec1bb3c8e92
/frameworks/base/core/java/android/view/View.java
0a047bdcdd0ea8c58fa80bd4631fe8a8d02df050 05-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus should not clear selection when taken away.

1. Currently accessibility focus removal was clearing the selection
in the view - in particular the accessibility cursor position
which in the TextView case is the selection. This leads to a
scenario where the selection may be cleared when the app does
not explect. Further, the selection should not be cleared
since the user can be say several pages in the content and
removing and putting back accessibility focus would cause a
tedious traversal to get to the previous position.

bug:6469840

Change-Id: Iba3c01600fa2c9c39f99085a5fbc4328aa539ea8
/frameworks/base/core/java/android/view/View.java
0cd655ad2dcc16035f26300001ac2b3bd62d1c46 05-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Revert "Revert "Clean up layout direction APIs for Drawable"""
b03b434089cf2106c467b2827a65e5c589c91d01 04-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Revert "Revert "Clean up layout direction APIs for Drawable""

This reverts commit c96132ff53e5c26f5b0170edd85072006fb2bc70
/frameworks/base/core/java/android/view/View.java
665ef836b5aacee69bf517c8c2718bd01303f2d1 02-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> am 40404f43: am cba5e879: Merge "Calling the correct method when adding accessibility focusables." into jb-dev

* commit '40404f435c17dfbbedfdf358c48f0f91df91b84f':
Calling the correct method when adding accessibility focusables.
c96132ff53e5c26f5b0170edd85072006fb2bc70 02-Jun-2012 Jean-Baptiste Queru <jbq@google.com> Revert "Clean up layout direction APIs for Drawable"

This reverts commit c1da65187a4b9de8f72bd617ef937030187c0a92.
/frameworks/base/core/java/android/view/View.java
a90e4512ab81dcd8cdbefdd2ffa0de55fca1caa3 02-Jun-2012 Svetoslav Ganov <svetoslavganov@google.com> Calling the correct method when adding accessibility focusables.

1. Since we added explicit accessibility focusable attribute when
adding focusables views that do so should call this method. Some
views were not updated to do so.

bug:6581924

Change-Id: Id64c0b2d76e5269ebf3fbe17203e73b174bdb843
/frameworks/base/core/java/android/view/View.java
78068825416a4a0f3b2fdf57491ba4932c2bb6c4 01-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Clean up layout direction APIs for Drawable"
c1da65187a4b9de8f72bd617ef937030187c0a92 01-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Clean up layout direction APIs for Drawable

- see bug #6427629

Change-Id: I3119db3022bba0ee325b6d0d4471bfebd850ec10
/frameworks/base/core/java/android/view/View.java
76abb24afa366b6de0176cc14bc50ea7533418a6 30-May-2012 Jean Chalard <jchalard@google.com> am 887568c4: am 01bf82f2: Merge "Add/refine comments to reflect key event policies" into jb-dev

* commit '887568c4f4e49b78b1549459b265377c7ee4e8c0':
Add/refine comments to reflect key event policies
01bf82f27297536399f7dcde214d1a082e3613ef 30-May-2012 Jean Chalard <jchalard@google.com> Merge "Add/refine comments to reflect key event policies" into jb-dev
b616547cd5915793ebb5f7b85e815895c54b1d93 30-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 378aa011: am a5c896af: Merge "Updating the behaviour of accessibility text iterators." into jb-dev

* commit '378aa011d5f989166b62e9db6328a5881a1a73a0':
Updating the behaviour of accessibility text iterators.
a5c896afe89aaf40166343232d85980b94974032 30-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Updating the behaviour of accessibility text iterators." into jb-dev
35742844bca9c51ae4264d0dc10f19cfdcb4ab0b 30-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am b554ee35: am 48d1daca: Merge "Accessiblity scroll event firing callback not properly reset." into jb-dev

* commit 'b554ee35853369e898d5feea9ea4b6667a682dac':
Accessiblity scroll event firing callback not properly reset.
48d1daca98703a470f04b4e217d9e6dae6d61dd2 30-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Accessiblity scroll event firing callback not properly reset." into jb-dev
4a812aeb8b90925b6a53365972047f95d9b58b17 30-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessiblity scroll event firing callback not properly reset.

1. We use a delayed callback to throttle the amount of accessibility
scroll events fired by the view tree. The callback to do so was
not properly reset when removed putting the view tree in a bad
state resulting in no scroll events being fired at all.

bug:6549005

Change-Id: Ibf72d7e009e4545a336c9471f46015910290703e
/frameworks/base/core/java/android/view/View.java
b042f2d9908e20852e4077878e50a0c07b8eee79 30-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 09dfd60b: am bb1b7cf6: Merge "Adding accessibility focusable attribute (hidden for now)." into jb-dev

* commit '09dfd60bc37585e2670e4ca997940256e5b21ac8':
Adding accessibility focusable attribute (hidden for now).
bb1b7cf66bc17165b656c2aaed8027f9e5992306 30-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Adding accessibility focusable attribute (hidden for now)." into jb-dev
f9817f7a3b4463f75a4cd9c4050bb89525476a9f 23-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding accessibility focusable attribute (hidden for now).

1. This attribute specifies whether a view can take accessibility
focus. It has three values: 1) auto - the system determines
based on whether the view is actionable and has actionable
predecessor. Accessibility services can put accessibility focus
on such a node at will; 2) yes ; this view always takes access
focus; 3) no - the view cannot takes accessibility focus and
accessibility services cannot put accessibility focus on it.

Change-Id: I2ebf4e7c75bf6b39e1742b6868b37ccdd4cc7d28
/frameworks/base/core/java/android/view/View.java
39f2aee640eea62b43fa79f28dec3a962e5cb065 29-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Updating the behaviour of accessibility text iterators.

1. Iterators were skipping content on reversing direction.

2. The cursor was positioned at the beginning of the next text segment
when moving forward and at end of the previous text segment when moving
backwards. This is incorrect and now the cursor is positioned at the
end of the segment when moving forward and at the beginning when moving
backward.

3. The cursor position was not properly set when reaching the end/start
of the text.

4. The iterators were reporting strictly the next/previous segment even
if the cursor is within such a segment. Thus, when traversing some
content may be skipped. Now moving forward moves the selection to
the next segment end and the start position is either the old index
if it was within a segment or the start of the segment. Same in
reverse.

bug:6575099

Change-Id: Ib48a649cec53910339baf831a75e26440be6e576
/frameworks/base/core/java/android/view/View.java
405bc51c5dc73846a4abdc325cd234eb2d37469f 29-May-2012 Jean Chalard <jchalard@google.com> Add/refine comments to reflect key event policies

Make clearer how the platform is handling key events following some
unfortunate uses by third party applications. Also highlight the
changes in Jelly Bean default keyboard.

Bug: 6566711
Change-Id: Ibcdaf54c6d629fd0733529bfe2fffc82f555f084
/frameworks/base/core/java/android/view/View.java
98fd5a5fbc24c93593e79fa56669f36dbb452f09 24-May-2012 Romain Guy <romainguy@google.com> am ed130313: am 94328c30: Merge "Clear bitmap references from display lists as early as possible Bug #6555840" into jb-dev

* commit 'ed1303132912f0d39bcd008c3efbc0422d7433fc':
Clear bitmap references from display lists as early as possible Bug #6555840
94328c308bc8d283841ac6434d47b4c56389a388 24-May-2012 Romain Guy <romainguy@google.com> Merge "Clear bitmap references from display lists as early as possible Bug #6555840" into jb-dev
38c2ece5ce4c59f30e5832779bf1d86d68b1c442 24-May-2012 Romain Guy <romainguy@google.com> Clear bitmap references from display lists as early as possible
Bug #6555840

Apps like Google+ with large bitmaps displayed in listivews could
run into memory issues because of these references.

Change-Id: I39486bda13ce00c5a3b6481139ad54547506a8b4
/frameworks/base/core/java/android/view/View.java
425f126a0f2284423f4ccea0b00fbd5ea670a6c9 24-May-2012 Romain Guy <romainguy@google.com> am a865d7d7: am df3633b3: Merge "Make it harder for apps to mess up ViewGroup\'s internal state Bug #6421288" into jb-dev

* commit 'a865d7d7d3612d99e3b1407793610056c7df163c':
Make it harder for apps to mess up ViewGroup's internal state Bug #6421288
df3633b38969e134c5370449b8247827c705ac1e 24-May-2012 Romain Guy <romainguy@google.com> Merge "Make it harder for apps to mess up ViewGroup's internal state Bug #6421288" into jb-dev
393a52c9f628bbf2ab68508913177650f9183ee4 23-May-2012 Romain Guy <romainguy@google.com> Make it harder for apps to mess up ViewGroup's internal state
Bug #6421288

Change-Id: I8c2c597f45391d3c1ae40c8341a68bb25d8ad4d9
/frameworks/base/core/java/android/view/View.java
eed38b6d7fe403c40bf89b23949e7e090a1eaa2d 23-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 1eab75b9: am 321a56c8: Merge "Clearing accessibility focus of a view did not update the global state." into jb-dev

* commit '1eab75b9ba87fe73e5709ef4e77adc78e55b96c9':
Clearing accessibility focus of a view did not update the global state.
c00d00865d51e8c08d1f90b2b34c699b63a7105e 23-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Clearing accessibility focus of a view did not update the global state.

1. The code in clear accessibility focus was not updaing the global
accessibility focus reference in view root if the view not a
descendant has accessibility focus.

bug:6382856

Change-Id: I0c99578b5afd1f1f5d0df5bba05b0a03b5951a43
/frameworks/base/core/java/android/view/View.java
207efc59be1cd045dffc1cbb86e98576e52bcd1b 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 34757fdd: am f4062864: Merge "Accessibility focus and input focus do not sync - part 2" into jb-dev

* commit '34757fdd37c3fba882de7ade1706e4c577b01830':
Accessibility focus and input focus do not sync - part 2
f40628645df750991ced8dde803dd57225fca04f 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Accessibility focus and input focus do not sync - part 2" into jb-dev
525ae2075cf96d3a2ac67cd3a662069fd579f42d 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus and input focus do not sync - part 2

1. This patch has somecode that syncs input and accessibility
focus or tries to put accessibility focus on the top most
container that was missed by the previous patch.

Change-Id: I08f21670b1c6e9f363d5714b1976fb52d84baae4
/frameworks/base/core/java/android/view/View.java
c18cced700e79bdb183b47af884ffdfcb5727f28 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 5182a5bc: am 4ce106f5: Merge "Fixing some minor issues in accessibility focus." into jb-dev

* commit '5182a5bcf7a975c6183e0925dec0d3ac35071de9':
Fixing some minor issues in accessibility focus.
4ce106f5cff5670bf1aae4190612dc8e972f5c28 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Fixing some minor issues in accessibility focus." into jb-dev
f76a83cfcf32402edb78666733b5ebf9ec6ac2e2 22-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Fixing some minor issues in accessibility focus.

1. Now accessibility focus does not drag input focus and
vice versa. Having the two focuses chase each other
can lead to some pathological cases. For example, a
container is input focusable and manages input focus
for its children i.e. as soon as it gets input focus
it sets input focus to a child. Now assume input and
accessibility focus are on a child and focus search
finds the parent to take accessibility focus, now
putting accessibility focus to the parent will put
input focus there and the parent will put input focus
to the child which as a result will put accessibility
focus there, thus resulting in traversal loop.

bug:6522900

2. Fixed asymmetrical behavior of accessibility focus search
for AbsListView.

bug:6520016

3. Fixed accessibility focus search getting stuck in an
empty AbsListView.

bug:6520049

Change-Id: Ia26e5be7b5a9f340f873861ff466c787467b98dc
/frameworks/base/core/java/android/view/View.java
abafe372ee70496ac6b323e1d05d397785651779 21-May-2012 Romain Guy <romainguy@google.com> am 6fa51de8: am 46a8b1ac: Merge "Remove unused, obsolete debug code" into jb-dev

* commit '6fa51de80bae65a93346ed18628010a0867607cc':
Remove unused, obsolete debug code
891a844646ce7f7b62cbe963a7e08bdea5bef4e4 21-May-2012 Dianne Hackborn <hackbod@google.com> am bcb7f04a: am e312c61f: Merge "Improve fitSystemWindows() documentation." into jb-dev

* commit 'bcb7f04a7ca05a606d1b293dbe975f1710135be7':
Improve fitSystemWindows() documentation.
13b907353f18215b52b5ceda24bbf520d91d72a1 21-May-2012 Romain Guy <romainguy@google.com> Remove unused, obsolete debug code

All these features have either been abandonned and left un-maintained
for years or can be replaced by systrace.

Change-Id: I42e4579a8078744047e5fe08a7a15254970b09bc
/frameworks/base/core/java/android/view/View.java
d5333f92894ae54943199d02015f0c9ef4548fd6 18-May-2012 Dianne Hackborn <hackbod@google.com> Improve fitSystemWindows() documentation.

Change-Id: I6528f2530e6514344e454510f2fa037b55daebb7
/frameworks/base/core/java/android/view/View.java
ba910bc004bbf6f0e9aa1daab0bcd6a898b60ecd 18-May-2012 Dianne Hackborn <hackbod@google.com> am cefbeb68: am 20c0cdbb: Merge "Have the stable layout take into account the window\'s fullscreen flag." into jb-dev

* commit 'cefbeb683416a2bbc20905f280eaeadb349cb9d9':
Have the stable layout take into account the window's fullscreen flag.
72e15ceb85ecbe066c2ba33ca7e086dc511a8d23 18-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am cefd97c8: am e54c5f13: Merge "Exposing some accessiblity actions only for enabled views." into jb-dev

* commit 'cefd97c8546d6dca184e8ac9589ab2ff1b795c06':
Exposing some accessiblity actions only for enabled views.
88b2b90e7d79292229ca92b6bf416bfe61092fb1 18-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am c2f64117: am c5fb5805: Merge "Accessiblity focus not following input focus and text nav broken." into jb-dev

* commit 'c2f6411741949924d42e2c4aaefc33e6312cdd68':
Accessiblity focus not following input focus and text nav broken.
20c0cdbbf79cef18e59514e0f53dfbcac0bef600 17-May-2012 Dianne Hackborn <hackbod@google.com> Merge "Have the stable layout take into account the window's fullscreen flag." into jb-dev
e54c5f13652166c5896ccfa55f047301a6c8b876 17-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Exposing some accessiblity actions only for enabled views." into jb-dev
fb1e80a247221ee7e8f5c5deba04812021d9d07e 17-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Exposing some accessiblity actions only for enabled views.

1. Some accessibility actions should not be performed on disabled
views. For example, scrolling should not be permitted while
accessibility focus should be. Made a quick pass over the
actions we expose now.

Change-Id: I36626dfbc0d2f480309a910f58f1de64e9e05675
/frameworks/base/core/java/android/view/View.java
5b5cc4d5361c1817938d2db58ad40aab528b3ac3 16-May-2012 Dianne Hackborn <hackbod@google.com> Have the stable layout take into account the window's fullscreen flag.

When using stable layouts, you are typically expected to hide and
show the status bar through the system UI fullscreen flag. This hides
both the status bar and the action bar. The stable layout assumed
that when not hiding the status bar through the system UI flags, that
the status bar would be visible.

This change makes things a little smarter, also looking at the
window's fullscreen flag (which only hides the status bar). If this
flag is set on the window, then the stable layout now assumes that
the status bar will never be shown. This allows us to position the
action bar correctly in the situation where the application has set
the window to fullscreen and requested a stable layout, instead of
always leaving room for the status bar above it.

Change-Id: I757072ae99cd3741753af7210dbf51afe94d3db5
/frameworks/base/core/java/android/view/View.java
64899e5c8ff7309e3209454fd4833d1b7a4b57be 16-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessiblity focus not following input focus and text nav broken.

1. View is checking if the accessibility focus is its
descendant it clears the accessibility focus state
in ViewRootImpl. The check in View was missing the
case that the descendant may be the view itself. In
such a case we want the normal clearing code to run.

2. The check whether a view has iterable text for
accessibility was inverted and text nav was not
working.

Change-Id: I1a13b6809fb7f205fff76ca09cd449179d06e530
/frameworks/base/core/java/android/view/View.java
da350b9ef3095ec64a262758e595d5c6e039efd2 15-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am db3cf0dd: am 0e29ac9e: Merge "Accessibility focus traversal in virtual nodes." into jb-dev

* commit 'db3cf0dd580ce976ea9b90aeebc60ff34f62372a':
Accessibility focus traversal in virtual nodes.
38f4c223c0fde274c2089b1dad026593c06de06f 15-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am d83a0800: am 8ce2d78a: Merge "Improving accessibility focus traversal." into jb-dev

* commit 'd83a0800679583ccc99a90a128f8d6c11afbeca4':
Improving accessibility focus traversal.
791fd31a68c59395952005886ba799169f80a29a 15-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus traversal in virtual nodes.

1. Finished the implementation of support for maintaining
accessibility focus in view with virtual descendants.

2. Finished the NumberPicker implementation of virtual
subtree such that all requred attributes are reported
and ensuring that it support accessibility focus in
its virtual descentants.

3. Fixed a bug where if a predecessor of the view that is
accessiiblity focused is removed the accessibliity focus
host in ViewRootImpl is not cleared leading to a crash
when trying to draw the accessibility focus highlight.:

bug:6472646
bug:6433864

Change-Id: I3645642b87b4a26025c0b2ba9dfaad92d11a48f1
/frameworks/base/core/java/android/view/View.java
24ef21aeebb247f5dd6de13aea878f3d7194143a 15-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am e436812e: am 844047ac: Merge "Fix inconsitency in aAccessibilityNodeInfo cache." into jb-dev

* commit 'e436812e85f4a8da724f4fe36c1547a1b806f1f9':
Fix inconsitency in aAccessibilityNodeInfo cache.
76af556c8d70bad552bf5cc1047f0c018fc5f906 15-May-2012 Chet Haase <chet@google.com> am c63aaee9: am 728e4394: Merge "Minor touch-up of Animation docs" into jb-dev

* commit 'c63aaee9ff45cec1c47edff8de21c7732ccc6bcf':
Minor touch-up of Animation docs
6917b2a10d9b701282fbfb85be48eeb7e7877882 15-May-2012 Dianne Hackborn <hackbod@google.com> am 2da87ec3: am 2a7a6ca0: Merge "Implement new window cropping." into jb-dev

* commit '2da87ec32e72c2c25998e2444155c00074cfbd40':
Implement new window cropping.
9a19d16a1a44b8f394f93e116adb48024148f8ef 15-May-2012 Guang Zhu <guangzhu@google.com> am 58b0dcde: am 0d607fbe: accessibility bug fix in NumberPicker

* commit '58b0dcde83354bd1ae9091a7cbc7f207fb29960a':
accessibility bug fix in NumberPicker
8ce2d78aa89e89e9a5607d8809bf6d248508a531 15-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Improving accessibility focus traversal." into jb-dev
e5dfa47d84668376b84074c04570fb961870adeb 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Improving accessibility focus traversal.

1. Now the views considered during the accessibility focus search
are the ones that would get accessibility focus when thovered
over. This way the user will get the same items i.e. feedback
if he touch explores the screen and uses focus traversal. This
is imperative for a good user experience.

2. Updated which focusables are considered when searching for access
focus in ViewGroup. Generally accessibility focus ignores focus
before/after descendants.

3. Implemented focus search strategy in AbsListView that will traverse
the items of the current list (and the stuff withing one item
before moving to the next) before continuing the search if
forward and backward accessibility focus direction.

4. View focus search stops at root namespace. This is not the right
way to prevent some stuff that is not supposed to get a focus in
a container for a specific state. Actually the addFocusables
for that container has to be overriden. Further this approach
leads to focus getting stuck. The accessibility focus ignores
root names space since we want to traverse the entire screen.

5. Fixed an bug in AccessibilityInteractionController which was not
starting to search from the root of a virtual node tree.

6. Fixed a couple of bugs in FocusFinder where it was possible to
get index out of bounds exception if the focusables list is empty.

bug:5932640

Change-Id: Ic3bdd11767a7d40fbb21f35dcd79a4746af784d4
/frameworks/base/core/java/android/view/View.java
844047acb7133c0b6b7128f19b76f93eaca9371e 14-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Fix inconsitency in aAccessibilityNodeInfo cache." into jb-dev
728e43948c9b4d18a900fa50acad8d2734947b21 14-May-2012 Chet Haase <chet@google.com> Merge "Minor touch-up of Animation docs" into jb-dev
e60a635919ce8f1f5d868d51a87d7fc5da4ddda0 14-May-2012 Adam Powell <adamp@google.com> am e48c70e4: am 7fc4fbcc: Merge "Automatic persistent text selection for ListViews" into jb-dev

* commit 'e48c70e4d9302795d5f02d352c7907302ca5c8b6':
Automatic persistent text selection for ListViews
7008d7b7f3730aef59d510d2a48e166114e090a4 14-May-2012 Chet Haase <chet@google.com> am fd086b95: am 76f08218: Merge "Fix quickReject logic for transformed views" into jb-dev

* commit 'fd086b95103e8c7fbe853f5702aaa7d04f2141f0':
Fix quickReject logic for transformed views
ad4fc6f764bcd2bdbac726efbfbfb6f4ffe113b6 14-May-2012 Chet Haase <chet@google.com> am 4a70bc72: am 26511012: Merge "Clear animations in DisplayLists when done" into jb-dev

* commit '4a70bc72a87427115d9d64516145283dc96745f2':
Clear animations in DisplayLists when done
2a7a6ca00ab176105b5bbfa6b17bb0dcd058d517 14-May-2012 Dianne Hackborn <hackbod@google.com> Merge "Implement new window cropping." into jb-dev
85afd1b6f871d471fdff1980134676a5f1690525 13-May-2012 Dianne Hackborn <hackbod@google.com> Implement new window cropping.

The window manager now performs the crop internally, evaluating
it every animation from, to be able to update it along with
the surface position.

Change-Id: I960a2161b9defb6fba4840fa35aee4e411c39b32
/frameworks/base/core/java/android/view/View.java
0d607fbe546ac943de38dad33ae681b09efec6ea 12-May-2012 Guang Zhu <guangzhu@google.com> accessibility bug fix in NumberPicker

* moved View#isVisibleToUser to protected with @hide
* added a new View#isVisibleToUser(Rect), so that a portion of
the view can be tested for visibility
* NumberPicker will report its concrete class name
* code to append virtual children was at wrong place
* boundInScreen for increment and decrement buttons are reported
wrong

Change-Id: Ic5d644b3e1efa15b1f0537907c8cdd4ce43a97c1
/frameworks/base/core/java/android/view/View.java
c406be9036643ebe41bafcd94fe4aa861b4e4f4f 12-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Fix inconsitency in aAccessibilityNodeInfo cache.

1. Fixed errors in the accessibility node cache.

A. The cache was not catching the case when the current window changes as a
result the user touch exploring it. As a result the cache had nodes from
more that one window but the node ids are not unique thus causing a mess.

B. The node info tree was prefetched regardless if a prefetched node is root
name space (i.e. view ids - not accessibility ids - are namespaced) while
the prefetched nodes were taking this into account. As a result there can
get disconnected subtrees in the cache.

C. When an event for a property change such as focus was received the cache
we were removing the source node. As a result there may be disconnected nodes.

D. When a node was added to the cache and an older version exists there was
no check if it will point to the same children and parent. As a result if
the state of the node has fewer children the subtrees rooted at the no
longer present children will stay disconnected in the cache.

E. When a node got accessibility or input focus the old one in the cache was
not removed. As a result you may have a state with more than one access
or input focus.

2. Added integrity check enabled only on user builds when a specific flag is set
for the cache which checks whether:

A. All nodes are from the same window.

B. All nodes are connected.

C. There are no duplicates.

D. There is only one input focus.

E. There is only one accessibility focus.

3. The reported accessibility node info tree was stopping at the root namespace
boundary which is not correct. The reported tree has to reflect everything
on the screen that the user can see such a workspace with widgets. The root
namespace is added to avoid clash of view id but the accessibility ids are
unique no matter if the view is inflated from a remote view.

4. Added calls to notify the accessibility layer when a preoprty that is interesting
for accessibiliy has changed.

bug:6471710

Change-Id: I069470d91f209ba16313fa6539787a55efa3512e
/frameworks/base/core/java/android/view/View.java
7fc4fbccd6129e286a1f9c640eb3229b91792bce 12-May-2012 Adam Powell <adamp@google.com> Merge "Automatic persistent text selection for ListViews" into jb-dev
4242893e326cf013eba51931f00faf3ed428d670 12-May-2012 Chet Haase <chet@google.com> Minor touch-up of Animation docs

Change-Id: Ifd615d352b9924d562f4238c8ed36a8f4e6a91fa
/frameworks/base/core/java/android/view/View.java
057a585fba01d92c38f27a8c080622dfd0c6f556 11-May-2012 Adam Powell <adamp@google.com> Automatic persistent text selection for ListViews

Use View transient state tracking to allow selection to persist across
ListView-style item view recycling.

Fix some bugs with transient state tracking.

Bug 6110122

Change-Id: Ic084b8fc2289bff718b19478a37ce64459b3ed4c
/frameworks/base/core/java/android/view/View.java
1a3ab175b099edf545474f11fa165473428a98a1 11-May-2012 Chet Haase <chet@google.com> Fix quickReject logic for transformed views

When a parent draws its child views, each child's bounds is checked
against the current dirty region. If the view falls outside of that
region is is rejected and doesn't enter into the parent's DisplayList.

This works in general, for both transformed and untransformed views
(because we skip this check if the view is transformed). But it breaks down
when the transform properties of the view change later, since DisplayList
properties simply push these values down to the view's DisplayList without
invalidating the parent. If a view is rejected when untransformed, then there
is nothing to cause it to be considered again until something causes an
invalidate of the parent.

The fix is to note when a view is rejected and record that information.
Later, when one of the transform-related properties change, we invalidate the parent
to force the check to happen again, which will cause the view to get drawn
if it's visible.

Issue #6477730 quickRejected views must recreate their DisplayLists on transform changes

Change-Id: I70caf198005cd7e424a37bccc6ae050e09880a6c
/frameworks/base/core/java/android/view/View.java
26511012c40dbe704f4791654b28b9e0e05589d8 11-May-2012 Chet Haase <chet@google.com> Merge "Clear animations in DisplayLists when done" into jb-dev
5c2a9ddcf2764f2cb34251d86ccdbf722f7f49cb 11-May-2012 Dianne Hackborn <hackbod@google.com> am 00389a51: am b1b55e6c: Fix build.

* commit '00389a5198d17a650b00b981b5a9174dbb88fc9f':
Fix build.
b1b55e6c6b079d75c13dcc23ca3ebce847bb42f8 11-May-2012 Dianne Hackborn <hackbod@google.com> Fix build.

Change-Id: Ie255c93442d0b62032ac25e6de97f2c03e5df3ba
/frameworks/base/core/java/android/view/View.java
50d99215023ee346a95eb72c413759d6a58f82a5 11-May-2012 Dianne Hackborn <hackbod@google.com> am de888fec: am 255d1e15: Merge "Fix issue #6475693: OnSystemUiVisibilityChangeListener reporting..." into jb-dev

* commit 'de888fec6b7c2f2c9a32a7e9faf38083f67da4d8':
Fix issue #6475693: OnSystemUiVisibilityChangeListener reporting...
cf67578c7f99492273a8f8446dd18ddc5af2ae76 11-May-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6475693: OnSystemUiVisibilityChangeListener reporting...

...incorrect visibility when the ActionBar overflow menu is opened

Don't report layout flags in system UI visibility callback. Update
docs to reflect this.

Change-Id: Icfa411b5537de037cafbcac04991101e8b9138c4
/frameworks/base/core/java/android/view/View.java
afd5c3ee60c45ebb5d63d2d0d14f08130075883b 10-May-2012 Chet Haase <chet@google.com> Clear animations in DisplayLists when done

The matrix calculated by Animations is pushed down to the native
DisplayList object, and is then used when the DL is issued to the
GL renderer. This works while the animation is running, but the end
of animations is not handled correctly. In particular, we never clear the
animation, so whatever the last frame of the animation calculated will
persist on that DisplayList object until it is recreated.

The fix is to note when we used to be animating and are no longer
doing so, taking that opportunity to push the cleared state down
to the DisplayList.

Issue #6448993 action bar -- including settings menu -- disappears on Nakasi

Change-Id: I73cdadaef40d87ccbc1beb02599c4d70506ea42b
/frameworks/base/core/java/android/view/View.java
455af7f7b002c15ec85701a8333ef9862683e7e1 10-May-2012 Dianne Hackborn <hackbod@google.com> am 67cc7f2e: am a53de062: Add callback hack to find out when to load system properties.

* commit '67cc7f2e60bc6532d00bb3c473b9a1d32cdafce2':
Add callback hack to find out when to load system properties.
a53de0629f3b94472c0f160f5bbe1090b020feab 09-May-2012 Dianne Hackborn <hackbod@google.com> Add callback hack to find out when to load system properties.

Use this to reload the trace and layout bounds properties.

This is ONLY for debugging.

Change-Id: I1c4bdb52c823520c352c5bac45fa9ee31160793c
/frameworks/base/core/java/android/view/View.java
7956d5a01992bd2d56466beb864c4b28ec4f19d9 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 72912116: am a3b67289: Merge "Fixing View.getBoundsOnScreen()" into jb-dev

* commit '72912116cf0ff08dc655f065cff173d53b7152bd':
Fixing View.getBoundsOnScreen()
1313b08011cfd4c89ab1101c0672f8dc8de2de23 09-May-2012 Romain Guy <romainguy@google.com> am 3607c338: am 27ef44c4: Merge "Invalidate display lists immediately when views are removed/added quickly" into jb-dev

* commit '3607c338c75bbfbc7e3ac61b5ead4eaf1ac61427':
Invalidate display lists immediately when views are removed/added quickly
2da197dff2062e4ba0f37f7fd3ef920ed9e86c74 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am aecb9b59: am 59f3f585: Merge "Add performAccessibilityAction to AccessibilityDelegate." into jb-dev

* commit 'aecb9b59e6c9e9a864bf4b302f978fb950df09ff':
Add performAccessibilityAction to AccessibilityDelegate.
eacfff7f47e9398e7201d213623603588cae3212 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am c2f5e797: am 6704c233: Merge "AccessibilityNodeInfo for visible views should reported." into jb-dev

* commit 'c2f5e797506fbc4235d4940846f3e2110e67daa6':
AccessibilityNodeInfo for visible views should reported.
529ddb895e74d226ba957da9b389dbce0f1c3071 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am ca1e49ca: am cdbbecf3: Merge "Accessibility focus on temporary detached view not cleared." into jb-dev

* commit 'ca1e49cad5b5eebdd47039289b604bea6f00e8f7':
Accessibility focus on temporary detached view not cleared.
807a4331ab02304f5a08f16b6a5eeececc1ee353 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am ba23196f: am 911b0c0b: Merge "Accessibility focus actinos incorectly set on accessibility node info." into jb-dev

* commit 'ba23196f1626409334f74e2d7e7cb34bef0b6f7f':
Accessibility focus actinos incorectly set on accessibility node info.
4833ca2903e89eab93b353f00a1e4904a73d79bb 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 755b2146: am b2ee0d57: Merge "Text traversal at various granularities." into jb-dev

* commit '755b2146735c15deb0eb611430a7da1e363d82a1':
Text traversal at various granularities.
14b2b74c13d0a22b396d10601bd683d80378810a 09-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Fixing View.getBoundsOnScreen()

1. The function was not setting the initial rect properly.

bug:6462629

Change-Id: I7a832a979576fc5745794c68fb8414257efb21dd
/frameworks/base/core/java/android/view/View.java
27ef44c46d24a5800e227d945ffede813d7f28f7 08-May-2012 Romain Guy <romainguy@google.com> Merge "Invalidate display lists immediately when views are removed/added quickly" into jb-dev
2a0f228a30c85a124f92a5a7c1b10a81cf69af6d 08-May-2012 Romain Guy <romainguy@google.com> Invalidate display lists immediately when views are removed/added quickly

The deferred invalidation of display list could cause problems with
view like TextureView who destroy resources when detached from the
window but only recreate them later at draw time. This would cause
temporary flashes or other visual glitches on screen.

Change-Id: I018488ba09743df21c6434ea610813014fb80a85
/frameworks/base/core/java/android/view/View.java
59f3f5853cd05103b5a83f5ddbe584a5270a9c6b 08-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Add performAccessibilityAction to AccessibilityDelegate." into jb-dev
6704c233390743890d23338a2329dcda5709b810 08-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "AccessibilityNodeInfo for visible views should reported." into jb-dev
961bf0e9b4ef94f52ae66856ac573995f1f34578 08-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus on temporary detached view not cleared.

1. When a view that has accessibility focus is temporary detached
we try to draw the focus highlight and crash. Since the detached
view will be modified and then either attached or detached from
the window we should not keep accessibility focus on a temporary
detached view. Otherwise, we may have a scenario where the user
thinks he is in one item scroll acound and being in completely
different item because of the view being recycled but the user
has no clue.

2. Clearing accessibility focus when the view is removed from the
parent as opposed as when it is detached from the window. Since
we may have transitioning views for removal we do not want
accessibility focus on such views during the anumation.

bug:6457339

Change-Id: I62287a089ec6850fb1d691ae26dea54e1da39c94
/frameworks/base/core/java/android/view/View.java
8eeefefc8451c97745add2b4d508116aaffbcb22 08-May-2012 alanv <alanv@google.com> Add performAccessibilityAction to AccessibilityDelegate.

Change-Id: I43dff2ced959af5d8a9ce9ed18858a6e74cb35c6
/frameworks/base/core/java/android/view/View.java
911b0c0b15ae4f14a6f755278679ef9c6a6e6c05 08-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Accessibility focus actinos incorectly set on accessibility node info." into jb-dev
0a1bb6dffc358c01e10555c5c833edb7dba69659 07-May-2012 Svetoslav Ganov <svetoslavganov@google.com> AccessibilityNodeInfo for visible views should reported.

1. AccessibilityNodeInfos for visible views should always
be reported and the clients should be able to check
whether that node info is shown to the user. For example,
focus search may return a node that is not on the screen
and the accessibility layer may decide to give it focus
which scroll the source view in the screen.

bug:6421991

Change-Id: Idc1fd8512dda767abe802aacedb0c69582e6fc2a
/frameworks/base/core/java/android/view/View.java
02afe2cfd35f684117a9eed3c31edea311ce7d95 08-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus actinos incorectly set on accessibility node info.

bug:6456267

Change-Id: I9fce268623cebef49dd613d193a36a0a1a0654aa
/frameworks/base/core/java/android/view/View.java
6d17a936f73976971135aa1e6248662533343292 28-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Text traversal at various granularities.

1. Implementing text content navigation at various granularities.
For views that have content description but no text the
content description is the traversed at character and word
granularities. For views that inherit from TextView the
supported granularities are character, word, line, and page.

bug:5932640

Conflicts:

core/java/android/view/View.java

Conflicts:

core/java/android/view/View.java

Change-Id: I66d1e16ce9ac5d6b49f036b17c087b2a7075e4c0
/frameworks/base/core/java/android/view/View.java
475fc468423186b8e9d60a557aa4fd2a6fc6bfc2 06-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am 9879659a: am 2551e5a1: Merge "API REVIEW: android.view.accessibility" into jb-dev

* commit '9879659a1cbfe404c725df1e57ff92f151bf65bc':
API REVIEW: android.view.accessibility
d88eb08cc2766f5be2e1eff096a0cacee6714c16 06-May-2012 Svetoslav Ganov <svetoslavganov@google.com> am ae825876: am 3f28a1b7: Merge "Performing click and long click for accessiblity not returning result." into jb-dev

* commit 'ae825876fa9303ff4b3ad0964085a2a338089139':
Performing click and long click for accessiblity not returning result.
2551e5a1d9990514d8116e352b8e5c2f10a9d303 06-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "API REVIEW: android.view.accessibility" into jb-dev
3f28a1b7ebb3500d13a1672ab76fe68e9c0a75e8 06-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Performing click and long click for accessiblity not returning result." into jb-dev
4fa22f0b4d271a41e2a459e1d927c4ce54d15847 06-May-2012 Romain Guy <romainguy@google.com> am 95b0c45b: am aaa71475: Merge "Remove unnecessary framework allocations" into jb-dev

* commit '95b0c45b06d9a053f9050e0f0ef1171a18ae0711':
Remove unnecessary framework allocations
aaa7147595346fdd398e2932817e075acbb8e497 06-May-2012 Romain Guy <romainguy@google.com> Merge "Remove unnecessary framework allocations" into jb-dev
ab4c4f4ff73e66b7767640dbe6d4115237c48242 06-May-2012 Romain Guy <romainguy@google.com> Remove unnecessary framework allocations

These allocations were frequently triggered by the home screen. This change
removes dozens of allocations during page scrolls on home.

Change-Id: I7289efa28ecf5bd62459042b10062aa9cf0432dd
/frameworks/base/core/java/android/view/View.java
36cade591a1bb40acbf3f271a4b414dfd894cf1d 06-May-2012 Dianne Hackborn <hackbod@google.com> am 7bedac94: am 139e5aa1: Fix issue #6404215: New ActionBar auto-hide can conflict with application

* commit '7bedac9417d60608003d739c8caed7ca81683825':
Fix issue #6404215: New ActionBar auto-hide can conflict with application
139e5aa1da51b27231ab36344cf2d0dafab23f1e 06-May-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6404215: New ActionBar auto-hide can conflict with application

The action bar now maintains separate states for the things that can
impact its visibility (calls from the app, action mode, system UI) so
that the changes in these won't incorrectly mix together.

Also added a hack to force the status bar to be shown when showing
the action bar for an action mode, when the UI is in a state where
the action bar would be shown with a gap above where the status bar
is.

Change-Id: Ib0950a7f585c5d2c9e77d11b237ba6e150f15ebd
/frameworks/base/core/java/android/view/View.java
773f2624ec01aabf10cfa755cb6f1081ba9b4faf 06-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Performing click and long click for accessiblity not returning result.

1. When performing the click and long click actions the code in View
was not returning the resilt of the called method.

bug:6426849

Change-Id: I0cf396a8373f622948ed436ce09f8d1dcf246acd
/frameworks/base/core/java/android/view/View.java
4256391861f91e1f66f7684c4b2aee9e4b248c3b 05-May-2012 Dianne Hackborn <hackbod@google.com> am ce1d03b3: am 3fd4a382: Merge "Implement cropping of windows based on system UI elements." into jb-dev

* commit 'ce1d03b39935c42cfa0d11ef782c8c6a2fd823d4':
Implement cropping of windows based on system UI elements.
3556c9a8068497d0de8964fd3be719c68eae1f00 05-May-2012 Dianne Hackborn <hackbod@google.com> Implement cropping of windows based on system UI elements.

Start calling Surface.setActiveRect().

Change-Id: I94197059c971c6ab7820e615ea8f285482b86c75
/frameworks/base/core/java/android/view/View.java
2b435aada3d274a9c08d334946fff1ab9ba15b48 05-May-2012 Svetoslav Ganov <svetoslavganov@google.com> API REVIEW: android.view.accessibility

1. Changed all references to granularity to movement
granularity. BTW, to be more precise it should be
text movement granularity.

bug:6435232

Change-Id: If6366b002ca3390f74918995b342baff2cbcfd01
/frameworks/base/core/java/android/view/View.java
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
/frameworks/base/core/java/android/view/View.java
4380f9542fcb4a452332ecbea6a2036a2b159ab3 04-May-2012 Chet Haase <chet@google.com> Merge "Minor doc fixes for animation- and view-related things" into jb-dev
cb150fe9e6495256019b02be51e736679b57c1b5 04-May-2012 Chet Haase <chet@google.com> Minor doc fixes for animation- and view-related things

Issue #6016341 Add info about properties and ViewPropertyAnimator to View reference docs
Issue #6441062 Misleading docs in ViewPropertyAnimator

Change-Id: Ica7c026c770fe2e57013fe443ede5428cd6b6604
/frameworks/base/core/java/android/view/View.java
785c447b2bc625209706fd128ce61781c3a4183b 03-May-2012 Adam Powell <adamp@google.com> JB API cleanup; ActionMode and View docs

Bugs 6435315, 6434937

Add ActionMode#getTitleOptionalHint() and extend documentation for
View#hasTransientState/setHasTransientState

Change-Id: I2049fb79864c33b34e3bbd13df32861e308c99ad
/frameworks/base/core/java/android/view/View.java
2f87014ea2f177e715032b07004d05e2549a63a8 30-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Enabling accessibility focus only if explore by touch is on." into jb-dev
07b726c86b1d0b22e51b08cb4234f8212864d9f9 30-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Enabling accessibility focus only if explore by touch is on.

1. Now we will enable the accessibility focus only if Explore by
Touch is enabled. Enabling this feature allows a blind user to
touch the screen and set the accessibility focus at this
location as well as get spoken feedback. Also an accessibility
service can move the accessibility as a result of user gestures
detected only if Explore by Touch is enabled. Since we will
handle some gestures by default if not accessibility service
does so to provide reasonable built-in navigation of the UI
by "objects" we need the accessibility focus functionality.

bug:6383361

Change-Id: I13ce6072a90f5838c7656379788144c99a772bf0
/frameworks/base/core/java/android/view/View.java
cfcff98ab33e91747bfb4a52e05230dc45323b5a 29-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Populating accessibility node info with supported actions.

1. The system does not allow performing an accessibility action
on an accessibility node info unless it explicitly states it
supports that action. Adding the new accessibility actions
to the info emitted by a view.

bug:6407647

Change-Id: I8dad1dc60ec68b4da5ed2349a1366a88820175a1
/frameworks/base/core/java/android/view/View.java
7a23b49a8ceb07d3fa12c45fd42cd16131fd746a 25-Apr-2012 Philip Milne <pmilne@google.com> Fixes for optical bounds feature.

1. Make the feature opt-in (ViewGroup::layoutMode defaults to CLIP_BOUNDS) without inheritance.
2. Rename COMPONENT_BOUNDS to CLIP_BOUNDS.
3. Rename LAYOUT_BOUNDS to OPTICAL_BOUNDS.
4. Complete GridLayout implementation.
5. Change the default_gap between components to 8dp, to align with the Style Guide.

Change-Id: I8d40dfc5f4ca469f6424eb3ff60d07bec56e3a9f
/frameworks/base/core/java/android/view/View.java
4b8c4f886b3d57e6ffe1a4650487c67334674a40 28-Apr-2012 Romain Guy <romainguy@google.com> New constant used by dev settings

Change-Id: I42f103ae8a9b9f051367c72131f0b216e200f6e0
/frameworks/base/core/java/android/view/View.java
0430ce908510f501276e7f588ba5c34d33a9d27a 25-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Removing hierarchical accessibility focus directions."
b2b15716d8b5b5814e82575a592e76f522f6a4c6 24-Apr-2012 Philip Milne <pmilne@google.com> Merge "Promote layout debugging code from GridLayout to ViewGroup."
76f287e416ded85734b610f316e38d243d2ddb09 23-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Removing hierarchical accessibility focus directions.

1. The accessibility focus directions are not needed since an
accessibility service just get the root, first child, next
sibling, previous sibling and call execute the action to
give it accessibility focus. Now the accessibility node
info tree is properly ordered taking into account layout
manager directions for both layout manager that we report
and ones that we have determined as not important for
accessibility. Also the position of a node info are ordered
properly based on their coordinates after all transformations
as opposed to child index.

bug:5932640

Change-Id: I994a8297cb1e57c829ecbac73a937c2bcbe0bac7
/frameworks/base/core/java/android/view/View.java
10ca24a97cefc14fca1b26f59e627f487b3b108b 24-Apr-2012 Philip Milne <pmilne@google.com> Promote layout debugging code from GridLayout to ViewGroup.

Layout debugging code draws rectangles around:

1. Layout insets (red)
2. Bounds (blue)
3. Margins (magenta)

Layout debug mode is enabled with:

adb shell setprop debug.layout true

Change-Id: Ia155a2d0fbf33693a1e3c040f627ea3a534e1aff
/frameworks/base/core/java/android/view/View.java
1271e2cc80b01d577e9db339459ef0222bb9320d 20-Apr-2012 Chet Haase <chet@google.com> Remove USE_DISPLAY_LIST_PROPERTIES flag

This flag was still hanging around pending any need to disable
DisplayList properties. But things seem stable, so it's time to clean up
and simplify the code.

At the same time, I reduced redundance in DisplayList dimensions. We
used to call drawDisplayList() with width/height parameters that were
used to do a clip reject. This is redundant with the DisplayList properties
that set the bounds of the DisplayList; the left/right and top/bottom properties
represent the same width/height properties formerly used in drawDisplayList().
The new approach is to not pass dimensions to drawDisplayList(), but to
instead pull those dimensions directly from the DisplayList when needed.

Change-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56
/frameworks/base/core/java/android/view/View.java
d6e716dce95089e3acceef2267175d1dba1b4035 21-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding a couple of missing accessibility focus directions.

Change-Id: Id404155591cf3fe5f9bef3ed8fe0d03908944ce1
/frameworks/base/core/java/android/view/View.java
aa780c110922148a6a4ba06734bb2b0bb8c98f93 20-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding support for traversing the content of a node info at granularity.

1. A view that creates an accessibility node info may add to the info
a list of granularity labels. These are granularities by which the
source view can iterate over its content. For example a text view
may support character, word link while a web view may additionally
support buttons, tables, etc. There are actions on accessibility
node info to go to the next/previous at a given granularity which
is passesed as an argument.

2. Added Bundle argument to the APIs for performing accessibility
actions. This is generic and extensible.

bug:5932640

Change-Id: I328cbbb4cddfdee082ab2a8b7ff1bd7477d8d6f9
/frameworks/base/core/java/android/view/View.java
749e796eb3a42e21613a3b360000373601a8f50d 20-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> UI test automation cannot get the root node and gets null children.

1. The AccessibilityInteractionController was using an incorrect
looper i.e. not the UI thread looper which was causing getting
the root node to fail.

2. The AccessibilityNodeInfo was populated by a ViewGroup with the
children for accessibility without checking whether these children
are really displayed.

bug:6362875

Change-Id: I7906d89571eb9d57d10f971639f88632926dd077
/frameworks/base/core/java/android/view/View.java
59a422e90035ce5df45c526607db2d3303e3112e 20-Apr-2012 Jeff Brown <jeffbrown@google.com> Ensure that touch and hover targets are cleared when needed.

When views are removed from a view or a view is detached from
a window, we need to update the touch and hover targets appropriately.

Failing to do this resulted in a NPE while dispatching an
ACTION_HOVER_EXIT to a view that had previously been removed.
Removed views should not get input events.

Change-Id: I4af4f8e2c4028347d3f570894fd1b3b366d11455
/frameworks/base/core/java/android/view/View.java
563d4f2d461d264457b7e7068e2fc7b9b0bcafb3 19-Apr-2012 Chet Haase <chet@google.com> Make ViewPropertyAnimator ListView-animation-capable

ViewPropertyAnimator now sets the hasTransientState flag in View to tell
it when an animation has started (and unsets it when the animation ends).
This allows ListView to retain views with transient state without recycling them,
which makes ListView item animation possible (because you can't animate a View
if it's being recycled and reused elsewhere as it moves into and out of view).

Change-Id: I75c26a7a56474a76428500afef03a80bb46e04e0
/frameworks/base/core/java/android/view/View.java
f37d87b35b9bc860487104b1870f74caa3ae2e71 19-Apr-2012 Chet Haase <chet@google.com> Merge "Fix init of Animation in View drawing code"
1fb8a9e44a5d0710d58c883e087469e95be65b5b 19-Apr-2012 Chet Haase <chet@google.com> Fix init of Animation in View drawing code

The refactor of ViewGroup.drawChild() resulted in an error
in a new method (View.drawAnimation) where animations were being
initialized with their view dimensions instead of the parent dimensions.

Issue #6292681 RotateAnimationTest#testRotateAgainstPoint fails on JRN04
Issue #6293275 TranslateAnimationTest#testInitialize fails on JRN04

Change-Id: Ia90711cadd7a6c20fd788e5b8b18a5b28551e68c
/frameworks/base/core/java/android/view/View.java
eaa0a04f83113e2cafb8c2044ae2107d15dd8036 19-Apr-2012 Philip Milne <pmilne@google.com> Merge "Share Insets instances between views that have the same background (Drawable)"
bbd51f1e360b22eece1d74bd65c7e6a0b59dee59 19-Apr-2012 Philip Milne <pmilne@google.com> Share Insets instances between views that have the same background (Drawable)

Change-Id: I47d93ccca6f553b678d25966d10d7a0a97cfa5ea
/frameworks/base/core/java/android/view/View.java
f01d3dd710e8b86b3e2846af62835158fd4e0db1 18-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Adding some more gestures and actions for accessibility."
005b83b0c62d3d0538f0d566b08bd457015ec661 17-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding some more gestures and actions for accessibility.

1. Added more gesture for accessibility. After a meeting
with the access-eng team we have decided that the current
set of gestures may be smaller than needed considering
that we will use four gestures for home, back, recents,
and notifications.

2. Adding actions for going back, home, opening the recents,
and opening the notifications.

3. Added preliminary mapping from some of the new gestures
to the new actions.

4. Fixed a bug in the accessibility interaction controller
which was trying to create a handled on the main looper
thread which may be null if the queried UI is in the
system process. Now the context looper of the root view
is used.

5. Fixed a bug of using an incorrect constant.

6. Added a missing locking in a couple of places.

7. Fixed view comparison for accessibilityt since it was
not anisymmetric.

bug:5932640
bug:5605641

Change-Id: Icc983bf4eafefa42b65920b3782ed8a25518e94f
/frameworks/base/core/java/android/view/View.java
21d1251637e0b0e23583e8c80d4437fe7e5e57d3 17-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Fixing broken add focusables behavior I have introduced."
3cb889caa3726256bd00976c2662f51a14d91d49 17-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Fixing broken add focusables behavior I have introduced.

bug:6344608

Change-Id: I1d241c02bc22c5ef3f4b4b69a756772e8b2ef902
/frameworks/base/core/java/android/view/View.java
4e1cb3b7942d3ca05918604358b4ef83815ce448 16-Apr-2012 Philip Milne <pmilne@google.com> Merge "Fix for bug 6110465."
4213804541a8b05cd0587b138a2fd9a3b7fd9350 20-Mar-2012 Svetoslav Ganov <svetoslavganov@google.com> Accessibility focus - framework

Usefulness: Keep track of the current user location in the screen when
traversing the it. Enabling structural and directional
navigation over all elements on the screen. This enables
blind users that know the application layout to efficiently
locate desired elements as opposed to try touch exploring the
region where the the element should be - very tedious.

Rationale: There are two ways to implement accessibility focus One is
to let accessibility services keep track of it since they
have access to the screen content, and another to let the view
hierarchy keep track of it. While the first approach would
require almost no work on our part it poses several challenges
which make it a sub-optimal choice. Having the accessibility focus
in the accessibility service would require that service to scrape
the window content every time it changes to sync the view tree
state and the accessibility focus location. Pretty much the service
will have to keep an off screen model of the screen content. This
could be quite challenging to get right and would incur performance
cost for the multiple IPCs to repeatedly fetch the screen content.
Further, keeping virtual accessibility focus (i.e. in the service)
would require sync of the input and accessibility focus. This could
be challenging to implement right as well. Also, having an unlimited
number of accessibility services we cannot guarantee that they will
have a proper implementation, if any, to allow users to perform structural
navigation of the screen content. Assuming two accessibility
services implement structural navigation via accessibility focus,
there is not guarantee that they will behave similarly by default,
i.e. provide some standard way to navigate the screen content.
Also feedback from experienced accessibility researchers, specifically
T.V Raman, provides evidence that having virtual accessibility focus
creates many issues and it is very hard to get right.
Therefore, keeping accessibility focus in the system will avoid
keeping an off-screen model in accessibility services, it will always
be in sync with the state of the view hierarchy and the input focus.
Also this will allow having a default behavior for traversing the
screen via this accessibility focus that is consistent in all
accessibility services. We provide accessibility services with APIs to
override this behavior but all of them will perform screen traversal
in a consistent way by default.

Behavior: If accessibility is enabled the accessibility focus is the leading one
and the input follows it. Putting accessibility focus on a view moves
the input focus there. Clearing the accessibility focus of a view, clears
the input focus of this view. If accessibility focus is on a view that
cannot take input focus, then no other view should have input focus.
In accessibility mode we initially give accessibility focus to the topmost
view and no view has input focus. This ensures consistent behavior accross
all apps. Note that accessibility focus can move hierarchically in the
view tree and having it at the root is better than putting it where the
input focus would be - at the first input focusable which could be at
an arbitrary depth in the view tree. By default not all views are reported
for accessibility, only the important ones. A view may be explicitly labeled
as important or not for accessibility, or the system determines which one
is such - default. Important views for accessibility are all views that are
not dumb layout managers used only to arrange their chidren. Since the same
content arrangement can be obtained via different combintation of layout
managers, such managers cannot be used to reliably determine the application
structure. For example, a user should see a list as a list view with several
list items and each list item as a text view and a button as opposed to seeing
all the layout managers used to arrange the list item's content.
By default only important for accessibility views are regared for accessibility
purposes. View not regarded for accessibility neither fire accessibility events,
nor are reported being on the screen. An accessibility service may request the
system to regard all views. If the target SDK of an accessibility services is
less than JellyBean, then all views are regarded for accessibility.
Note that an accessibility service that requires all view to be ragarded for
accessibility may put accessibility focus on any view. Hence, it may implement
any navigational paradigm if desired. Especially considering the fact that
the system is detecting some standard gestures and delegates their processing
to an accessibility service. The default implementation of an accessibility
services performs the defualt navigation.

bug:5932640
bug:5605641

Change-Id: Ieac461d480579d706a847b9325720cb254736ebe
/frameworks/base/core/java/android/view/View.java
1557fd7809078e421f751efc7d2539b3efdc54b2 05-Apr-2012 Philip Milne <pmilne@google.com> Fix for bug 6110465.

Add layout bound metadata to 9-patch files and make layouts take them into account.

This CL contains a proposed API for dealing with layout bounds.

This solution exposes:

1. Class: Insets - for storing layout Insets (and later possibly padding).
2. Methods: View:(get/set)LayoutInsets() - for storing layoutBounds.
3. Methods: ViewGroup:(get/set)LayoutMode() - for controlling layoutMode.

It also iuncudes the changes to GridLayout to support layout bounds.

Change-Id: I60c836b6530b61c5abf37f93ee9c44aad73573f1
/frameworks/base/core/java/android/view/View.java
95487eb90ce8c421ce7baca5b761745bbc1bb14b 12-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Some view not shown on the screen are reported for accessibility."
aa6f3de253db6c0702de0cc40028750c1fcfb22c 10-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Some view not shown on the screen are reported for accessibility.

1. Some applications are keeping around visible views off screen
to improve responsiveness by drawing them in layers, etc. While
such a view is not visible on the screen the accessibility layer
was reporting it since it was visible. Now the check is improved
to verify whether the view is attached, is in visible window,
is visible, and has a rectangle that is not clipped by its
predecessors.

2. AccessibilityNodeInfo bounds in screen were not properly set
since only the top left point was offset appropriately to
take into account any predecessor's transformation matrix
and the not transformed width and height were used. Now
the bounds are properly offset.

bug:6291855

Change-Id: I244d1d9af81391676c1c9e0fe86cf4574ff37225
/frameworks/base/core/java/android/view/View.java
decd3039ca71e5340ec01027170941637bf9876e 12-Apr-2012 Romain Guy <romainguy@google.com> Merge "Don't wait for screen on to finish animations"
eb3788907132eec5724bbb78f20711c4ffe35b1b 12-Apr-2012 Romain Guy <romainguy@google.com> Don't wait for screen on to finish animations

OldAnimations™ would set their start time during the first frame drawn
after calling View.startAnimation(). If this method was invoked while
the screen was off, this would cause the animation to start playing
when the screen turned back on.

Change-Id: Ic45a1af2020a7f5e81c2544bd8f16a6bedbd6849
/frameworks/base/core/java/android/view/View.java
db13a6bf788cc48af86c8acf6f74b416dfd84199 12-Apr-2012 Adam Powell <adamp@google.com> Merge "Invalidate for scrolling animations on the animation timer"
4d6a82d79ede0cc1f26e463209f22c691a04626b 11-Apr-2012 Jeff Brown <jeffbrown@google.com> Unhide new animation runnable API on View.

Change-Id: Id626688d6c7d632c01d9897777c854cb601d3301
/frameworks/base/core/java/android/view/View.java
df3ae4f3aea3bdce6bb54133c8a07a26bf207c3c 11-Apr-2012 Adam Powell <adamp@google.com> Invalidate for scrolling animations on the animation timer

Change View methods awakenScrollBars and scrollTo to post their
invalidation on the animation timer. Since these are often used in
computeScroll or similar to continue scrolling or flinging it should
not prevent other posted events from being processed before the frame
is actually drawn. (All changes in scroll position, etc. are
immediately reflected after the calls and do not need a draw to
present correct data about scroll position to apps.)

Don't accumulate floating point error while dragging
ScrollView/HorizontalScrollView.

Change-Id: I05b57d75f89a806488e46a8fb79b85d80f56d45d
/frameworks/base/core/java/android/view/View.java
e8644b695d6c548d2c93e1da7b4a6aff786f1427 06-Apr-2012 Dianne Hackborn <hackbod@google.com> Merge "Fix so that status bar doesn't resize when hiding nav bar."
9801435820dc159725c0185f18f7e60e0fb1b833 06-Apr-2012 Dianne Hackborn <hackbod@google.com> Fix so that status bar doesn't resize when hiding nav bar.

The status bar now extends behind the nav bar, and uses
fitsSystemWindows to ensure its content is not covered. We
always report a stable content insets (as if the nav bar is
visible) even if the nav bar is hidden, so the content doesn't
jump when transitioing. This does mean that if you only hide
the nav bar (and not the status bar), when in landscape you
will end up with a status bar whose right side still leaves
room for the nav bar. But why the hell would you want to do
that?

Also improve documentation on setSystemUiVisibility().

Change-Id: I8087d875f1214ef0085a91b5ed5c2f35ff2fc1b3
/frameworks/base/core/java/android/view/View.java
5012ebbc5c00194236f425403e8771061dc7bf92 06-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Minor twaek to the focus behavior.

bug:6296603

Change-Id: I3bd0b291e6013cae019ca9049d9d3dc506845ab0
/frameworks/base/core/java/android/view/View.java
57cadf2a97a81e5bea49bac573249076ebd95a93 05-Apr-2012 Svetoslav Ganov <svetoslavganov@google.com> Fixing broken clear focus behavior.

1. In a prevous patch I fixed the issues when on clearing
focus of the first focusable view the callback for
gaining focus were called before the ones for losing
focus. Since it cause some issues the patch was reverted
and resubmitted. In this chaos some code was missed so
tests are failing. Added the missing logic to give focus
to the first focusable in the current touch mode when
a view loses focus.

2. Removed clear focusForRemoval methid since it is a dup
of unFocus();

Note: All focus tests now pass.

Change-Id: I06881d4b5a66fc5a33efca16a96f20207a7220d3
/frameworks/base/core/java/android/view/View.java
24fea55ebb8bcb9e17f3009a80172cb6ee46947d 04-Apr-2012 Philip Milne <pmilne@google.com> Merge "Fix for bug 6104272."
9da0f8a5c4bccf8e722ae2ebf43873457aec3271 14-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Add View textAlignment

- fix bug #6163772
- use bits field and pack them as much as possible
- take care of "supportsRtl" flag from Manifest
- add visual unit tests

CTS unit tests in another CL

Change-Id: Ib77c4eb423854209af130688c5ef9977401a9c1c
/frameworks/base/core/java/android/view/View.java
6c8ea06abfdcd81f728172ac3d3730b542945e48 04-Apr-2012 Philip Milne <pmilne@google.com> Fix for bug 6104272.

Add Java properties for those XML attributes that don't have getter/setter
pairs. Also, link existing methods to their XML attributes where the comments
were previously missing.

This CL is worth extra scruitiny: first because it's View, and secondly
because many of the new APIs depend on subtleties in the underlying implementations
that I'm not familiar with.

Also, please consider whether it is too much to deprecate getBackgroundDrawable().

Change-Id: I0f2641926d86e5f44b92a0057736f64b59d2e9b9
/frameworks/base/core/java/android/view/View.java
21aec19d3041fe040004dd32eef0cfd1bafd6fb6 04-Apr-2012 Chet Haase <chet@google.com> Merge "Optimization of alpha with DisplayList properties"
fde3f83cd26871d2cc904ef05a4f50f272c610e2 03-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6140391 Make RTL awareness as an opt-in into the AndroidManifest"
db8c9a6a4d9bf8c39f834b25611926caf21380f6 22-Mar-2012 Chet Haase <chet@google.com> Optimization of alpha with DisplayList properties

Some views (such as ImageView and TextView) handle non-opaque alpha
values directly. This was originally an optimization, but we can handle it faster
in many cases without this optimization when DisplayList properties are enabled.
Basically, if a view has non-overlapping rendering, we set the alpha value directly
on the renderer (the equivalent of setting it on the Paint object) and draw each
primitive with that alpha value. Doing it this way avoids re-creating DisplayLists
while getting the same speedup that onSetAlpha() used to get pre-DisplayList properties.

Change-Id: I0f7827f075d3b35093a882d4adbb300a1063c288
/frameworks/base/core/java/android/view/View.java
59dfce8bdaf011337530a0dbec7f7280871f9bc9 03-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6140391 Make RTL awareness as an opt-in into the AndroidManifest

- introduce "supportsRtl" as a new application attribute in the AndroidManifest
- "supportsRtl" default value is FALSE (no RTL support)
- adapt the View layoutDirection and textDirection logic to take care of "supportsRtl" value

Change-Id: I5e4f9f576e14f35dedc6b0c29a7142c397f598e0
/frameworks/base/core/java/android/view/View.java
110414928ae13674b7ec6b816a45cf70ed521683 03-Apr-2012 Joe Fernandez <joefernandez@google.com> am c1a0e54d: am b459b619: am 945b7cb3: Merge "docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)" into ics-mr1

* commit 'c1a0e54de12aee41163b84a25ea8dfc8b64304dc':
docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)
8d56b0e1d24f7392314df4be6503af395a843696 03-Apr-2012 Chet Haase <chet@google.com> Enabling DisplayList properties

An earlier commit fixed problems with enabling DisplayList properties.
This CL actually enables the properties.

Change-Id: I5c41d0c64e9241822af53eb367de0fed7d9608e0
/frameworks/base/core/java/android/view/View.java
9420abd56a2af7ddbeb70562b79d61b2dca8c5a1 30-Mar-2012 Chet Haase <chet@google.com> Re-enable DisplayList properties.

Re-enabling DisplayList properties last week caused some app
errors due to the way that some transforms were being handled (specifically,
those coming from the old Animations and ViewGroup's childStaticTransformation
field). This change pushes *all* transform/alpha data from View.draw() into
the view's DisplayList, making DisplayLists more encapsulated (and correct).

Change-Id: Ia702c6aae050784bb3ed505aa87553113f8a1938
/frameworks/base/core/java/android/view/View.java
e0435a6c6a4464d96f6264374cf0b007b24031a0 02-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix layout params resolution"
4a5268857eaa28be82ac6766bdfb8affad5c0bab 31-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix layout params resolution

- dont need to check if any parent as getResolvedLayoutDirection() is handling this case

Change-Id: I915b4a72e38d072005e47d3c5a3f63febbef6e60
/frameworks/base/core/java/android/view/View.java
3a3a6cfd8ec12208ca75c0d0d871d19d76c34194 26-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new feature to let apps layout over status bar / system bar.

The main change is a few new flags you can supply to
View.setSystemUiVisibility(). One is a new visibility mode,
SYSTEM_UI_FLAG_FULLSCREEN, which is basically the same as
the global FLAG_FULLSCREEN option for windows, but driven as
part of the system UI state.

There are also three new flags for telling the framework that you
would like to have your application's UI ignore screen
decorations -- SYSTEM_UI_FLAG_LAYOUT_NO_NAVIGATION for going
behind the navigation bar and SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
for ignoring full screen decorations (that is the status bar).

In combination with this you can use SYSTEM_UI_FLAG_LAYOUT_STABLE
to have the framework report consistent insets to your application.

When using NO_NAVIGATION, when the user taps the screen we now
also automatically clear ONLY_CONTENT, so that we atomically show
both UI elements. This should make it easy for apps like video
players that want to move between fully full-screen and regular
modes.

The ActionBar has also been extended when in overlay mode so
that it will adjust the system window insets to also account
for its space, and allow it to be hidden using the new
SYSTEM_UI_FLAG_FULLSCREEN.

Change-Id: Ic8db1adec49a0f420bfe40c1d92eb21307856d0b
/frameworks/base/core/java/android/view/View.java
a08f3e866a46c990e786defa95013ee0313b0887 30-Mar-2012 Jeff Brown <jeffbrown@google.com> Merge "Enable vsync traversals by default."
ebb2d8d708c5c58c79ae88ac2bd10450a856f702 24-Mar-2012 Jeff Brown <jeffbrown@google.com> Enable vsync traversals by default.

Improved how the various callbacks are managed and sequenced
to reduce code duplication.

Added a heuristic to avoid postponing traversals until
the next vsync frame if we did not actually do any drawing during
the previous frame. This helps in the very common case where
drawing occurs in response to input.

Change-Id: I277d9eeaf50408f8745a3cfd181db1d140770658
/frameworks/base/core/java/android/view/View.java
76240dafe8654cc3b858241e76618e5b2db5451c 29-Mar-2012 Chet Haase <chet@google.com> Disable DisplayList properties pending fixes for AlphaAnimation

The new DisplayList properties design has ordering conflicts with the
way that alpha works with old animations (AlphaAnimation). This CL
disables DiksplayList properties while I'm working on a fix and some
more thorough tests for old animations-vs-DL properties in general.

Change-Id: I8f6893138f939171491c2ec3c889214ee55d17b7
/frameworks/base/core/java/android/view/View.java
e1302edd40c5cc264f842e17e3796e0a11d6f045 06-Feb-2012 Joe Fernandez <joefernandez@google.com> docs: Accessibility Dev Guide (subsumes Accessibility Best Practices)

Change-Id: Id7e3f647042d2afd390abe851be1c3b561af33ca
/frameworks/base/core/java/android/view/View.java
b85967b9af76e1e60f7a96603e2567a6449d2e04 26-Mar-2012 Chet Haase <chet@google.com> Re-enabling DisplayList properties

Several issues came up after DisplayList properties were enabled,
so they were disabled pending fixes. Those issues have been fixed, so
DisplayList properties are once again being enabled by default. This
CL both re-enables these properties (in View.java and DisplayListRenderer.h)
and fixes the various issues that enabling them caused the first time around.

Related issues (all currently marked as Fixed, though that was simply because
DL properties were disabled - this CL provides the real fixes now that
DL properties are enabled by default):
Issue #6198276 Text input broken
Issue #6198472 Native crash at pc 00076428 in many different apps in JRM80
Issue #6204173 Date/time picker isn't rendering all parts of UI
Issue #6203941 All Apps overscroll effect is rendered weirdly/has flickering
Issue #6200058 CAB rendering issue - not drawing items?
Issue #6198578 Front camera shows black screen after taking picture.
Issue #6232010 Layers not recreated when children change (DisplayList properties)

Change-Id: I8b5f9ec342208ecb20d3e6a60d26cf7c6112ec8b
/frameworks/base/core/java/android/view/View.java
0adcd07ccb07ffde93f36c2b42096dacac98ae26 26-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Improve View layoutDirection resolution"
9b0e5991201da7cd74e09c6546d916394ad338ad 26-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix View textDirection refresh"
827d5c09fb4649eca14e87b3d00c53dec44973a6 23-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix View textDirection refresh

- the refresh was no more done correctly after the use of display lists

Change-Id: I5c74bbe565c603fe2e7fd793dd49c3b20036e04b
/frameworks/base/core/java/android/view/View.java
d4577c0c29f8e38a34d1aeac59803b37769af790 24-Mar-2012 Romain Guy <romainguy@google.com> Merge "Destroy the hardware renderer when ViewRootImpl's die is post-poned Bug #6109035"
a998dff5d49a423aaf7097aa8f96bf5bdc681d25 24-Mar-2012 Romain Guy <romainguy@google.com> Destroy the hardware renderer when ViewRootImpl's die is post-poned
Bug #6109035

ViewRootImpl.die() can be invoked in such a way that doDie() will be
executed later. On memory limited device, an eglTerminate() may happen
before doDie() is executed which leads to unstable behaviors. This
change makes sure the renderer is destroyed as soon as possible.

Change-Id: I3322410cdd744b464951e2055aeade6069d1d673
/frameworks/base/core/java/android/view/View.java
22ab7751d47aa9d1e07e8d70706dcf30dac3aae0 24-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Improve View layoutDirection resolution

- make it similar to textDirection
- unhidde also new API: resolveLayoutDirection()

Change-Id: I43c2c2ef32ed6d1f3586781a063271b72e90b9a3
/frameworks/base/core/java/android/view/View.java
2c4eabced0971d3b6b5e76dd925afcb0a7f59f1c 23-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Reduce memory footprint for View (part 2)"
b934db7e3e6d4c3963d2a4a5c00cfb0c3ffbfce4 20-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Reduce memory footprint for View (part 2)

- make textDirection use private bits field
- update layoutDirection usage of private bits

Change-Id: Ib9f4da58dbb74f410fb9d3be3c26ef02579aaf1d
/frameworks/base/core/java/android/view/View.java
ad13c81371cb0b7e49b4c33159a346ce08ac5d69 22-Mar-2012 Chet Haase <chet@google.com> Disable DisplayList properties

DisplayList properties are (again) disabled by default, via flags in
View.java and DisplayListRenderer.h. There are various artifacts to
chase down before enabling by default.

Issue #6198472 Native crash at pc 00076428 in many different apps in JRM80
Issue #6204173 Date/time picker isn't rendering all parts of UI
Issue #6203941 All Apps overscroll effect is rendered weirdly/has flickering
Issue #6200058 CAB rendering issue - not drawing items?
Issue #6198578 Front camera shows black screen after taking picture.

Change-Id: I045dc82ce1d85fedbae3bb88eb2a2dfb6891d41f
/frameworks/base/core/java/android/view/View.java
b6f90cf846f67fca66197cce7ac214477ebfc727 21-Mar-2012 Chet Haase <chet@google.com> Merge "Fix Animation bugs from DisplayList properties integration"
89b7f2e3be7e08fd751b348096a40ae5eb5f6a8f 21-Mar-2012 Chet Haase <chet@google.com> Fix Animation bugs from DisplayList properties integration

The new DisplayList properties functionality does not currently handle Animation
(android.view.animation) functionality, so we fall back to the previous approach
of redrawing the DisplayList when an Animation changes alpha/transform data for
a View. The DL code was not, however, correctly using that logic, so that
the Animation transform information was being ignored, or at least not set
correctly on the DisplayList during redraws.

This fix accounts for Animation changes and sets up the DisplayList correctly.

Change-Id: I9f6e0382b05d0627f4779f30e74641dedcc77f82
/frameworks/base/core/java/android/view/View.java
6077fc9b7f22e2eb7199167e26bccc8f97957f60 20-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Reduce memory footprint for View"
edc1e59b34c7f813ad197545b1d846e3a99a6831 16-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Reduce memory footprint for View

- make layout direction use private bit fields
- fix also some Javadoc issues

Change-Id: I977a328d671b91aa82cb275767e3575f78695508
/frameworks/base/core/java/android/view/View.java
bdd896c26453ffc56831b0cd167e8780068cee53 19-Mar-2012 Chet Haase <chet@google.com> Enable DisplayList properties

This CL simply enables DisplayList property functionality. The code for
this feature is already there, but it's been disabled by default pending further
testing and analysis. This change sets these build-type flags to true
so that all hw-accelerated apps will now use DisplayList properties by default.

In particular, this feature enables a fast-path for changes that affect the
handful of View properties involved in animations (alpha, translationX, etc.).
Setting these properties now gets propagated to the native DisplayList associated
with the View, avoiding costly recreation of the SDK-level DisplayList and
also enabling faster invalidation of the view hierarchy.

Change-Id: Ic99c8f28fa9183f2e54e9e4860b333eb9c540f7c
/frameworks/base/core/java/android/view/View.java
4bf8b209955e8a35ec2e4101ed3612e03ecc5dbb 16-Mar-2012 Chet Haase <chet@google.com> Merge "Optimizing DisplayList properties"
9d1992deaeb3d60d5928f05b649a2cc654ba98a3 13-Mar-2012 Chet Haase <chet@google.com> Optimizing DisplayList properties

DisplayList properties are still disabled default (flags in View.java
and DisplayListRenderer.h). When they are enabled, and when a View has
a DisplayList, invalidations due to property changes are now optimized
to avoid causing DisplayList recreation. This eliminates the drawing step
of invalidation (due to changes in these properties), only requiring
issuing the previously-created DisplayList to the GL renderer. Invalidation
is slightly faster (less overhead as we walk up the hierarchy), getDisplayList()
is potentially much faster (going down to ~0ms), depending on the complexity
of the View being redrawn and the size of the invalidated hierarchy.

Change-Id: I57587d5b810c3595bdd72a6c52349c2a3d1bdf25
/frameworks/base/core/java/android/view/View.java
51e4d4db296c252641161b39e98f49acebc46062 16-Mar-2012 Romain Guy <romainguy@google.com> Better implementation to clear display lists

Change-Id: I58f9af4bae70a8117db1455a50c0c5daf19b2f4a
/frameworks/base/core/java/android/view/View.java
c6e8811cb48014d541bc6f85b4b7f92643af8591 16-Mar-2012 Romain Guy <romainguy@google.com> Merge "Postpone DisplayList recycling when detached from window"
bc7616eae90002879f1d82d5e99dea7d1152b742 15-Mar-2012 Romain Guy <romainguy@google.com> Postpone DisplayList recycling when detached from window

This was causing a crash in apps that remove views during a draw pass.

Change-Id: I1c4621639fe920291b2c6fb7bfd17a69101a1329
/frameworks/base/core/java/android/view/View.java
e82a54aedc45ed2c06e62a14947d4f56c823221d 15-Mar-2012 Chet Haase <chet@google.com> Merge "Fix bug with transform Animations"
bcbec0ccd07d04597992d7ab0dede34288ba31f3 15-Mar-2012 Chet Haase <chet@google.com> Fix bug with transform Animations

A recent change to enable View properties at the native DisplayList level
mistakenly cuased Animation transforms get be ignored for any View with
a DisplayList. The correct code should have checked whether DL properties
were enabled for the view (disabled by default for now).

Issue #6173975 Animations are gone

Change-Id: I5d5f53f854fb1b533a3150158e84392d7283d2a8
/frameworks/base/core/java/android/view/View.java
605eabf6a24ab3541de559b242147900b23706ed 14-Mar-2012 Michael Jurka <mikejurka@google.com> Merge "Fix hardware layer redraw bug"
952e02b430bb95534416ec689f08a792aca0b853 14-Mar-2012 Michael Jurka <mikejurka@google.com> Fix hardware layer redraw bug
/frameworks/base/core/java/android/view/View.java
a1cff5043d0fbd78fcf9c48e7658e56a5b0c2de3 21-Feb-2012 Chet Haase <chet@google.com> Handle view properties at the native level

Basic functionality of handling View properties (transforms,
left/right/top/bottom, and alpha) at the native DisplayList level.
This logic is disabled for now (via compile-time flags in View.java and
DisplayListRenderer.h) as we continue work on it (there is no advantage
to the new approach until we optimize invalidation and rendering paths
to use the new code path).

Change-Id: I370c8d21fbd291be415f55515ab8dced6f6d51a3
/frameworks/base/core/java/android/view/View.java
30a21e1bfea21ba2170e42eb187a2ec1bbbcf2c7 12-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Improve View Javadoc for padding

Change-Id: Ib7c8ee5bcde57e112ba0bb700fed9f2a135b1cdb
/frameworks/base/core/java/android/view/View.java
05f692e8050c3650ec123b2361143a121e2e7d4b 12-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Make Gravity RTL APIs public"
e8dc07dcdb983d5d3999b16c2a49ddee4bdb942c 10-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Make Gravity RTL APIs public

- also move unit tests to CTS
- also small improvement for View Javadoc

Change-Id: I166d5a10f4a00f1b46c90468c8b11906b438e1ea
/frameworks/base/core/java/android/view/View.java
559c4841a631321efc2284de9187dbaccce50550 10-Mar-2012 Ken Wakasa <kwakasa@google.com> Merge "Fix obvious typos under frameworks/base/core"
3162225d51c62cd6f0e89edc5fe272adbc8ddc39 10-Mar-2012 Jeff Brown <jeffbrown@google.com> Merge "Don't remove all animation callbacks if action/who was null."
43ea54bdc343a913f62885304796e4ab1bca4ef1 09-Mar-2012 Jeff Brown <jeffbrown@google.com> Don't remove all animation callbacks if action/who was null.

Fixes a bug in View.removeCallbacks and View.unscheduleDrawable
where it was possible for the caller to remove all animation
callbacks if it happened to specify an action or who parameter
of null.

Also refactored the callback queueing code in Choreographer
to make it more intent revealing although the behavior remains
the same.

Bug: 6144688
Change-Id: Iba29dcda6b3aaad73af664bb63feab65ae3483e5
/frameworks/base/core/java/android/view/View.java
2bff6407793917d69653542a73525a72a53dd6cc 09-Mar-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Adding an announcement type accessibility event and a method on View to announce."
51ab90cab1609cf0ddd2dfe5a660f020d823d4d5 09-Mar-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding an announcement type accessibility event and a method on View to announce.

1. The need for sending an accessibility event to announce a context change
which does not cleanly fit into the existing UI transition UI events has
come quite a few time in application development. To avoid retrofitting
accessibility event types that do not semantically match the intent to
just announce a short message this patch is adding specialized event type.
Also a helper method on View is added to sheild developers from knowing
how to construct and send such an event.

bug:5977979

Change-Id: Iaf5f620426f8616be67fbf243a02ad5b606c949b
/frameworks/base/core/java/android/view/View.java
f76a50ce8fdc6aea22cabc77b2977a1a15a79630 09-Mar-2012 Ken Wakasa <kwakasa@google.com> Fix obvious typos under frameworks/base/core

Change-Id: Ia5fc3db1bb51824e7523885553be926bcc42d736
/frameworks/base/core/java/android/view/View.java
df813c03b16ed32c25a8c8fee82a7a98088ac940 09-Mar-2012 Jeff Brown <jeffbrown@google.com> Merge "Use the Choreographer for Drawable animations."
1e3d313c7802673cb5a350fdbbe458398a038fcf 09-Mar-2012 Romain Guy <romainguy@google.com> Fix the docs

Change-Id: I73bcb684eac01db870936aa5e29df930b5432833
/frameworks/base/core/java/android/view/View.java
bb9908b828a8cfd5965553be66faa6af89973697 08-Mar-2012 Romain Guy <romainguy@google.com> Dispatch screen state change events to Views
Bug #6120957

Using this new callback, views can interrupt and resume their
animations or other periodic tasks based on the current state
of the display.

Change-Id: I398f4abd421e9c5f207107bf1009a7b92cf45daa
/frameworks/base/core/java/android/view/View.java
3bef5e9f3aa90465ee3ab66ef33d7a88d1b0c5c1 08-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix View padding resolution"
250069bf6bf3d7e2ef85c49e0cd100e80c3c8b7d 08-Mar-2012 Romain Guy <romainguy@google.com> Merge "Ignore draw requests when the display is off"
7ae9d5faad5816f7e567ec1ec77e78d746cf7e5c 06-Mar-2012 Jeff Brown <jeffbrown@google.com> Use the Choreographer for Drawable animations.

Change-Id: Ifcbf33434bf3c32d1900fd0b3f5bde004604ce8a
/frameworks/base/core/java/android/view/View.java
509708deb8d70def41be56145df07f9331f48c84 07-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix View padding resolution

- make setPadding() and setPaddingRelative() share same code

Change-Id: Iaefa82deb29d9efd6b3f88c751daf503c6b8f774
/frameworks/base/core/java/android/view/View.java
1ce1307641c3eba06d945ed3b257ad4ce28ba56e 07-Mar-2012 Michael Jurka <mikejurka@google.com> Merge "Don't draw layers in buildLayer()"
7e52caf6db5feef2b847cfaa3d13690257122c3a 07-Mar-2012 Michael Jurka <mikejurka@google.com> Don't draw layers in buildLayer()

Creating the layer, if necessary, takes the bulk
of the time - just do the creation, and schedule a
deferred update

Change-Id: I21399ebd5d2929a4f242ec1c08e3f97fed1ef58a
/frameworks/base/core/java/android/view/View.java
1ecebbb27fc45f4ef503d866f2702bca565a089c 07-Mar-2012 John Reck <jreck@google.com> Fix FOCUS_BACKWARD search if view had no id

Bug: 6126875

Change-Id: I113a7125d71dc3e6cc34d31a669e844a4a882266
/frameworks/base/core/java/android/view/View.java
faeac2737de098269a69011f4980a412559b55a9 06-Mar-2012 Jeff Brown <jeffbrown@google.com> Merge "Change widgets to post invalidate to the animation timer."
6cb7b46c56449e84434b11eb12f9b8977fcd0398 05-Mar-2012 Jeff Brown <jeffbrown@google.com> Change widgets to post invalidate to the animation timer.

Change-Id: I8377e924529fb9d8afd8a834003a17de616e8e87
/frameworks/base/core/java/android/view/View.java
7e4e561bc717a6eea4e0d06ec4173ad27420425f 05-Mar-2012 Romain Guy <romainguy@google.com> Ignore draw requests when the display is off

When WindowManagerService's events are enabled/disabled, the state of the
display is dispatched to the known windows. This allows ViewRootImpl to
ignore draw requests until the screen is turned back on. This can potentially
lead to significant battery savings. For instance, a launcher widget showing
a repeating animation will cause the CPU and the GPU to wake up regularly
without this change.
(Change submitted by Intel and merged manually)

Change-Id: I7f93b0e60c3e6de1705f619e80860c36b1cdb978
/frameworks/base/core/java/android/view/View.java
21452d1adaeb20f453e8e5cac188cec1d89e01f6 05-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6029615 Update Javadoc for onPaddingChanged()"
085585f4665aa7390a7d56ce479bed43e78bb470 05-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6029615 Update Javadoc for onPaddingChanged()

Change-Id: I5d66bc76d7084777342e66e6370bf3a52e878ba1
/frameworks/base/core/java/android/view/View.java
fb9c41c2060497a459d16c30122e1d082895e5d1 05-Mar-2012 Romain Guy <romainguy@google.com> Merge "Deferred layer updates"
2bf68f063b0077ddef6ebfe54f2ae5e063c2c229 02-Mar-2012 Romain Guy <romainguy@google.com> Deferred layer updates

Change-Id: I83d9e564fe274db658dcee9e0cc5bbf9223ebb49
/frameworks/base/core/java/android/view/View.java
1a7dd039f189036709bc2253ba50955913f59d7a 01-Mar-2012 Adam Powell <adamp@google.com> Unhide transient state APIs on View

Change-Id: I0f14728c94cd3461431352e6f01311934aec9858
/frameworks/base/core/java/android/view/View.java
dd3ef2c573396271c7c3b71e30fbd10cf66d3bc0 02-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Improve RTL APIs

- follow changed / reset pattern

Change-Id: I1c5e9b39196029bd78add2ab13b984da124822ca
/frameworks/base/core/java/android/view/View.java
98aec1c7efa639ac902d1200a3ac5a4a7a140129 14-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Make layoutDirection API public

Change-Id: Ie125513e4ea72b33b42355dbc43f9b9b6d46d7eb
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
035a1fcd5ea3ac0080bb74101cf2793ccb9aa689 28-Feb-2012 Adam Powell <adamp@google.com> View pressed state dispatching tweaks

Bugs 6075823, 6050563

Revise pressed state dispatch logic:

Only propagate pressed state to non-clickable views. This should
eliminate the "double glow" problem in some list items where a
clickable child button has a secondary glow along with a clickable
parent. This only applies to setPressed(true) calls; setPressed(false)
must propagate. Don't early-out in setPressed to support this use
case.

Change-Id: Ibbe2309f5030282fad8d23e4a9bc4616b3f5dc7c
/frameworks/base/core/java/android/view/View.java
2822111948d4a8c0632b1a3150051b8d27a63ee6 23-Feb-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Add check for no children in VIew hosting virtual view tree."
311a63af40e76925e21dcf273749dcab9d598ddd 23-Feb-2012 Svetoslav Ganov <svetoslavganov@google.com> Add check for no children in VIew hosting virtual view tree.

1. For accessibility purposes View may report a virtual tree
rooted at them to convey the logical structure they draw.
These are usually custom Views. Such views cannot have
children and this patch adds a check for that.

bug:6022217

Change-Id: I3795a613b4aef1a7ec5810db8584a11b648870f2
/frameworks/base/core/java/android/view/View.java
5160e2a197624cc5d43b1cddec2341e8dc661ef1 22-Feb-2012 John Reck <jreck@google.com> Add null parent check to startActionMode

Bug: 6012515

Change-Id: I9f684bf0fd314285c4d4933ba2a7645f10c9dc7b
/frameworks/base/core/java/android/view/View.java
4d6f066b19f654917bbbd4650a68bea79a471270 22-Feb-2012 Adam Powell <adamp@google.com> Have View call setPressed explicitly instead of just twiddling flags.

This allows apps to override setPressed to reliably observe changes in
pressed state for custom views.

Change-Id: I59f472a9d864f4abcc4f692fef0a13f004348432
/frameworks/base/core/java/android/view/View.java
539ee8716b4f81260bab2e9f3dc5d88d81c99985 04-Feb-2012 Adam Powell <adamp@google.com> Add transient state tracking to Views

Transient state is temporary bookkeeping that Views need to perform
that the app should not need to be aware of. Examples include text
selection regions and animation state.

Transient state is a problem for AdapterViews like ListView that do
view recycling. Unless the app takes responsibility for tracking and
restoring transient state as if it were a part of the adapter's data
set, it cannot correctly recycle views. Selections disappear when an
EditText is scrolled out of sight and animations seem to play on the
wrong views.

Views can now flag themselves as having transient state. (As the name
implies, this should be a temporary condition.) If a ViewGroup
contains a child with transient state, that ViewGroup also has
transient state.

AbsListView's recycler now tracks views with transient state
separately. Views with transient state will be retained, and until a
data set change occurs the same view will be reused for that position
instead of calling the adapter's getView() method.

The API to set and check transient state is currently hidden.

Change-Id: Idfd8eaac2c548337686d8d9f98fda4c64be5b8a0
/frameworks/base/core/java/android/view/View.java
6917e6550d2dc11ad3b794be08cc9caa53970d32 18-Feb-2012 Romain Guy <romainguy@google.com> Merge "Record possible clip rejects when recording display lists"
33f6beb10f98e8ba96250e284876d607055d278d 17-Feb-2012 Romain Guy <romainguy@google.com> Record possible clip rejects when recording display lists

This optimization allows us to quickly skip operations that lie
entirely outside of the known bounds of a display list. Because
of ViewGroup.setClipChildren, we must keep the operations recorded
in the display list. setClipChildren(false) is however a very
uncommon operation and we will therefore often benefit from this
new optimization.

Change-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad
/frameworks/base/core/java/android/view/View.java
50eb3b9bf9bf0b014ad19066951b6c1dffd4e3f3 17-Feb-2012 Jeff Brown <jeffbrown@google.com> Merge "Encapsulate the ViewRootImpl's handler."
101d5aade4a280a4c553e3ef3aa24faf388a207f 17-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix #5050417 Update View class Javadoc for padding start / end

Change-Id: Iec9533616d94e4a738378bafeb1867dd74e53127
/frameworks/base/core/java/android/view/View.java
30e2fbe0d2565952928feaf9d3d9194340113af4 17-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Improve textDirection APIs"
6d3d5057b445069e73fd06adbc11fa412e7c48c3 16-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Improve textDirection APIs

Change-Id: I8bff30f5adb0ab4077145d83ac4a716e04f289ac
/frameworks/base/core/java/android/view/View.java
069bbe79fbb35b7cc09048118cf42a929be0ed31 17-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix Javadoc for View

Change-Id: Iccae458320273253637017c6f32329150bae479e
/frameworks/base/core/java/android/view/View.java
23677064730117feefff3d477ecf5f93baf28704 16-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Add View.onResolvePadding() as a public API"
a175a5b7ea3682cb58cca7f9726d0b8171cd549d 16-Feb-2012 Jeff Brown <jeffbrown@google.com> Encapsulate the ViewRootImpl's handler.

This change makes it much easier to make sense of the messages that
get posted to the ViewRootImpl's handler by encapsulating their point
of dispatch within the ViewRootImpl itself.

As part of this change, the View.AttachInfo now carries a reference
to the ViewRootImpl itself, which simplifies some code that used
to try to find the ViewRootImpl by getting the root view's parent.

In principle, it might have been nice to hide the ViewRootImpl from
the View hierarchy but in practice the two were coupled in many ways.

Change-Id: I51ebccdf5f8c8c505cd6f17cdf594174d041dc54
/frameworks/base/core/java/android/view/View.java
f7280ccbfe6d71686a4e609ee7628f84e514a32d 16-Feb-2012 Romain Guy <romainguy@google.com> Merge "Add a compile time condition to remove unnecessary code"
fe455af277183f910eb74653a3ad172c717e7abf 16-Feb-2012 Romain Guy <romainguy@google.com> Add a compile time condition to remove unnecessary code

Change-Id: Ia44916af8e22e548fbb62cb2b53da285d5959102
/frameworks/base/core/java/android/view/View.java
ccb1562e90d955416b9096d802464e37925486ef 16-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Add View.onResolvePadding() as a public API

- following a comment from Dianne on this CL:

Change-Id: Ifa11d6ac423f205d0684297d25885eac1a89f279
https://android-git.corp.google.com/g/#/c/123009/1
/frameworks/base/core/java/android/view/View.java
2c884826b23e5c8cd3c9497a781c631927b74819 15-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Make View paddingStart and paddingEnd API public

Change-Id: I39fd987c866e8bfadbaa9a29c0e38b3b7ce03f7e
/frameworks/base/core/java/android/view/View.java
b36a0ac9709e9e1c7098559c0435cfbdc09e6c46 15-Feb-2012 Svetoslav Ganov <svetoslavganov@google.com> Incorrect behavior of View clear focus v2.0.

The framework tries to have a focused view all the time. For
that purpose when a view's focus is cleared the focus is given
to the first focusable found from the top. The implementation
of this behavior was causing the following issues:

1. If the fist focusable View tries to clear its focus it
was getting focus but the onFocusChange callbacks were not
properly invoked. Specifically, the onFocusChange for
gaining focus was called first and then the same
callback for clearing focus. Note that the callback
for clearing focus is called when the View is already
focused.

2. If not the first focusable View tries to clear focus,
the focus is given to another one but the callback
for getting focus was called before the one for clearing,
so client code may be mislead that there is more than
one focused view at a time.

3. (Nit) The implementaion of clearFocus and unFocus in ViewGroup
was calling the super implementaion when there is a
focused child. Since there could be only one focused View,
having a focused child means that the group is not focused
and the call to the super implementation is not needed.

4. Added unit tests that verify the correct behavior, i.e.
the focus of the first focused view cannot be cleared
which means that no focus change callbacks are invoked.
The callbacks should be called in expected order.
Now the view focus clear precedes the view focus gain
callback. However, in between is invoked the global
focus change callback with the correct values. We may
want to call that one after the View callbacks. If
needed we can revisit this.

Change-Id: I8cfb141c948141703093cf6fa2037be60861cee0
/frameworks/base/core/java/android/view/View.java
dd29f8c4e3db3338bc055302145c3bc51a27566f 15-Feb-2012 Amith Yamasani <yamasani@google.com> Merge "Revert "Incorrect behavior of View clear focus.""
73eb97f628b298c7bd032aa9db11dadf05f5b539 15-Feb-2012 Amith Yamasani <yamasani@google.com> Revert "Incorrect behavior of View clear focus."

This reverts commit c6fd88e213703a581fe4680259981f09ae0444f2
/frameworks/base/core/java/android/view/View.java
d7c845c39a5585bd23952639d1a03f2fa603a0f1 14-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Make textDirection API public"
bcca79acb1ed31238a80079930bc69f8b9d8cceb 14-Feb-2012 Chet Haase <chet@google.com> Refactor animation code in new Draw() method into its own method.

Ongoing cleanup of View drawing code, continuation of drawChild() refactoring.

Change-Id: I6d7383bb858d39ced6917d559defe7713e53de38
/frameworks/base/core/java/android/view/View.java
4212d3fc736712d6e5fb69d5067ce8d9a83806ef 14-Feb-2012 Chet Haase <chet@google.com> Merge "Refactor ViewGroup.drawChild() into View.draw()"
e7beae3f4c9c170c7c6c42cf9b572f0ee1ec9c81 14-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Make textDirection API public

Change-Id: I2d5a0e3a990b9a5b78a3bbc8df7f655702743e4b
/frameworks/base/core/java/android/view/View.java
64a48c1d3daca9e0565f2aa4d56f6e94ea073d9b 14-Feb-2012 Chet Haase <chet@google.com> Refactor ViewGroup.drawChild() into View.draw()

Some of the ongoing and upcoming jank work involves having
Views optimize their rendering. For example, it would be more
efficient for native display lists to be able to redraw themselves with
updated transform/alpha properties than it would be to do it the
way we do now, which causes view hierarchy invalidation and display
list recreation.

In order to do this, we need to push more intelligence for view
rendering into the Views themselves, rather than the complicated
mechanism we have now of ViewGroup handling some View properties
(transforms and alpha) and the Views handling the rest of their
rendering.

The first step toward this is to take the current drawChild() method
and push it into a new, package-private method in View that does the
same thing.

Future checkins will refactor the code further, simplifying it and
eventually optimizing around view property changes.

Change-Id: Id44b94536fc3ff80b474db7ef06862f4f51eedce
/frameworks/base/core/java/android/view/View.java
d7dd89095ff2041f0793317c4ee8e8be49388148 27-Jan-2012 Philip Milne <pmilne@google.com> New hooks to allow layouts to improve their performance by doing more caching

This change allows layouts to be notified of changes to LayoutParameters that have occurred
between layout operations.

If an assignment is made to the fields of LayoutParams instances that are already in use,
cachced data may become inconsistent with the new values. For complex layouts, like
GridLayout, in which the layout parameters define the structure of the layout, caching
could have caused ArrayOutOfBoundsException to be raised without this change. This case is
rare in normal code as initialisation is typically performed once. Its nevertheless possible
and much more likely in environments like design tools where layout parametrs may be being
edited on the fly.

Prevent errors as follows (belt and braces):

1. Change javadoc to request that changes to the fields of LayoutParams be accompanied with
a call to View.setLayoutParams(). (This calls requestLayout() which was what the previous
javadoc advised.) Provide a (for now, private) hook for layouts with caches to receive notification
of such calls so they can invalidate any relevant internal state.

2. For GridLayout, we cannot clone layout parameters as traditional Java grids do without retaining
two complete copies because of the public getLayoutParameters() method on View. Retaining two
copies is wasteful on constrainted devices. Instead, we keep just one copy and compute a hashCode
for the critical fields of a GridLayout's layoutParams. The hashChode is checked it prior to all
layout operations; clearing the cache and logging a warning when changes are detected, so that
developers can fix their code to provide the call to setLayoutParams() as above.

Change-Id: I819ea65ec0ab82202e2f94fd5cd3ae2723c1a9a0
/frameworks/base/core/java/android/view/View.java
967e2bf3ac8943a8e8a374bf86021915445cda67 08-Feb-2012 Romain Guy <romainguy@google.com> Preliminary support for clipRect(Rect, Op)

This adds basic support for clip regions. It is currently disabled at compile
time. Enabling clip regions will require setting up a stencil buffer.

Change-Id: I638616a972276e38737f8ac0633692c3845eaa74
/frameworks/base/core/java/android/view/View.java
a33de55404eb2133d1bae2add3f6e8708459f56d 04-Feb-2012 Chet Haase <chet@google.com> Make the TimeAnimator class public.

This class has existed since ICS, but was hidden. This change
just makes it public API.
Also, cleaned up some internal javadocs.

Change-Id: Id69408446ced183e01d2b065a67397eb305d9665
/frameworks/base/core/java/android/view/View.java
a553113a1f88e112b0999c12c7c2e8d724ed7fa8 02-Feb-2012 Chet Haase <chet@google.com> Fix bug in LayoutTransition that caused views to stay invisible

LayoutTransition side-effects the alpha property on View to fade views
in and out. This works fine if the layout transition is always used on
those views' container. But if you fade out a disappearing view and then
set the transition to null on the container and set that view to VISIBLE,
there is no transition logic to restore the alpha value to 1 (opaque).

The fix is to always restore alpha to its pre-animation value when fading
the view out.

Also, added extra info to alpha and the various View transform properties
to help hierarchyviewer debugging.

Issue #5958434: LayoutTransition temporary disablement may leave some views invisible

Change-Id: I3c21b0e7334dc29c10c5e372b589f0e2b59c2883
/frameworks/base/core/java/android/view/View.java
13fd561848ec43573d4cfeec899b4d308841c251 02-Feb-2012 Svetoslav Ganov <svetoslavganov@google.com> Update the comment for View#clearFocus

Change-Id: I779f94e88821574c74e5e76d99ae555a47042c12
/frameworks/base/core/java/android/view/View.java
2eecea3b48ece6f45b30fef9b41dc20075ccc94f 01-Feb-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Speedup the accessibility window querying APIs and clean up."
1e56fff3b90946b342ddabf68648dc3551ce47db 31-Jan-2012 Romain Guy <romainguy@google.com> Merge "Add debug markers to OpenGLRenderer"
13631f3da855f200a151e7837ed9f6b079622b58 31-Jan-2012 Romain Guy <romainguy@google.com> Add debug markers to OpenGLRenderer

These markers will be used to group the GL commands by View in the
OpenGL ES debugging tool. This will help correlate individual GL
calls to higher level components like Views.

Change-Id: I73607ba2e7224a80ac32527968261ee008f049c6
/frameworks/base/core/java/android/view/View.java
12df3cf156885a421beccfa6b6e20fd1a188847a 31-Jan-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "Incorrect behavior of View clear focus."
0d29936ec3b5545a415e8d032150ea987aab36e3 26-Jan-2012 Chet Haase <chet@google.com> Fix bug in LayoutTransition for INVISIBLE views

When a view is becoming VISIBLE or INVISIBLE in a container with a
LayoutTransition, animations run to fade the view in and out and also
to run 'changing' animations on the view's other siblings. This logic
also cancels any running 'changin' animations to account for new ones
running.

However, in the specific case of INVISIBLE changes, there will be no
layout changes in the container - layout has already accounted for that
view (unlike in the case of GONE views); the visibility is just a matter of
drawing the view (or not). Therefore, we're canceling 'changing' animations
that should continue running and not replacing them with any other animations,
since new animations would only be started on layout chnages which are not
forthcoming.

One artifact seen from this bug is that the navigation bar buttons sometimes
disappear when changing orientation. This is because the menu button may
toggle between VISIBLE and INVISIBLE, causing animations on the other
buttons to get canceled, which leaves those views in a completely wrong
state.

The right thing to do is to avoid canceling in-process 'changing' animations
and to skip the logic of setting up new 'changing' animations which won't fire
anyway.

There is some minor API work in here because we did not previously have the
necessary information in LayoutTransition to know whether a view was being
hidden or shown to/from the INVISIBLE state.

Issue #5911213: LayoutTransitions ending in an odd state

Change-Id: I5c60c8583c8ea08965727b4ef17b550c40a3882c
/frameworks/base/core/java/android/view/View.java
c6fd88e213703a581fe4680259981f09ae0444f2 26-Jan-2012 Svetoslav Ganov <svetoslavganov@google.com> Incorrect behavior of View clear focus.

The framework tries to have a focused view all the time. For
that purpose when a view's focus is cleared the focus is given
to the first focusable found from the top. The implementation
of this behavior was causing the following issues:

1. If the fist focusable View tries to clear its focus it
was getting focus but the onFocusChange callbacks were not
properly invoked. Specifically, the onFocusChange for
gaining focus was called first and then the same
callback for clearing focus. Note that the callback
for clearing focus is called when the View is already
focused. Also note that at the end the View did not
clear its focus, hence no focus change callbacks
should be invoked.

2. If not the first focusable View tries to clear focus,
the focus is given to another one but the callback
for getting focus was called before the one for clearing,
so client code may be mislead that there is more than
one focused view at a time.

3. (Nit) The implementaion of clearFocus and unFocus in ViewGroup
was calling the super implementaion when there is a
focused child. Since there could be only one focused View,
having a focused child means that the group is not focused
and the call to the super implementation is not needed.

4. Added unit tests that verify the correct behavior, i.e.
the focus of the first focused view cannot be cleared
which means that no focus change callbacks are invoked.
The callbacks should be called in expected order.
Now the view focus clear precedes the view focus gain
callback. However, in between is invoked the global
focus change callback with the correct values. We may
want to call that one after the View callbacks. If
needed we can revisit this.

Change-Id: Iee80baf5c75c82d3cda09679e4949483cad475f1
/frameworks/base/core/java/android/view/View.java
79311c4af8b54d3cd47ab37a120c648bfc990511 18-Jan-2012 Svetoslav Ganov <svetoslavganov@google.com> Speedup the accessibility window querying APIs and clean up.

1. Now when an interrogating client requires an AccessibilibtyNodeInfo
we aggressively prefetch all the predecessors of that node and its
descendants. The number of fetched nodes in one call is limited to
keep the APIs responsive. The prefetched nodes infos are cached in
the client process. The node info cache is invalidated partially or
completely based on the fired accessibility events. For example,
TYPE_WINDOW_STATE_CHANGED event clears the cache while
TYPE_VIEW_FOCUSED removed the focused node from the cache, etc.
Note that the cache is only for the currently active window.
The ViewRootImple also keeps track of only the ids of the node
infos it has sent to each querying process to avoid duplicating
work. Usually only one process will query the screen content
but we support the general case. Also all the caches are
automatically invalidated so not additional bookkeeping is
required. This simple strategy leads to 10X improving the
speed of the querying APIs.

2. The Monkey and UI test automation framework were registering a
raw event listener for accessibility events and hence perform
connection and cache management in similar way to an AccessibilityService.
This is fragile and requires the implementer to know internal framework
stuff. Now the functionality required by the Monkey and the UI automation
is encapsulated in a new UiTestAutomationBridge class. To enable this
was requited some refactoring of AccessibilityService.

3. Removed the *doSomethiong*InActiveWindow methods from the
AccessibilityInteractionClient and the AccessibilityInteractionConnection.
The function of these methods is implemented by the not *InActiveWindow
version while passing appropriate constants.

4. Updated the internal window Querying tests to use the new
UiTestAutomationBridge.

5. If the ViewRootImple was not initialized the querying APIs of
the IAccessibilityInteractionConnection implementation were
returning immediately without calling the callback with null.
This was causing the client side to wait until it times out. Now
the client is notified as soon as the call fails.

6. Added a check to guarantee that Views with AccessibilityNodeProvider
do not have children.

bug:5879530

Change-Id: I3ee43718748fec6e570992c7073c8f6f1fc269b3
/frameworks/base/core/java/android/view/View.java
5a89672f3ef0781f0c28e63ee774970340dbb4dd 23-Jan-2012 Michael Jurka <mikejurka@google.com> Merge "Remove fastInvalidate and setFast* methods"
9e34b95a1db9f28b31560405687dd651492048e1 20-Jan-2012 Michael Jurka <mikejurka@google.com> Remove fastInvalidate and setFast* methods

- were only being used by Launcher, and they've been
removed from there too

Change-Id: I230e79c89a6450756220ad5cc07180bb5b725bd6
/frameworks/base/core/java/android/view/View.java
0764dee89cc82dd53196cce2865d3cabafed208f 18-Jan-2012 Svetoslav Ganov <svetoslavganov@google.com> Merge "AccessibilityEvent/AccessibilityNodeInfo class name property should be set to only framework classes."
73d27c3d46ce9a19c0cc358d0b2788f1f51706d7 18-Jan-2012 Michael Jurka <mikejurka@google.com> Merge "Check if View's alpha must be updated in setter"
8a78fd4d9572dff95432fcc4ba0e87563415b728 17-Jan-2012 Svetoslav Ganov <svetoslavganov@google.com> AccessibilityEvent/AccessibilityNodeInfo class name property should be set to only framework classes.

AccessibilityEvent and AccessibilityNodeInfo have a property className which is set to the source
Java class. This is problematic since leads to leaking private classes which would allow an
accessibility service to load classes from other packages. This is strongly undesirable since
not trusted code can be loaded, and hence executed, in the accessibility service. To address
that the class name is set to the most concrete framework class extended by the info/event
source.

bug:5878943

Change-Id: I7b3114ece8772ea2773f5151e21b8a6f2006882a
/frameworks/base/core/java/android/view/View.java
a7a7eedee58b69ff3d36fa9d413ea902eb0d5d45 17-Jan-2012 Michael Jurka <mikejurka@google.com> Check if View's alpha must be updated in setter

Change-Id: I91094b43dbacbd637e04ce4074d8df6a27ddf6fb
/frameworks/base/core/java/android/view/View.java
b35ab7b72967adcfd01cec483a705dafe8b951d1 06-Dec-2011 Gilles Debunne <debunne@google.com> Sub display list in TextView

TextView uses a sub-display list to 'cache' the rendering of its
text. This saves time when drawing an editable text, where the blinking
cursor forces a re-draw twice per second, which creates pauses during
scrolling.

Added a sub-display list invalidation when an appearance span is
modified/added/removed.

Also added an invalidation of the display list when selection range
is changed.

Change-Id: I41e8068a12902b8a745c5bb77de8c77def76a270
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
d47f1531d0653be33133cf05ec317a236e763646 16-Dec-2011 Chet Haase <chet@google.com> Make Property objects in View final

The various Properties added to View in 4.0 (ALPHA, TRANSLATION_X, etc.)
were not final, making it possible to assign on property to another.
Not something that someone would want to do, but we should try to prevent
that kind of mess. This API change makes those properties final.

Change-Id: I7d0c7f738eb2074d0781b1ba6a7c19339bac4477
/frameworks/base/core/java/android/view/View.java
e6513486ee83e3ce9e99ee3f08f470fc568f120f 07-Dec-2011 Gilles Debunne <debunne@google.com> Merge "Minor tweak in getLocationInWindow"
6583ce5b89c41a16aab815a09904b039ef9d8d8a 07-Dec-2011 Gilles Debunne <debunne@google.com> Minor tweak in getLocationInWindow

Change-Id: Ib3f30dbfb3aee7c46c58e1f7832e3394702c0ff6
/frameworks/base/core/java/android/view/View.java
9c4b79af221b53f602f946faa9ff317a596a0c39 11-Nov-2011 Romain Guy <romainguy@google.com> Discard framebuffer rendering queues when discarding layers
Bug #5581817

Change-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab
/frameworks/base/core/java/android/view/View.java
f240ac99d6bc3a9c77c00fab0ff102f9da504fd5 03-Dec-2011 Gilles Debunne <debunne@google.com> am 0c7e894e: am 2f1e1e4a: Merge "Handle animations in Views\' rectangle clipping methods." into ics-mr1

* commit '0c7e894e79bea35f979d30e4e3bb6115b102cafd':
Handle animations in Views' rectangle clipping methods.
cea45132e3d5d32a6fc737abf10b8893a50f465b 24-Nov-2011 Gilles Debunne <debunne@google.com> Handle animations in Views' rectangle clipping methods.

getChildVisibleRect and getLocationInWindow do not take the new
mTransformationInfo View attribute.

As a result, these methods return invalid value during an animation
Bug 5638710

Changes in Patch Set 2:
- temporary allocations removed using static thread local variables (method
calls are NOT reentrant).

- scroll should be handled *before* applying the transformation matrix.
Fixed the call order in View#getLocationInWindow()

Patch set 4: fix from comments.
Patch set 5: <p>s

Change-Id: I15dc44c0659305d9029c59a47aba3a738bb35ae1
/frameworks/base/core/java/android/view/View.java
0ce49783083bf81cc1ea812e029fc94e1625a8fd 22-Nov-2011 Romain Guy <romainguy@google.com> am e25ed181: am 26dd54f8: Merge "Ensure we have an EGL context when building layers Bug #5638421" into ics-mr1

* commit 'e25ed181070579fca2522112b1659af2fbf8ddfc':
Ensure we have an EGL context when building layers Bug #5638421
26dd54f87c1daaa369576d9abea823c8105bd702 22-Nov-2011 Romain Guy <romainguy@google.com> Merge "Ensure we have an EGL context when building layers Bug #5638421" into ics-mr1
3526b00a53a2582a51ff8b98ac1400a48f351107 22-Nov-2011 Romain Guy <romainguy@google.com> am c26e4d18: am 8cd39e3a: Merge "Notify views when EGL resources are about to be destroyed Bug #5639899" into ics-mr1

* commit 'c26e4d18a20ab0b3e769fb3e547994f1c27d6713':
Notify views when EGL resources are about to be destroyed Bug #5639899
d0609e41ab0caa40058b711bbd03dd93fe8af607 22-Nov-2011 Romain Guy <romainguy@google.com> Ensure we have an EGL context when building layers
Bug #5638421

This bug was introduced by the recent changes that force more frequent
flushes of the GL renderer.

Change-Id: I55dd4ace6ba1e70ab41927150d6c60c37d7fb196
/frameworks/base/core/java/android/view/View.java
31f2c2e94656530fbf6282803e62edb47e9a894d 21-Nov-2011 Romain Guy <romainguy@google.com> Notify views when EGL resources are about to be destroyed
Bug #5639899

Change-Id: I7c5d8bebf02294426f5b3ab1358a31c38a4fd064
/frameworks/base/core/java/android/view/View.java
e9dc7c9f031b494c6ebe156de957f0a8f2cd58b0 19-Nov-2011 Svetoslav Ganov <svetoslavganov@google.com> am bdc2912d: am d8a3cabc: Merge "Text selection AccessibilityEvents are missing text." into ics-mr1

* commit 'bdc2912da64e5e6402c73997d637224d905ae825':
Text selection AccessibilityEvents are missing text.
84dd52e394d27b5cdf638132808e2585a9049480 18-Nov-2011 Svetoslav Ganov <svetoslavganov@google.com> Text selection AccessibilityEvents are missing text.

The text selection change event was not added to the text
populating accessibility events in View.

bug:5638709

Change-Id: Ie7e319bc07d7e6c48f178a6c1bd22b1fe32ff515
/frameworks/base/core/java/android/view/View.java
28a5ec9613a824d2ec15ce5e5cec77a6fcf444d5 14-Nov-2011 Dave Burke <daveburke@google.com> am 2cfb873c: am 9d66da8a: Merge "Revert "Discard framebuffer rendering queues when discarding layers"" into ics-mr1

* commit '2cfb873c9f0b56f2c7d694a21c968511223933af':
Revert "Discard framebuffer rendering queues when discarding layers"
7077506f9945b87b02bdd47ffce75a5b813c821c 14-Nov-2011 Dave Burke <daveburke@google.com> Revert "Discard framebuffer rendering queues when discarding layers"

This reverts commit da96f8ac2c1c35a54f3f36e6d776cb386a251d03.
/frameworks/base/core/java/android/view/View.java
3f511aaf1cb9dfa69e2f4225a5bd41bec0864cc7 14-Nov-2011 Mathias Agopian <mathias@google.com> am a16ee939: am 28587497: Merge "Discard framebuffer rendering queues when discarding layers Bug #5581817" into ics-mr1

* commit 'a16ee9390e1fcea8ff7cbefd253659c37f2999a3':
Discard framebuffer rendering queues when discarding layers Bug #5581817
da96f8ac2c1c35a54f3f36e6d776cb386a251d03 11-Nov-2011 Romain Guy <romainguy@google.com> Discard framebuffer rendering queues when discarding layers
Bug #5581817

Change-Id: If612846ec5f7793710fc4df152791fb32c506551
/frameworks/base/core/java/android/view/View.java
5d35fd79a78f9e17089ab36096f7b4f2ba7d99b3 10-Nov-2011 Adam Powell <adamp@google.com> am ba44080d: am 67121fd7: Merge "Fix bug 5581874 - Animated drawables don\'t start as expected" into ics-mr1

* commit 'ba44080d834d23d0bc7d118a4950f837eeaca96a':
Fix bug 5581874 - Animated drawables don't start as expected
37419d7321e71edb179faa0eafd2a2acf12b62c1 10-Nov-2011 Adam Powell <adamp@google.com> Fix bug 5581874 - Animated drawables don't start as expected

Fix a bug that caused animated drawables to not schedule properly when
a view has not yet been attached. Also make ImageViews update their
drawable visibility state properly, which will handle scheduling
concerns as ImageViews are attached and detached from their windows.

This should also fix the bug where animated notification icons in the
status bar do not animate until the posting app posts an update to the
notification.

Change-Id: I24c403182831258d1f251736e920c9efe1d38299
/frameworks/base/core/java/android/view/View.java
4b6de4f5a9c2fa08a86b516a49dea97a56e3ce05 02-Nov-2011 Svetoslav Ganov <svetoslavganov@google.com> am 6e42470f: Merge "Accessibility window query APIs should respect root name space." into ics-mr1

* commit '6e42470f928bbf60c9fd3d17a2a69a4b96cec170':
Accessibility window query APIs should respect root name space.
cf3b31704ae7743ca85219bca9698adcf6fbc67a 02-Nov-2011 Dianne Hackborn <hackbod@google.com> am ad41a94b: Merge "Some optimizations." into ics-mr1

* commit 'ad41a94b298f834e13632ee29b27cefd75f10012':
Some optimizations.
6e42470f928bbf60c9fd3d17a2a69a4b96cec170 02-Nov-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Accessibility window query APIs should respect root name space." into ics-mr1
0500b3cfda5192efc09d6d4344b0c6c785c0a815 01-Nov-2011 Dianne Hackborn <hackbod@google.com> Some optimizations.

- Don't try to create a thumbnail bitmap on the client side. This
wastes 64k, and isn't needed since we are doing screenshots.
- Optimize View to put all of the callback pointers out of line.
Added a couple new APIs so these don't need to be protected/public.
- Lazily create ViewGroup's cache paint.
- Change FrameworkPerf app to not use HW accel drawing, to give better
comparison with GB.

Change-Id: Iec56d02459820d74a4cc9c7ec9c1856563c82c7b
/frameworks/base/core/java/android/view/View.java
57f3b566db630233087b121d3d43ecd81a6dfd95 01-Nov-2011 Svetoslav Ganov <svetoslavganov@google.com> Accessibility window query APIs should respect root name space.

1. The window query API used to not-respect the root name space
while traversing the parent relation i.e. a client was able
to fetch the parent of a root name space node.

2. Children that are root name space were reported but their descendants
not. Actually such children should not be reported since they are
the root of a separate logical sub-tree. Such a tree is exposed by
its root allowing its traversal. The accessibility APIs should be
able to explore a virtual tree, i.e. one with a descendant which is
root name space, only if an accessibility event from there was received.

bug:5480096

Change-Id: I4c4d805aa2f6d4edba86eda213b5239bea83eed2
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
e261e283eaedd38235fc93b2a5c35758c613b10c 19-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Add content description setter to RemoteViews

bug:5480389

Change-Id: I66616f379a244ba7f3552d766f3aaa77f207550a
/frameworks/base/core/java/android/view/View.java
b6233ffd602642cd47a08f951770744cbed54f22 18-Oct-2011 Romain Guy <romainguy@google.com> Merge "Return early when we cannot allocate a hardware layer Bug #5462308"
5cd5c3f7e4df99f47e3def6e3707b9eb8205aef3 18-Oct-2011 Romain Guy <romainguy@google.com> Return early when we cannot allocate a hardware layer
Bug #5462308

Change-Id: I52dab809662f6f42a49ca03edc50f6b98fc35a06
/frameworks/base/core/java/android/view/View.java
f755a2e8aabfd6b26df4f3f56f0e9cdfb06cc173 15-Oct-2011 Scott Main <smain@google.com> Merge "docs: a couple notes for a11y methods in View and cleanup to the A11y service HTML to be semantically correct and thus improve its accessibility :)" into ics-mr0
b303d8381d734f48c4e1de4f11bf25950b28adf1 13-Oct-2011 Scott Main <smain@google.com> docs: a couple notes for a11y methods in View and cleanup to the
A11y service HTML to be semantically correct and thus improve its accessibility :)

Change-Id: I483a8a441d802b056f68f82e0e782d86a73298ac
/frameworks/base/core/java/android/view/View.java
471fa9d10b4fa4da070c0ffb5fa5ea1354c8e6b8 14-Oct-2011 Joe Fernandez <joefernandez@google.com> Merge "docs: add developer guide cross-references, Project ACRE, Round 2" into ics-mr0
558459fe85f56f29a6ed6a4d0adb4a0bd6665884 14-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross-references, Project ACRE, Round 2

Change-Id: I39a534ae3a2a34b4dabc333a09961012ef911d3e
/frameworks/base/core/java/android/view/View.java
dba935659024a9ca83cb6bd3f1a9970e277f7658 06-Oct-2011 Daniel Sandler <dsandler@android.com> Break apart DISABLE_HOME and DISABLE_RECENT.

Additionally, start using setSystemUiVisibility() where
possible in the keyguard to allow activities and dialogs to
re-enable some of the navigation keys (notably: home but not
recents).

Finally, stop disabling MENU for activities atop the keyguard.

Bug: 5380495 // no home in driveabout, clock
Bug: 5396134 // able to show home/recent in keyguard
Change-Id: I04eb224554ee8cff79476b85148c4cda75bb0b62
/frameworks/base/core/java/android/view/View.java
a1a274f2794e29afd5ba5e2ca31352cae5c508fd 11-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Accessibility text changed event text not populated."
589b0bb6ab81657ba201cbc441a49f85305170bc 10-Oct-2011 Romain Guy <romainguy@google.com> Make sure we have the correct GL context when grabbing a bitmap
Bug #5427391

Change-Id: I4687a6a3e8968fc3ca8ef171833b2bb7afc16f89
/frameworks/base/core/java/android/view/View.java
9920f4fdeaa3a4c597f62c3d082becc48ea8a7ab 08-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Accessibility text changed event text not populated.

Added the TYPE_VIEW_TEXT_CHANGED event to the populating events.

bug:5430831

Change-Id: I78e87640ea4279227d89f399ad43e9b88eb4a486
/frameworks/base/core/java/android/view/View.java
85b9edf2da0534bc53d139bb88cda8866d265afe 07-Oct-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately"
7853c579fa52e4365c6e44ba38aeb3299d776f44 07-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Fixing errors in position information of scrollable views reported for accessibility."
9a230e01a1237749a8a19a5de8d46531b0c8ca6a 06-Oct-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately

This cleans up how ui flags are managed between the client and window manager.
It still reports the global UI mode state to the callback, but we now only clear
certain flags when the system goes out of a state (currently this just means the
hide nav bar mode), and don't corrupt other flags in the application when the
global state changes.

Also introduces a sequence number between the app and window manager, to avoid
using bad old data coming from the app during these transitions.

Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
/frameworks/base/core/java/android/view/View.java
d9ee72fddb8be40e414a831fb80458dc48699613 06-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Fixing errors in position information of scrollable views reported for accessibility.

1. ScrollView/HorizontalScroll view were reporting only the scroll X and Y but
failed to convey the max scroll along X and Y so the position can be determined.

2. WebView was not reporting correctly its scroll position for accessibility.

3. Some descendants of AdapterView were reporting incorrect position information.

4. Updated the accessibility docs with some details about the scroll information.

5. Cleaned up duplicated code.

bug:5412132
bug:5412265

Change-Id: I165e73ecde027dad811425b9f395a3f758c923ba
/frameworks/base/core/java/android/view/View.java
1a76dcd6d1e30f92668b5df309398d545cef9ace 06-Oct-2011 Chet Haase <chet@google.com> Fix issue #5367164: memory leak in LayoutTransition

When a transition occurs, layout change listeners are added to the container
being transitioned as well as every container up the view hierarchy. The
parent views were not having those listeners removed, so every time a transition
ran, more listeners would be added. Adding to that, the use of an ArrayList
as the collection to hold the listeners meant that adding duplicate items
would just increase the size of the list. There's now a sanity-check on the add
call to make sure that the listener does not exist already, but more importantly
we remove all listeners added when the transition ends.

Change-Id: I4ea05adf30765db091124065539b0ffd32729b3b
/frameworks/base/core/java/android/view/View.java
cac15eb21cab68e5b76fe06f9aff273978c92054 04-Oct-2011 Joe Fernandez <joefernandez@google.com> Merge "docs: add developer guide cross-references, Project ACRE"
b54e7a3d9f60ac605f404f9eb3c5e92ca51bbd23 04-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross-references, Project ACRE

Change-Id: I5df1c4e13af67ff4c4a5b22f3cb1247bf0103b09
/frameworks/base/core/java/android/view/View.java
2588a07730ff511329c87b5f61b20419b2443d48 04-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "The logic for not populating text to some accessibility events is scattered."
2cdedffcfa5594f9d516fa235d5edf4d4f92c21d 03-Oct-2011 Svetoslav Ganov <svetoslavganov@google.com> Accessibility services cannot obtain the source of an event coming from a root namespace descendant.

1. The user can touch the screen at an arbitrary location potentially crossing the root namespace
bounday which will send an accessibility event to accessibility services and they should be able
to obtain the event source. Also accessibility ids are guaranteed to be unique in the window.
Added a package scoped findViewByAccessibilityId method that dives into nested root namespaces.

2. Added accessibility support to the AnalogClock.

bug:5405934

Change-Id: I84edcb554bae41aafcbbc2723c5e62c1ef8a6ddf
/frameworks/base/core/java/android/view/View.java
82e236d72ac197d6673d0b4d484fe5f0b9436731 30-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> The logic for not populating text to some accessibility events is scattered.

1. Some accessibility evenents should not and were not dispatched for
text population but there was no centralized location for enforcing
this - rather the system was firing them in a specific way or there
were conditions in a few places enforcing that. Now this is centralized
and clean.

2. Updated the documentation with some new event types the were lacking.

3. Explicitly stated in the documentaition which events are dispatched to
the sub-tree of the source for text populatation.

bug:5394527

Change-Id: I86e383807d777019ac98b970c7d9d02a2f7afac6
/frameworks/base/core/java/android/view/View.java
59c7f80dd20258cefa1fc4bdd3c9a709a8dd53b8 30-Sep-2011 Romain Guy <romainguy@google.com> TextureView works best when it draws stuff.
Bug #5391188

Change-Id: I5e754881ccb08ff288ebd60de77282c9cbcf3f86
/frameworks/base/core/java/android/view/View.java
2a9fa89643ce796ee6dc7edae2742b291b6c5f40 29-Sep-2011 Romain Guy <romainguy@google.com> Don't build display lists for views with a layer.

This could cause the draw() code of views to be invoked too often
or worse, called with the wrong canvas. For instance, a view backed
by a software layer could get its draw() method called to record a
display list. Using a software layer is the recommended way to use
drawing operations not supported in hardware. Since we would
sometimes call the draw() method with the hardware backend anyway,
the app could crash by executing an unsupported operation.

Change-Id: Ib5f9a3a4c6f3efff5e0162ecd73d2dffe06e30a6
/frameworks/base/core/java/android/view/View.java
83a559e78f57703645066c822a1ec7257c06ba56 23-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Scroll accessibility events should not populate text."
2b2f6d6c544d7a3b5b150ce6f62451ad0a6e390b 23-Sep-2011 Adam Powell <adamp@google.com> Remove unnecessary parameter

Change-Id: I32810a31140263a996d4f600fa53db5f29e60f42
/frameworks/base/core/java/android/view/View.java
b84b94e1a04cd1f396dd6fef98d65ca1a2729c92 23-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> Scroll accessibility events should not populate text.

Scroll events are used to report position change and should not
contain the text content of the view that fires them because it
is usiually a containter for many other views and the text will
be long and not informative for accessibility purposes. Also
such evens are fired relatively frequently. If a client wants
to fetch some textual content for a scroll event he can use
the interrogation APIs.

bug:5352059

Change-Id: I43e02aca895c8ab16ba82ebe1cee3aea8ce7711a
/frameworks/base/core/java/android/view/View.java
7db82acd8151684a886d4725ddf2790ef3a2f80e 23-Sep-2011 Adam Powell <adamp@google.com> Fix leaky view tags

The implementation of the method View#setTag(int, Object) stored tag
objects as entries in a static WeakHashMap associated with the View as
a key. This was problematic for any tag object that stored a hard
reference back to the View the tag was placed on, as it would cause
the WeakReference key to never be collected and the entry to persist
forever.

This was particularly nasty if an app used a keyed tag to store a
ViewHolder object referencing child views for use in the Adapter
implementaion for an AdapterView, since child views will always have
hard references leading back to the parent.

Change-Id: Ia17840a301ba0e0c928861405388fb2f625dac2c
/frameworks/base/core/java/android/view/View.java
705240631beffaedc28bc0b950e8b7f09b6d3b5d 21-Sep-2011 Daniel Sandler <dsandler@android.com> Revert "Allow views to setSystemUiVisibility() with the same value and have it work."

This reverts commit fad9555217ce3a657ffc7cba458a0d2622f7a379.
Because it just didn't work. (The views kept aggressively
re-applying their preferred flags every time view attributes
were aggregated.)

We'll pursue the original strategy, like lights out mode in
HC: if you want to tickle this mode, un-set and re-set the
flags (preferably synchronized with the global SystemUI
visibility state as reported by onSystemUiVisibilityChanged
callbacks).

Bug: 5052456
/frameworks/base/core/java/android/view/View.java
ea515aeafa01de6f50c854ee381b972ef2478284 15-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> Update the public APIs for finding views by text to optionally use content description.

1. Added flags to the search method to specify whether to match text or
content description or both.

2. Added test case for the seach by content description.

3. Updated the code in AccessibilityManager service to reflect the latest
changes there so test automation service works - this is the fake
service used for UI automation.

Change-Id: I14a6779a920ff0430e78947ea5aaf876c2e66076
/frameworks/base/core/java/android/view/View.java
8f73b5dfac9be998fcd6cdc30bcb1e4b210ba575 13-Sep-2011 Christopher Tate <ctate@google.com> Fix bug 5297302 - Remember to release surface after starting drag

Forgetting to release it was "safe" in that GC would eventually
tidy it up anyway, but in the meantime it was possible for a user to
do lots of drag operations, racing ahead of the progress of the garbage
collector, and wind up with drags failing because we'd run out of
surface slots due to all the piled up stale drag shadows.

Change-Id: I7ac93b13cc9996dda04a404571fbc44cb4314694
/frameworks/base/core/java/android/view/View.java
ab0f485e64418eb22f0a1d89d7064902b381e9c2 13-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix problems where we were allocating TypedArray when not needed.

Fixes up some recycling of TypedArray objects to reduce the
number we need to allocate during inflation etc.

Change-Id: I948dccc052997779001eaa99db2a710b04be01ae
/frameworks/base/core/java/android/view/View.java
bd5c9768c4432c6cb2bfa5f521d49ff03c087ff8 13-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Adding accessibility delegate mechanism for backwards compatibility support."
031d9c1389de2b9dac7f175af0b962e24b21d5be 10-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> Adding accessibility delegate mechanism for backwards compatibility support.

1. Added an AccessibilityDelegate class in View which can be set by
a client that wants to cutomize accessibility behavior via
composition as opposed to inheritance. Insead overriding a new method in
View thus being bound to the API version that introduced this
method a developer can conditionally inject the accessibility
customization if the platform API version is heigh enough. The
developer will have to override the method of interest of the
delegate. The default implementation of the delegate methods is
the same as that of View in the case that there is no delegate
set. If a delegate is set calling an accessibility related method
on View will be handed off to the corresponsing method of the
delegate.

bug:5259555

Change-Id: I00e750e22e5e7164a1b571cb3d12ecaf4ab93db4
/frameworks/base/core/java/android/view/View.java
6a6977e8728f3a3d209daadf587079dc7369050b 11-Sep-2011 Chet Haase <chet@google.com> Merge "Fix 5266335: bad DIRTY/invalidation logic"
f186f30a7cbbf84e9b7ef52403d77f252b5229ed 11-Sep-2011 Chet Haase <chet@google.com> Fix 5266335: bad DIRTY/invalidation logic

The DIRTY flag is used to track which elements of the view hierarchy need
to be redrawn on the next drawing operation. This flag is set on the parent
hierarchy of a view when that view is invalidated. There is an optimization for
opaque views that tells the parent that it is dirty, but that it need not
redraw its own content because the view will cover it (since it is opaque).

This dirty-opaque logic breaks down in the current code because we only set
these dirty flags on the parent hierarchy, not on the view itself. In the situation
raised by this bug, we would invalidate the parent container directly (which does
not case the dirty flag to be set), then we would invalidate a child of that view.
Because the child is opaque, the DIRTY_OPAQUE flag would be set on the parent
container. This would cause us, in the later rendering process, to skip the
drawing on that parent container, assuming that it was only asked to be redrawn
because of its opaque child's invalidation.

The fix is to now set the DIRTY flag on an invalidated view, not just on its parent
hierarchy. The DIRTY_OPAQUE logic will avoid setting the opaque flag on views/parents
that are already marked DIRTY, thus an invalidated parent will be correctly drawn
during the drawing process.

Change-Id: Ib5e014a125a4f5168f6a5a3166e941474659aca5
/frameworks/base/core/java/android/view/View.java
1ef3fdbe047c805ce33b2be463ea51dec5952729 10-Sep-2011 Romain Guy <romainguy@google.com> Go faster!!!!

The less we do, the faster we draw.

Change-Id: I7bbc3908b36d8ae295ea3e61ef71fd9ee2187970
/frameworks/base/core/java/android/view/View.java
7b8d7cb59cfdc492df920b0c48960a691994f598 10-Sep-2011 Dianne Hackborn <hackbod@google.com> Merge "Pull animation attributes out of main view class."
ddb715b238c098d8b561a44b9687f0bc67a4c141 09-Sep-2011 Dianne Hackborn <hackbod@google.com> Pull animation attributes out of main view class.

These are now in a separate class that is only allocated when
needed by the view.

Change-Id: I9601bb43b3b4bfdabd982b02f7cd7534437b8ac3
/frameworks/base/core/java/android/view/View.java
e080af37544f5d7d0cc8140289ac96dd21a8742d 09-Sep-2011 Romain Guy <romainguy@google.com> Save/restore display lists' canvas properly

Change-Id: Ic016f0215f9fe5c67af98f059ecce4ed94994810
/frameworks/base/core/java/android/view/View.java
e3238c98054688dd9a5b3ae4a776c023d70fb311 08-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Code cleaning"
8fc54f9b281eecdc1ee05d7c091968b75a640e7e 08-Sep-2011 Adam Powell <adamp@google.com> Fix build

Change-Id: I9efe13a7647088402c6759399a96de7831df964b
/frameworks/base/core/java/android/view/View.java
2b04cef9b49ae5bd5ff197124f2dfcf97af71d09 08-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Code cleaning

- removing CharCount TextDirectionHeuristic references

Change-Id: I8cdc03b0d7bd610c7b8224073ffedd89b8953c63
/frameworks/base/core/java/android/view/View.java
b6e43268f9a499b6d04b0d218e9bd46254ebbc8e 08-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Hide RTL related APIs"
2273b1e4eae27fa60b0b90d16a1891b4526c9b9c 08-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Hide RTL related APIs

Change-Id: Idda458fcdebe7afeb9b95e328e552fcbc7939157
/frameworks/base/core/java/android/view/View.java
c6fc20a91bdf6f5d8cd8784324a55e39bcb7077c 07-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5262565 Need to remove CharCount TextDirectionHeuristics"
c529d8d8c709aed9c9e6d87af3ce2eb4c73da4bf 07-Sep-2011 Romain Guy <romainguy@google.com> Prevent crash in View.createSnapshot if getResources() returns null
Bug #5260241

Change-Id: I90b6d5a8961a6b7b50603a9f59a6e39093646bd4
/frameworks/base/core/java/android/view/View.java
e3bf88da23bfadd89a35b6dec769ea825e5ecd6e 06-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5262565 Need to remove CharCount TextDirectionHeuristics

- update unit tests too

Change-Id: I7c518f58a9f17cb679bc3913bdd38243f7ad2195
/frameworks/base/core/java/android/view/View.java
f679ed0939f10ee3da9363bb179802b8184d1880 02-Sep-2011 Romain Guy <romainguy@google.com> Merge "Prevent a leak when using View.postInvalidate(left, top, right, bottom)"
40c18f59ac3bd0e14ac9c7ed6467e52fb8f95640 02-Sep-2011 Romain Guy <romainguy@google.com> Prevent a leak when using View.postInvalidate(left, top, right, bottom)

Change-Id: I44c9a11d8b62d86d38f4600df2bbea13c874b991
/frameworks/base/core/java/android/view/View.java
8b5a8b5bed98bd1c048864abcf39dfc3875518cb 01-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Code cleaning"
4c1c101a91ed49089a1b81923385cb2f74253c57 01-Sep-2011 Svetoslav Ganov <svetoslavganov@google.com> Accessibility hover events are fired if hover otside of modal window.

1. Added a check whether the received hover event is in the bounds
if the view before sending accessiiblity hover events. Hence, if
a widnow gets a hover event and it gets to its topmost view the
latter will not fire an accessibility event.

bug:5233588

Change-Id: I61e81fbf0ce59a7f57377262ce066bcf8db98f56
/frameworks/base/core/java/android/view/View.java
7d892dcc8a18376f499527a160c6c0ed664e22b1 01-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Code cleaning

- remove unused constant
- fix spelling

Change-Id: I0053129b33c2ee472db84e14d4b2ace5d97d20a8
/frameworks/base/core/java/android/view/View.java
e4e6e206959560a420a765aac576a8da5ec91dbd 29-Aug-2011 Chet Haase <chet@google.com> Fixed bug with invalidation in top-level Views.

There was a bug in an InputMethod app, where popups for the keys
would not pop-down again. The problem was that they were being
marked INVISIBLE, but the new invalidation logic noop'd the
invalidate() call that used to take place. Adding to that was logic
in setFlags() that only invalidated a parent for parents that are
instanceof ViewGroup. In this case, the parent is a ViewRootImpl.

Fix is to call invalidateChild() on the parent if it's not a ViewGroup.

Change-Id: I2c2352072d383cee1367ea7ee6c2207077721fd5
/frameworks/base/core/java/android/view/View.java
aceafe63eeb7d3bfc05ef5ab0b3957572d61ecf5 27-Aug-2011 Chet Haase <chet@google.com> Fixed error in invalidation/LayoutTransition logic

A recent fix for invalidation noop'd calls to invalidate() on
GONE/INVISIBLE views. This logic also noop'd views which might
be GONE, but which are in the process of fading in/out via
LayoutTransition animations. These views should invalidate as
usual.

Change-Id: Ie90a340f70290391a3aa4e68df535c6aabf4e5eb
/frameworks/base/core/java/android/view/View.java
27bf191327cd509daf52e3ebea2385ce66545093 25-Aug-2011 Romain Guy <romainguy@google.com> Merge "Optimize display lists"
04c9d8c2ffd028c35c750bac0a4a7b79e48059b5 25-Aug-2011 Romain Guy <romainguy@google.com> Optimize display lists

Remove redundant or useless operations

Change-Id: If989b4eaa9143eef4254c38b39959aeed1f2b9ab
/frameworks/base/core/java/android/view/View.java
4324eadc89676e860d063fb5f18aabc9f335a48b 25-Aug-2011 Chet Haase <chet@google.com> Fix issue with views becoming visible with stale content.

An earlier fix nooop'd invalidate calls on non-visible views. This
caused an issue where changes to the view while it was not visible
(such as changing the text of a TextView) would not get picked up
by the invalidation process.

The fix is to automatically invalidate() a view when it becomes
visible, to account for any changes that may have occurred to its
content while it was not visible.

Change-Id: Ia0f8fb42ca627b5a38f08761fa622b23f2dfa38b
/frameworks/base/core/java/android/view/View.java
c2d256b41587ff44efb6373885affe02e5df80b5 23-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Improve TextDirection resolution"
a68c5cf8a111d0c901474b5819d49ca5eea42a65 22-Aug-2011 Chet Haase <chet@google.com> Fix invalidation bug with INVISIBLE views.

There was a bug in the invalidation code that prevented some
animations fropm starting. An INVISIBLE view would mark some dirty
flags then propagate the invaliation up the parent hierarchy. This would
cause a redraw of the hierarchy, but would not include the invisible
view (invisible children do not get drawn). Thus the flags wouldn't get cleared.

Later, an animation to fade the view in (making it VISIBLE on start) would
be started on the view. But the invalidation triggered by that animation would
not propagate because the invisible view would see that it was already
invalidated, and wouldn't send the message along. No invalidation means no drawing,
so the animation wouldn't start because the invalidation didn't make it's way up to the
top and the child's parent did not redraw.

The fix is to noop the invalidate() call for GONE/INVISIBLE views which do not
have animations set on them. Making these views VISIBLE later will trigger
an invalidation, as will starting an animation on them, so the behavior should
not change except for the buggy situation.

Change-Id: I7a26a4bc7823f08fef56e52648e77ca256df6858
/frameworks/base/core/java/android/view/View.java
a646145c335ba821f01d9e4f8be2583eb9fd7266 20-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Improve TextDirection resolution

- remove unuseful heuristics
- tune Javadoc

Change-Id: Id72a158b3a17a528423d278b1cbfd95b8c2951b5
/frameworks/base/core/java/android/view/View.java
3de510313a44977a25ecb5253603fb2df2cc34b2 18-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5175022 Easy mode in MeasuredText.setPara() is no more used"
4b60c30838fbd635964f1e79c057de5048dcc66f 18-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5175022 Easy mode in MeasuredText.setPara() is no more used

- use the real TextDirectionHeuristics constants
- make more formal that LayoutDirection should be resolved BEFORE TextDirection
- reset TextDirection if LayoutDirection is recomputed
- remove non used TextDirectionHeuristic.isRtl(CharSequence...)

Change-Id: I1d53a7e3ee324cfd27785bb4d715d93de8d9ff4d
/frameworks/base/core/java/android/view/View.java
351eb33d84fb76f1addf6a18ce4c7ff5ca40dd5d 18-Aug-2011 Daniel Sandler <dsandler@google.com> Merge "Allow views to setSystemUiVisibility() with the same value and have it work."
fad9555217ce3a657ffc7cba458a0d2622f7a379 17-Aug-2011 Daniel Sandler <dsandler@google.com> Allow views to setSystemUiVisibility() with the same value and have it work.

This will save apps the trouble of having to first remove
the lights-out or hide-navigation flags before reapplying
them (in situations where the system UI has decided to
override those flags).

Bug: 5052456
Change-Id: I31f6ca9105379ae5f0216ebe3c39fc8d5d935f92
/frameworks/base/core/java/android/view/View.java
4dfbec2665bd5f567d7321f2e88a39e1ab45fdf8 15-Aug-2011 Jeff Brown <jeffbrown@google.com> Find next focus id from inside-out.
Bug: 5165543

This change fixes some problems when the view hierarchy contains
duplicate ids, such as when ListViews contain nested custom views.
If the custom views contain next focused id hints, then the system
should prefer the other views within the ListView item over any
other views outside of the ListView item.

Change-Id: I5653ff6bac0bf9f08bd6ecbe5a3bb22ea47ab566
/frameworks/base/core/java/android/view/View.java
e21f89c80256ed2aeaa53022770b140b58e75394 15-Aug-2011 Adam Powell <adamp@google.com> Merge "Fix bug 5159596 - Slider grabs touch point when trying to scroll a list"
f2452b997c4eacc09985a1861a973e305b476135 15-Aug-2011 Jeff Sharkey <jsharkey@android.com> Merge "Change Preferences padding to match UI spec."
1029866a12e04e9db52485e2ec0353e764d15549 15-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5159596 - Slider grabs touch point when trying to scroll a list

SeekBar widgets were not good citizens when placed in scrolling containers.
Detect when a SeekBar being touched is in a scrolling container and fall
back to a touch slop-based method for beginning a drag. Taps along the
seek bar itself will still change the value on touch up, even if the touch
slop never initiated a proper drag.

Factor out the code used to determine scrolling container status in View
into something that can be reused elsewhere in the framework; leave it
@hidden for now.

Change-Id: I59a21e8ab2c3b0092fafedbcd6ae1ee15f45971c
/frameworks/base/core/java/android/view/View.java
010d7e51604b1cffed6c4a16ba1f8b2527fd27e8 09-Aug-2011 Jeff Sharkey <jsharkey@android.com> Change Preferences padding to match UI spec.

Bug: 5091431
Change-Id: I1b657534c3ecccbddda1bece910da7f31d85291c
/frameworks/base/core/java/android/view/View.java
e63a4f35c94f32dbc13533ddfb7334f9706be844 11-Aug-2011 Romain Guy <romainguy@google.com> Document threading limitations on various View methods
Bug #5150923

Change-Id: I765d8e4d63a1fee7a12b9c2992bec67b4b6d1131
/frameworks/base/core/java/android/view/View.java
6311d0a079702b29984c0d31937345be105e1a5e 03-Aug-2011 Dianne Hackborn <hackbod@google.com> Clear the bitmap from the canvas in a lot of places.

Change-Id: I6b2071ac7b348c473b9bdd1b972d095aebbb4fb3
/frameworks/base/core/java/android/view/View.java
8a2da33c77bae825444fffd326d064225241c7cc 02-Aug-2011 Romain Guy <romainguy@google.com> Merge "Allow Canvas.setBitmap() to receive a null Bitmap."
0965a3244b4c3009d08db2e084cdcb681ef66d26 02-Aug-2011 Romain Guy <romainguy@google.com> Allow Canvas.setBitmap() to receive a null Bitmap.

Change-Id: I6096f0b44866e532ccd96a29c816bf34d48c1dc2
/frameworks/base/core/java/android/view/View.java
07c6cc7b7b2ffece4e8149cf10eab31da1fc1d87 01-Aug-2011 Jeff Brown <jeffbrown@google.com> Merge "Tweak hover for better accessibility and compatibility. Bug: 5087943"
53f2531ba7bc72489d03fd17b6ce29c811fad8b5 29-Jul-2011 Daniel Sandler <dsandler@google.com> Merge "The fullest of fullscreen modes."
ea83503e8683531fac2534047e50bc1e5979b6dd 29-Jul-2011 Romain Guy <romainguy@google.com> Don't create hw layers when there's no hw context.
Bug #5093805

Change-Id: Ia58b3381c83b9a200e80020e5c1b9c337ad6c35c
/frameworks/base/core/java/android/view/View.java
a1b2418e647332e8bed8229d78a64f55a605d024 28-Jul-2011 Jeff Brown <jeffbrown@google.com> Tweak hover for better accessibility and compatibility.
Bug: 5087943

Change-Id: I5533c18ec042b8d9cb590d8d3b22ce4a391c910d
/frameworks/base/core/java/android/view/View.java
60ee25643e0a7b8841063a4e97b0f18c51807e91 22-Jul-2011 Daniel Sandler <dsandler@google.com> The fullest of fullscreen modes.

View.setSystemUiVisibility() now properly accepts a
bitfield, including:

* SYSTEM_UI_FLAG_LOW_PROFILE: "lights out mode"
(previously known, erroneously, as STATUS_BAR_HIDDEN)

* SYSTEM_UI_FLAG_HIDE_NAVIGATION: for when you need every
single pixel on a device that also has a navigation bar

These flags are painstakingly aggregated across the entire
view hierarchy and carefully delivered to the status bar
service, which in turn gently passes them along to the bar
implementation.

To really get access to the whole screen, you need to use
HIDE_NAVIGATION in conjunction with FLAG_FULLSCREEN and
FLAG_LAYOUT_IN_SCREEN. See development/samples/Overscan for
an example of how to do this.

Change-Id: I5fbfe009d9ceebbbf71db73f14a7008ea7c1d4da
/frameworks/base/core/java/android/view/View.java
b6f7a27c59fd170b5d7617e43e21bfd8587f234e 28-Jul-2011 Romain Guy <romainguy@google.com> Merge "Reclaim more memory, more often."
65b345fa22b878e141b8fd8ece9c208df00fa40f 28-Jul-2011 Romain Guy <romainguy@google.com> Reclaim more memory, more often.

Yay.

Change-Id: I04557ad575c307a55088549f48f0e9ad994b7275
/frameworks/base/core/java/android/view/View.java
c8ec222cd8e7d7056b0f01018ac0c38d2c7204c0 28-Jul-2011 Romain Guy <romainguy@google.com> Merge "Destroy layers and flush layers cache when a window is destroyed."
6d7475d666baefaa3ba9f0dcee25238739454241 28-Jul-2011 Romain Guy <romainguy@google.com> Destroy layers and flush layers cache when a window is destroyed.

Change-Id: I3fa1bc3ff50fb99e3d2e490925bd6b0a0f809fff
/frameworks/base/core/java/android/view/View.java
812634c236b83e100c8473d607e44f8d8c48e805 27-Jul-2011 Scott Main <smain@google.com> cherrypick Change-Id: I213711f4b5d867ba91c961a2f098b6cc415cfcb3
docs: clarify framelayout class summary, issue 5055437

Conflicts:

core/java/android/view/View.java
core/java/android/widget/FrameLayout.java

Change-Id: Ia446d2d4cc798757d7aea104cfaf75fc2315dc50
/frameworks/base/core/java/android/view/View.java
e3f5edf9755ca2ffbb654389251a61b35a3d9901 26-Jul-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Set initial bounds offset to (0,0) so that in-screen bounds reported by AccessibilityNodeInfo are correct"
5bd36eee8698553941bffdc795aa8f2cc66b6338 25-Jul-2011 Adam Powell <adamp@google.com> Merge "Fix bug 5060033 - No text-editing toolbar when in a dialog"
0bd1d0a15294345bf88b20df28466907f982cec7 23-Jul-2011 Adam Powell <adamp@google.com> Fix bug 5060033 - No text-editing toolbar when in a dialog

Fix a bug that caused standalone action mode bars to not appear
properly or account for system insets such as the status bar.

Add public API to View to toggle the fitsSystemWindows attribute.

Change-Id: I5d7669425b930c5d23f9df26a45f544b706e8242
/frameworks/base/core/java/android/view/View.java
d794acaa6b1c8333bb9c12a84cd74fe24662bb90 23-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Code cleaning

- this was a bit ugly, isnt it?

Change-Id: Ic479c180977d73d333afed7696b2920840d92abf
/frameworks/base/core/java/android/view/View.java
326804f81c0710f0ea0d0f871d2f24e6f332a23e 23-Jul-2011 Alan Viverette <alanv@google.com> Set initial bounds offset to (0,0) so that in-screen bounds reported by AccessibilityNodeInfo are correct

Bug: 5063700
Change-Id: I4814c78eb1d6eae007976a057358377560560363
/frameworks/base/core/java/android/view/View.java
08695111cffd239d0f9917ff197c86e12e2e150c 22-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Decouple GLES20RecordingCanvas lifetime from GLES20DisplayList. Bug: 5062011"
162a0217563f4665da6eb183dfce0fef740f641f 22-Jul-2011 Jeff Brown <jeffbrown@google.com> Decouple GLES20RecordingCanvas lifetime from GLES20DisplayList.
Bug: 5062011

Previously, each GLES20DisplayList would hold onto an instance of
GLES20RecordingCanvas. In turn, each GLES20RecordingCanvas
held onto an SkWriter with a 16Kb buffer along with several other
objects. With one display list per view and hundreds of views,
the overhead could add up to a few megabytes.

Ensured that the GLES20RecordingCanvas is reset as soon as
the display list has been constructed, thereby promptly freeing
the 16Kb buffer.

Changed GLES20DisplayList so that it acquires a GLES20RecordingCanvas
from a pool as needed and recycles it when done.

Removed some dead code and cruft related to the construction of
GLES20Canvas objects in general. Some code was written with the
assumption that the underlying renderer object could change
behind the scenes or might be lazily constructed, but that isn't
actually the case so we can simplify things.

Removed an unnecessary weak reference from GLES20DisplayList
to the View. It isn't actually used anywhere.

Fixed a bug in GLES20DisplayList where isValid() would return
true while the display list was being recorded. This is incorrect
because the native display list might not actually exist. Worse,
even if the native display list does exist, it is stale and
potentially refers to old Bitmaps that have been GC'd (because the
mBitmaps list was cleared when recording started).

Change-Id: Ib12d5483688cb253478edeb0156d34c476c2566b
/frameworks/base/core/java/android/view/View.java
aff599b4abb10bad6711ff9348f97a56240e0612 21-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix CheckTextView padding

- fix for bug #5051724 and bug #5051674
- override resolvePadding for doing correct padding resolution

Change-Id: Id8c7bf4afa24ff2169fd1bd7f5024a342279aab2
/frameworks/base/core/java/android/view/View.java
1180644280a38f77756926531037bfd7b9f1974c 20-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4772392 Check what needs to be done for RTL specific new attributes that are in public.xml

- cleanup public.xml
- make BiDiTest makefile non visible to the build system
- provide file for injecting the new attributes by hand

Change-Id: I5037ec323066ebd254be51fff7070a5a0101dff7
/frameworks/base/core/java/android/view/View.java
1003aeb9dee6cb9ccb9991b32a6be94cd933d0ce 20-Jul-2011 Romain Guy <romainguy@google.com> Merge "Reduce the fade area to save bandwidth."
f2fc460a9512500d9d5749fbaada88903d8e3b22 20-Jul-2011 Romain Guy <romainguy@google.com> Reduce the fade area to save bandwidth.

Change-Id: I8ccea17fc1fb3c132329baa0acc1b3d5a140a5c6
/frameworks/base/core/java/android/view/View.java
7dde1c8ccce049378b8aa9e757b6f907040c8640 19-Jul-2011 Chet Haase <chet@google.com> Merge "Don't recreate view's display list when size hasn't changed"
75755e23f30d7a1f8c7b0c76ff5b2bcc72d6844f 19-Jul-2011 Chet Haase <chet@google.com> Don't recreate view's display list when size hasn't changed

Minor optimization in setFrame(), to force recreation of
a view's display list only when the actual size of the view has
changed.

Change-Id: Id07bd6943beec30de731ae8469ba881f5c0d9ac6
/frameworks/base/core/java/android/view/View.java
6dd005b48138708762bfade0081d031a2a4a3822 18-Jul-2011 Dianne Hackborn <hackbod@google.com> I. Can. Not. Stand. ViewAncestor.

It was done so we would have the name "ViewRoot" available for a
public API. However, the name "ViewAncestor" just makes no sense.
So instead, change it to ViewRootImpl.

Change-Id: If9599ca67896f339f6fefa7d1dde121201171d97
/frameworks/base/core/java/android/view/View.java
989571eeca547db5f8972560c2d45f00be92a327 18-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix resolution padding glitch"
4d36ec11f21ccbb71fbf9277e14b440ad62ba31d 18-Jul-2011 Adam Powell <adamp@google.com> Make View#setBackgroundDrawable a no-op if setting the same background.

Change-Id: Idd3e0ae80609557d82a5564daa1cfb0abca42ded
/frameworks/base/core/java/android/view/View.java
9c83011005349f2f0ebefb47c8ea7fc4bb5a07f7 16-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #4972141 Overlapping content in single-choice dialogs"
f3e1a936c3d10fb13c3b1006cfc91dd4a224dc26 16-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix resolution padding glitch

- make LAYOUT_DIRECTION_LTR case same as LAYOUT_DIRECTION_RTL case

Change-Id: I910f3227c7f5e469cca2c59a6a26362da7965ee5
/frameworks/base/core/java/android/view/View.java
54d69625558f401d5fe65309effb713d2ea06f54 16-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4972141 Overlapping content in single-choice dialogs

- need to take care about padding resolution

Change-Id: Ida9738ffada6c6455b7949f933fa61924c4f7961
/frameworks/base/core/java/android/view/View.java
50e95eba5c7cf70a0ecbc50c0cf5b700201aa67f 15-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Implement textDirection heuristic selection."
cb379120456d8065d742021fc5c66748fc8a11a8 07-Jul-2011 Doug Felt <dougfelt@google.com> Implement textDirection heuristic selection.

Change-Id: I2fcf18de573f2d66494fa5ed61e4273c3c6078c7
/frameworks/base/core/java/android/view/View.java
fe7e40dc0dabbe677308b87d0b5f538fc9161c7d 13-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5025936 TableLayout layout direction resolution is broken

- check is the parent's view can do resolution when there is inheritance

Change-Id: Ic21d4ee761982ee219229a95f170b6bf2e596b02
/frameworks/base/core/java/android/view/View.java
7f86c806ada21fc7a3feefd89d6fcb4282b0af40 02-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix View reset of layoutDirection and textDirection

- do it in onDetachedFromWindow()
- make naming consistent too
- update unit tests

Change-Id: I320fcdbf75166bae793c4409e7344608b696667f
/frameworks/base/core/java/android/view/View.java
0e591ab277e777b0422463823e3abf28bb1fd5d8 01-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Add charCount heuristic to TextView textDirection"
8f5026562f26dcde43ee9d9182b309c3204dc1ad 30-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add charCount heuristic to TextView textDirection

- threshold set to 60% (using a constant)
- fix also one issue during layout direction resolution (parent could be null so delay resolution
up to when parent is no more null)

Change-Id: I65f24a297aac6bc0d5d482ee31b55db0b201e5bf
/frameworks/base/core/java/android/view/View.java
fe8b06cfb4cb4991bcfd09ffa60dcbb7b48ee45f 30-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Support control of text alignment."
c0ccf0c47c00942a9d0f2670600a8f2d4d7adb5b 24-Jun-2011 Doug Felt <dougfelt@google.com> Support control of text alignment.

Change-Id: Id6f3682f67ba2e6811e3014cd34a281e6dd0a469
/frameworks/base/core/java/android/view/View.java
222688682e6e072076489d8203d01bdf2366101a 28-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add textDirection support for TextView and ViewGroup

- use ViewGroup inheritance if defined
- use different heuristics (inherit, firstStrong, anyRtl, ltr, rtl)
- add more unit tests

Change-Id: Ic1325aa7d9e4689b181e0a2d08b7dd7fb3f0dbeb
/frameworks/base/core/java/android/view/View.java
53ca3f13e70fda98aa9f39bb0c15afaf435e3904 28-Jun-2011 Jeff Brown <jeffbrown@google.com> Hover and stylus API cleanup.

Added missing setOnHoverListener method.
Removed BUTTON_STATE_ERASER.

Change-Id: I5d820d0a8e47fe5fd2d88e9fd9fc3fc6ce0dea0d
/frameworks/base/core/java/android/view/View.java
a0156177cdc809795dd8bc5a19943dd2b6f82b66 27-Jun-2011 Svetoslav Ganov <svetoslavganov@google.com> Added scroll and text selection change accessibility events.

1. Added scrolling accessibility event to provicde feedback
when a view is scrolled.

Note: We need scroll events for ICS since even though we have
touch exploration the user does not know when something
is scrollable and not feedback is provided while scrolling.

bug:4902097

2. Added a text selection change event to provide feedback
for selection changes including cursor movement.

Note: We need the text selection change events for ICS since
even though the IME supports navigation in text fields
the user receives no feedback for the current selection/
cursor position.

bug:4586186

3. Added a scrollable property to both AccessibilityEvent and
AccessibilityNodeInfo. The info has to describe the source
in terms of all properties that make sense for accessibility
purposes and the event has this property (kinda duplicated)
since clients will aways want to know if the source is
scrollable to provided clue to the user and we want to avoid
pulling the info of the source for every accessibility event.

Change-Id: I232d6825da78e6a12d52125f51320217e6fadb11
/frameworks/base/core/java/android/view/View.java
b76023afd192a1f5c81a8965cfd1b9dde2558726 21-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Introduce MarginLayoutParams marginStart and margingEnd

- update BiDiTest app for adding more unit tests concerning margin

Change-Id: Ia6a7e0a1948a2c375e8f3cc87d120a85351a8c27
/frameworks/base/core/java/android/view/View.java
c897fbfaf91f85a4f73643b2da6b58485350d574 24-Jun-2011 Romain Guy <romainguy@google.com> Merge "Code cleanup"
02ccac69fd1c0a03c24c5f3ace0ad4bed337b1fd 24-Jun-2011 Romain Guy <romainguy@google.com> Code cleanup

Change-Id: I64c346004e0adf9a776d0315534d4fe445f0c0ca
/frameworks/base/core/java/android/view/View.java
a54a600bc41c8ac760f85333b0c562cdc6770531 24-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #4813026 resolved direction of view doesn't change after layout direction changes"
a9489274d67b540804aafb587a226f7c2ae4464d 23-Jun-2011 Romain Guy <romainguy@google.com> Add the ability to specify the opacity of a TextureView

TextureView assumes its content is opaque by default.

Change-Id: Iba873423566a5b67c388081838bd910dceba32ba
/frameworks/base/core/java/android/view/View.java
80dc53d652b060d4dea7d70e9a5aa3b8321bcf8d 22-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4813026 resolved direction of view doesn't change after layout direction changes

- reset resolution if setLayoutDirection() is called
- propagate resolution reset to the children if the View is a ViewGroup and direction is inherited

Change-Id: Iab1a75b17426aead7e28caba827614d7cf8e9450
/frameworks/base/core/java/android/view/View.java
87b7f805b94f5df53343264509f6d606d96dfb05 22-Jun-2011 Jeff Brown <jeffbrown@google.com> Send hover to all children under pointer.

Previously we only sent hover to the topmost child, but this doesn't
handle cases where multiple children are overlapped to achieve
certain special effects. Now we send hover to all children until
one of them handles it.

Also moved the call to send the accessibility event into the
main dispatch function so that we can send the accessibility event
for all innermost hovered views even when setHovered() might
not be called.

Change-Id: I6fb8b974db44b594c441deafc012b8415afdfac7
/frameworks/base/core/java/android/view/View.java
194f4a7afd6be1600e360b553f6d9a2f03a3f45b 22-Jun-2011 Jeff Brown <jeffbrown@google.com> Merge "Only handle onHoverEvent in actionable views."
aa4d46bb12e7fab8d9d8d6e0e2a8d6205420a318 22-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #4796027 left/right padding regression after recent View change (part 2)"
f9e36506f1d1d83d5a7266f955e861b9e819b205 22-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4796027 left/right padding regression after recent View change (part 2)

- revert previous fix (transforming >=0 to >0)
- initialize mUserPaddingStart and mUserPaddingEnd to -1 in the specific View(Context context) constructor
- cache mUserPaddingStart and mUserPaddingEnd a bit earlier in View(Context context, AttributeSet attrs, int defStyle) constructor
- cache also mUserPaddingStart and mUserPaddingEnd in setPaddingRelative()

Change-Id: Ibe398da7af35f77655d7006444fa49c9c5387f62
/frameworks/base/core/java/android/view/View.java
10b6290c5f15ae512a2f6b5bf8d95bd2527c7235 21-Jun-2011 Jeff Brown <jeffbrown@google.com> Only handle onHoverEvent in actionable views.

Modified onHoverEvent so that a view only has its state changed to
hovered when the view is clickable. The intent is to prevent labels
from taking hover focus away from their containing view group despite
not being actionable in any way. The child will still receive
a hover event but, if it does not handle the event (returns false),
the hover event will bubble up to its parent and ancestors allowing
them a chance to handle the event instead.

The new onHoverEvent semantics are better because now they closely
mirror those of onTouchEvent. This makes it straightforward to
implement views that respond to hover by changing their visual
appearance (such as by making buttons glow when hovered).

Added onInterceptHoverEvent to enable ViewGroups to explicitly
intercept hover events within their bounds.

Exposed the new hover event API for real.

Change-Id: I63195c8f5c74b859f6047487f9a0f703e8f40ffe
/frameworks/base/core/java/android/view/View.java
f8ed444fad4c5bcb9c163ecb1303871c47e676d0 22-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4796027 left/right padding regression after recent View change

- mUserPaddingStart and mUserPaddingEnd had be be greater than 0 for overriding

Change-Id: I588a9971bf73aa9461716cfd5a006373a14408f8
/frameworks/base/core/java/android/view/View.java
b53a68bbd96c3ffa22914c72315d50e6999dcb28 21-Jun-2011 Adam Powell <adamp@google.com> Fix bug 4738084 - Padding calculation regression

Make sure user padding values aren't clobbered during construction.

Change-Id: I90d1610e0bf50ccb10f058fb2b6c6d8ff34eec3b
/frameworks/base/core/java/android/view/View.java
d8703a98241ff190a26bc4b6089a0a8ab0122d8f 17-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add View paddingStart and paddingEnd

- use a lazy padding resolution (because layout direction is lazyly resolved too)
- cache resolved layout direction as getResolvedLayoutDirection() will be more called
- enable resetting layout direction cache if needed
- update unit tests

Change-Id: I30ce19e3100cc137f84e60163b60e1577ff61819
/frameworks/base/core/java/android/view/View.java
1790a10eea34b777dcca54cfafb05ef4914b23fb 18-Jun-2011 Chet Haase <chet@google.com> Merge "Invisible views can't start animations"
ee452bcc06c6a42ecc78a154bb4fb9366e9178eb 18-Jun-2011 Romain Guy <romainguy@google.com> Merge "Fix rendering issue with paths when the stroke width is 0"
98029c825b9234e6b90721d910cc180885fcab1d 18-Jun-2011 Romain Guy <romainguy@google.com> Fix rendering issue with paths when the stroke width is 0

Change-Id: I5d8ac23dc69e9e17df4ef6b5195186b5207e2524
/frameworks/base/core/java/android/view/View.java
c8a9a70c5fe1be7e22f861f40b8cf3a9cf147cb2 17-Jun-2011 Chet Haase <chet@google.com> Invisible views can't start animations

The invalidation logic was broken for invisible views, causing
a problem when an animation was set to start on an invisible view
(to fade it in), but the view would not propagate the invalidation
event that would trigger the start of the animation rendering.
Fix: reset the DRAWN flag when a view becomes invisible to allow
the invalidation logic to work as intended.

Change-Id: Ibf49c6e8b39506a92a6e5f45cb8a12626ae4f931
/frameworks/base/core/java/android/view/View.java
4503c8dd714e1e40306d9356bf27b1f4925ea5f0 17-Jun-2011 Amith Yamasani <yamasani@google.com> Inform the InputMethodManager that a focused view has been attached.

This enables new fragments or views that have a focused EditText to register
the view with the input method framework as the served view.

Change-Id: I260439223b56626f2e57bd778bbe5194ed44e361
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
c0053223bedf33581b0830fb87be32c1f26e5372 13-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add View.getResolvedLayoutDirection()

- update Callback2 interface
- update Gravity.getAbsoluteGravity() and Gravity.apply() to be more generic
by changing "boolean isRtl" parameter to "int layoutDirection"
- fix BiDiTests for RTL FrameLayout

Change-Id: I97bb456c22d5fd3ecb34f08564ce4dbed37e7459
/frameworks/base/core/java/android/view/View.java
2714abff5cc50b1487c0979c99cc685f5ea113b1 14-Jun-2011 Adam Powell <adamp@google.com> Merge "Expose api on View to determine if the view can be scrolled."
6915944fc722fd8a7d4f26a02faaee51afdfc5c1 14-Jun-2011 Adam Powell <adamp@google.com> Expose api on View to determine if the view can be scrolled.

Change-Id: I41783237a975151392faec04c6a85803ebbccfb4
/frameworks/base/core/java/android/view/View.java
eeee4d2c01d3c4ed99e4891dbc75c7de69a803fa 11-Jun-2011 Svetoslav Ganov <svetoslavganov@google.com> Final polish of the interrogation feature.

1. Added a new event type for notifying client accessibilitiy
services for changes in the layout. The event is fired at
most once for a given time frame and is delivered to clients
only if it originates from the window that can be interrogated.

2. Exposed the findByText functionality in AccessibilityNodeInfo.
This is very useful for an accessibility service since it allows
searching for something the user knows is on the screen thus
avoiding touch exploring the content. Touch exploring is
excellent for learning the apps but knowing them search is
much faster.

3. Fixed a bug causing an accessibiliby service not to receive
the event source in case of more than one service is registered
and one of them does not have paermission to interrogate the window.
The same event was dispatched to multiple services but if one
of them does not have interrogation permission the event is
modified to remove the source causing subsequent serivices not
to get the later.

4. Moved the getSource setSource methods to AccessibilityRecord
instead in AccessibilityEvent.

5. Hiden some protected members in AccessibilityRecod which should
not be made public since getters exist.

6. Added the View absolute coordinates in the screen to AccessibilityNodeInfo.
This is needed for fast computation of relative positions of
views from accessibility - common use case for the later.

7. Fixed a couple of marshalling bugs.

8. Added a test for the object contract of AccessibilityNodeInfo.

Change-Id: Id9dc50c33aff441e4c93d25ea316c9bbc4bd7a35
/frameworks/base/core/java/android/view/View.java
26e432d25f2ba199ae8b762fc68da8463389dd9b 10-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Make View respect LAYOUT_DIRECTION_LOCALE

- update also unit tests for taking care of the locale direction
- code formatting on the layout test files

Change-Id: I4037eac3c572de9abb0178f36ca03803cc2c1522
/frameworks/base/core/java/android/view/View.java
59a12cae208790dd202656f50a40a53ef49baeeb 10-Jun-2011 Romain Guy <romainguy@google.com> Add a way to measure potential framerate of the view hierarchy.

Change-Id: Ia19c7ed143d8a823fd678ffab84613ea075d228a
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
c46f7ffa9079f3ae8a5204e7519ed7a1250116d0 07-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Rename atribute View horizontalDirection to layoutDirection and update unit tests

- update before/after to start/end in unit test app

Change-Id: Id7286ef5d9390540faf8ecd5f0b1c140d04bb364
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
bce84d2bcaa30b9d937b629111091e9f6286c3eb 03-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Improve ViewDebug informations for View and LineaLayout

Change-Id: Ie34519c975027dead806b7859b638d78c39ace77
/frameworks/base/core/java/android/view/View.java
4f5aa91ba58486ff25904942320b234986094958 01-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix View default horizontal direction

- set default value to View.HORIZONTAL_DIRECTION_INHERIT
- code refactoring

Change-Id: Ib5b49c8f8ebd6461992bff87603fdbb4b261218e
/frameworks/base/core/java/android/view/View.java
5ff0f99b23da389f59fe736c4c670c60f13be8ea 27-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Add support for Gravity BEFORE and AFTER"
6a03640539405afbdefe72894759281b98aa6e6f 23-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Add support for Gravity BEFORE and AFTER

- update layouts
- add Callback2 for RTL aware Drawable
- add unit tests

Change-Id: Ic64d0291e262170aff7297c6580b0b422eaa8d89
/frameworks/base/core/java/android/view/View.java
ec6331b82a41beda86d9ff1797af6001603f0053 25-May-2011 Scott Main <smain@google.com> docs: add accepted values for setting status bar visibility

Change-Id: I67ef29f8ccc7b4a754ebb24efd96e9821e3d8662
/frameworks/base/core/java/android/view/View.java
cca2c9807206f320bd41bf8656a227e4f249e4ba 20-May-2011 Chet Haase <chet@google.com> Add ability to transition parent hierarchy in layout transitions

This change compensates for changes in the parent hierarchy of
transitioning views. It automatically animates parents with the same
animations as those used for the CHANGING animations run on the container
children.

Change-Id: I86471d16a9070b024cc09c8f6e0f504a881fa99f
/frameworks/base/core/java/android/view/View.java
71fcc865e3ac3a3b05ffa204e6a2eaa8bad48a8c 20-May-2011 Romain Guy <romainguy@google.com> Merge "Code cleanup."
88b4f153e2be863d79f4d7f68af95e0f9375e4ec 20-May-2011 Romain Guy <romainguy@google.com> Code cleanup.

Change-Id: Ia6ea04b83832db2f39e3168ef2596c24273a7ef3
/frameworks/base/core/java/android/view/View.java
1714c21c15b83e555cb6cd47019145eecf5e8871 22-Feb-2010 Cibu Johny <cibu@google.com> View horizontalDirection public attribute resolution to an internal var.

- add more comment

Change-Id: I514c6ace3a98d56aa0b5c52221dee3045656071f
/frameworks/base/core/java/android/view/View.java
dff789754865dff19792f0799cce2f76f7d41227 17-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "View horizontalDirection public attribute resolution to an internal var."
63e2c0888d1a4f91a48874052d13c95291fdfea7 17-May-2011 Chet Haase <chet@google.com> Merge "Fix for using HARDWARE layers on unaccelerated views."
6f33e81a0b3a95396318e987e234dc8e1dce1eb9 17-May-2011 Chet Haase <chet@google.com> Fix for using HARDWARE layers on unaccelerated views.

If a view is not accelerated but has its layer type set to
LAYER_TYPE_HARDWARE, then the framework will use the old drawing cache
approach, to cache it in a bitmap. This works fine, but when the layer
is set to NONE, that drawing cache is not destroyed, as it would be were
the layer set to LAYER_TYPE_SOFTWARE. This prevents future invalidations on
the view from working correctly because the bitmap cache has never been
destroyed and recreated.

The fix is to always destroy the drawing cache when the layer type is
changed from SOFTWARE or HARDWARE, to make sure that it gets set appropriately
regardless of the state of the view's acceleration.

Change-Id: I449649e6d370477825015505da76564455a156e6
/frameworks/base/core/java/android/view/View.java
8666663e6e6dfe615c8e29cae4a42c8f135b7554 22-Feb-2010 Cibu Johny <cibu@google.com> View horizontalDirection public attribute resolution to an internal var.

Change-Id: Id87ab188faef27ff039cf6a400118707ee74a27d
/frameworks/base/core/java/android/view/View.java
b5dde704cd2db7a0eb09243637ccbf4b3465ad3d 17-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Adding horizontalDirection public attribute for View."
7632cb9be5519ea9eace14a55fa9998f85c2af26 22-Feb-2010 Cibu Johny <cibu@google.com> Adding horizontalDirection public attribute for View.

Change-Id: Ic8a03447252e4e155c3ee874b1d8c8ac0bc9f7f5
/frameworks/base/core/java/android/view/View.java
aa126171ae5c4c6449345471500f9bb124558643 14-May-2011 Eric Fischer <enf@google.com> Fix the build by removing @Override within javadoc comments.

Change-Id: I984cc6224185ab84e904bfc89eae80d567fcb59b
/frameworks/base/core/java/android/view/View.java
8bd6d36c68ff8f32554b6d71323f44e71298e520 13-May-2011 Romain Guy <romainguy@google.com> Merge "Remove useless code."
4c8ed71cc70b9fdd2d90f3535aebb918d77747c8 13-May-2011 Romain Guy <romainguy@google.com> Remove useless code.

Change-Id: Ic2418438235e1fbcb8ccfece9c74c54fc46229df
/frameworks/base/core/java/android/view/View.java
73162196e712c5f71238642bf8ca0b5984ee51a4 13-May-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Factored out the Accessibility vertical initialization."
30401328c1026389171d454c934c15875c3f7ff0 13-May-2011 Svetoslav Ganov <svetoslavganov@google.com> Factored out the Accessibility vertical initialization.

1. Accessibility events were filled with data in
dispatchPopulateAccessibilityEvent and
onPopulateAccessibilityEvent. These events have
two axis of population 1) up the class
hierarchy to populate information for the event
source; 2) down the view hierarchy to populated
all the text contained in the source including
its descendants. These two axis of population
were done in on population pass now the populating
the source properties happens in initializeAccessiblityEvent
and the text in onPopulateAccessibilityEvent which
is called from dispatchPopulateAccessiblityEvent.

2. Removed the string description from events fired from
CompoundButton since the event has isChecked()
property and it is responsibility of the clients
to decide what utterrance to use and if to use such
for announcing the checked state.

Change-Id: I5d7f75cf8a87a7a4b3bb7b311e8e642ec9a0faa5
/frameworks/base/core/java/android/view/View.java
65f47d88107b2e34e4bab1f5208bff3f73ce4e8a 13-May-2011 Jeff Brown <jeffbrown@google.com> Merge "Add initial API for stylus and mouse buttons."
fe9f8ab03a63b1037f07dd85799fbea80ec6adaa 07-May-2011 Jeff Brown <jeffbrown@google.com> Add initial API for stylus and mouse buttons.

Added the concept of pointer properties in a MotionEvent.
This is currently used to track the pointer tool type to enable
applications to distinguish finger touches from a stylus.

Button states are also reported to application as part of touch events.

There are no new actions for detecting changes in button states.
The application should instead query the button state from the
MotionEvent and take appropriate action as needed.

A good time to check the button state is on ACTION_DOWN.

As a side-effect, applications that do not support multiple buttons
will treat primary, secondary and tertiary buttons identically
for all touch events.

The back button on the mouse is mapped to KEYCODE_BACK
and the forward button is mapped to KEYCODE_FORWARD.

Added basic plumbing for the secondary mouse button to invoke
the context menu, particularly in lists.

Added clamp and split methods on MotionEvent to take care of
common filtering operations so we don't have them scattered
in multiple places across the framework.

Bug: 4260011
Change-Id: Ie992b4d4e00c8f2e76b961da0a902145b27f6d83
/frameworks/base/core/java/android/view/View.java
5c22a8c80aefe8c0739e93321f8cead5b60571e4 13-May-2011 Romain Guy <romainguy@google.com> Fix waaayyy too many documentation links.

Change-Id: Ia8d56149d8b92d85239ad62adacbf65d1e9e127d
/frameworks/base/core/java/android/view/View.java
b51cc1dd63808da505cd8beb7300f57dc98ff1d3 05-May-2011 Patrick Dubroy <dubroy@google.com> Merge "Only delay pressed feedback for Views inside a scrolling parent"
e0a799a2ac1ca78e30fbac9e4e12a063425c08d3 05-May-2011 Patrick Dubroy <dubroy@google.com> Only delay pressed feedback for Views inside a scrolling parent

Add a method on ViewGroup to determine whether it supports scrolling.
This allows us to show the pressed feedback immediately in many cases,
improving responsiveness of buttons, etc.

This patch also lengthens the timeout in order to reduce flashes
when the user is scrolling.

Change-Id: Ieb91ae7a1f8e8f7e87448f2a730381a53947996f
/frameworks/base/core/java/android/view/View.java
c6cc0f8c19d9eccf408a443fa2bf668af261dcd0 12-Apr-2011 Joe Onorato <joeo@google.com> Rename ViewRoot to ViewAncestor.

ViewRoot is about to be a new public class for poking at ViewAncestor.

Change-Id: Ie95d707c6d8bbb48f78d093d7b2667851812a7d5
/frameworks/base/core/java/android/view/View.java
5a7e94ea89196074962a1864aa785bc4d855c771 26-Apr-2011 Adam Powell <adamp@google.com> Only set the accelerated drawable state for views when the hardware
renderer is available.

Change-Id: I5bcf2068771d47604e12a44e1ab870fa4c69fb4c
/frameworks/base/core/java/android/view/View.java
736c2756bf3c14ae9fef7255c119057f7a2be1ed 23-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Touch exploration feature, event bubling, refactor

1. Added an Input Filter that interprets the touch screen motion
events to perfrom accessibility exploration. One finger explores.
Tapping within a given time and distance slop on the last exlopred
location does click and long press, respectively. Two fingers close
and in the same diretion drag. Multiple finglers or two fingers in
different directions or two fingers too far away are delegated to
the view hierarchy. Non moving fingers "accidentally grabbed the
device for the scrren" are ignored.

2. Added accessibility events for hover enter, hover exit, touch
exoloration gesture start, and end. Accessibility hover events
are fired by the hover pipeline. An accessibility event is
dispatched up the view tree and the topmost view fires it.
Thus predecessors can augment the fired event. An accessibility
event has several records and a predecessor can optionally
modify, delete, and add such to the event.

3. Added onPopulateAccessibilityEvent and refactored the existing
accessibility code to use it.

4. Added API for querying the currently enabled accessibility services
by feedback type.

Change-Id: Iea2258c07ffae9491071825d966dc453b07e5134
/frameworks/base/core/java/android/view/View.java
3fb3d7c4e756bd32d5abde0abca9ab52d559bc84 23-Apr-2011 Adam Powell <adamp@google.com> Revert "Touch exploration feature, event bubling, refactor"

This reverts commit ac84d3ba81f08036308b17e1ab919e43987a3df5.

There seems to be a problem with this API change. Reverting for now to
fix the build.

Change-Id: Ifa7426b080651b59afbcec2d3ede09a3ec49644c
/frameworks/base/core/java/android/view/View.java
f9fa622cc04028fd7c5f5036ea2e0ccfb80d55f3 23-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Merge "Touch exploration feature, event bubling, refactor"
ac84d3ba81f08036308b17e1ab919e43987a3df5 05-Apr-2011 Svetoslav Ganov <svetoslavganov@google.com> Touch exploration feature, event bubling, refactor

1. Added an Input Filter that interprets the touch screen motion
events to perfrom accessibility exploration. One finger explores.
Tapping within a given time and distance slop on the last exlopred
location does click and long press, respectively. Two fingers close
and in the same diretion drag. Multiple finglers or two fingers in
different directions or two fingers too far away are delegated to
the view hierarchy. Non moving fingers "accidentally grabbed the
device for the scrren" are ignored.

2. Added accessibility events for hover enter, hover exit, touch
exoloration gesture start, and end. Accessibility hover events
are fired by the hover pipeline. An accessibility event is
dispatched up the view tree and the topmost view fires it.
Thus predecessors can augment the fired event. An accessibility
event has several records and a predecessor can optionally
modify, delete, and add such to the event.

3. Added onPopulateAccessibilityEvent and refactored the existing
accessibility code to use it.

4. Added API for querying the currently enabled accessibility services
by feedback type.

Change-Id: Iec03c6c3fe298de3f14cb6efdbb9b198cd531a0c
/frameworks/base/core/java/android/view/View.java
44bc17c6b517aef35a390c81b5aa79c4f284f744 21-Apr-2011 Dianne Hackborn <hackbod@google.com> Rework display size access.

Applications now get the display size from the window manager. No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I2958a6660895c1cba2b670509600014e55ee9273
/frameworks/base/core/java/android/view/View.java
bbdc50b102faf52768ac3028bc49e027ff140656 20-Apr-2011 Jeff Brown <jeffbrown@google.com> Track unhandled input events in consistency verifiers.

This fixes spurious verification errors that would be generated
when a view declined an initial event such as ACTION_DOWN. Since
the view would not receive the rest of the event stream, it would
not see the corresponding ACTION_UP and the next ACTION_DOWN would
trigger a spurious verification error.

Change-Id: I2386acf378cd1765d5446faed5ad9c6525f8b400
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
21bc5c917d4ee2a9b2b8173091e6bba85eaff899 01-Mar-2011 Jeff Brown <jeffbrown@google.com> Add a little input event consistency verifier.

The idea is to assist with debugging by identifying cases in which
the input event stream is corrupted.

Change-Id: I0a00e52bbe2716be1b3dfc7c02a754492d8e7f1f
/frameworks/base/core/java/android/view/View.java
3d4bf17f49b82355b3b82d8bdaec4d65c4293bc9 29-Mar-2011 Christopher Tate <ctate@google.com> Add view/drawable states for drag-accepting / drag-hovered

Added new drag_can_accept and drag_hovered XML attributes and the View
logic to support them. Drawable states are now refreshed automatically
when a drag starts/ends and when a drag crosses the boundary of a
participating view.

Change-Id: I25f8ee02c83b3fa4f27201997d7eabf4be653fd8
/frameworks/base/core/java/android/view/View.java
dff626c56ac42bdcc7af5a300eefccd3fee3d166 25-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Added a hovered state for drawables."
c33d8d49e44358d72f19e7f7730c03d3902fa1f2 15-Mar-2011 PY Laligand <pylaligand@google.com> Added a hovered state for drawables.

Change-Id: I2b12c8593e04e37c8eb748946ca6d4d7a61de36a
/frameworks/base/core/java/android/view/View.java
9c78930046a6e393764b58e6d7d4648963306d3f 25-Mar-2011 Michael Jurka <mikejurka@google.com> Merge "Fixing invalidate problems in software rendered mode"
d0872bd38a449012e3165ddf9cfca31b6044c05b 24-Mar-2011 Michael Jurka <mikejurka@google.com> Fixing invalidate problems in software rendered mode
/frameworks/base/core/java/android/view/View.java
b7c25ce3aef3c6e930fc3f31436f52aed8ebed14 24-Mar-2011 Jeff Brown <jeffbrown@google.com> Merge "Add MotionEvent.HOVER_ENTER and HOVER_EXIT."
a032cc008618b83ecbbede537517d1e7998e3264 08-Mar-2011 Jeff Brown <jeffbrown@google.com> Add MotionEvent.HOVER_ENTER and HOVER_EXIT.

The input dispatcher sends a HOVER_ENTER to a window before dispatching
it any HOVER_MOVE events. For compatibility reasons, the window will
*also* receive the HOVER_MOVE. When the pointer moves into a different
window or the pointer goes down or when events are canceled for some reason,
the input dispatcher sends a HOVER_EXIT to the previously hovered window.

The view hierarchy behavior is similar. All views under the pointer
receive onHoverEvent with HOVER_ENTER followed by any number of HOVER_MOVE
events. When the pointer leaves a view, the view receives HOVER_EXIT.
Similarly, if a parent view decides to capture hover by returning true
from onHoverEvent, the hovered descendants will receive HOVER_EXIT.

The default behavior of onHoverEvent is to update the view's hovered
state by calling setHovered(true/false). Views can query their current
hovered state using isHovered().

For testing purposes, the hovered state is mapped to the pressed
drawable state. This will change in a subsequent commit with the
introduction of a new hovered drawable state.

Change-Id: Ib76a7a90236c8f2c7336e55773acade6346cacbe
/frameworks/base/core/java/android/view/View.java
c5a43a249baad41acede2ab132d797c342c321e7 24-Mar-2011 Romain Guy <romainguy@google.com> Avoid NPE in postInvalidate().
Bug #4048131

Change-Id: I020400fc97015240924461674ca7bf8077059152
/frameworks/base/core/java/android/view/View.java
77b80c06af064403d9d6e8fbe04d76dd6f7d2dbb 16-Mar-2011 Svetoslav Ganov <svetoslavganov@google.com> Pressed state not cleared if view is disabled in long click handler

bug:2133127

If a View is disabled its onTouchEvent handler uses a shortcut
path for efficient handling which does not clear the pressed
flag. As a result if the view is disabled in a long click
handler the view keeps being in pressed state. The fix is to
clear if needed the pressed flag in the shortcut path
of onTouchEvent.

Change-Id: I046a62c2fce751c27fec3cfb756b74431fc003c3
/frameworks/base/core/java/android/view/View.java
7b5b6abf852c039983eded25ebe43a70fef5a4ab 15-Mar-2011 Romain Guy <romainguy@google.com> Fix rendering artifact in edge fades.
Bug #4092053

The problem always existed but was made visible by partial invalidation.
When saving a layer, the renderer would try to postpone glClear()
operations until the next drawing command. This however does not work
since the clip might have changed. The fix is rather simple and
simply gets rid of this "optimization" (that turned out to be
usless anyway given how View issues saveLayer() calls.)

This change also fixes an issue with gradients (color stops where
not properly computed when using a null stops array) and optimizes
display lists rendering (quickly rejects larger portions of the
tree to avoid executing unnecessary code.)

Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
/frameworks/base/core/java/android/view/View.java
88172fe49cf78f73fa7bf2b1bde665b45b1712ca 08-Mar-2011 Chet Haase <chet@google.com> Restore save/restore calls removed recently

Calls thought to be duplicates were removed, which caused rendering problems
for Browser as well as crashes in the widget list and music.

Change-Id: I6364aaa362619ea3dd368990304d61d84bbe2a90
/frameworks/base/core/java/android/view/View.java
d6cf477e5d6245a63f71958b75c3d658cd6c100e 05-Mar-2011 Romain Guy <romainguy@google.com> Remove many unnecessary save/restore calls.

This should help complex applications by reducing the amount of
unnecessary work performed by the renderer.

Change-Id: I9bdebb1a35cdbcc3d926b7485f19d9e88a019040
/frameworks/base/core/java/android/view/View.java
acc3944dd16074491885bf0252c456e0ac190168 03-Mar-2011 Romain Guy <romainguy@google.com> Merge "Add an API to force Views to render their layer."
f1ae10640fe152b56465e7e7184731226f95b0dd 03-Mar-2011 Romain Guy <romainguy@google.com> Add an API to force Views to render their layer.

Change-Id: Id5776f3b0880fdf75835f16560a1d03a3175d139
/frameworks/base/core/java/android/view/View.java
05dc66ada6b61a6bdf806ffaa62617ac5394695d 02-Mar-2011 Jeff Brown <jeffbrown@google.com> Fade out the mouse pointer after inactivity or other events.

Fades out the mouse pointer:
- after 15 seconds of inactivity normally
- after 3 seconds of inactivity in lights out mode
- after a non-modifier key down
- after a touch down

Extended the native Looper to support enqueuing time delayed
messages. This is used by the PointerController to control
pointer fade timing.

Change-Id: I87792fea7dbe2d9376c78cf354fe3189a484d9da
/frameworks/base/core/java/android/view/View.java
33bbfd2232ea9eaae9a9d87a05a95a430f09bd83 25-Feb-2011 Jeff Brown <jeffbrown@google.com> Add support for mouse hover and scroll wheel.

Dispatch ACTION_HOVER_MOVE and ACTION_SCROLL through the View
hierarchy as onGenericTouchEvent. Pointer events dispatched
this way are delivered to the view under the pointer. Non-pointer
events continue to be delivered to the focused view.

Added scroll wheel support to AbsListView, ScrollView,
HorizontalScrollView and WebView. Shift+VSCROLL is translated
to HSCROLL as appropriate.

Added logging of new pointer events in PointerLocationView.

Fixed a problem in EventHub when a USB device is removed that
resulted in a long stream of ENODEV errors being logged until INotify
noticed the device was gone.

Note that the new events are not supported by wallpapers at this time
because the wallpaper engine only delivers touch events.

Make all mouse buttons behave identically. (Effectively we only
support one button.)

Change-Id: I9ab445ffb63c813fcb07db6693987b02475f3756
/frameworks/base/core/java/android/view/View.java
0277c171283826dce53cc48e8dd66187051227e4 25-Feb-2011 Gilles Debunne <debunne@google.com> Merge "Code clean-up around ScrollView."
2ed2eacd7e0569675410f1e62238b708c5dcc8ac 25-Feb-2011 Gilles Debunne <debunne@google.com> Code clean-up around ScrollView.

Change-Id: Ia110f30279a93c96741e9afbd93ed6231aa97ef1
/frameworks/base/core/java/android/view/View.java
a00f3865f55c5c9cb74510ee2b239d101230133c 22-Feb-2011 Chet Haase <chet@google.com> Add ViewPropertyAnimator for easy animation of View properties

Change-Id: I2bc52ca16507d8d20004d2d6823e587791272aac
/frameworks/base/core/java/android/view/View.java
a5364ee8942cd9f0546f80f6430812ca2ee59f30 24-Feb-2011 Romain Guy <romainguy@google.com> Add an API to control the distance between a View and its camera.

Change-Id: Ibaf4e7dc827933f7ad2bb7ab50c1dcef45fee83c
/frameworks/base/core/java/android/view/View.java
47b8adec3904535c8d8ce2b6e42ecd736f2d90ce 24-Feb-2011 Romain Guy <romainguy@google.com> Add a new Camera API to control the camera's location

Change-Id: Id9a082d2def803eb527e1987875e0d8a22c6e8aa
/frameworks/base/core/java/android/view/View.java
795e42e91ad049d7ddf5c3672a40f044fbc4d1e2 22-Feb-2011 Romain Guy <romainguy@google.com> Merge "Add more info to View.getLayoutParams()"
01c174bce3ab78ff85bf27f549b29ab9fcb70ac2 22-Feb-2011 Romain Guy <romainguy@google.com> Add more info to View.getLayoutParams()

Change-Id: I9abc64c9bbf726a02256a9ab692d9c555a6e3525
/frameworks/base/core/java/android/view/View.java
4afd62b18c52a55371ab923d54f93615ad68fd7a 19-Feb-2011 Adam Powell <adamp@google.com> Add an API to listen for window attach/detach events on a View.

Fix bug 3312949 - inconsistent state in MenuPopupHelper

Change-Id: Ie802ada3f8de4cf71c92fcc7c6abce9ba85e7b75
/frameworks/base/core/java/android/view/View.java
e9140a72b1059574046a624b471b2c3a35806496 17-Feb-2011 Chet Haase <chet@google.com> Fix invalidation bug with View bounds properties

When setLeft/Right/Top/Bottom() functions were called on View,
invalidation was only happening at the parent level. When an
app is hardware accelerated, this means that the view's display
list is not being recreated. So views that were changing size due
to these calls were not getting redrawn properly, causing some
artifacts in animations (especially LayoutTransition, which
calls these setters).

Fix is to invalidate the child instead of just the child's bounds
in the parent.

Change-Id: Ic8b2a5db519345dce617f914c2214738f22031b2
/frameworks/base/core/java/android/view/View.java
93a4dc6c3f5705d5e45ba6d7288fb824992a5749 15-Feb-2011 Christopher Tate <ctate@google.com> Merge "Disable cross-app drag/drop"
7f9ff9d191f00354c564a70eeeb1eda2b32eb1c7 15-Feb-2011 Christopher Tate <ctate@google.com> Disable cross-app drag/drop

@hides the View constant that designates a drag as cross-app, and also
forcibly ignores that flag on the system_server side even if it's passed
to startDrag() as a literal.

Change-Id: I6f321bdf0389db5bb44131fd0f8d6b92f049be52
/frameworks/base/core/java/android/view/View.java
0211a0a10d20ec99bd78905ea9cd2960f7beb4c8 15-Feb-2011 Romain Guy <romainguy@google.com> Gracefully handle drawing caches allocation failure.
Bug #3431451

This bug was causing ListView to not render properly when showing an item
larger than the maximum drawing cache size. ListView relies on the drawing
cache to correctly mask all the background pixels. However, if the cache
is not properly created, the background will show through even though
ListView.isOpaque() == true. This change detects this case and falls
back to the default non opaque behavior.

Change-Id: I30a45e7a03fb7ebb2b12f0e85c075c2901954c44
/frameworks/base/core/java/android/view/View.java
676b17391fb6583e5df944c36b1bd4c1be835689 14-Feb-2011 Romain Guy <romainguy@google.com> Deprecate ARGB_4444.

It looks awful.
Don't use it.
Use ARGB_8888, it's much better.
If you think you need ARGB_4444, you are wrong.
You are.

Change-Id: I4d6963cf98b6a8fb34cebcd0d24b9fd66b5a0fbf
/frameworks/base/core/java/android/view/View.java
bb01f8a2d0656648cef6b4d665ad66b711f88157 04-Feb-2011 Michael Jurka <mikejurka@google.com> am d51e0820: am 8275c608: Merge "adding fast setters for translationx/y" into honeycomb

* commit 'd51e0820b3b7a71f2b3e0447bdf05188588c6003':
adding fast setters for translationx/y
b0905c998da7d4f7c8b7275ec0dcfa691d370e4e 04-Feb-2011 Romain Guy <romainguy@google.com> am 20bf23e5: am ac14db72: Merge "Fast transform properties setters. Bug #3413510" into honeycomb

* commit '20bf23e5e4172f5f80ce6c4cc16168355b107f0d':
Fast transform properties setters. Bug #3413510
dece29ffd345c08f63f331e5766a5df906656798 03-Feb-2011 Michael Jurka <mikejurka@google.com> adding fast setters for translationx/y
/frameworks/base/core/java/android/view/View.java
da489796e5836b7db4cf3c925c40db449ac6e9ec 03-Feb-2011 Romain Guy <romainguy@google.com> Fast transform properties setters.
Bug #3413510

Change-Id: I2c83e219faff697a48a160fee627f87422a2cd08
/frameworks/base/core/java/android/view/View.java
dcbcb680bc21059bf527f5c3c72373f26b2cd298 03-Feb-2011 Romain Guy <romainguy@google.com> am 44e3b0d0: am f44ed5ad: Merge "Don\'t clobber the local dirty rect after rendering a layer. Bug #3417254 Bug #3413433" into honeycomb

* commit '44e3b0d0344955d5ce1bbb0b329627e24b7dd468':
Don't clobber the local dirty rect after rendering a layer. Bug #3417254 Bug #3413433
62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4 03-Feb-2011 Romain Guy <romainguy@google.com> Don't clobber the local dirty rect after rendering a layer.
Bug #3417254
Bug #3413433

Change-Id: I8045e9ec414ebe4ce4d38124142a00726d2c634d
/frameworks/base/core/java/android/view/View.java
34cdf5bbb7d4d09e95cc6579a96c384284f99455 02-Feb-2011 Romain Guy <romainguy@google.com> am debeeef5: am d51eaa64: Merge "Update layers based on the dirty region. Bug #3413433" into honeycomb

* commit 'debeeef50408cf12f1041426e7438be266789a62':
Update layers based on the dirty region. Bug #3413433
3a3133d876caf60ebff2176ad75c3dcf0259148d 02-Feb-2011 Romain Guy <romainguy@google.com> Update layers based on the dirty region.
Bug #3413433

This helps Launcher when a widget updates during a scroll, or when interacting
with widgets on the workspace if layers are still turned on.

Change-Id: Ic7a42eb34f74f4ae988039754f815e2efd1d1e4f
/frameworks/base/core/java/android/view/View.java
4e96efe2edb73a8fbe4b89e85e03327da9796d80 02-Feb-2011 Romain Guy <romainguy@google.com> am a42ee699: am 518813ec: Merge "New API to let apps draw without layers. Bug #3413433" into honeycomb

* commit 'a42ee6994b59c02a745cb5d0f8ec257d01424753':
New API to let apps draw without layers. Bug #3413433
849d0a37cf2ca6c6a6c2d4d4456495e32e363120 02-Feb-2011 Romain Guy <romainguy@google.com> New API to let apps draw without layers.
Bug #3413433

Launcher now enables layers all the time, but in some cases (for instance, when the
workspace is not scrolling,) it is more efficient to draw without the layer.

Change-Id: I625fb5b48506acda9ae75356fdbbe812c85f2aab
/frameworks/base/core/java/android/view/View.java
74c86d3e3a5206fef8d2e0ad1727bf903a76a638 01-Feb-2011 Chet Haase <chet@google.com> am 0a198c80: am 2cd52c80: Merge "Fix invalidation issue with actionbar items" into honeycomb

* commit '0a198c80765a0fbf52bdc84fddd11bc86c83ed51':
Fix invalidation issue with actionbar items
2cd52c809e52c042ad61067c93a4b5521eadd503 01-Feb-2011 Chet Haase <chet@google.com> Merge "Fix invalidation issue with actionbar items" into honeycomb
f28595e47d7a2712df3e2d2e7b6591d1333add3b 01-Feb-2011 Chet Haase <chet@google.com> Fix invalidation issue with actionbar items

When a view hierarchy becomes VISIBLE, it is possible that the display
list of some of the subtrees needs to be recreated. In particular, if
the subtree was measured while it was GONE, then the children probably
didn't have a valid size. If a display list is created for any of the
subnodes in the tree during this time, then they may have clipped the
children out.

The fix is to force the parent to become INVALIDATED whenever a child
view's bounds change (and it is VISIBLE).

Change-Id: I3624253e65354289f4fb94c9ba76a7e6fb82af9a
/frameworks/base/core/java/android/view/View.java
b4e28848e3244096fc1a7cff7f6a5ad688c96022 31-Jan-2011 Joe Onorato <joeo@google.com> am 19a02219: am fe6fd242: Merge "Mask out the non public bits, not the public ones." into honeycomb

* commit '19a022194d0e049759112a743835af323f4b05a1':
Mask out the non public bits, not the public ones.
6ab77bd5b3e613b064ebfa5780f21b79f81390a9 31-Jan-2011 Joe Onorato <joeo@google.com> Mask out the non public bits, not the public ones.

Bug: 3406103
Change-Id: I44b16700567cb2bf76efe9e8c1f9c82d0eaa8f10
/frameworks/base/core/java/android/view/View.java
60d9d9cdba31e2d3483b33138d2e98ce8be4567b 31-Jan-2011 Joe Onorato <joeo@google.com> am 75057b15: am 4de68bae: Merge "Check for the STATUS_BAR permission for the system UI properties." into honeycomb

* commit '75057b1507881625368f76b2f401097b606bd530':
Check for the STATUS_BAR permission for the system UI properties.
ac0ee89bd985c024870fefca9a3422c4585b62d4 31-Jan-2011 Joe Onorato <joeo@google.com> Check for the STATUS_BAR permission for the system UI properties.

If the app doesn't have that permission, just mask out the bits.
Also makes the systemUiVisibility field visible in hierarchyviewer.

Change-Id: Ic3d3a3aed96b5c6448832755b4b2e6175117e5be
/frameworks/base/core/java/android/view/View.java
69aedbedfef2e2633076004000ae8931039ff7f5 30-Jan-2011 Joe Malin <jmalin@google.com> am f5002922: am 51990f9b: Merge "sdk doc change: Copy/Paste/Drag/Drop" into honeycomb

* commit 'f50029220664be6cc5b2b4c18377b0efa9fe6ca5':
sdk doc change: Copy/Paste/Drag/Drop
51990f9b0c7c0a22e1a3440c620ab97ebe4209c9 30-Jan-2011 Joe Malin <jmalin@google.com> Merge "sdk doc change: Copy/Paste/Drag/Drop" into honeycomb
9805d8e0818ea4e8ebddf20d40cf1856ecee6cc8 29-Jan-2011 Christopher Tate <ctate@google.com> Merge "Enable global (cross-application) drag/drop"
251602f410aaecc482a13d12984e67e3ddc1ef9c 29-Jan-2011 Christopher Tate <ctate@google.com> Enable global (cross-application) drag/drop

Also adds a new flag constant, View.DRAG_FLAG_GLOBAL, which indicates that
the drag operation should be allowed to propagate the drag outside the
originating app. When this flag is specified, all visible windows will
be notified about the ongoing drag.

Bug 3322724

Change-Id: Iaa3412a97f83f4e763019c9a03b5f09ebf75453f
/frameworks/base/core/java/android/view/View.java
b6689044e917e8ec4de8972e646eb58f65406c1b 29-Jan-2011 Joe Onorato <joeo@google.com> am 9fecc19f: am 430dde3e: Merge "Don\'t force all views to be asking for lights out just because somebody did." into honeycomb

* commit '9fecc19f97453cc3ef258100f3a8e323011a7e80':
Don't force all views to be asking for lights out just because somebody did.
957a189bf2b28b063d7268e38b6cdae3304f1ea7 29-Jan-2011 Joe Onorato <joeo@google.com> Don't force all views to be asking for lights out just because somebody did.

Bug: 3396308
Bug: 3395422
Change-Id: Ic97a689bda12d3b53a6ecace504d411f2beb87d5
/frameworks/base/core/java/android/view/View.java
489c8960b66387fb043350310e5b53554cff4c1f 28-Jan-2011 Romain Guy <romainguy@google.com> am 571a2c97: am b0c939ad: Merge "Prevent crash when detaching a SurfaceView. Bug #3400461" into honeycomb

* commit '571a2c971b9691f3ace247bf2110efccc782f3ba':
Prevent crash when detaching a SurfaceView. Bug #3400461
b0c939adfa339c5cbb7f458072119269368b3ba5 28-Jan-2011 Romain Guy <romainguy@google.com> Merge "Prevent crash when detaching a SurfaceView. Bug #3400461" into honeycomb
bafa3a31f58a52d49883db43167e28c16af1fc61 28-Jan-2011 Joe Onorato <joeo@google.com> am d6874a10: am cfd0bafd: Merge changes Iaa7bc042,Icc312fc9,I50ba06ed into honeycomb

* commit 'd6874a105ee584b1dc60aae2f2af7c78ee875114':
Make keyguard also ask to turn the back button off, now that it is controlled separately.
Allow independent control of the back and the other navigation buttons.
Allow the status bar disable flags to be used as View's system ui visibility fields.
01d5edc49ae8995aabffe1a30bfd966faaf70bd6 28-Jan-2011 Romain Guy <romainguy@google.com> Prevent crash when detaching a SurfaceView.
Bug #3400461

Change-Id: I837d9d47b12bc5a8798b6dbb720de43b7539c3bc
/frameworks/base/core/java/android/view/View.java
6478adc6b4c35f8c56176582bcde029998e7436f 28-Jan-2011 Joe Onorato <joeo@google.com> Allow independent control of the back and the other navigation buttons.

Bug: 3363046
Change-Id: Icc312fc9ffbf2f584dc541489c9769b07ed50315
/frameworks/base/core/java/android/view/View.java
7bb8eeb90cf55f409a282c1f36ca08aa48c10543 28-Jan-2011 Joe Onorato <joeo@google.com> Allow the status bar disable flags to be used as View's system ui visibility fields.

Bug: 3363046
Change-Id: I50ba06ed9a4d2f5d0e0c807437aea9900f44fee9
/frameworks/base/core/java/android/view/View.java
4d7b10630a5192bfe84181a83c70c38ef0655b5f 28-Jan-2011 Adam Powell <adamp@google.com> am e3ba5cfe: am d1f94e36: Merge "Fix bug 3399725 - externally reported issue 14317: android:scrollbarSize attribute does not work in ScrollView tag" into honeycomb

* commit 'e3ba5cfe9b4f524d955f77f5fff53440d80f9464':
Fix bug 3399725 - externally reported issue 14317: android:scrollbarSize attribute does not work in ScrollView tag
38d1f2530829ae14d5ee9bf7871cb359dbf03f89 28-Jan-2011 Chet Haase <chet@google.com> am 19312cfe: am 246bf85a: Merge "Fix NPE with display lists when view not attached" into honeycomb

* commit '19312cfef15608fca2c8403dc240e8ec4f54d6b7':
Fix NPE with display lists when view not attached
3ba6774263db28bdfaa88bfdc4f2dfb37d6ce26a 27-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3399725 - externally reported issue 14317:
android:scrollbarSize attribute does not work in ScrollView tag

Change-Id: Ic2cc908936991f473ccfc60d9c2711edfd45c132
/frameworks/base/core/java/android/view/View.java
32736f085b74c4dcc9da61212ccbd6fe2de193a7 20-Jan-2011 Joe Malin <jmalin@google.com> sdk doc change: Copy/Paste/Drag/Drop

Change-Id: Ifb9ed554ae1a72ce6badff1c79d95c02f30525e9
/frameworks/base/core/java/android/view/View.java
f4ac547f868db7c8a358e1f6e3d8fcebb02dbd49 27-Jan-2011 Chet Haase <chet@google.com> Fix NPE with display lists when view not attached

There was logic in ViewGroup that assumed that an accelerated
view must always be able to get a display list for any child
that it was drawing. One situation occurred, however, that
caused a problem with this - a contacts activity was started
and not yet attached, but was being asked to render into an
accelerated canvas. We assumed that the child would have a display
list and simply called getDisplayList(). But since that call
returned null, we later deref'd the null object.

The fix is to check whether a child can have a display list
instead of assuming that it can just because the container view
is accelerated.

Change-Id: I7de62fd597ad50720c9585d621bec02e77c171df
/frameworks/base/core/java/android/view/View.java
82782446cd0ea26604fcbd22d4b7e3608f32136d 27-Jan-2011 Chet Haase <chet@google.com> am fcf51a67: am a45c056e: Merge "Fix display List bugs" into honeycomb

* commit 'fcf51a67967a402bf2178c3d0e09828e8942cade':
Fix display List bugs
a45c056e62be0ca97edbdd6f6660822cf453c886 27-Jan-2011 Chet Haase <chet@google.com> Merge "Fix display List bugs" into honeycomb
a1eb2ff008ce1b7d9d7039718a8295113abcb81a 27-Jan-2011 Romain Guy <romainguy@google.com> am 38f34ed2: am 7c53a0d6: Merge "Don\'t draw the same triangles several times. Bug #3388197" into honeycomb

* commit '38f34ed20a52d027cbf1b72fe22c6d616810613b':
Don't draw the same triangles several times. Bug #3388197
678e0adbdbac5fa3f25ca8371fdff1b3182f67e9 25-Jan-2011 Chet Haase <chet@google.com> Fix display List bugs

Various property setters in View need to invalidate the parent's
cache to get redrawn properly when accelerated with display lists.

Also, fix logic around display lists and old-style Animations in
ViewGroup.

Change-Id: I70e1c2fa49e62228ee4a1301a006ce50bda4c305
/frameworks/base/core/java/android/view/View.java
4f09f5417b5c14fd31336dacfff86972e7885a03 27-Jan-2011 Romain Guy <romainguy@google.com> Don't draw the same triangles several times.
Bug #3388197

Change-Id: Ief1dfd9447f144e9992340a173d2893e5e049129
/frameworks/base/core/java/android/view/View.java
166f26e2c2378decaf023a4c829b03034a65d160 27-Jan-2011 Dianne Hackborn <hackbod@google.com> am f35d43f9: am 2dc9c784: Merge "Fix issue #3382992: IME close animation stutters from URL bar" into honeycomb

* commit 'f35d43f90b9e4553343a59b217430aaba91b0d1f':
Fix issue #3382992: IME close animation stutters from URL bar
2dc9c784b2fab67a8233318f559e65f444bf0c97 27-Jan-2011 Dianne Hackborn <hackbod@google.com> Merge "Fix issue #3382992: IME close animation stutters from URL bar" into honeycomb
63042d6a0347017fcc4cd98560ca3407044c165c 27-Jan-2011 Dianne Hackborn <hackbod@google.com> Fix issue #3382992: IME close animation stutters from URL bar

Gross hack is grosser.

Change-Id: I0a34bf1d7c16c547402318f24776a5f7e8b7552b
/frameworks/base/core/java/android/view/View.java
c02a1cc1b148e1d57b6d2f91e23720c308ed5afb 27-Jan-2011 Romain Guy <romainguy@google.com> am 62bea428: am 9e7c2c6d: Merge "Optimize invalidate() calls." into honeycomb

* commit '62bea4287dafc88b640d7e3fc8a433ddd858a5b8':
Optimize invalidate() calls.
9e7c2c6ded1144122915cfb8bd663e789c7eb93b 27-Jan-2011 Romain Guy <romainguy@google.com> Merge "Optimize invalidate() calls." into honeycomb
0fd89bf7221431260883cee4597e2db942d799a0 27-Jan-2011 Romain Guy <romainguy@google.com> Optimize invalidate() calls.

Change-Id: I09d99290ca74f96046702bc2604f125a1276ce05
/frameworks/base/core/java/android/view/View.java
b648c60854e74ffda4caefa26b9e1d3f6cdbf13f 26-Jan-2011 Joe Onorato <joeo@google.com> am a4a5ec5e: am 1aadb210: Merge changes I48392c75,Id09437a4,I4a0aa878 into honeycomb

* commit 'a4a5ec5e748f99c40301c9c422b3d36cb44c6081':
Expose the window flags for lights out mode.
Make TabletStatusBar call into StatusBarManagerService when it goes out of lights out mode on its own.
Make FLAG_FULLSCREEN not go into lights out mode anymore.
1aadb2108d7614d9d1ff61b41c6c31cb8d211ab9 26-Jan-2011 Joe Onorato <joeo@google.com> Merge changes I48392c75,Id09437a4,I4a0aa878 into honeycomb

* changes:
Expose the window flags for lights out mode.
Make TabletStatusBar call into StatusBarManagerService when it goes out of lights out mode on its own.
Make FLAG_FULLSCREEN not go into lights out mode anymore.
f5240cddbd5732c3929f7cd298666eb9bc999a8f 26-Jan-2011 Romain Guy <romainguy@google.com> am 7c55da5d: am f5b27e35: Merge "Fix NPE in YouTube. Bug #3385339" into honeycomb

* commit '7c55da5db50400400efbcd53a5cdc1a79c04cc63':
Fix NPE in YouTube. Bug #3385339
d30b36d3cdccc7854dedf5e3c020d2f4a8afa7b8 26-Jan-2011 Romain Guy <romainguy@google.com> Fix NPE in YouTube.
Bug #3385339

Change-Id: Id7b307994e343cdb808161a7fae590536f04252e
/frameworks/base/core/java/android/view/View.java
f5b27e35c1e0e46ffd882606d0783875e1a1ff7b 26-Jan-2011 Romain Guy <romainguy@google.com> Merge "Fix NPE in YouTube. Bug #3385339" into honeycomb
14782f705e94d4e563a48efc85fd25129fd38a7d 26-Jan-2011 Joe Onorato <joeo@google.com> Expose the window flags for lights out mode.

I hadn't wanted to do this, but it makes porting the FLAG_FULLSCREEN
stuff over to this simpler because you don't have to go find a view
to proxy through.

This change also clears the flag everywhere when the window manager
notifies the views that the change has come back.

Change-Id: I48392c7550925bcca50c5bb9e1f263e99de6c7bc
/frameworks/base/core/java/android/view/View.java
e29131cac364d38e6ee598d190027a1b9bdda01d 26-Jan-2011 Chet Haase <chet@google.com> am b69e985b: am ace9233b: Merge "Fix invalidation problem with display lists" into honeycomb

* commit 'b69e985b9aa059d6cf7498a2350d3f814b4cf711':
Fix invalidation problem with display lists
77785f9d257f663087a8c27957f506b9f7aa24c2 26-Jan-2011 Chet Haase <chet@google.com> Fix invalidation problem with display lists

It was previously the case that a view marked ~DRAWN must be
invalidated correctly already, so we would not mark any flags.
Display lists added new logic such that an undrawn node must still
be checked to see if its cache has been marked invalid. If not,
we must mark it invalid to make sure that a future rendering call
will cause the view to refresh its display list, thus refreshing its
child node tree's display lists, since that's where the invalidate
call must have originated.

Change-Id: I0f73c85459174c0e3f16d703f7eb914a706c808a
/frameworks/base/core/java/android/view/View.java
335f1513d7644a62e8d1a5b47befd950371d4665 25-Jan-2011 Romain Guy <romainguy@google.com> am b372d7cb: am 89fca351: Merge "Make nested hardware layers work again" into honeycomb

* commit 'b372d7cbea0b80cda3c7b08dcaddbd5c398911b2':
Make nested hardware layers work again
5e7f766e99c679110fa95501728bb81a8e396e58 25-Jan-2011 Romain Guy <romainguy@google.com> Make nested hardware layers work again

Change-Id: I97bde694ec1b712a1e010c8137919e6d64af3148
/frameworks/base/core/java/android/view/View.java
e965dee34135e7bce186408d1265a5cfd05a9fb1 25-Jan-2011 Romain Guy <romainguy@google.com> am 4e1db6da: am 2ff6d705: Merge "Enable partial invalidates when rendering with OpenGL." into honeycomb

* commit '4e1db6dadd404c023b71ae1ab54e990fce56abc3':
Enable partial invalidates when rendering with OpenGL.
2ff6d70521fe1f537f8ebd631f0b9b3aa8becf94 25-Jan-2011 Romain Guy <romainguy@google.com> Merge "Enable partial invalidates when rendering with OpenGL." into honeycomb
7d7b5490a0b0763e831b31bc11f17d8159b5914a 25-Jan-2011 Romain Guy <romainguy@google.com> Enable partial invalidates when rendering with OpenGL.

Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
/frameworks/base/core/java/android/view/View.java
63502a7fb2a0524d286d8ff1b2b84faf284927de 25-Jan-2011 Chet Haase <chet@google.com> am 2292fb4a: am 50d4de21: Merge "Fix bug with display lists and layout." into honeycomb

* commit '2292fb4afb942b5880ef20bca5b255c5e005fa5e':
Fix bug with display lists and layout.
5af048c791d1fc361e6fe3e901adc9598c8bfb72 25-Jan-2011 Chet Haase <chet@google.com> Fix bug with display lists and layout.

requestLayout() and forceLayout() should force the INVALIDATED
flag to be set, which causes a view's display list to be regenerated
on the next drawing operation. This is necessary when containers change
due to layout requests.

Change-Id: I5b18b5936b59f0605f93c8f45baf83a76dab4e5e
/frameworks/base/core/java/android/view/View.java
b05aacc1aea4eb7dec3126c88fd53680fb8765cc 24-Jan-2011 Joe Onorato <joeo@google.com> am ab8967ae: am da34e13b: Merge "Remove unwanted parameter (it was a typo)." into honeycomb

* commit 'ab8967ae9db71291094da2967e744038b7e91ff7':
Remove unwanted parameter (it was a typo).
3873da3c6ee0a63de0d91e6045b7546402f4ce3d 24-Jan-2011 Chet Haase <chet@google.com> am 2acb67ec: am 67005b05: Merge "Use optimized display lists for all hwaccelerated rendering" into honeycomb

* commit '2acb67ec9fe34316231519373f59dfb76c03d57b':
Use optimized display lists for all hwaccelerated rendering
10f4126a367071a49f208f10ceb1ed0e1151d48c 24-Jan-2011 Joe Onorato <joeo@google.com> resolved conflicts for merge of faf083ef to master

Change-Id: I316a1b4356f6dba6c3880ccb02dbb2fa00d21a85
da34e13bb4ef97832c43489937a26d314437a1d7 24-Jan-2011 Joe Onorato <joeo@google.com> Merge "Remove unwanted parameter (it was a typo)." into honeycomb
e595cad6ee3971ff43b94a71fb46d1a72d84544f 24-Jan-2011 Joe Onorato <joeo@google.com> Remove unwanted parameter (it was a typo).

Bug: 3241144
Change-Id: I569f6c8dffb17041a422be6084b6eab89624a57b
/frameworks/base/core/java/android/view/View.java
daf98e941e140e8739458126640183b9f296a2ab 10-Jan-2011 Chet Haase <chet@google.com> Use optimized display lists for all hwaccelerated rendering

Previously, display lists were used only if hardware acceleration
was enabled for an application (hardwareAccelerated=true) *and* if
setDrawingCacheEnabled(true) was called. This change makes the framework
use display lists for all views in an application if hardware acceleration
is enabled.

In addition, display list renderering has been optimized so that
any view's recreation of its own display list (which is necessary whenever
the visuals of that view change) will not cause any other display list
in its parent hierarchy to change. Instead, when there are any visual
changes in the hierarchy, only those views which need to have new
display list content will recreate their display lists.

This optimization works by caching display list references in each
parent display list (so the container of some child will refer to its
child's display list by a reference to the child's display list). Then when
a view needs to recreate its display list, it will do so inside the same
display list object. This will cause the content to get refreshed, but not
the reference to that content. Then when the view hierarchy is redrawn,
it will automatically pick up the new content from the old reference.

This optimization will not necessarily improve performance when applications
need to update the entire view hierarchy or redraw the entire screen, but it does
show significant improvements when redrawing only a portion of the screen,
especially when the regions that are not refreshed are complex and time-
consuming to redraw.

Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
/frameworks/base/core/java/android/view/View.java
664644d9e012aa2a28ac96f305b1ce6499ec8806 24-Jan-2011 Joe Onorato <joeo@google.com> visibility ("lights out") API.

1. Views may setSystemUiVisibility() to recommend that
the system chrome (status bar or other UI) show or hide
itself. (This functionality was previously available only
via the FLAG_FULLSCREEN window flag for some SystemUI
implementations.)

2. Views may register a OnSystemUiVisibilityChangedListener
on a view, and find out when the system UI actually
appears or disappears, allowing apps to coordinate the
appearance of their own UI if desired.

Bug: 3241144
Change-Id: Ia1758d94099182d49a1e3688ea2738ae4995b829
/frameworks/base/core/java/android/view/View.java
d832d0b2406b930f04be1bbecd1da826c045c958 22-Jan-2011 Romain Guy <romainguy@google.com> am 10444a13: am 596ba2fa: Merge "Correctly invalidate views that transition from opaque to non-opaque. Bug #3337037" into honeycomb

* commit '10444a138ae98e940982096d802b2655cef0b645':
Correctly invalidate views that transition from opaque to non-opaque. Bug #3337037
596ba2fa791db7ae671bd79c346b54a7ea2f8113 22-Jan-2011 Romain Guy <romainguy@google.com> Merge "Correctly invalidate views that transition from opaque to non-opaque. Bug #3337037" into honeycomb
c5d55863ec0290370a17d37d06feab743626b12f 22-Jan-2011 Romain Guy <romainguy@google.com> Correctly invalidate views that transition from opaque to non-opaque.
Bug #3337037

Change-Id: I31397273a31b6004e2e3801866122bcbb3ebee5d
/frameworks/base/core/java/android/view/View.java
61d4504ec66827924f926e99361ebf432c2390cb 22-Jan-2011 Adam Powell <adamp@google.com> am a4f8e903: am 5fc3c84f: Merge "Fix bug 3362680 - calendar crash while tabbing among views" into honeycomb

* commit 'a4f8e903c3b4be9a840e0495be5bbfdb2a0a21e1':
Fix bug 3362680 - calendar crash while tabbing among views
3cb8b638c49b767354b62d853067ae8290ff7e80 22-Jan-2011 Adam Powell <adamp@google.com> Fix bug 3362680 - calendar crash while tabbing among views

Remove pending click callbacks when a view is detached from its
window.

Change-Id: I51de184b8e95dbd594675ea6849647586a7c4ba2
/frameworks/base/core/java/android/view/View.java
4789b873a6d19f798aa8599a9391eb1bfcad9181 21-Jan-2011 Dianne Hackborn <hackbod@google.com> am 8a545b9e: am e69e0fde: Merge "Fix issue #3374356: Buttons sometimes don\'t highlight" into honeycomb

* commit '8a545b9e3f67fedcb18f3ab9de00e8003a7fcd51':
Fix issue #3374356: Buttons sometimes don't highlight
be1f62260ae4798cd80404dc595e1146f346cfe9 21-Jan-2011 Dianne Hackborn <hackbod@google.com> Fix issue #3374356: Buttons sometimes don't highlight

On touch up, View would move itself to the pressed state if it
hadn't already shown as pressed. However, it did this *after*
scheduling the message to deliver the onClick(). Thus if the
app took a little too long to execute inside of onClick(), the
invalidate to draw the highlight state would be executed right
before the following message to remove the highlight state,
causing it to basically not be shown.

This change just does the invalidate before scheduling the
onClick, so we can be sure it gets done first.

Change-Id: I6a4d1742a3aab60969c38b44bb3e163f48de62d4
/frameworks/base/core/java/android/view/View.java
741fbc13d287f7982b52a25b193b060477ebe834 19-Jan-2011 Romain Guy <romainguy@google.com> am 2c197a07: am 9335f5b2: Merge "Make embedded hardware layers work. Bug #3369474" into honeycomb

* commit '2c197a0708dc3cb26c335371b572a3c47ca33736':
Make embedded hardware layers work. Bug #3369474
42f3a4b7c35dd1ea1922356eb3611af8cde05179 19-Jan-2011 Romain Guy <romainguy@google.com> Make embedded hardware layers work.
Bug #3369474

Change-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d
/frameworks/base/core/java/android/view/View.java
a953359db5250d0f648c7ca210ef3954bf1f8b66 19-Jan-2011 Christopher Tate <ctate@google.com> am 31cd02ad: am 17ed60c3: API CHANGE: add a no-View ctor for DragShadowBuilder

* commit '31cd02ade3dd85c676bb278a1c2181f57179c390':
API CHANGE: add a no-View ctor for DragShadowBuilder
17ed60c3d2e480ab9788b445958a22b9ae7b6e96 18-Jan-2011 Christopher Tate <ctate@google.com> API CHANGE: add a no-View ctor for DragShadowBuilder

Cf conversation with the API council. Also expand the javadoc
a bit.

Change-Id: I9d4edb1042e00492b3db5c6bb7c7d9648581efad
/frameworks/base/core/java/android/view/View.java
0f6226b9f417182bbf791598000f0a153fbf191c 18-Jan-2011 Jeff Brown <jeffbrown@google.com> Merge "Add joystick support to framework."
d6cd572df8067c40b3e0e7e74e58cdb456b33e92 17-Jan-2011 Romain Guy <romainguy@google.com> Improve hardware layers rendering speed when setting a View's alpha.

Change-Id: Ib1275677f531c60d9919978c5538c663fdb823b5
/frameworks/base/core/java/android/view/View.java
cb1404e45639d20439d7700b06d57ca1a1aad1fa 16-Jan-2011 Jeff Brown <jeffbrown@google.com> Add joystick support to framework.

Change-Id: I95374436708752e1a9cff3f85c5b9bc3e0987961
/frameworks/base/core/java/android/view/View.java
8dd5b1e53184ed3b786dd329e12d665ae59ca3f4 15-Jan-2011 Romain Guy <romainguy@google.com> Prevent NPE when a View is detached without having been attached.
Bug #3355252

Change-Id: I58e03983ccf6a27a24619ec0f49659d6d7cc0a64
/frameworks/base/core/java/android/view/View.java
ec84c3a189e4aa70aa6ea8ba712e5a4f260a153b 14-Jan-2011 Patrick Dubroy <dubroy@google.com> Allow old view hierarchy to be GC'ed more quickly during rotation.
/frameworks/base/core/java/android/view/View.java
783e6c8b3ba7eecac3bdd796b53a1293f9cb1be4 13-Jan-2011 Gilles Debunne <debunne@google.com> Merge "fix for cts DuplicateParentStateEnabled bug with TextViews." into honeycomb
fb81703ab11c653a587b652b90ec3b550f500ccf 13-Jan-2011 Gilles Debunne <debunne@google.com> fix for cts DuplicateParentStateEnabled bug with TextViews.

Bug 3347206

Do not add an extra slot in the drawable state for multiline if it
is not needed.

Updated setDuplicateParentStateEnabled documentation.

Change-Id: I95f74284721e25b483e12e9b861e810a55c260b6
/frameworks/base/core/java/android/view/View.java
9cd1eca8546a6e633c94830d2195634fbfbb7144 13-Jan-2011 Svetoslav Ganov <svetoslavganov@google.com> Invisible of gone views fire accessibility events.

bug:3350110

1. Added a visibility check before sending an accessibility event.

Change-Id: I322ede3844502bc623ba2aff2b3586a9925ba682
/frameworks/base/core/java/android/view/View.java
9c0874408cfc6f6f4e4561973ca5ae52a5982db7 13-Jan-2011 Chet Haase <chet@google.com> Supress layout requests while a LayoutTransition is running.

LayoutTransition works by animating layout-related properties
(left, right, top, and bottom). This works great when that animation
is the only thing affecting the layout of the UI. But if there are other things
happening in the application that cause layout to run on that
container or in its parent hierarchy, this can cause the layout properties
on its children to get mis-set during the middle of the transition.
This results in artifacts like animating objects jumping to locations where
they would be were there no animation running.

The fix is to supress layout requests on that container (and its children)
until the transition is complete (then issue a layout request on the container
to make sure that the container has the correct layout data)

Change-Id: I15bf0423a11409f854076f86099233db7fe4edc0
/frameworks/base/core/java/android/view/View.java
3aaff3aef4998156226486d1fad297150dd7a6bf 12-Jan-2011 Romain Guy <romainguy@google.com> Better debug info for layers.

Change-Id: I816c2446a33a1135553eaeea2f89c7418641cfe1
/frameworks/base/core/java/android/view/View.java
02d2b3ba9ba830a8147db2739613f7bbb2d0fcbf 11-Jan-2011 Christopher Tate <ctate@google.com> API CHANGE: startDrag() now takes "int flags" instead of "boolean localOnly"

There will be, in the future, a flag (View.DRAG_FLAG_GLOBAL) that means
for the drag to be cross-application. For now that flag constant is @hide
and furthermore the server-side implementation strips it, enforcing
local-only drags.

Change-Id: I8db840480ab90e18a5b8ecf29d62b4e6eafd405e
/frameworks/base/core/java/android/view/View.java
6c319ca1275c8db892c39b48fc54864c949f9171 11-Jan-2011 Romain Guy <romainguy@google.com> Better backend for hardware layers.

With this new backend, a hardware layer is only recreated when
its associated view is udpated. This offers fast composition
in GL and fast update of the layer in GL as well.

Change-Id: I97c43a612f5955c6bf1c192c8ca4af10fdf1d076
/frameworks/base/core/java/android/view/View.java
36d4c3f02b4c3366b965896bc3da8bb332db1a64 07-Jan-2011 Christopher Tate <ctate@google.com> Rename drag "thumbnail" to the drag "shadow"

No functional changes; just a rename of the relevant class/method/parameters.

Change-Id: I55d9ef7c2c17892b0bc99f5da622c281e006b53e
/frameworks/base/core/java/android/view/View.java
171c592f0b7066acf279863c8a52ddabea49d3db 06-Jan-2011 Romain Guy <romainguy@google.com> New layers API for Views.

This API can be used to back a view and its children with either a
software layer (bitmap) or hardware layer (FBO). Layers have
various usages, including color filtering and performance
improvements during animations.

Change-Id: Ifc3bea847918042730fc5a8c2d4206dd6c9420a3
/frameworks/base/core/java/android/view/View.java
dab559a24f58d502aeeba62d2e341f0438f52b35 05-Jan-2011 Michael Jurka <mikejurka@google.com> exposing isDirty() method on View

- needed in Launcher2 for implementation of caching views to bitmaps

Change-Id: I1dc1e8e4328106f88e1aa8e55ccb17b08fc9756b
/frameworks/base/core/java/android/view/View.java
9e90a9953b65ae575ec8db3989857e0c145724b1 05-Jan-2011 Chet Haase <chet@google.com> Reuse display lists at the java level.

Objects are invalidated and reset instead of being nulled out
and recreated. This avoids creating small amounts of garbage for
the display list and canvas objects.

Change-Id: I464fac7ea8944c19ad6d03f13a95d9017e3f4262
/frameworks/base/core/java/android/view/View.java
64da12ab1f472e01325b6c6d094153ac110eaf7b 05-Jan-2011 Jeff Brown <jeffbrown@google.com> Add dispatch key shortcut window callback.

Enables Activities and Dialogs to implement key shortcut behavior.
Useful for global key shortcuts that are not bound to the focused
view or to a menu.

Change-Id: If377d20b227ee1c5cac84c47c9630b2d77f67e2c
/frameworks/base/core/java/android/view/View.java
70588bf864f961974c93aace7586d3e2773a54a8 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of 3a2c6bf0 to master

Change-Id: I1963d8fc391bb84de1054f2b20ce4e082d764cbe
3a2c6bf0fcae9421cccf113ff972df7aaeb6d3e9 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> am 69ea4e15: Documentation fixes found over vacation hacking.

* commit '69ea4e15e52c456537575d21443ac1efdb03a902':
Documentation fixes found over vacation hacking.
69ea4e15e52c456537575d21443ac1efdb03a902 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Documentation fixes found over vacation hacking.

Change-Id: I28900026465d66d950cf4f05f0c202b46c3c2d43
/frameworks/base/core/java/android/view/View.java
3dbf55c3a2d993b89d0947885061cf8421930639 16-Dec-2010 Gilles Debunne <debunne@google.com> TextView's color transparency is taken into account.

Unless it has a background, the TextView will be able to support
alpha (text, cursor and highlighted text colors).

Background colored spans should be detected and should also multiply
their alpha by mCurrentAlpha.

Bug 3144861

Change-Id: If640895b8c0b25dc00b909a0a118b68fac0cfd76
/frameworks/base/core/java/android/view/View.java
6c7ad5dbed878a4b477edd8d92004a9be672a731 28-Dec-2010 Chet Haase <chet@google.com> Changes to view position update pivot point

Change-Id: I8ca8e2c8c016ae5ced32c8f8fbcbcded9fa3a466
/frameworks/base/core/java/android/view/View.java
995e77431982f9a320451dbe6132a62e69f73bab 23-Dec-2010 Jeff Brown <jeffbrown@google.com> Enable touch splitting by default for Honeycomb apps.

Also fixed some bad comments I noticed along the way.

Change-Id: I4328c8aaa22f48a5c1fd274e889abb7823747330
/frameworks/base/core/java/android/view/View.java
55dbb6516d8b3d04ed23cfd613aee24bd525b965 22-Dec-2010 Chet Haase <chet@google.com> Account for background drawable size changing when lrtb properties change

LayoutTransition may set the left, right, top, bottom properties of a View when
animating it. If the View has a background drawable, and if these properties change
the actual dimensions of the view, then the background drawable must be informed
of the size change in order to display itself correctly.

Change-Id: I8ae47a051b250d0d4bdee97b1f1b5d27fe3f7f8b
/frameworks/base/core/java/android/view/View.java
a9b61ac69cd40bf019e640abb34f2b027378994c 20-Dec-2010 Chet Haase <chet@google.com> Make sure background drawables are correct when View is attached

Books had a bug where the search menu item would come back with an
out of date background color. The problem was that the logic to
change the background color was tied into StateListDrawable animations.
These animations were not always completing because the action bar would
remove the associated View and the drawable animations would stop being
scheduled (no handler to post to).
The fix is to always set the drawable state to the current state when
a View is added to the hierarchy.

Change-Id: I0fc8008381f7439b9e49d6449ae618512c8e9dd0
/frameworks/base/core/java/android/view/View.java
4e6319b73c85082e18d1c532b86336ddd1f8cfaa 13-Dec-2010 Jeff Brown <jeffbrown@google.com> Add initial support for TAB navigation.

Bug: 3286652
Change-Id: I813a0318b3b8d9c9bc791ea6a2427be11c08de00
/frameworks/base/core/java/android/view/View.java
c75ec3324e9e3e6500148cc2978caab90ea962e4 17-Dec-2010 Chet Haase <chet@google.com> Fix for TimePicker not redrawing itself.

The problem was that NumberPicker override View.draw(), but did not
call the superclass version of the method in some situations. This
resulted in the DIRTY flag for the view not getting cleared properly,
and future invalidations not propagating correctly.

The fix was to call super.draw() from NumberPicker.draw().

Change-Id: Ic17215dea86d54b77375494ada124dd6970e3ad6
/frameworks/base/core/java/android/view/View.java
20232d0f7ce2220df72dd78bed052f6b4a643f10 09-Dec-2010 Adam Powell <adamp@google.com> Holo scrollbars and related tweaks.

Added setting for placing vertical scrollbars on left or right.

Added setting for showing fast scroll persistently.

Fixed a bug where inset padding was miscalculated for horizontal scroll bars.

Fixed a bug where padded ListViews would draw fading edges incorrectly

Change-Id: I1f8499895272d42598b4b3fd3375301115def461
/frameworks/base/core/java/android/view/View.java
af636ebf5feb2837683fbfe965040cb706b32ec1 10-Dec-2010 Romain Guy <romainguy@google.com> Don't set the invisible flag when saving an empty layer.
Bug #3270371

Change-Id: I65e85671c2fb70d74553c91213e5e759e0ac64ee
/frameworks/base/core/java/android/view/View.java
49ed71db425c5054e3ad9526496a7e116c89556b 07-Dec-2010 Jeff Brown <jeffbrown@google.com> Add support for fallback keycodes.

This change enables the framework to synthesize key events to implement
default behavior when an application does not handle a key.
For example, this change enables numeric keypad keys to perform
their associated special function when numlock is off.

The application is informed that it is processing a fallback keypress
so it can choose to ignore it.

Added a new keycode for switching applications.

Added ALT key deadkeys.

New default key mappings:
- ESC -> BACK
- Meta+ESC -> HOME
- Alt+ESC -> MENU
- Meta+Space -> SEARCH
- Meta+Tab -> APP_SWITCH

Fixed some comments.
Fixed some tests.

Change-Id: Id7f3b6645f3a350275e624547822f72652f3defe
/frameworks/base/core/java/android/view/View.java
4d2bd4c9ae028adbb863bf6dd0aa90f7249153fc 01-Dec-2010 Michael Jurka <mikejurka@google.com> fixing getLocationInWindow

- takes into account mTranslationX/Y

Change-Id: I7d622fe9e8b5e021f8585894b72ffd82c087cc57
/frameworks/base/core/java/android/view/View.java
f2f7d8f9dd75c6e32a46a28fd3f53435addf0746 03-Dec-2010 Chet Haase <chet@google.com> Fix invalidation issue for optimized/GL case.

The bug caused intermittent artifacts where some apps would not get
repainted until some overall screen invalidation occurred.

Change-Id: I82a3294429f15fe51cc8f4b47134e3b5540cb240
/frameworks/base/core/java/android/view/View.java
189ee18d6c6483ad63cc864267328259e2e00b95 03-Dec-2010 Dianne Hackborn <hackbod@google.com> Implement smarter sizing of WRAP_CONTENT windows.

This extends the view hierarchy's measure pass to allow view to
propagate up to their parent additional information besides just
their measured size. They can now report that their measured width
and/or height should be larger than the size their parent is
limiting them to (even though by definition they need to contrain
their reported measurements to the limits imposed by the parent).

ViewRoot uses this information to determine if it should remeasure
the window with a larger size limit to try to make it fit.

Change-Id: I90af3b7a8ec45d0a5c003fb009857025209d83eb
/frameworks/base/core/java/android/view/View.java
67f23ba649b99647873b5a61e4a38de25fa6d660 02-Dec-2010 Michael Jurka <mikejurka@google.com> Revert "Re-add performance optimization in View"

Found reproducible cases of Launcher freezing up due to this change

This reverts commit 62490bd358cd001e00cb643cf3879d736c448788.

Change-Id: I1b10e05ee9f0c43566b53c7a11e61fc168d17a75
/frameworks/base/core/java/android/view/View.java
407b4e91fe7627545b8110e683953353236b4543 01-Dec-2010 Christopher Tate <ctate@google.com> API CHANGE: drags can now carry an originator-only object payload

When calling startDrag(), the app can now supply an Object to be passed
along in every DragEvent that the app winds up receiving itself. This
object is *not* passed to any other applications; it's strictly app-
local. The purpose is to allow state tracking/management to be done
directly through the drag mechanism rather than requiring out-of-band
code.

An example of the utility here might be TextEdit widgets. A drag that
starts in one TextEdit but ends in a different one should be treated as
a copy/paste operation, where the originating TextEdit is not altered.
However, a drag that starts and ends in the *same* TextEdit is a 'move'
operation within that TextEdit; the text is removed from its original
position and inserted at the drop point. To support this easily, the
drag/drop code in TextEdit can now pass a pointer to the originating
view as the local state object. Then, the drop recipient could tell
whether the drag started within the same TextEdit without needing to
implement any other out-of-band state tracking.

This CL (and its accompanying CLs in a few other packages where the
startDrag() API is being used) adds the new local-state parameter to
the API, but does not actually change the behavior of any existing
clients.

Change-Id: Icba73b2ab4a650b7a94485a19633065b0ef9058c
/frameworks/base/core/java/android/view/View.java
62490bd358cd001e00cb643cf3879d736c448788 30-Nov-2010 Michael Jurka <mikejurka@google.com> Re-add performance optimization in View

- undoing change 79897

Change-Id: I52eb1247c4fead5e4203d7e7200129aa815e7c9b
/frameworks/base/core/java/android/view/View.java
730666858692ea396f5ad779654b5d86ff90b6ca 30-Nov-2010 Chet Haase <chet@google.com> animation bugfix plus xml resources for new View properties

There was a bug around animation duration where it was possible,
for small durations or large inter-frame times, to calculate
fractions outside of the 0-1 range, causing bad value calculations.

Unrelated: new View properties for translation, scale, and rotation
were added in this release. This commit addes XML resources for
those properties.

Change-Id: Ieaf5dd729588adb2a40656aa82beecc3576f4af5
/frameworks/base/core/java/android/view/View.java
637d337b58d8eec6de19230a5dd5ca5581c0478d 25-Aug-2010 Adam Powell <adamp@google.com> Merge overscrolling from gingerbread.

Change-Id: I3eb4413261b38ddd8c609d6153bdfd4ae46c6a0f
/frameworks/base/core/java/android/view/View.java
ebefea465893529230157d4a857ef52c3fb545e7 16-Nov-2010 Michael Jurka <mikejurka@google.com> Fix issue where Launcher was not getting redrawn

This is a temporary fix; will submit a change later that restores the performance improvement but fixes the drawing issue
/frameworks/base/core/java/android/view/View.java
7eec10e6c99c30d5ee061fec08ac89ad4254ac32 13-Nov-2010 Dianne Hackborn <hackbod@google.com> Get rid of the extended themes.

We now decide whether to use a bitmap background based on whether the
window's drawing is hardware accelerated. To do this, there is a new
"state_accelerated" that state list drawables can be parameterized on,
and the standard window background uses this to select a solid color
or bitmap drawable as appropriate.

Introduces a little hackery to have wm preview windows pretend like
they are hardware accelerated even if they aren't, so the preview looks
closer to the actual app.

Also Add a DialogWhenLarge variation for the light theme.

Change-Id: I215a79d5df65ba3eed52ab363cade9d8218a6588
/frameworks/base/core/java/android/view/View.java
9891e1fce5f29d0421d34aa481037417bd70853d 11-Nov-2010 Chet Haase <chet@google.com> Add invalidation to Drawable when its properties change

invalidateSelf() already exists on Drawable. This triggers a call to
callback listeners so that they know the drawable has been invalidated.
For example, the background drawable on View will cause the View itself
to be invalidated.

Change-Id: I45b231a7600dcf3bc139e4059b7c9940ff49f60c
/frameworks/base/core/java/android/view/View.java
848ae6e48b7942ced2ce149b167774db038cc741 09-Nov-2010 Adam Powell <adamp@google.com> am 6bb4f67a: am 26153a33: Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit

* commit '6bb4f67ac29b916b8ea4f08b79a7bc46c5844646':
Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
6bb4f67ac29b916b8ea4f08b79a7bc46c5844646 09-Nov-2010 Adam Powell <adamp@google.com> am 26153a33: Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit

* commit '26153a33df8e6608bd37da7d44214b2a0db3195f':
Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
26153a33df8e6608bd37da7d44214b2a0db3195f 09-Nov-2010 Adam Powell <adamp@google.com> Fix bug 3163052 - always use 32-bit drawing caches when destination
window is 32-bit

Change-Id: I0b6de28eb2de583e1d10d0a65c1ab534ef5bb047
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
079fd674fb9005771dd383a1a483d7dc5072b5b3 04-Nov-2010 Chet Haase <chet@google.com> invalidate() View when backgroundColor changes

Change-Id: I5dd41b6ccffe35a784eec74495649fede65e78f2
/frameworks/base/core/java/android/view/View.java
7c608f25d494c8a0a671e7373efbb47ca635367e 23-Oct-2010 Chet Haase <chet@google.com> optimizing for primitive types in animations

The animator classes caused autoboxing by converting primitive types (by far
the most typical types used in animations) to be converted to their
Object equivalents because of various APIs that required Object
(like getValue() to get the animated value). This change creates
factory methods on some classes instead of the former constructors
so that we can create and return private type-specific subclasses
which operate directly on the primitive types instead.

In particular, float and int are natively supported by the animators
now. Support in the APIs for double and long was removed because it
seemed like these less common types did not justify the extra
baggage of the added API and code.

Change-Id: I6008a3883e3d6dd5225005f45f112af148e5a4ea
/frameworks/base/core/java/android/view/View.java
ea40e9abb094496987ee40aeffc2a57edd4bbcab 02-Nov-2010 Chet Haase <chet@google.com> Fixed null deref when view parent null during invalidation

Change-Id: I4896b4af69f3a44351465e7524dd7b621050b415
/frameworks/base/core/java/android/view/View.java
70d4ba15b1f0c1133c5aabc86de828b41e482fff 06-Oct-2010 Chet Haase <chet@google.com> Performance optimizations for animations and toolkit

Change-Id: I316a48273a9cbb428a965e4b849b3e5e9e8202f1
/frameworks/base/core/java/android/view/View.java
0d9275e565551eed57297627188aa39f3897a50b 26-Oct-2010 Romain Guy <romainguy@google.com> Enable display lists.

Change-Id: Id0d9b987251da5b7ecbb5497a55dbb5937430316
/frameworks/base/core/java/android/view/View.java
5c13d89c1332fcc499379b9064b891187b75ca32 08-Oct-2010 Chet Haase <chet@google.com> Optimizing display lists by referencing pointers to resources instead of copying them

Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
/frameworks/base/core/java/android/view/View.java
32affef4f86961c57d9ba14572ec65dc2a5451de 19-Oct-2010 Chris Tate <ctate@google.com> Introduce an OnDragListener mechanism

If the listener's onDrag(view, event) returns 'false', the view's own
onDragEvent() will be called. If the listener returns 'true', it
consumes the event (and declares that it will handle the rest of the
drag event sequence, in the case of DRAG_STARTED actions).

Change-Id: I01aff0e4f59f71e55f5eea1049905c80714f0607
/frameworks/base/core/java/android/view/View.java
6b3912865c1530a6e06dd189dd95dc5be102b4de 15-Oct-2010 Chris Tate <ctate@google.com> Drag thumbnail fixes / improvements

* Properly wipe the thumbnail canvas before handing it to the app for
its contents to be drawn

* Provide a getView() method in DragThumbnailBuilder that allows
clients or subclasses to get at the associated view. This is
especially for clients that want to draw entire (sub)layouts as
the drag thumbnail, by overriding onDrawThumbnail(Canvas c)
like this:

// Override specifically for drawing a whole ViewGroup into
// the drag thumbnail canvas
@Override
public void onDrawThumbnail(Canvas c) {
getView().dispatchDraw(c);
}

Change-Id: Ib43ddd7cf1d44faf2d7f6ba79f102bc3c7f14596
/frameworks/base/core/java/android/view/View.java
a32dcf7f724137842b9b8d72add4e690fac74984 14-Oct-2010 Chris Tate <ctate@google.com> Actually draw the drag thumbnail

Now sets the layer and thumbnail dimensions correctly. Also removed the
leftover bits of the now-replaced thumbnail measurement/drawing mechanism.

Fixes bug 3077339

Change-Id: I02983648e0a7ce2ce5fee10825f744e20a3a5b8d
/frameworks/base/core/java/android/view/View.java
a3496a9e6011e73deadd33bd0edd9229512e23d3 12-Oct-2010 Romain Guy <romainguy@google.com> Fix invisible views issue in Launcher.

Change-Id: Ic7cb8f418b5879110eaea5a9c5fdb4f237ca4cab
/frameworks/base/core/java/android/view/View.java
5ada6cb0591c1106e3591a3b7adcdc77a1322209 05-Oct-2010 Christopher Tate <ctate@google.com> More drag/drop adjustments:

* Make View.onDragEvent() public instead of protected.
* No longer @hide View.startDrag()
* Properly manage the boundaries of DRAG_STARTED / DRAG_ENDED notifications
to windows (and as a result don't send bogus empty DRAG_STARTED events or
double-recycle pooled DragEvents)

Change-Id: Ib75f5c1417640c82a5b043c555e02d6e6f4b4d9c
/frameworks/base/core/java/android/view/View.java
e537858ba72b0cac0ae9d20df687853b5413fba4 06-Oct-2010 Neel Parekh <neel@google.com> Fix pressed vs selected typo in onCreateDrawableState

Change-Id: I7a415cacf29ed8c6c558f6b29902edd76fc98ea6
/frameworks/base/core/java/android/view/View.java
ee7e0efcc1314b994ba70d91f6e8fa951044c916 06-Oct-2010 Adam Powell <adamp@google.com> am 59c4cb9e: Merge "DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review for over-scroll" into gingerbread

Merge commit '59c4cb9e8fee03f770aa0fa1a2f0ec84ffb945b8' into gingerbread-plus-aosp

* commit '59c4cb9e8fee03f770aa0fa1a2f0ec84ffb945b8':
DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review for over-scroll
737e8fe2c7ce167bc68ad779160488007a5e0b1d 05-Oct-2010 Adam Powell <adamp@google.com> DO NOT MERGE Fix bug 3001751 and bug 3001584 - Gingerbread API review for over-scroll

Change-Id: If34c8ea4e15697420adad0bc404f3c278efd7c1b
/frameworks/base/core/java/android/view/View.java
a0374192b9669d00d85840ee3ddbfd41c2cc52f3 05-Oct-2010 Christopher Tate <ctate@google.com> Make View.DragThumbnailBuilder a static class

It also now uses a WeakReference to the associated View, not a hard
object pointer.

Change-Id: I37e10b3155ee7e089a72bdf050cc2d323794810f
/frameworks/base/core/java/android/view/View.java
2fe9a8f6f6a5264597a9dbed2fb2e02d84853189 05-Oct-2010 Romain Guy <romainguy@google.com> Correctly invalidate the drawing cache when an invalidate is requested.

Change-Id: Ic78f85d728a14a9f2e4a1925d46b6db9a204bbb1
/frameworks/base/core/java/android/view/View.java
2c095f367779ef32130c72849936a2e3013c8492 04-Oct-2010 Christopher Tate <ctate@google.com> Refinements to drag/drop

Thumbnail measurement & drawing has been moved out into a delegate
class called View.DragThumbnailBuilder. This consolidates the
thumbnail-related code as well as ensuring that the drag initiator
does not have to know a priori where to place the thumbnail relative
to the touch point *before* the thumbnail measurement step, as was
previously the case.

startDrag() no longer needs to be told where the current touch point
is at the time the drag is launched.

Drag events are now dispatched only to VISIBLE views.

Dispatch shouldn't double-recycle events any more when the target
window is local to the system process.

Change-Id: I49419103765a0cad2e18ddfcdd6dacb94daf1ff1
/frameworks/base/core/java/android/view/View.java
5e25c2c14593caee5638603120553ae1ec530f85 16-Sep-2010 Chet Haase <chet@google.com> Add ability to automate animated transitions on View show/hide

Change-Id: Id6ff92c8fd06c3f5fb30c41b020b4de4f567154f
/frameworks/base/core/java/android/view/View.java
ed03270fb0a6391df50134d69220f04df398f468 01-Oct-2010 Chet Haase <chet@google.com> Optimizing invalidation to avoid trashing the rendering cache

Objects whose size or contents do not change can use the same rendering cache as before, so in these cases we do invalidation without causing the rendering cache to be recreated.

Change-Id: I840737097b73017ae9ccc9e2cc0bc3d71527e555
/frameworks/base/core/java/android/view/View.java
866717406710595a487cdca33f698876dcd4e8af 01-Oct-2010 Jeff Brown <jeffbrown@google.com> Make View transformation matrix updating more explicit.

The original code depends on side-effects of hasIdentityMatrix()
to update the View transformation matrix. This change adds an
explicit updateMatrix() method to make it more explicit when
we are relying on the matrix having been updated. Among other
things, getInverseMatrix() did not update the matrix so the
caller had to know to call hasIdentityMatrix() first (which was
always the case, but still potentially error-prone).

Change-Id: I16d56f60a785a15c65f73e57b9aded9e4e3bca55
/frameworks/base/core/java/android/view/View.java
0bb5667b4ef91fefd0500fae0186789d15d54e0e 01-Oct-2010 Romain Guy <romainguy@android.com> Fix INVALID_OPERATION error with layers rendering.

This change is a workaround for a driver bug that causes an INVALID_OPERATION
to be thrown on every glCopyTexSubImage() call. This change also adds a new
test for gradients local matrices.

Change-Id: I41b7437481026702d0a3a9677f099b4557c0a84e
/frameworks/base/core/java/android/view/View.java
a53146c5569f8ff5f7eb55e9ad35d23ddacf2add 07-Sep-2010 Christopher Tate <ctate@google.com> Drag/drop APIs and infrastructure

A View initiates a drag-and-drop operation (hereafter just called a "drag")
by calling its startDrag(ClipData) method. Within the processing of that
call, two callbacks are made into the originating View. The first is to
onMeasureDragThumbnail(). Similarly to the core onMeasure() method, this
callback must respond by calling setDragThumbnailDimension(width, height) to
declare the size of the drag thumbnail image that should be used. Following
this, the View's onDrawDragThumbnail(canvas) method will be invoked to
actually produce the bits of the thumbnail image.

If all goes well, startDrag() will return 'true', and the drag is off and
running. (The other arguments to startDrag() provide reconciliation between
the current finger position and where the thumbnail should be placed on
the screen relative to it.)

Potential receipients of the ClipData behind the drag are notified by a
new dispatch mechanism, roughly parallel to motion event dispatch. The core
routine is the View's onDragEvent(event) callback, with the mechanics of
dispatch itself being routed through dispatchDragEvent(event) -- as in
the case of motion events, the dispatch logic is in ViewGroup, with leaf
View objects not needing to consider the dispatch flow.

Several different event 'actions' are delivered through this dispatch
mechanism:

ACTION_DRAG_STARTED: this event is propagated to every View in every window
(including windows created during the course of a drag). It serves as a
global notification that a drag has started with a payload whose matching
ClipDescription is supplied with the event. A View that is prepared to
consume the data described in this event should return 'true' from their
onDragEvent() method, and ideally will also make some visible on-screen
indication that they are a potential target of the drop.

ACTION_DRAG_ENTERED: this event is sent once when the drag point
enters the View's bounds. It is an opportunity for the View to set up
feedback that they are the one who will see the drop if the finger goes
up now.

ACTION_DRAG_LOCATION: when the drag point is over a given View, that
View will receive a stream of DRAG_LOCATION events, providing an
opportunity for the View to show visual feedback tied to the drag point.

ACTION_DRAG_EXITED: like DRAG_ENTERED, but called when the drag point
leaves the View's bounds. The View should undo any visuals meant to
emphasize their being the hovered-over target.

ACTION_DROP: when the drag ends at a given point, the View under that
point is sent this event, with the full ClipData of the payload.

ACTION_DRAG_ENDED: paralleling the DRAG_STARTED action, this is the global
broadcast that the drag has ended and all Views should return to their
normal visual state. This happens after the DROP event.

Change-Id: Ia8d0fb1516bce8c735d87ffd101af0976d7e84b6
/frameworks/base/core/java/android/view/View.java
20e987bfc35d0ae6cb6344ead65ed44ee7cf8750 23-Aug-2010 Jeff Brown <jeffbrown@google.com> Add MotionEvent Matrix transformations.

Fixed issued in ViewGroup's transformation of MotionEvents to ensure
that the entire historical trace is transformed, not just the current
pointer.

Simplified the code in ViewGroup for splitting events across Views.
The new code also handles the case where some pointers are dispatched
to the ViewGroup in addition to its children whereas the previous
code would drop some pointers on the floor.

Change-Id: I56ac31903e1de8a9c376d9c935b7217b0c42d93e
/frameworks/base/core/java/android/view/View.java
b051e895ccb696604349c6c5efe7c4747e1d1ab6 29-Sep-2010 Romain Guy <romainguy@google.com> Add display lists caching.

Change-Id: Iac3a248a81ed8cb076a83ef9d186b8ebba685b4c
/frameworks/base/core/java/android/view/View.java
79d716f7dec8558e282d13c4372b8b2999bab06d 26-Sep-2010 Jean-Baptiste Queru <jbq@google.com> am 74a8df20: am dcfb271b: Merge "Fix if ACTION_DOWN and lost focus time too close, it will become long press."

Merge commit '74a8df2026514025b186aba80a810a03377a80e9'

* commit '74a8df2026514025b186aba80a810a03377a80e9':
Fix if ACTION_DOWN and lost focus time too close, it will become long press.
74a8df2026514025b186aba80a810a03377a80e9 26-Sep-2010 Jean-Baptiste Queru <jbq@google.com> am dcfb271b: Merge "Fix if ACTION_DOWN and lost focus time too close, it will become long press."

Merge commit 'dcfb271b7fa364d567ffd7c495b2baa28a755251' into gingerbread-plus-aosp

* commit 'dcfb271b7fa364d567ffd7c495b2baa28a755251':
Fix if ACTION_DOWN and lost focus time too close, it will become long press.
879fb6b5d66bec90d3420fad12a2a9b2fe9592f3 20-Sep-2010 Adam Powell <adamp@google.com> Text selection anchors changed to use windows

Manually cherry-picked

Change-Id: Id080dfad0e2f324fef3a5175abc78f76c8bad4c8
/frameworks/base/core/java/android/view/View.java
9aed300279db6953356aed5ef24a42291f5829cb 20-Sep-2010 Adam Powell <adamp@google.com> Text selection anchors changed to use windows

Change-Id: I14f138039f5e3175a8c07f21985715b8447708e5
/frameworks/base/core/java/android/view/View.java
f37df070ea84c353ff8bed4b2591932126d7e2ca 18-Sep-2010 Adam Powell <adamp@google.com> resolved conflicts for merge of b39470b5 to master

Change-Id: If441c8684c576b6cbc485a37088d6869ad3fb23f
b08013c312e3d849029a2f4c11889274c00f438d 17-Sep-2010 Adam Powell <adamp@google.com> Added overlay support for drawing/responding to text anchors.

Overlays let views draw and respond to touch events outside of their
bounds. This allows selection anchors to be friendlier and easier to
grab. This is currently private API, pending further evaluation.

Added themes/styles for text selection anchors.

Added assets for text selection anchors as provided by UX. The
left/right anchors are currently not suitable for use. They are here
for bookkeeping and replacement later. The theme currently uses the
'middle' anchor asset for all three. This will be changed once assets
are ready.

Change-Id: I01b21e5ae90cab201f86f38f2f5eeaf2bd7f6bcd
/frameworks/base/core/java/android/view/View.java
c6669ca63299219d815464129dac051ab2404286 16-Sep-2010 Dianne Hackborn <hackbod@google.com> Add API for showing breadcrumbs of fragment back stack.

This adds a simple API to have your back stack automatically
shown as bread crumbs in the action bar. Introduces some APIs
to retrieve the current back stack.

Also fix a little bug in the "activated" state where it was
being propagated down the hierarchy as "selected". :p And from
that, fix the standard colors to be reasonable when in the
activated state.

Finally PreferenceActivity is updated to take advantage of
bread crumbs to show your place in the preferences.

Change-Id: I9d633bedf8d7c6e4ed9b25cb9698faa66c7dd9a4
/frameworks/base/core/java/android/view/View.java
9316232130fe831c998c9d7be9cf67294eccdcae 16-Sep-2010 Joe Onorato <joeo@google.com> Fix broken javadoc.

Change-Id: I4729ebee36117f281af613e0b49f70d7dee5f334
/frameworks/base/core/java/android/view/View.java
d0fa371f276fde32d81c037006941bc93da0bb03 15-Sep-2010 Dianne Hackborn <hackbod@google.com> Add a new "activated" state to View.

Use this in ListView and GridView if the top view is not checkable.

This allows PreferenceActivity to now highlight the current heading
that is being shown.

Change-Id: I0d28aded9a61a42962b4aece420ae4058712d963
/frameworks/base/core/java/android/view/View.java
57361ef001c13a28701dbe8ba3aa08e56310c3a7 14-Sep-2010 Adam Powell <adamp@google.com> DO NOT MERGE Fix bug 2995887 - overscroll effect initialization issue

Change-Id: I03cc18616dec05eb9e0383dc02371366c70cc12b
/frameworks/base/core/java/android/view/View.java
26edf20a0b9516f6021521bc8edd2d30c03fc2ad 13-Sep-2010 Tony Wu <Tony_Wu@acer.com.tw> Fix if ACTION_DOWN and lost focus time too close, it will become long press.

It will become long press because CheckForTap is still posted in background.
So remove the callback when lose focus, or it will become long press event.

Change-Id: I4f98a6fc077d256edbe555464095b2b81e75dd41
/frameworks/base/core/java/android/view/View.java
2bffd268f135df8308c9e67af110525a5c463424 13-Sep-2010 Romain Guy <romainguy@google.com> Fix text rendering issue with text scaling.

Change-Id: I1f3ae40025697e8f8ca0616ee6550fe215cadcc8
/frameworks/base/core/java/android/view/View.java
f607bdc167f66b3e7003acaa4736ae46d78c1492 11-Sep-2010 Romain Guy <romainguy@google.com> Correct implementation of saveLayer().

Change-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763
/frameworks/base/core/java/android/view/View.java
897247b2c419567d2d091b8da37a394f481f6f84 09-Sep-2010 Chet Haase <chet@google.com> Fix bug with pivot point not including translationXY factors

Change-Id: Ib16cd0acc007405fea24664327554019e24c2ac9
/frameworks/base/core/java/android/view/View.java
b380c4d7edc158788a85c906900232675c0164ac 08-Sep-2010 Jeff Brown <jeffbrown@google.com> resolved conflicts for merge of a05088c1 to master

Change-Id: I7973f9f28586dec9b9659f8f662f40db7997a521
85a3176704b5bfbeece9bd928369fbb76eec7dc6 02-Sep-2010 Jeff Brown <jeffbrown@google.com> Add support for secure views.

Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the
input manager whenever another visible window is partly or wholly obscured
the target of a touch event so that applications can filter touches
accordingly.

Added a "filterTouchesWhenObscured" attribute to View which can be used to
enable filtering of touches when the view's window is obscured.

Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2
/frameworks/base/core/java/android/view/View.java
5429e1d1026db8922478b715672e6c0703bbf4a9 07-Sep-2010 Romain Guy <romainguy@google.com> Use static final debug fields.

Change-Id: I304c39f54f609729bcec581091f285b2baa6fefa
/frameworks/base/core/java/android/view/View.java
14cd0653e493cc83041ab51af91399ba00b85c24 07-Sep-2010 Romain Guy <romainguy@google.com> Temporarily disable fading edges if solidColor=0 and hw is on.

Change-Id: I430d8d4d00cbabc99644b98ea832460339c196d8
/frameworks/base/core/java/android/view/View.java
a14c8e0c67223fdc9a0746b370ae594a92530e78 04-Sep-2010 Romain Guy <romainguy@google.com> Bring back instances counts to dumpsys meminfo.

Change-Id: Idd846e137e8e87cb93551ba13751df60a8046eed
/frameworks/base/core/java/android/view/View.java
21cd1389d2ef218b20994b617c57af120841a57f 02-Sep-2010 Chet Haase <chet@google.com> Add transition effects for layout changes on ViewGroups

Change-Id: Ibefcca5692450188fbcec608f3f7e36be1213b21
/frameworks/base/core/java/android/view/View.java
9b34d45c8f164f1d4c51538f241263dfefc0f22e 02-Sep-2010 Romain Guy <romainguy@google.com> Correctly apply alpha on TextView.
Bug #2969691

Change-Id: Ied46e9a38718cb37df10f9dc79b48fbc3a8bd237
/frameworks/base/core/java/android/view/View.java
0a77ce277c6ed2aa25bbea5f8cd5687c0720cb68 25-Aug-2010 Adam Powell <adamp@google.com> New edge effects for scrolling widgets (overscroll)

TODO: Currently disabled for WebView. Assets used for the glow effect
need to be themable/styleable. Overscroll effect should take place
even when the user did not grab the widget within actual content.

Change-Id: I68277d14d37dc5bcdb9254eaddf6e4998b3f2bf4
/frameworks/base/core/java/android/view/View.java
0243caff24ee3b5e4c5e55c888ebb4cdf75b3602 25-Aug-2010 Gilles Debunne <debunne@google.com> Fixed typo in View id documentation

Change-Id: I2df4f0ff9dc0b229349c8accbd6ef962f1d345bb
/frameworks/base/core/java/android/view/View.java
49afa5bc100e5d4c069fea980dd6b09501f56397 23-Aug-2010 Chet Haase <chet@google.com> Add facilities for layout transitions

Change-Id: I5c73ce6c6ba3bc9e3b57fcfbbcab37d511db6132
/frameworks/base/core/java/android/view/View.java
2b342f0a76f3237e97f15dc2f4e8a0b72dd7c023 19-Aug-2010 Adam Powell <adamp@google.com> Allow ViewGroup to split MotionEvents to multiple targets during dispatch.

Use the layout xml attribute splitMotionEvents="true" or the ViewGroup
method setMotionEventSplittingEnabled(true) to enable motion event
splitting. Rules for splitting are as follows:

* Splitting is enabled per ViewGroup. When splitting is enabled any
MotionEvent dispatched to that ViewGroup can potentially be split
into several and dispatched to children independently.

* Each pointer is assigned a target child view when the ACTION_DOWN or
ACTION_POINTER_DOWN event is received. That will be the pointer's
target until it goes up, the target returns false from onTouchEvent,
or the MotionEvents are intercepted.

* Multiple pointers may be assigned to the same target. All pointer
data sent to a target are bundled into a single MotionEvent. Child
views do not need to be aware that splitting has occurred.

Change-Id: I993f838e2f6b455da9812f4742a016dfcd1c4cc9
/frameworks/base/core/java/android/view/View.java
b0d6ba1ec4f71b96cab7d1ff62b846d5cf162c4f 18-Aug-2010 Gilles Debunne <debunne@google.com> Text selection without trackball.

Backported from HC.

Squashed commit of the following:

commit af214a595c7a9fdd11a2dc384f7d4665abf751c0
Fixes in TextView's selection.

commit eb9fd59ebe6500a66c2003d46b5802299970ae8d
TextView with Selection Contextual Mode

commit 4c4c338ef355b369ce4b57d6c6fba7ee8f9dddf4
Cosmetic changes around TextView.

commit d4b4b054e87480d984ad18766f5e76553e3080d8
Double and one and a half tap removed from TextView.

commit 897c2847ba1fca8ef01eadadd1bc3de007af3ee5
Selection handlers in TextView

commit 832be74a5394649e28927484d9a86c6d53b430e7
New cursor controller in TextViews.

Change-Id: I01cc64736e2abea605317ee53907a1713617fc17
/frameworks/base/core/java/android/view/View.java
2542d199745cdf3ec910b8e3e4cff5851ed24e9b 18-Aug-2010 Romain Guy <romainguy@google.com> Layers were using an extra Snapshot causing extra clipping.

Bug #2919310

Change-Id: I72ccd44bba7a3f3db72f581aa96198b6226e4478
/frameworks/base/core/java/android/view/View.java
8fb954263dd2f918ad339045cc6d82e346515599 18-Aug-2010 Romain Guy <romainguy@google.com> Fix save()/restore() issues in the OpenGL renderer.

The save stack now behaves exactly like in Skia.

Change-Id: If7e642f41f2c8f693f6e8c26cba81507d466562e
/frameworks/base/core/java/android/view/View.java
12fb5a3573cd39e2bc4699600fe706cc9ef948db 11-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> am 8279c754: am 91a7f5fe: Making sure that the prefix is handled properly.

Merge commit '8279c754d176d5c2aa23f6f7ad16fcea03278788'

* commit '8279c754d176d5c2aa23f6f7ad16fcea03278788':
Making sure that the prefix is handled properly.
ecb1d5ded9afee63735dc91cfb08ada2c639d237 11-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> resolved conflicts for merge of f00ee0f7 to master

Change-Id: I13b968bde37fad8fffdaa9bb94a0f1da9b2e6e0c
91a7f5fef8a9fc496acef23f513cb48139e8dff5 11-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> Making sure that the prefix is handled properly.

Change-Id: Ic50327b1ed4d6b54753b5b3887508a53cd7a3497
/frameworks/base/core/java/android/view/View.java
bea95162ca25bd00b0479d93739b6283795c3986 11-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> Categorizing exported view properties.

Change-Id: I79c42019836973d80662c21d195d088ae01537a0
/frameworks/base/core/java/android/view/View.java
fd2b002bcfca73958233a4e83a737612393e8a16 06-Aug-2010 Chet Haase <chet@google.com> Add 3D rotation to View

Change-Id: I4aa2542eb821e82d44e13d69b0938de13ffd4f0d
/frameworks/base/core/java/android/view/View.java
6f4169cb285bae8225de8616a01f7a69c12f5799 10-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> am 75493be9: am 63cca691: Merge "Make sure profiling is done only for views that are actually measured, laid out and drawn." into gingerbread

Merge commit '75493be9c0b4dd24fc5cddce6ee993ce5f0b2887'

* commit '75493be9c0b4dd24fc5cddce6ee993ce5f0b2887':
Make sure profiling is done only for views that are actually measured, laid out and drawn.
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
/frameworks/base/core/java/android/view/View.java
c6dc45700bf0c18708b0ad2f695ea85fadcbf131 07-Aug-2010 Konstantin Lopyrev <klopyrev@google.com> Make sure profiling is done only for views that are actually measured, laid out and drawn.

Change-Id: I88c66e882be2781d079c51b6580a19c4e359c5b1
/frameworks/base/core/java/android/view/View.java
df030d2c160ff42927c58ff54c51049c69a48312 31-Jul-2010 Chet Haase <chet@google.com> View x/y properties now feed into matrix translation

Change-Id: I35d8953ab6c7a511cdf90f3f94a4a1b5ef549fc3
/frameworks/base/core/java/android/view/View.java
8fbf8d2b08a22a8f06abe8cff39d935865ec1c9d 31-Jul-2010 Chet Haase <chet@google.com> Fix problems with moving Views around (invalidation, conflict with layout)

Change-Id: I38f8f8a4e8082854a53a2975da258b5d946ed525
/frameworks/base/core/java/android/view/View.java
f788a9fccd9cdb662527aa375af24b8868069108 22-Jul-2010 Gilles Debunne <debunne@google.com> TextView with Selection Contextual Mode

Context menu entries have been moved to a contextual mode in the action bar.

Change Input Method has been removed and *should be added to the system bar instead*.

Add word to dictionnary has also been removed and should now be done using the suggestioni
bar "tap on word to add" feature.

Change-Id: I767373f53515b2d6a06500321b4b12ed0b05a9b6
/frameworks/base/core/java/android/view/View.java
6e34636749217654f43221885afb7a29bb5ca96a 23-Jul-2010 Adam Powell <adamp@google.com> Moved context modes into view, renamed to action modes

ContextualMode renamed to ActionMode. Adds a reference to the action
bar and reduces confusion around things named "Context".

Change-Id: Ia5098b1d0799a0ece0810c34e6696eda039fb005
/frameworks/base/core/java/android/view/View.java
33e72aef05c75699c9180626dbaa00b06f86ad5b 17-Jul-2010 Romain Guy <romainguy@android.com> Make View transforms work again.

Change-Id: I42aa8b5a55d7584ed242e1cb1f7123a6354edbc8
/frameworks/base/core/java/android/view/View.java
b5de9f3bafae2c30e7a67faa1cdf7d1c161820c3 17-Jul-2010 Adam Powell <adamp@google.com> Fix bug 2845609 - Touch event dispatching problem.

Maintain the state of the CANCEL_NEXT_UP_EVENT flag properly.

Change-Id: I5ca22409bf8557c486d02806811b10550c5576eb
/frameworks/base/core/java/android/view/View.java
82e2b4cb51e869a5c2014f56e5b0cf38569ff09a 15-Jul-2010 Scott Main <smain@google.com> am 4fd41688: am 5352d237: am 38137d7a: Merge "docs: lots of additions to the resources docs new drawable resources add <merge> and <include> to layout resource update drawable class descriptioons to point to resources guide add ID resource type" into froyo

Merge commit '4fd416880e53c172bac4a51b2eafea699b58badf'

* commit '4fd416880e53c172bac4a51b2eafea699b58badf':
docs: lots of additions to the resources docs
5352d2378d2f92ebe0657e4caedb4498492fc404 15-Jul-2010 Scott Main <smain@google.com> am 38137d7a: Merge "docs: lots of additions to the resources docs new drawable resources add <merge> and <include> to layout resource update drawable class descriptioons to point to resources guide add ID resource type" into froyo

Merge commit '38137d7a27b037611c70a9d900aa53b4c15563bf' into gingerbread

* commit '38137d7a27b037611c70a9d900aa53b4c15563bf':
docs: lots of additions to the resources docs
c3aa361d65119de503224202ae2296dbb1d3cf33 17-Jun-2010 Chet Haase <chet@google.com> Add various properties to View to allow it to be moved, scaled, faded, and rotated by property manipulation instead of just Animation operations.

Change-Id: Iefab11f243c7511f7bba0e32bd399ed716b9131f
/frameworks/base/core/java/android/view/View.java
839458d8d4dbf44cd1778a23471cf8f948a2012c 15-Jul-2010 Jim Miller <jaggies@google.com> resolved conflicts for merge of e03952c0 to master

Change-Id: I414d934101d452a2c2500e539f0b0aff1e1b3ff0
0b2a6d0773211449fbde9d2706388714beeffebb 14-Jul-2010 Jim Miller <jaggies@google.com> Fix 2797185: Re-enable thumbnail generation in framework

This re-enables thumbnail generation code in the framework
with a few improvements.

In addition to enabling the system to capture thumbnails,
it removes padding from the borders to account for space
overlapped by system widgets (status bar, etc.). Thus,
the contents of the bitmap are only those pixels unique to
the activity.

It also maximizes resolution of the bitmap by capturing the
image in the application's current orientation. In landscape
mode, it captures a bitmap with dimensions w x h. In portrait,
it captures a bitmap with dimensions h x w. Where w and h are
thumbnail_width and thumbnail_height as defined in dimens.xml.

Though enabled, the change is not currently used in this
branch. The work is being checked in here to avoid
complicated downstream merges.

Change-Id: Ifc8a4e0075d7d0697d8159589be3816ace31d70c
/frameworks/base/core/java/android/view/View.java
dac5f9f3caea71e9e0002582ee90ffddadb70d8f 08-Jul-2010 Romain Guy <romainguy@google.com> Do not draw the fade areas when it's not necessary.

Prior to this change, every singleLine TextView would create, draw
and compose a layer on every draw dispatch. This was unnecessary and
expensive.

Change-Id: Ia4f79d7fc8f485784fe6b795f0f196d38d579838
/frameworks/base/core/java/android/view/View.java
dfe5c204403bc56c29bb36410574eab8b1950417 09-Jun-2010 Scott Main <smain@google.com> docs: lots of additions to the resources docs
new drawable resources
add <merge> and <include> to layout resource
update drawable class descriptioons to point to resources guide
add ID resource type

Change-Id: I733eec50bb2671f28c9e6dd7dec14eb6586f5193
/frameworks/base/core/java/android/view/View.java
812ccbeb3ce55c50463fda1d161b2eeed8b19cd2 01-Jun-2010 Romain Guy <romainguy@google.com> Add new hardwareAccelerated manifest attribute to enable HW drawing.

Change-Id: I2bb0252f3699cb720e7f5b6868419c9904e4fb35
/frameworks/base/core/java/android/view/View.java
b4bc78b16a05554c57508b488e21dd8eca4e13e6 13-May-2010 Dianne Hackborn <hackbod@google.com> Further work on fragments:

- Implement all of the state saving and restoring machinery. This
caused some flux in the API.
- Add ability to have fragments that are retained across activity
instances.
- Fix some bugs.

Change-Id: Ib6b5b0752d7f8d667cfdcd3e76d127cc9b6d901b
/frameworks/base/core/java/android/view/View.java
8568c3a09bff9bd2f7c9462b116bed0537d19342 19-Apr-2010 Adam Powell <adamp@google.com> Fix bug 2587373 - awaken scrollbars when a scrolling view becomes visible.

Change-Id: I7eb38c53c3a03b23786b8b0c2d16139acd0eb38e
/frameworks/base/core/java/android/view/View.java
9d32d24dbd8a015c9d5c44ed4901d5a666eb8e7f 30-Mar-2010 Adam Powell <adamp@google.com> Remove overscrolling

Change-Id: I7e9db8d8a9b8ef67f0c0c82bf57c9155b7ebabea
/frameworks/base/core/java/android/view/View.java
6b1e6969828f05a2f5f55825fdf16b19c9dce2dd 29-Mar-2010 Romain Guy <romainguy@google.com> Rename tab widget attributes, remove scroll barrier constant.
Bug #2553515 #2553595

Change-Id: Id36280a57f00a1ee59251be6be1aae8df2189c09
/frameworks/base/core/java/android/view/View.java
52964243dc95f74ac2ab9a96d031a36931a11931 24-Feb-2010 Gilles Debunne <debunne@google.com> New OverScroller with edge bouncing effect.

OverScroller has been made a Scroller child class. Both use a physical constant deceleration
force to compute the animation. OverScroller also includes a rubber edge bounce effect.

Approved by Jim Palmer.

Change-Id: I3f43a03694b8cb6bfa0784c2663b37c9c39322cc
/frameworks/base/core/java/android/view/View.java
cc83c868b6a34c52060698ef441745ba9e4537a2 18-Mar-2010 Adam Powell <adamp@google.com> Fix the build

Change-Id: I4448a0c56c192d3d9f0308bb77301a3f18de6024
/frameworks/base/core/java/android/view/View.java
8a836a8b98557263152a476f614b6e05e19ffc5a 18-Mar-2010 Adam Powell <adamp@google.com> Eliminate haptic feedback when hitting an overscroll barrier due to a fling.

Change-Id: I434ec3edd95a19677ad9dbd1ac5ca3f3f5d091cb
/frameworks/base/core/java/android/view/View.java
a35d7687dda3617b5b8cd4e8876d620223dd1613 12-Mar-2010 Adam Powell <adamp@google.com> Make sure visible View state is updated before dispatching clicks

Change-Id: If2619ffa760be708efe8b0d2d04e17eb0dc9375e
/frameworks/base/core/java/android/view/View.java
3b0233959cc181baca896620b42e3cb6ceca2808 12-Mar-2010 Adam Powell <adamp@google.com> Fix tap detection after a long press

Change-Id: I004651b8522cac175a72e94a14128d2283da35a4
/frameworks/base/core/java/android/view/View.java
42e14d74f3a1e146091e627ae3067651c6dab104 11-Mar-2010 Joe Onorato <joeo@android.com> Throw a better error message when the automatic onClick handling doesn't work.

Change-Id: I61729e26f76a2ab8825e892cd6c70c06f0955e4c
/frameworks/base/core/java/android/view/View.java
51c5a0c50e8ec5e2cb59bd60f85f3e612eb08931 05-Mar-2010 Adam Powell <adamp@google.com> Added accessors for view overscroll modes
/frameworks/base/core/java/android/view/View.java
223ff5c0586adbbd1d6d57a3a4d176222e8b7434 03-Mar-2010 Romain Guy <romainguy@android.com> Add new CAPTURE_LAYERS command to HiearchyViewer protocol.

This command is used by the desktop tool to export a given view hierarchy into
a layered file format.
/frameworks/base/core/java/android/view/View.java
8bda24874f1da3ca10e40bd0a11154911337b2ac 02-Mar-2010 Romain Guy <romainguy@android.com> Turn on fading scrollbars by default.
Bug #2142162
/frameworks/base/core/java/android/view/View.java
8afa515936e78ccfc5563ca9164dc9a50ca73db4 26-Feb-2010 Romain Guy <romainguy@android.com> Send cancel event to recycled views instead of an up.
Bug #2309387

This was a problem in lists with list items that would cause notifyDatasetChanged()
interleaved with a series of up/down motion events. This is a pretty rare case
but it's worth fixing it to avoid getting views in a weird state.
/frameworks/base/core/java/android/view/View.java
82fe564267f276151063b2aa0d26075c3210d75f 24-Feb-2010 Carl Shapiro <cshapiro@google.com> Comment out the finalize() methods defined on the Activity,
ContextImpl, View and ViewRoot classes. This allows instances of
subclasses to be collected without the additional latency of
finalization.
/frameworks/base/core/java/android/view/View.java
8354fa65ebf4f44dd189d1d6f33767cf009b5769 25-Feb-2010 Bjorn Bringert <bringert@android.com> Make setBackgroundResource() remotable

Change-Id: Iad9c2bdf743a81a085024cad9dc340ae8a983f34
/frameworks/base/core/java/android/view/View.java
a440b002aa59e1455bdfa2c5a1ca51c74bbc19ac 25-Feb-2010 Romain Guy <romainguy@android.com> Prevents ListView items children to modify properties of other children.
Bug #2464502

This fix introduce a new dispatch mechanism to tell views when they are temporary
detached/reattached from/to a ListView. This is very important to remove pending
callbacks or cleanup temporary states.

This change also modifies TextView which was relying on that callback in a very
particular case: a focused EditText in a ListView. The modified code acts only
when in that case, not if onStart/FinishTemporaryDetach() is called via
dispatch*() (== recycled views in ListView.)
/frameworks/base/core/java/android/view/View.java
e36d6e277e49475076b7872d36ea6a5c5b996e9d 18-Feb-2010 Dianne Hackborn <hackbod@google.com> Work on issue #2263557: PMF3000 showing hybrid of portrait and landscape modes

This is a bunch of reworking of how configuration changes are handled:

- When orientation is changing (for whatever reason), the window manager no
longer tries to pre-emptively compute a new configuration. Instead, it
just determines change is happening and tells the window manager.
- The activity manager is now responsible for giving the window manager the
final configuration it is using. This is both so it knows whem the
activity manager is done with its configuration updates, and so the window
manager can use the "real" configuration.
- When an orientation or other configuration change is happening, freeze the
screen and keep it frozen until the activity manager has given us the
final configuration.
- The window manager can now send new configurations to its clients during
its layout pass, as part of a resize, if it has determined that it has
changed. This allows for a new View.onConfigurationChanged() API for any
view to easily find out when the configuration has changed.
- ViewRoot now also works with the activity thread to make sure the process's
current resources are updated to the new configuration when it receives one
from a window. This ensures that at the time onConfigurationChanged() and
other view callbacks are happening, the correct configuration is in force.
- There is now a sequence number associated with Configuration, which
ActivityThread uses to avoid using stale configurations. This is needed now
that it can receive configurations asynchronously from both the window
manager and activity manager.
- The hack for keeping the locale has been removed, and underlying problem
fixed by having Configuration initialize its locale to "unknown" instead of
a valid default value.
/frameworks/base/core/java/android/view/View.java
2b95c2413838c2e2b127ebab8fb4fead7d52e460 09-Feb-2010 Jeff Sharkey <jsharkey@android.com> Added more @RemotableViewMethod methods, mutate ImageView.

Catch some View methods missed during the first pass of
marking with @RemotableViewMethod annotation. Also adds new
ImageView.setColorFilter(int) to match the android:tint XML
attribute.

When ImageView touches ColorFilter or alpha, mutate the
underlying Drawable. Fix NPE in StateListDrawable.mutate().
/frameworks/base/core/java/android/view/View.java
c9fbaabc1bbf847b6e8bf2595068cbd990f3da55 17-Feb-2010 Adam Powell <adamp@google.com> XML attribute for overscrolling behavior
/frameworks/base/core/java/android/view/View.java
4886d40091ebf1fd71c0942224c0b4ad7410f6a7 12-Feb-2010 Adam Powell <adamp@google.com> Fix javadoc link for SDK build breakage
/frameworks/base/core/java/android/view/View.java
0b8bb4282a7d1afb24f8c4d5beb2ca4ecc731116 08-Feb-2010 Adam Powell <adamp@google.com> Overscrolling modifications. Overscroll will not allow the user to
scroll content out of view. Scrolling will slow down halfway to the
barrier point. API added in View. AbsListView, ScrollView,
HorizontalScrollView all use this API. Overscrolling uses haptic
feedback. Added scroll barrier pattern to config.xml.
/frameworks/base/core/java/android/view/View.java
b4a107d8269d1a75b8f270e0516c1fa3b517f8f9 10-Feb-2010 Romain Guy <romainguy@android.com> Fix the lock screen.
/frameworks/base/core/java/android/view/View.java
305a2eb8e5957a4f3db2734a8918faf1a39fb9a4 09-Feb-2010 Romain Guy <romainguy@android.com> Properly notifies listener when an animation is cancelled.
Bug: #2428005.
/frameworks/base/core/java/android/view/View.java
732ebb1bc3d7760fd424b84e0235ea9946100102 03-Feb-2010 Adam Powell <adamp@google.com> Fixed a regression in View.cancelLongPress
/frameworks/base/core/java/android/view/View.java
43c9cdffb619f93d9d4525dffd05701dc9c8c4bf 27-Jan-2010 Romain Guy <romainguy@android.com> New View.dispatchDisplayHint() API.
Bug #2399147

This new API will be used by scrollable containers to tell children that they
are/are not displayed. This will allow lists to hide their filter popup window
for instance.
/frameworks/base/core/java/android/view/View.java
52e2ef8cac0cd6d78c2c2f5783846e03c636a54c 14-Jan-2010 Romain Guy <romainguy@android.com> Update ListView's children when the drawing cache color hint changes.
Bug #2371777
/frameworks/base/core/java/android/view/View.java
980a938c1c9a6a5791a8240e5a1e6638ab28dc77 09-Jan-2010 Romain Guy <romainguy@android.com> Deprecate fill_parent and introduce match_parent.
Bug: #2361749.
/frameworks/base/core/java/android/view/View.java
e14579bac59aa84523c2bfbfc3f28c7842ec664d 17-Dec-2009 Adam Powell <adamp@google.com> Tap delays; making tap UI feel better.
Addresses bug 2317577

Views now will not enter PRESSED state until
ViewConfiguration.getTapTimeout() milliseconds have elapsed. This
prevents scrolls and other gestures from causing views to enter
PRESSED state prematurely.

Quick taps within the same view still work as expected. There is now a
PREPRESSED state flag within View to help track quick taps.

If tapped quickly, views will remain pressed for
ViewConfiguration.getPressedStateDuration().

Tap timeout has been changed to 115ms. Pressed state duration has been
changed to 125ms.
/frameworks/base/core/java/android/view/View.java
1549dd1e6801a0240a2e2769c91181698910f98d 15-Dec-2009 Maryam Garrett <mkamvar@google.com> Fixes the IME not triggering on touch bug.

http://b/issue?id=2328818

Change-Id: I98cb3b5c3ba49d35e2b031e4fabd050bccccfa81
/frameworks/base/core/java/android/view/View.java
39f0efba92a4420f77e3abc53c367ea3cacde3cf 11-Dec-2009 Maryam Garrett <mkamvar@google.com> Fixes context-menu trigger behavior after scroll in TextView

This change fixes the context menu trigger behavior while
the user is selecting via touch. How if a user is selecting
text via dragging their finger, to trigger the context menu
they will have to lift their finger up, then issue a
longpress. This is consistent with the behavior of selecting
via the trackball.
/frameworks/base/core/java/android/view/View.java
326d808b858359464b2ffeb84f2e0a8e0c79b600 10-Dec-2009 Adam Powell <adamp@google.com> Added View#dispatchViewVisibilityChanged and View#onDispatchVisibilityChanged; updated api; tests

Reverted a change to InstrumentationTestCase that would have allowed @UiThreadTest on setUp() methods of tests.
/frameworks/base/core/java/android/view/View.java
ea4823c1c7fdee093789850d0f76a3df22ca58d2 09-Dec-2009 Romain Guy <romainguy@android.com> Improve javadoc in View.
/frameworks/base/core/java/android/view/View.java
237c1ceea36024cf4194212e713806e3ce8a1c49 08-Dec-2009 Romain Guy <romainguy@android.com> Improve exception message thrown when a View's state is of the wrong type.
/frameworks/base/core/java/android/view/View.java
ecd80ee31c23ac067bb420f44f046682c499e83c 04-Dec-2009 Romain Guy <romainguy@android.com> Fix invalidate code path (#2273209).

Cached views would, in some situations, not update if they contained an
animating child. This was caused by clearing the dirty cache flag too
early in View.buildDrawingCache().

Approved by Dr. No mcleron.

Change-Id: I8c5f2fc3e6605657e0da625d60d50b55bb133666
/frameworks/base/core/java/android/view/View.java
1d5b3a631cfcbfd2ea264f29a11a1366a16593b0 06-Nov-2009 Romain Guy <romainguy@android.com> Fix the build

Change-Id: Id7514858594772ab79c0f3db745b00f0bb59218b
/frameworks/base/core/java/android/view/View.java
732046f87412dc5da4e7290c9f7c4bd7fa3071e1 03-Nov-2009 Romain Guy <romainguy@android.com> Unhide View.isOpaque().

Change-Id: I96444af2a7e66a330a2c4b3fa0a173ec5ab4ed40
/frameworks/base/core/java/android/view/View.java
a62e4705d51e6f36ba1c02350813b6a12af49703 08-Oct-2009 Romain Guy <romainguy@android.com> Fixes #2175599. Prevents an NPE when AttachInfo is null.

This bug was introduced by a change made to query the window's opacity.

Approved by mcleron.

Change-Id: I95319bde72b0faade095bbbbb317e84b9be8efa8
/frameworks/base/core/java/android/view/View.java
35b38cefcc92f1ed599a652ac5736ab9e9e75039 07-Oct-2009 Romain Guy <romainguy@android.com> Improve drawing cache speed by selecting the correct opacity and keeping a 32 bits
format when the window is 32 bits.

Change-Id: I46762def67fa7d6a331a75fa8660c6422394ccf2
/frameworks/base/core/java/android/view/View.java
29e4a3c566f435c32f0b95e4ac8e8b33cac6faba 01-Oct-2009 Dianne Hackborn <hackbod@google.com> Update from API review.

Change-Id: I16b1c566f91167aac9615ac59dd297a154c828ea
/frameworks/base/core/java/android/view/View.java
290947bbf830a1ea335b01bcd8155c699b6713ca 30-Sep-2009 Mike Cleron <mcleron@google.com> Git sucks
/frameworks/base/core/java/android/view/View.java
52f0a6495277469bd7ede29ef89bc34cb2aa8a85 29-Sep-2009 Mike Cleron <mcleron@google.com> Finish off java API to allow fading scrollbars
/frameworks/base/core/java/android/view/View.java
fe81d386a818b386ffc0d5a789236531ab4e264f 28-Sep-2009 Mike Cleron <mcleron@google.com> Remove obsolete links; start at a method to turn on fading scrollbars
/frameworks/base/core/java/android/view/View.java
3ecd58c650371206008efd687933c370e4e28a34 28-Sep-2009 Mike Cleron <mcleron@google.com> Fix build
/frameworks/base/core/java/android/view/View.java
f116bf8884b5b58aae261d148003811aa4a7c6e9 28-Sep-2009 Mike Cleron <mcleron@google.com> Fading scrollbars return. But you have to opt in.
/frameworks/base/core/java/android/view/View.java
ffa424800d0338b8b894aef2ea1e3e3344cbda7a 24-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off

Lot of infrastructure for more things to go away when "clear system dialogs"
happens, and now do this when we turn on the lock screen.

Change-Id: I567130296fe47ce82df065ed58ef21b37416ceaf
/frameworks/base/core/java/android/view/View.java
83fe3f559249451706957b1a5f660b2b8272f114 13-Sep-2009 Dianne Hackborn <hackbod@google.com> Last big work on #1991910: Make swipes work with capacitive keys

This takes care of allowing us to cancel the back button. The
back button is a bear because it is strewn all over the place --
everywhere you can close something, there is some code looking
for the back button that now needs to deal with being canceled.

The main things changed are activity (of course), dialog,
input method, search dialog. There are some other misc places
in the framework (and some I missed here that I will get in a
second pass).

To facility all of this, the key dispatching APIs now provide
a lot more support for dealing with looking for cancelled keys,
and incidentally also provide an actual API for catching long
key presses. This also helped clean up the code in PhoneWindow
where it deals with all of the combinations of key pressed and
releases. (And also allows people to override
Activity.onKeyLongPress() to provide a different long press
action for a standard key like search.)

And while I was doing this, I reworked how we detect long
presses by having this be part of the key event delivered by
the window manager. This should greatly reduce (hopefully
outright eliminate) the problems with long presses being
mis-detected when an application is being slow.

Change-Id: Ia19066b8d588d573df3eee6d96e1c90fdc19f57d
/frameworks/base/core/java/android/view/View.java
8c11e31143726c9457280c6c0ec83472763c0de9 15-Sep-2009 Romain Guy <romainguy@android.com> Fix a possible NPE in View.

Change-Id: Ieebd176e1f42c78e298aca973e9e5eed2dc3c6d9
/frameworks/base/core/java/android/view/View.java
8cae124af2142687a6833dbaab8a43df6dd67b43 10-Sep-2009 Dianne Hackborn <hackbod@google.com> Various cleanup around resources and nine-patches.

Remove the stuff that doesn't use preloaded drawables when in
compatibility mode, since this works fine ever since we were able
to deal with drawables in a different density than the canvas.

Change the snapshot function on View to return a snapshot at
the same size that will actually be drawn on screen (when in
compatibility mode), to be able to show scaling artifacts and
all.

This change was original an attempt to fix issue #2101917: Text
field edges appears to be improperly rounded. That turns out to
probably be something deeper in the graphics system, but also
included here is the debugging code I did to try to track down the
problem to make it easy to turn on again later.

Change-Id: I34bfca629639c7ff103f3989d88874112ef778d9
/frameworks/base/core/java/android/view/View.java
e8853fc57093e781fa7c659c6eb4da3be9f8695a 04-Sep-2009 Mike Reed <reed@google.com> also expose onDrawHorizontalScrollBar() in View
retool WebView's calculations to correctly compute scrollbar height and parameters
/frameworks/base/core/java/android/view/View.java
4d6fe5ffdc62625726e5785edb0e01586d6072bf 03-Sep-2009 Mike Reed <reed@google.com> allow subclassing for drawing vertical scrollbar, so that clients (e.g. webview) can resize/position
/frameworks/base/core/java/android/view/View.java
6198ae8468668bf7374535c2eeeab8de7f8e7e99 01-Sep-2009 Romain Guy <romainguy@android.com> Prevent ListView from scrolling/flinging its content when the content fits on screen.

Change-Id: Id46313bca3ae53b0717cd74a4a6f889a01f9fcb1
/frameworks/base/core/java/android/view/View.java
e55e1a78857b5d952f593c912655011fced355d5 27-Aug-2009 Romain Guy <romainguy@android.com> Change fade to use a gradient from opaque color to transparent color.

Previously the fade was using a gradient from opaque color to transparent black.
/frameworks/base/core/java/android/view/View.java
7cd88e171391dd0c876bf7d928d946a70cf95373 04-Aug-2009 Wink Saville <wink@google.com> Update the comment for setBackgroundResource that 0 removes the background.
/frameworks/base/core/java/android/view/View.java
a2ef00b4282dcf122c3bdd6fc23cf772474f6abb 31-Jul-2009 Amith Yamasani <yamasani@google.com> Don't invalidate view if setEnabled doesn't change the state.

Check the current enabled state before setting it, in case there's
no change. Otherwise some apps are repeatedly redrawing buttons based
on validation of some text field (like gmail or mms message bodies).
Should slightly improve the performance of soft keyboard text entry.
/frameworks/base/core/java/android/view/View.java
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.
/frameworks/base/core/java/android/view/View.java
870e09fcd2dfdc12ac318962efd28b0420c562bb 07-Jul-2009 Romain Guy <romainguy@android.com> Fixes #1963229. Introduces Context#isRestricted().

A restricted Context is a special type of Context that prevents specific features
from being used. For instance, android:onClick, used by View, can be dangerous when
used from within apps widgets. By using a restricted Context to inflate apps widgets,
widgets providers are prevented from using android:onClick.
/frameworks/base/core/java/android/view/View.java
e11232287296eefc82cd895b8392079feedb37cc 29-Jun-2009 Romain Guy <romainguy@android.com> Fixes #1949502. Prevents an NPE in View.buildDrawingCache().
/frameworks/base/core/java/android/view/View.java
fbd8f69a84163ef1cf52b07966320caf448c2bc9 26-Jun-2009 Romain Guy <romainguy@android.com> Fixes #1946141. Introduce new caching API to control scaling.

This change fixes issues with existing applications that access the drawing cache
directly. The API now lets application choose whether they want to get a scaled
drawing cache or not. The framework relies on the scaled cache for quality
purposes.
/frameworks/base/core/java/android/view/View.java
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.
/frameworks/base/core/java/android/view/View.java
61ab270c17094ef1373f54d8fb9ade6d287c3a60 23-Jun-2009 Karl Rosaen <krosaen@google.com> Add missing 'break's in switch statement, fixing bug 1876430
/frameworks/base/core/java/android/view/View.java
779398e7eb462ca1562eee50a919305849582e08 16-Jun-2009 Romain Guy <romainguy@android.com> Fixes a potential NPE in View.

Calling getLocationOnScreen() before the View is attached to a window can
throw an NPE. This change simply guards against the exception.
/frameworks/base/core/java/android/view/View.java
8506ab4ac062d0e1ccde136e5e2f4081560e0c11 12-Jun-2009 Romain Guy <romainguy@android.com> Fixes #1886237. Views drawing cache was not generated properly.

In compatibility mode, a View's drawing cache was created at the 160 density
scale instead of the right scale.
/frameworks/base/core/java/android/view/View.java
d6a463a9f23b3901bf729f2f27a6bb8f78b95248 22-May-2009 Romain Guy <romainguy@android.com> Add a new API to ListView: setGestures(int). This allows developers to enable gestures to jump inside the list or filter it. This change also introduces a new XML attribute to control this API. It also adds the ability to theme the GestureOverlayView from the gestures library. Finally, this adds a new VERSION header to the binary format used to store the letters for the recognizer.
/frameworks/base/core/java/android/view/View.java
8f1344f5e7c92f2fd532f65e5584afe0e4cc6b11 16-May-2009 Romain Guy <romainguy@android.com> Fixes #1855461, #1857290 and #1857365. Certain scrollbar styles make an opaque view not be opaque. ListView and View now account for this when indicating whether they are opaque or not.
/frameworks/base/core/java/android/view/View.java
75986cf9bc57ef11ad70f36fb77fbbf5d63af6ec 15-May-2009 svetoslavganov <svetoslavganov@google.com> Accessibility feature - framework changes (replacing 698, 699, 700, 701 and merging with the latest Donut)
/frameworks/base/core/java/android/view/View.java
5bcdff45bf4ada77ae7c95f520b795876adef75c 15-May-2009 Romain Guy <romainguy@android.com> Fixes #1846038. The dirty region can sometimes be modified by SurfaceFlinger. When this happens, force the view hierarchy to ignore the dirty flags.
/frameworks/base/core/java/android/view/View.java
809a7f6080312f3e12f1a3a30eacf0e0c7627305 15-May-2009 Romain Guy <romainguy@android.com> New feature to track down #1846038. Adds the ability to export flags encoded in int values so as to make them human readable in HierarchyViewer.
/frameworks/base/core/java/android/view/View.java
13922e03037d71a538f24ddf61c0b61bb4eb5af0 13-May-2009 Romain Guy <romainguy@android.com> Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.
/frameworks/base/core/java/android/view/View.java
83b2107c4d2f07f46b6ae663115421749486f8b1 12-May-2009 Romain Guy <romainguy@android.com> Fixes #1846038. DrawableContainer was wrongly returning its opacity by ignoring the visibility of the currently selected layer. This change simply reports a TRANSPARENT opacity if there is no currently selected layer of if the selected layer is not visible. Otherwise it reports the opacity computed by the state class.
/frameworks/base/core/java/android/view/View.java
7ed6acdc084f5cbd37bd9b9d5422d75fa31f43ce 12-May-2009 Romain Guy <romainguy@android.com> Remove useless logging on every draw.
/frameworks/base/core/java/android/view/View.java
24443ea3992e372e47daa50266b0f2ec38cac388 11-May-2009 Romain Guy <romainguy@android.com> Fixes #1596240. Optimize invalidate/draw passes by marking opaque views and avoiding drawing them. Whenever a View requests an invalidate its parent check whether the view is opaque or not. When the view is not opaque, the framework behaves as it used to. However, when a view is opaque, the parent marks itself as being dirty because of an opaque view. Its parent then does the same, and so on. When the framework then starts drawing the views, it does not draw views marked as dirty opaque. If a view is dirty opaque and receives an invalidate request from a non-opaque view, it then clears the dirty opaque flag and behaves as before.
/frameworks/base/core/java/android/view/View.java
d90a33111b3f1d0b2fff7ba9bafabc63fdb67d3a 06-May-2009 Romain Guy <romainguy@android.com> Add new setTag(int, Object) API to allow applications to specify several tags.
/frameworks/base/core/java/android/view/View.java
9a81736176f507489f262344b6e3d55bbe53be7c 01-May-2009 Romain Guy <romainguy@google.com> Add the ability to specify the onClick handler with XML. The new android:onClick attribute defines the name of the method in the Activity to invoke when the button is clicked. The method has to be public and get one View parameter.
/frameworks/base/core/java/android/view/View.java
a2431d0ba24ca7d79d21b2df63f9a58025702c7e 01-May-2009 Romain Guy <romainguy@google.com> Fixes #1712631. Whenever a View loses focus/selection, reset its pressed state.
/frameworks/base/core/java/android/view/View.java
f8a7ceaef2e7d5cd530c9426bde91b6fa9a40b75 11-Apr-2009 Andy Stadler <> AI 145778: Manual merge changes 145382-145384 from cupcake.

Automated import of CL 145778
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
958b9adc086f126dcd757d29f0d7f443ae9064b2 01-Apr-2009 Dianne Hackborn <> AI 143899: am: CL 143896 Fix issue #1748954 and #1737952:
#1748954 (New status bar fades into all white background): FrameLayout wasn't updating its foreground drawable when its padding changed, which would happen as the status bar is shown and hidden. To fix this I also ended up fixing a problem in the view debug stuff where we couldn't get a bitmap for a view that is the full screen size because it is too big... actually I just went ahead and added another function to snapshot the view hierarchy which works a lot better for us anyway.
#1737952 (Home screen icons overlap with the notification bar after exiting any camera app): Originally I punted this because it only happened in rare situations, but now that home is always portrait it happens a lot more so it is more important to fix. This involved a few things to clean up hiding/showing the status bar:
- We now determine when to hide and show it during layout, which allows us to do this at the time it is actually needed rather than during animation after we can actually catch it for the initial display of a window. This required tweaking the layout API so the policy can request a second layout pass if needed.
- When doing layout, we are now much more aggressive about skipping the layout of windows. Basically anything that we know will be hidden in the near future is ignored for layout, so that it doesn't glitch as it is transfered out of the screen. The theory being that it is better to leave it as it was originally placed while we are transitioning it out, than to switch it to something slightly more correct.
Original author: hackbod
Merged from: //branches/cupcake/...

Automated import of CL 143899
/frameworks/base/core/java/android/view/View.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
/frameworks/base/core/java/android/view/View.java
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
/frameworks/base/core/java/android/view/View.java
c39a6e0c51e182338deb8b63d07933b585134929 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
/frameworks/base/core/java/android/view/View.java
b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
/frameworks/base/core/java/android/view/View.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/view/View.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/view/View.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/core/java/android/view/View.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/core/java/android/view/View.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/frameworks/base/core/java/android/view/View.java
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
/frameworks/base/core/java/android/view/View.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/core/java/android/view/View.java
9266c558bf1d21ff647525ff99f7dadbca417309 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
/frameworks/base/core/java/android/view/View.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/core/java/android/view/View.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/java/android/view/View.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/core/java/android/view/View.java