History log of /frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
166d5f1c4f2757966ff0ef167b6a2813e015b6a7 27-May-2017 Chris Craik <ccraik@google.com> Add toString dumps to most RV exceptions

Fixes: 38339683
Test: RecyclerviewBasicTest

Add Adapter and LLM toString to RV's toString, and print this with most
user-visible exceptions. This should make it easier to figure out which
RecyclerView is throwing an exception in production, instead of having to
guess based on stack trace depth.

This only covers exceptions in RecyclerView.java - can consider expanding to
other exceptions as necessary.

Change-Id: I94fd16039bb9113c0aa66cbd22ac7f2be6fb564d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4c5e22d736ff19351f4318a85e94c6d94c5f15b6 19-May-2017 Dake Gu <dake@google.com> RecyclerView: add APIs to query Scroller progress

On TV, leanback LayoutManager scroll to focused item, aligning the
item to a dedicated location on screen.

If during scroll animation, there is a layout pass
that changes child size, the scroll animation might stop
at unaligned position. To avoid this: check if new aligned position
will be unchanged, LayoutManager can continue the current scroll
animation; otherwise LayoutManager either starts a new Scroller
animation or compensates for the scroll delta.

Previously Leanback does a hacky way to figure out remaining distance
of Scroller animation. This CL exposed the APIs to query the
remaining distance in Scroller animation. It applies to the case of
fling, smoothScrollTo, smoothScroller. App should only call the
methods when scroll state is SETTLING.

Bug: 38459310
Test: testRemainingScrollInLayout

Change-Id: I0e6587ac6311a28f6e54bb52371c25e2828d4812
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a031fe7234ecf5d8ef3b2bc3aa652e79cdb5004e 16-May-2017 Dake Gu <dake@google.com> Merge "RecyclerView: dont clear app provided accessibility delegate" into oc-dev
ad1b0e82100ee31e70040d77bfa4d847b2bf0864 02-May-2017 Aurimas Liutikas <aurimas@google.com> Fix and suppress an assortment of ErrorProne warnings.

Test: ./gradlew assembleErrorProne now has fewer warnings
Change-Id: I445c7dfd36b33243771eb7821562ca468851ad8a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
233b338d2b783bde4999c990979e8ad09e9d1091 11-May-2017 Dake Gu <dake@google.com> RecyclerView: dont clear app provided accessibility delegate

If app provides accessibility delegate in onCreateView, the delegate
is unexpectedly cleared when item is sent to RecyclerViewPool.

Test: notClearCustomViewDelegate clearItemDelegateWhenGoesToPool
Bug: 37672983
Change-Id: I688f94272956501daf8bd133acf6d15310335d6f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
76daed103193a1756535d1f59b165e98e1d17445 13-Dec-2016 Chris Banes <chrisbanes@google.com> Nested scrolling++

This CL adds a number of overloads for the support
implementation of the nested scrolling APIs, to
add the 'type' parameter. This allow developers to
differentiate between direct touch scrolls, and
other non-direct scrolls. Primarily this is to support
dispatching the nested scrolling APIs from when a
scrolling view settles from a fling.

NestedScrollView and RecyclerView have both been updated
to dispatch these events from a fling settle. AppBarLayout
has also been updated to consume these new events.

The way the interfaces have been implemented allow us to
be API compatible without breaking anyone. Yes, the names
are fugly but so be it. If developers wish to support the
new APIs they just need to change the interface they
implement.

This CL also fixes some scroll issues in NSV and RV:
- NSV: fling not starting if scroll is completely
consumed (since it doesn't think it is dragging).
- RV: intercept setting the wrong X/Y start values
sometimes causing flinging in the wrong direction.

BUG: 22780822
Test: included for RV

Change-Id: I37de005e4fb33b5b443852058f3e1ab22ef98e20
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
9fd17944807cec0f161e72383aecb563a9da9749 28-Apr-2017 Ben Lin <linben@google.com> Correct index bounding for getItemDecorations.

Test: existing tests passes.
Bug: 37779266
Change-Id: Id40fecaa2edcb7f7cd39e8496b4e9e0e48be720e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a1f3f663034d903cb1a7036defa79bf462fca61c 31-Mar-2017 Aaron Whyte <awhyte@google.com> Rotary input support in RecyclerView, mainly for watches.

This also introduces new tests for RecyclerView onGerericMotionEvent,
including some tests for the pre-existing SOURCE_CLASS_POINTER events.

Test: New unit test class, and manual check on N and O watches.
Change-Id: I02d7389d103da25732166a6fd84566b45a99188a
(cherry picked from commit 2998aa5b8adb4e54a9fcd8f76298110879c677f5)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f49d722efe3511e006fda41bc7b5c390ac14c0ee 15-Apr-2017 Chris Craik <ccraik@google.com> resolve merge conflicts of f34b246a95 to oc-dev
Test: none

Change-Id: Ibacfff9e851a11d8f80c356f844260629367e6bf
f34b246a956ef9bb84742bf4726e5f791184ed6a 13-Apr-2017 Chris Craik <ccraik@google.com> Merge "Clear child animations before removal" into nyc-support-25.4-dev
b87d5fd16f33cd57f5ac68f110ac48946cd9d841 07-Apr-2017 Chris Craik <ccraik@google.com> Clear child animations before removal

Fixes: 36650711
Bug: 37223437
Test: None, unsupported behavior.

Prevents a case where an itemview with an android.view.animation.Animation
defers its detach. The detach can be deferred so far that RecyclerView
adds it back first, causing the child to see the invalid sequence:
attach, attach, detatch, detatch.

Change-Id: I27c75b35110fb6521ddb7ab3cf3e271128bb3069
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
525d40d253809e8226e5514386489720292b1fe0 11-Apr-2017 Chris Craik <ccraik@google.com> resolve merge conflicts of 87e76d93b9 to oc-dev

Test: none

Change-Id: I3cb3f1968bdc0d3f424f126d0915789d6a433fde
b9d3b54b0b5fa223867cf11e47ee3f31ee474031 28-Mar-2017 Chris Craik <ccraik@google.com> Make prefetch calls trigger isComputingLayout()=true

Fixes: 32735990
Test: adb shell am instrument -w -r -e debug false -e size small android.support.v7.recyclerview.test/android.support.test.runner.AndroidJUnitRunner

Change-Id: I19ba1ecacbc97eeeb7a96d9d9fd401f98d9e6f1b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b853fc7ce4d1a4b2a55b8f42321106ae1a1a5560 28-Mar-2017 Chris Craik <ccraik@google.com> Merge "Fix stale nested prefetch data leaking out after notifyDataSetChanged" into nyc-support-25.4-dev
am: 41bcf9b0e4

Change-Id: Ib8dc7d89760e15bb67e71d5cfdb2eb60290ad042
41bcf9b0e4fbfc5902b5cbd17f6ade1c2091d33d 28-Mar-2017 Chris Craik <ccraik@google.com> Merge "Fix stale nested prefetch data leaking out after notifyDataSetChanged" into nyc-support-25.4-dev
aebcbcea747cb2fcb3b8f2883b7066bae84f60ce 28-Mar-2017 Dake Gu <dake@google.com> RecyclerView prefetch: dont change mStructureChanged flag
am: 0fd482dee2

Change-Id: Ia6102557d368b1e64db1c06b9e9d761c15d88cb7
0fd482dee2c8c2aa61e59d6501e46864e16fcb04 28-Mar-2017 Dake Gu <dake@google.com> RecyclerView prefetch: dont change mStructureChanged flag

Some LayoutManager(e.g. leanback) is sensitive to mStructureChanged
flag. Though LinearLayoutManager never uses the flag. The reset to
false flag will cause next onLayoutChildren() of leanback LayoutManager
crash.

Bug: 36595030
Test: RecyclerViewCacheTest.nestedPrefetchNotClearInnerStructureChangeFlag
also did manual check with recompiled TVLauncher.

Change-Id: Ia46fe4fd7ccd9fa3b9ce9c30ff98a62158d5817c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
570ab881350c836743247140a0953f87acc21c8d 24-Mar-2017 Chris Craik <ccraik@google.com> Fix stale nested prefetch data leaking out after notifyDataSetChanged

Bug:36558253
Test: adb shell am instrument -w -r -e debug false -e size small android.support.v7.recyclerview.test/android.support.test.runner.AndroidJUnitRunner

Switches notifyDataSetChanged to always discard all cached views so
content in the cache is always trustworthy.

Also fixes a case where GapWorker attempts to prefetch inner items
before the containing RecyclerView's data is bound.

Change-Id: Iad9974923564a07ae57f1a9084e6cfe6ec560a6f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
45e404dc9cc7d413574d4f85179b980c4680c389 27-Mar-2017 Aurimas Liutikas <aurimas@google.com> Merge "Add missing space in RecyclerView.OnFlingListener javadoc." into nyc-support-25.4-dev
am: 06e2a4076b

Change-Id: I4288087a99758ee50438e12e26ffc6b3ad8bba62
5727ea1832d75b5c907cd4152747181a082244d7 25-Mar-2017 Aurimas Liutikas <aurimas@google.com> Add missing space in RecyclerView.OnFlingListener javadoc.

Test: None
Change-Id: I44444992dc2da60dfb1b9b4556c5c5d66c6b3ac5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6bebe14261b8f3f17ef5059f00d077c7b81561cc 15-Mar-2017 Aurimas Liutikas <aurimas@google.com> Fix up error prone warnings in support-recyclerview

Test: ./gradlew support-recyclerview:assembleErrorProne is now happy
Change-Id: I40aed6e29a81e5f038209596220b60be936a1153
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
573f9688939e5894ddd2b9333c0a63f226def726 13-Mar-2017 Aurimas Liutikas <aurimas@google.com> Merge "Cleanup AccessibilityEventCompat and AccessibilityRecordCompat after minSdk 14 bump."
f42f138809acc0156739a5f470097b1add344189 08-Mar-2017 Dake Gu <dake@google.com> RecyclerView: fix UPDATE wrong cached view when moved am: 9eeb624e8d am: 15d9a9bee2
am: 67134e19fe

Change-Id: I21606ae901f5a85c996887f87c3d2b30093e62ec
9eeb624e8d3a9e7dc4e70eec759ab60104aab459 07-Mar-2017 Dake Gu <dake@google.com> RecyclerView: fix UPDATE wrong cached view when moved

Recycler.viewRangeUpdate() should use mPosition instead
of getLayutPosition(), in the same way
RecyclerView.viewRangeUpdate()

Bug: 34672504
Test: RecyclerViewLayoutTest.moveAndUpdateCachedViews
Change-Id: Id3bc9c99ecde2a62968951dc617bf2efb64fe25f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
14d02ef06479168249fdfeea47bc105d05e88749 26-Feb-2017 Aurimas Liutikas <aurimas@google.com> Cleanup AccessibilityEventCompat and AccessibilityRecordCompat after minSdk 14 bump.

Bug: 32794064
Test: ./gradlew assemble
Change-Id: I5431e454e017deb7bf3f5a0779e5375416487e4f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
abc73958d264e1eed7fd401a18be1d9ede8304eb 06-Mar-2017 Aurimas Liutikas <aurimas@google.com> A pass at fixing unchecked javac warnings.

Add types where needed.
Suppress places where we intentionally skip types.

Test: ./gradlew assemble still works
Change-Id: If1350e896948c7e27c212cf7b1a94f08b9131193
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e2104f4b5c8e3ad63570306a25e61502dfe4c418 05-Mar-2017 Aurimas Liutikas <aurimas@google.com> Add all missing @Override annotations.

Historically, we could not add @Override for certain methods due to
using older SDKs to build support library. That is no longer the case
so we can add @Override everywhere now.

Test: ./gradlew assemble assembleAndroidTest still works
Change-Id: I85e3c1157f0e253e3eab7584189f3bf95cf030e9
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
90415347cc3ce41266ff66158c5b80edb872c55b 01-Mar-2017 Aga Madurska <amad@google.com> Address comments from an API review

Bug:35859556
Test: N/A change only applies to comments.

Change-Id: I3ec1cc54dfc1ba68cd1bea0005dc87f0d4c45f73
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3535439984b258f756c42a64cc11e7a70a9ce21f 28-Feb-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Disable overscroll glow effect for mouse scroll"
8cc4e3e7df0abe1e75d8f2eb10470167bcaeb4a1 28-Feb-2017 Vladislav Kaznacheev <kaznacheev@google.com> Disable overscroll glow effect for mouse scroll

Bug: 35809088
Test: manual
Change-Id: I806dd7a68628886dba01f6f18584f5f94bbc6ed5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4b25d63ff53d4676150ac54897851e4ff9f1049f 25-Feb-2017 Aurimas Liutikas <aurimas@google.com> Clean up ParcelableCompat after minSdk 14 bump.

Bug: 32794064
Test: ./gradlew assemble

Change-Id: I87d35d527e80d55ac4a2a626a6040fcdaff63ae3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5e24b8e3cfe7831845f81dff1cb95e4c1e1a236b 22-Feb-2017 Ben Lin <linben@google.com> Merge "FastScroller for RecyclerView."
61b34aa12ae8188f617bab4c9e6a0e59e08f9d26 02-Feb-2017 Ben Lin <linben@google.com> FastScroller for RecyclerView.

Bug: 19200094
Test: Introduced new RecyclerViewFastScrollerTest class.

Change-Id: I0e55d24ca6d8246a23de855bf864103b45894c81
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7286c8519107e8d693263e6e49ebcecc0c90e935 18-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "Disabled unfocusable scrolling when RV has no focused child" into nyc-support-25.2-dev am: 670f842920 am: ff1a50fc8a
am: 4534298987

Change-Id: Ic3d224d755cbdea6303b4b8f204896cf5409a8da
b174744db6a70f384d44caeb43e10854652e81b9 16-Feb-2017 Keyvan Amiri <keyvana@google.com> Disabled unfocusable scrolling when RV has no focused child

When no focusable items are found in a given layout direction, RV
scrolls to the next partially invisible child while keeping the
currently focused child visible. However, it's possible that the
focused child is cleared and before RV gains focus, focusSearch
is called on RV.
Since no focused child exists in this case, scrolling to the next
unfocusable view is not meaningful since there's no focused child
to keep visible on the screen. Returned the focusSearch to the
parent view of RV in this case.

Bug: 35182817
Test: ./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.LinearLayoutManagerTest#unfocusableScrollingWhenFocusCleared

Change-Id: I2d07a1664f0721cfc62cbdcf9dc11b31e521f50e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f08ca26b0b99165c37ee5b1658b81c9388152dad 15-Feb-2017 Aurimas Liutikas <aurimas@google.com> Merge "Another ViewCompat cleanup after minSdk 14 bump."
130c79c956de092c5d81b81191c8a219aace87de 15-Feb-2017 Aurimas Liutikas <aurimas@google.com> Another ViewCompat cleanup after minSdk 14 bump.

There will be more follow up CLs.

Bug: 32794064
Test: ./gradlew assemble
Change-Id: Ic745244812b9e179d55f9066f1ffda6dd63d9235
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
506695b4cf6b22d70d2e3647d94551e721ee0430 14-Feb-2017 Aurimas Liutikas <aurimas@google.com> Clean up EdgeEffectCompat after minSdk 14 bump.

- Deprecate methods added in API 14 or earlier.
- Remove all the usages of these methods.

Bug: 32794064
Test: ./gradlew assemble
Change-Id: I637e40ffd7bf580d04057fb67afe47a2f72c8962
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
38615b20560ddb3041bb399ebf70b1dbf92554e4 10-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "Made unfocusable views in RecyclerView visible when using key navigation" into nyc-support-25.2-dev am: 55becad93e am: 9ebac94fa3
am: 72554bade3

Change-Id: Ic8cabe59b1b07feeb5b705bdf5eb23b52b5b7d8c
9c0ad7d5adfbe51d85adcbc056b6183095d8aaed 29-Nov-2016 Keyvan Amiri <keyvana@google.com> Made unfocusable views in RecyclerView visible when using key navigation

This CL handles the new scrolling strategy for unfocusble views in 2
major scenarios:
1. When using DPAD navigation, the unfocusable views that went
out-of-bounds never became visible again. This was because RV relied on
requestChildFocus callback from framework, which wasn't triggered for
unfocusable items.
2. if the scrolling distance between two consecutive focusable items
was greater than a third of a page, the scrolling got stuck.
This change increases this distance to at least one full page.

All LayoutManagers' onFocusSearchFailed are reimplemented to handle the new
logic.

Fixes: 33117253
Test: ./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.LinearLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.GridLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.StaggeredGridLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.ViewBoundsCheckTest

Change-Id: I0c4dd4ab3ee51ff99f30e1a4de11bda6920dab43
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fe51566cb2c0f37eab9001e39eec6adce57ddd74 08-Feb-2017 Aurimas Liutikas <aurimas@google.com> Revert "Made unfocusable views in RecyclerView visible when using key navigation" am: 613079c6ec am: 56041a79eb
am: 413850ea47

Change-Id: I4edc12f52ba0c0dcab02ccd945eddb87dae7ddde
56041a79eb0f2217fd7edf5a57d8ce8e04a690cd 08-Feb-2017 Aurimas Liutikas <aurimas@google.com> Revert "Made unfocusable views in RecyclerView visible when using key navigation"
am: 613079c6ec

Change-Id: Ibbd1b0098e2d209e30475c4d956b6fc50f60f5b9
ab6fca26c2a12abd8aea629660021c108618ebbe 08-Feb-2017 Aurimas Liutikas <aurimas@google.com> Merge "Revert "Made unfocusable views in RecyclerView visible when using key navigation"" into nyc-support-25.2-dev
613079c6ece985c910852456fbff5dc9532df646 08-Feb-2017 Aurimas Liutikas <aurimas@google.com> Revert "Made unfocusable views in RecyclerView visible when using key navigation"

ag/1865310 caused tests to start flaking.

This reverts commit 530bca4dc2f96336c1169d993384b7884238d71e.

Bug: 33117253
Change-Id: I0b7522f1abc6d9574e98bc6062a407d3418c37d0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4e5c2c53d0e9a686bacd584813d4d88707acac27 06-Feb-2017 Keyvan Amiri <keyvana@google.com> Made unfocusable views in RecyclerView visible when using key navigation
am: 530bca4dc2

Change-Id: Ib3030e93c3557c9460303752e67e3660e32c4b36
860182f510b5c568420c16459b1a1863f1b52454 06-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "Made unfocusable views in RecyclerView visible when using key navigation" into nyc-support-25.2-dev
72074ef20ed29a8932fc4d9e60fcaf8e119076ea 06-Feb-2017 Elliot Waite <elliotwaite@google.com> Fix @links in support docs. am: 377357a8c2 am: 66661646cd am: ffdc985523
am: f561ce7830

Change-Id: I05aea32153b56dc1799c8ccd7fca42f9053c2dc7
66661646cdd05821e19a1ed470a351cb86fba12a 06-Feb-2017 Elliot Waite <elliotwaite@google.com> Fix @links in support docs.
am: 377357a8c2

Change-Id: Ic6047fb6dd05e4eaad24e72ae973be353496af25
530bca4dc2f96336c1169d993384b7884238d71e 29-Nov-2016 Keyvan Amiri <keyvana@google.com> Made unfocusable views in RecyclerView visible when using key navigation

This CL handles the new scrolling strategy for unfocusble views in 2
major scenarios:
1. When using DPAD navigation, the unfocusable views that went
out-of-bounds never became visible again. This was because RV relied on
requestChildFocus callback from framework, which wasn't triggered for
unfocusable items.
2. if the scrolling distance between two consecutive focusable items
was greater than a third of a page, the scrolling got stuck.
This change increases this distance to at least one full page.

All LayoutManagers' onFocusSearchFailed are reimplemented to handle the new
logic.

Fixes: 33117253
Test: ./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.LinearLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.GridLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.StaggeredGridLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.ViewBoundsCheckTest

Change-Id: I1d1fb0fa5e3d274840a1907e604749c6a1dbd447
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8f25dd858240e8b86dffc4c1af54307bb462052a 29-Nov-2016 Keyvan Amiri <keyvana@google.com> Made unfocusable views in RecyclerView visible when using key navigation

This CL handles the new scrolling strategy for unfocusble views in 2
major scenarios:
1. When using DPAD navigation, the unfocusable views that went
out-of-bounds never became visible again. This was because RV relied on
requestChildFocus callback from framework, which wasn't triggered for
unfocusable items.
2. if the scrolling distance between two consecutive focusable items
was greater than a third of a page, the scrolling got stuck.
This change increases this distance to at least one full page.

All LayoutManagers' onFocusSearchFailed are reimplemented to handle the new
logic.

Fixes: 33117253
Test: ./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.LinearLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.GridLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.StaggeredGridLayoutManagerTest
./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.ViewBoundsCheckTest

Change-Id: I1d1fb0fa5e3d274840a1907e604749c6a1dbd447
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
377357a8c26c8c54ba8cb876ae775265635a8448 24-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in support docs.

Change-Id: I7acb3d14dee5227ac4d87710453f018c9d0f1b9d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fa0f82f629bf95681c14ed559922f77a3030aa18 30-Jan-2017 Aurimas Liutikas <aurimas@google.com> Deprecated ViewCompat methods that were added in API 11.

Deprecated all the ViewCompat methods that were APIs added to View
since API 11. Additionally this removes usages of these APIs in support
library.

Bug: 32794064
Test: ./gradlew assemble assembleAndroidTest still works
Change-Id: I18fb0cc1ebc67c911eeb30aada7b8315afc15835
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0918a436d454b665bb0ea125df2037501eccae01 27-Jan-2017 Chris Craik <ccraik@google.com> resolve merge conflicts of 7c29d52509 to master

Test: none

Change-Id: I6138a6c222b317d840ee102787e1b9c8a0c01ef3
0c40d8f224dbb97ded74a6bdddadf87c1ba87e76 27-Jan-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add RV verbose tracing behind flag" into nyc-support-25.2-dev
7c29d5250936de17de62ef295794ff98aa5d0dc4 08-Dec-2016 Chris Craik <ccraik@google.com> Add RV verbose tracing behind flag

bug:33460152
Change-Id: Ic3fdb1672b20dc8aa80ace03563e30be8e14c5a8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8f1039d92fe21e2c8a94712ce94777c09b38d407 26-Jan-2017 Yigit Boyar <yboyar@google.com> Lock layout while consuming updates for measure
am: adbd64f08d

Change-Id: I48e5ac34018c9a5b21f6f0e499d01846771342ef
1e827caa16440590647019b9c1338f6309c5be7a 19-Jan-2017 Aurimas Liutikas <aurimas@google.com> Fix style issues in RecyclerView module.

Test: None, there should be no behavior changes.
Change-Id: Ibf8690102bc0c6a4368ed0a7977056e9437344a2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ca03208c6ef5bd79af99309d0e14db4a238cb691 18-Jan-2017 Aurimas Liutikas <aurimas@google.com> Remove unneeded calls in RecyclerView code.

Our new minSdk is 14. This CL remove code that calls compat version
of a method where a framework call works now. Mostly affects ViewCompat,
ViewPropertyAnimatorCompat, ViewPropertyAnimatorListener, MotionEventCompat,
ScrollerCompat.

Bug: 32794064
Test: ./gradlew clean assemble still works
Change-Id: Idad69fdd5e89f76fe57fe8e1b5c12dc723185814
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
93395b800369d249bd15c1da1693dc5897329aa2 04-Jan-2017 Keyvan Amiri <keyvana@google.com> Fixed focus recovery failure on API 15 am: b4d49bb70f
am: 69718bc311

Change-Id: If9d71df691d6a394f2e2887af5e90f1d87c5cb9d
b4d49bb70f7e51c5abc7916ec81779016a737d8e 28-Dec-2016 Keyvan Amiri <keyvana@google.com> Fixed focus recovery failure on API 15

On API 15, RV can still hold a reference to a detached view as its
focused child. This made the focus recovery break when removing the
final focused view of RV. In this case, while RV essentially had no
children, it still considered that detached view as its focused child.
The correct behavior for RV is to grab the focus back when all its
children are removed.
Reworked the focus handling for API 15.

Change-Id: I3522f5d9f8315770c692070f3628c7ab9a0e368a
Fixes: 33280166
Test: ./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.RecyclerViewFocusRecoveryTest
Tested on emulator devices running API 15, 21 and a physical Nexus 5X
API 24.
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
adbd64f08d2b8471becac6e79fe3d9d9cac4586e 01-Dec-2016 Yigit Boyar <yboyar@google.com> Lock layout while consuming updates for measure

If a layout is requestd during measure due to adapter updates, we
were not blocking it which is a problem. This CL makes sure that
we don't call nested layouts while processing adapter updates.

Bug: 32316425
Bug: 33270009
Test: RecyclerViewLayoutTest#triggerFocusSearchInOnRecycledCallback
Change-Id: I83f3678cf29cadd17deae7c3ec5f7805c08ffdeb
(cherry picked from commit 5c68eb49a2a99f5a61be3b743430bdd5621b31e5)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
959645f9e9b1dfd6ad6800129159bd68510c692b 07-Dec-2016 Aurimas Liutikas <aurimas@google.com> Make LayoutManager#getItemCount javadoc more readable.

When docs are generated for LayoutManager#getItemCount method the
{@link State#getItemCount()} is displayed as simply getItemCount()
which is confusing as it has the same name as LayoutManager#getItemCount().
This CL makes it explicit to show State#getItemCount() as State#getItemCount().

Bug: 31950286
Test: ./gradlew generateDocs looks better now.
Change-Id: I62bc39bfe90eb6f5277c299700bb51baf2df4f22
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3f21d9d486ec7f6c056629e60984b4fa6f11c239 06-Dec-2016 Chris Craik <ccraik@google.com> Reset prefetch cache expansion after initial prefetch
am: 9ad077f4ba

Change-Id: I11a7e83b9bdd8df91e38489edd0c713392805440
9ad077f4ba751b392e6f4454b09c2305cdc22b0d 06-Dec-2016 Chris Craik <ccraik@google.com> Reset prefetch cache expansion after initial prefetch

Fixes: 33038996
Test: @SmallTests still passing

Prevents large initial prefetch from permanently expanding the
recycler's cache.

Change-Id: Ie76c73055d6aa071cd0ea31712d7b538b0954821
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d7aec3a125f7e5cdc422e8131f3d992cd2319cef 05-Dec-2016 Chris Craik <ccraik@google.com> Make create/bind moving averages more responsive
am: e5e151c826

Change-Id: I9a718f7f42b1b1b69ec5fc57a789242bdb53cfe7
db36a67735b44e51ce2866c72d6c1da1b250251d 05-Dec-2016 Chris Craik <ccraik@google.com> Merge "Make create/bind moving averages more responsive" into nyc-support-25.1-dev
76b5f1af0350e2d56e222dcb6d5c2274069e71f8 03-Dec-2016 Chris Craik <ccraik@google.com> Switch mNestedRecyclerView to weakref
am: 8123166eaf

Change-Id: I547e11f1b63f07d33e3971db47aab8b89e755c59
8123166eaf758eacc6ba5854c9b29d99f21388d6 03-Dec-2016 Chris Craik <ccraik@google.com> Switch mNestedRecyclerView to weakref

Fixes: 33278066
Test: new test, @SmallTests still pass

Previously, we cleared a nested RecyclerView to be safe when a holder
failed to recycle. However, this is a common occurrance with
animations, since they will hold onto the holders until they are done,
and return them at the end.

Instead, just keep the nested RecyclerView as a weak ref. Probably
unnecessary, but maintains the guarantee that if someone removes or
swaps an inner RecyclerView (note: a gross case), we won't leak it.

Change-Id: I3ee97608f8fb3687f17d861438bc4bb895d27a65
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5c68eb49a2a99f5a61be3b743430bdd5621b31e5 01-Dec-2016 Yigit Boyar <yboyar@google.com> Lock layout while consuming updates for measure

If a layout is requestd during measure due to adapter updates, we
were not blocking it which is a problem. This CL makes sure that
we don't call nested layouts while processing adapter updates.

Bug: 32316425
Bug: 33270009
Test: RecyclerViewLayoutTest#triggerFocusSearchInOnRecycledCallback
Change-Id: I83f3678cf29cadd17deae7c3ec5f7805c08ffdeb
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0fab45107f043a4856aad2e1fd785b396898616e 30-Nov-2016 Chris Craik <ccraik@google.com> Detach stale nested RecyclerView content before prefetching

Fixes: 33104285
Test: @SmallTests still passing

Change-Id: Ifddea3131f8c6cb653026956c91eeffd824fcd19
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e5e151c826d5cbc2ad54d6f5ce4e004e984ed299 01-Dec-2016 Chris Craik <ccraik@google.com> Make create/bind moving averages more responsive

Fixes: 33252193
Test: @SmallTests still pass

Change-Id: I5989a0d997b7cbc3d4fa46422e305524a31cc87b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fbefadccd826dba13987133e86823bdb8089cbc5 29-Nov-2016 Chris Craik <ccraik@google.com> Simplify support of prefetch with data set changed after layout

Fixes: 33196708
Bug: 33077209

Switches setDataSetChangedAfterLayout to mark holders as invalid
immediately, so that invalid but stable-id views can remain in the
cache, as expected by an adapter with stable ids.

Also adds a stable ID sample to support v7 demos.

Change-Id: Ibcfbc1f7376d3585872ec32df2d2026137419296
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3104d446bcf3da9ffb7a761fd30f0506c30f0cc9 21-Nov-2016 Chris Craik <ccraik@google.com> Make RecyclerView prefetch APIs public

Bug: 27106058
Test: @SmallTests still pass

Change-Id: I086b17fb8ba8164a680d03a5b6255670334784a5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
438379928b7d0a46b26561b299c2b3dc112c3ffb 24-Nov-2016 Chris Craik <ccraik@google.com> Merge "Ignore 0 distance drags for prefetching" into nyc-support-25.1-dev
559e3a85d4ed88df9b2154bbb71f1c5d74e57bfc 24-Nov-2016 Chris Craik <ccraik@google.com> Merge "Allow prefetching while data set changed after layout" into nyc-support-25.1-dev
0951d1a9c3200368a7b19bd272f7d6c266a11869 24-Nov-2016 Chris Craik <ccraik@google.com> Ignore 0 distance drags for prefetching

bug:33111651

Change-Id: I13fb0cacd7e1f0935a18495cd4333a3b7e40285f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f2f73b7cc9bed0e7204ba43796bb0112cda27cf1 22-Nov-2016 Chris Craik <ccraik@google.com> Allow prefetching while data set changed after layout

bug:33077209

Prevent prefetch data for nested RecyclerView items from being
discarded upon eventual layout. Treat attached and cached views
differently, since attached represent stale data, and cached holding
prefetched, bound content, ready to be used by the upcoming layout.

Also, if an adapter swap defers deleting a view until layout, it will
be flagged as POSITION_UNKNOWN. We don't want these views to be
cached, so that we can start trusting the cache in these cases for
prefetch purposes.

Change-Id: I8b41c3f129a663215fbb323ebd7a7ed83b7b0c13
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f581ab140aaf0ee71204ba72a28fcb5d7d426e4e 21-Nov-2016 Yigit Boyar <yboyar@google.com> Fix memory leak in deferred a11y dispatcher

This CL fixes a memory leak in RV where if it had some pending a11y
changes to dispatch, it would potentially leak the view holders if
any of them is removed (which is fairly common).

Bug: 32986945
Test: RecyclerViewAccessibilityLifecycleTest#processAllViewHolders
Change-Id: I4f3246970153d1616ad8e653b1f9653253ba9bcb
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8e10080c914d1ad0784394fa3026b85535535847 18-Nov-2016 Aurimas Liutikas <aurimas@google.com> Move from GROUP_ID to LIBRARY_GROUP annotations

- GROUP_ID was deprecated in favor of LIBRARY_GROUP.
- Fix import order in touched files.

Test: ./gradlew assemble assembleAndroidTest
Change-Id: I2a774e93215090f42262fb86cf8e841f2a546a4f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
62cdbc1c0bd1a14f06f8ef88b8c1f6387eb8c265 17-Nov-2016 Chris Craik <ccraik@google.com> Workaround getRefreshRate crash in edit mode

Bug: 32328330
Test: @SmallTests still passing
Change-Id: Ia759083ecd3542bc95831b6498dfbfaaa14e9311
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
af6b251c15dab2237fdf100b5ebb9c0851c2d490 16-Nov-2016 Alan Viverette <alanv@google.com> Adds working lint target to support lib build, more workarounds

Explicitly disable on v17 leanback and v7 preference, which need
some work. Suppress issues due to Lint failing to distinguish locally-
defined methods from framework methods.

Depends on fullsdk project, which is NOT in the default checkout.

Bug: 29630077
Test: ./gradlew lint && ./gradlew assemble
Change-Id: If8da576a8f9e2a431bc60a473f0c36054818d7c1
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5c0229caf67d1b12d3e256f47b5a4ff1af1016aa 08-Nov-2016 Keyvan Amiri <keyvana@google.com> Merge "Fixed focus recovery when adapter changes during scrolling"
1b232542dcd275dbb61e99d397ba739d86548e49 07-Nov-2016 Keyvan Amiri <keyvana@google.com> Fixed focus recovery when adapter changes during scrolling

When adapter changes during scrolling, consumePendingUpdateOperations
dispatched layout which didn't trigger ViewHolder updates only until
after the call to saveFocusInfo. Since in saveFocusInfo, we rely on
having an up-to-date state of viewholders after the pending update,
this created an issue when a focused item was removed when scrolling
was still in progress.
Also disabled the waitForIdleScroll in requestFocus to speed up the tests
in RecyclerViewFocusRecoveryTest.

Fixes: 32711883
Test: ./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.RecyclerViewFocusRecoveryTest

Change-Id: I26336cfa35cc9b42b6e38bed4f346495ddc10447
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
aab06d99ed9add9ee5e119182f7a35ad1444d687 07-Nov-2016 Aurimas Liutikas <aurimas@google.com> Remove unused local variable in RecyclerView.

Bug: None
Test: None
Change-Id: Idb1f1dcc87787450c25309b42c36b6d7ab6f6655
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e475381584e63a489494af12fbeb8d09f9777775 04-Nov-2016 Keyvan Amiri <keyvana@google.com> Merge "Added focus recovery mechanism to RecyclerView"
65dea0f8960efe2487c05abeeccb92689bab1332 19-Oct-2016 Keyvan Amiri <keyvana@google.com> Added focus recovery mechanism to RecyclerView

Fixed RV's focus issue in two cases: If RV received focus before or
during layout, the focus was not passed down to the children. The seocnd
case was when RV's prior focused child became unfocusable and animation
was disabled, RV didn't redeliver the focus to a child after layout is
complete.
Also, made a best-effort redelivery of focus to a child when the
previously focused item is no longer valid.
Added several tests for reproducing the bugs and verifying focus
recovery logic across different adapter change scenarios as well as adding
animation parameter for tests.

Fixes: 32280153
Fixes: 32486474
Fixes: 32227010
Test: ./gradlew support-recyclerview-v7:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v7.widget.RecyclerViewFocusRecoveryTest

Change-Id: Ibaff9ee6699efe4a6800faf0f34c701a24baafdc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
87917ea9315a1f8a4be60dcd00084c2b978bc939 29-Oct-2016 Yigit Boyar <yboyar@google.com> Prevent RecyclerView from doing another layout while processing updates am: 4f11964463 am: b735e3dc09 am: d8d1a7ab69
am: 6ba5ec4bff

Change-Id: I698c9e77cc9050851d42030770263f43065e57ea
4f11964463526a83536838d6afffb915b2c836a8 28-Oct-2016 Yigit Boyar <yboyar@google.com> Prevent RecyclerView from doing another layout while processing updates

This CL fixes a bug in RecyclerView where it would try to consume
pending udpates twice if it receives a call to layout (focus search etc)
while processing updates.

Bug: 32316425
Test: RecyclerViewLayoutTest::triggerFocusSearchInOnRecycledCallback
Change-Id: I3dccc7fb8ef5fffc260220254a1b6605d88b6e77
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
1e0a453dff8d7bb7a966d006541454c770d1ed05 25-Oct-2016 Chris Craik <ccraik@google.com> Nested RecyclerView Prefetch

Bug: 27106058
Fixes: 32343355
Test: tests added, existing @SmallTests pass

- Stash RecyclerView if found within ViewHolder
- Prefetch nested LinearLayout content based on anchor
- Avoid double query of Display#getRefreshRate()
- Avoid dispatching recycled callbacks for unbound holders
- Reorganized State members based on lifecycle.

Change-Id: I51701576d8f5985e3cab7b684694c50bf03ef280
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
af52318574d1d2218a5368d5435905afd24662f6 27-Oct-2016 Chris Craik <ccraik@google.com> Fix null LayoutManager prefetch crash - DO NOT MERGE

Bug: 32378708
Test: one added, @SmallTests still pass

Change-Id: I35872b699639fc7d31d60a3292c3c008b097d048
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e70094daf0f1bc7ebf8cc544c99077382717b107 24-Oct-2016 Chris Craik <ccraik@google.com> Workaround getRefreshRate crash in edit mode - DO NOT MERGE

Bug: 32328330
Test: @SmallTests still passing

Additionally avoids 2nd call to getRefreshRate.

Change-Id: I363d646290b495a2e59d7791bb68e13ba6d7c931
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f5d142ebb3ce8054c5dbed73facd49bf52fafc56 21-Oct-2016 Aurimas Liutikas <aurimas@google.com> Fix FocusSearchNavigationTest on API 15.

- Add a workaround in RecyclerView for FOCUS_BACKWARDS for API 15 and older devices.
- Stop running RTL tests on devices that do not support RTL layouts.

Test: Tests now pass on API 15, 16, 17
Change-Id: Ie5451f4ac900d8dccc50cf72dbf3f6541a7e5ef1
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
82c33016103d1b0b34b0e5785335bf9efb68e0a7 19-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Cleanup usage of scrap"
270dbafc72ebe758c904300983a81336ede8b823 18-Oct-2016 Chris Craik <ccraik@google.com> Avoid System.nanoTime cost for older devices

Test: RecyclerViewBasicTest#getNanoTime added

Change-Id: I8efd49ddb46484fd6fce7f6ee993a6713e1ccc48
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
635ba90d2184b84e221c920188eb4d4f7b400e75 12-Oct-2016 Chris Craik <ccraik@google.com> Cleanup usage of scrap

Fixes: 32073160
Test: simple variable renames, @SmallTests still pass

Change-Id: Iee67b8c5e4f26e0c06c1d8befcb4a72531e9aa85
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
923857de8d8ee9029a80abf808f8dcfa98ade1ee 11-Oct-2016 Chris Craik <ccraik@google.com> Prevent prefetch of attached views.

Bug: 32064637
Test: new test, existing cache tests still pass.

Prevents prefetch from stealing animating/disappearing views.

Change-Id: I42f4821e522c27f4b65679ccfd6808ae85b58cf1
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a491891f854a05f1ffb979c73e245f0adc58af58 07-Oct-2016 Chris Craik <ccraik@google.com> Remove dead type code

Test: minor cleanup, @SmallTests still pass

Change-Id: I11fd1046544925c0d8dbaf4cbc110e51f6f88904
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
11a895a323af06c4731e4c64a7ec2c09ac0aaf2f 05-Oct-2016 Chris Craik <ccraik@google.com> Merge "Improve LayoutManager prefetch API"
945dc1e8a9ee0b71e6b2454ccb3e61145d2132f5 30-Sep-2016 Chris Craik <ccraik@google.com> Improve LayoutManager prefetch API

Bug: 27106058
Test: new prefetch test for SGLM, existing caching tests still pass

Additionally, refactors prefetch logic to separate view specific work
from general GapWorker behavior.

Change-Id: I2b98ec689eef606cee7eb3cada92957a0641babd
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
405d6133586c8ca0061a4dbc7454d4bce4500a8f 04-Oct-2016 Chris Craik <ccraik@google.com> Fix GapWorker crash

Bug: 31932364
Test: Existing caching tests still pass

Change-Id: I2a8e51e3d0fb28e5589c97ddf122de03ec50f8aa
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a93a0c08b4543401d8e2df9bd4c88f26d3b72c11 26-Sep-2016 Chris Craik <ccraik@google.com> Gradual prefetching in GapWorker

Bug: 27106058
Test: Added prefetchItemsRespectDeadline, all caching tests still pass

Instead of prefetching all of the items at once, we do as much work as
possible before the deadline, based on create/bind cost estimates.

A vertically scrolling 3 column GridLayoutManager, for example, can
create/bind one item, and create one unbounded, if that's all that fits
in between frames. Expensive prefetches like that row are done
gradually, across multiple frames.

Also moves all usage of mPrefetchXXX to be fully owned by GapWorker for
consistency.

Change-Id: I9030b48244d18739f17c3b8503cefc588d462b56
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3f0aaae5088404fa7c81632578e19c41dbdeb459 27-Sep-2016 Aurimas Liutikas <aurimas@google.com> Remove usage of FILL_PARENT in RecyclerView.

MATCH_PARENT has been added in API 8 and we no longer support pre 9.

Bug: None
Test: Compiled recyclerview library without any issues.
Change-Id: I25a0433f60bb714f461d8cad0ed887dd91c8819b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
07b2e072ee7e8f424eb95abc77695dc2c5a786bb 24-Sep-2016 Chris Craik <ccraik@google.com> Refactor ViewPrefetcher into GapWorker

Bug: 27106058
Test: Existing caching tests still pass.

Also time bind/create, to know how much gap time we have.

Change-Id: Iaaaf0d59032db4b87370b1a6b3e114a41c4da844
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a4b6d823ff4dc52ec665fc4b6d7ddde5e18e0560 26-Sep-2016 Yigit Boyar <yboyar@google.com> Fix RecyclerView imports

Bug: 31749097
Test: compiles fine
Change-Id: I2ad21c9d07769bb47df6be878ea12d007f0ce33b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c547661cdb3f7d8558c4c6ee9c7e4f8f4f5cbdae 23-Sep-2016 Yigit Boyar <yboyar@google.com> Defer important for a11y event am: b9a2cd33e8 am: 9c0f0c715c
am: b3cf2c6ca1

Change-Id: Ic85f4e85c452c3a300c301ee71abf1728db0f7da
b9a2cd33e8a872c01bcfbc2914faa66f56a0c8b0 15-Sep-2016 Yigit Boyar <yboyar@google.com> Defer important for a11y event

This is a quick fix to avoid RV a11y importance change events during
a layout. These events receive an instant callback from the a11y service
which cannot be handled properly because view is in transition from
hidden to visible.

Bug: 30787618
Test: android.support.v7.widget.RecyclerViewAccessibilityLifecycleTest
Change-Id: I65d5aa0f73b0e6433deb617c7b413f276217dd98
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e31cf85d2b46a1c795134cf2e3e26e2154cfd37b 23-Sep-2016 Chris Craik <ccraik@google.com> Avoid querying refresh rate in onAttachedToWindow am: ce817b8b5f am: 3c0870809a
am: 3ad745358d

Change-Id: Ia81c599ddf26481cdc8cc8d7d9e90389264af38f
db2a8d8b5778f830f49853992d5a54cb5c117a1d 21-Sep-2016 Chris Craik <ccraik@google.com> Add RecycledViewPool#getRecycledViewCount

fixes:31632377

Change-Id: I3e3b4e3f3908f35cafa80b1d24699ef44b908bca
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4fff2e8af42f694fac94999303c910167d42ff01 22-Sep-2016 Yigit Boyar <yboyar@google.com> Merge "Fix focus handling on API 15"
6929fc875143824c1b5f6f4cbb5ccd2d3261b1fe 20-Sep-2016 Susnata Basak <susnata@google.com> Merge "Allow users to pass an interpolator for smoothScroll."
ce817b8b5fcf6b41b948469ca077ae083da35973 20-Sep-2016 Chris Craik <ccraik@google.com> Avoid querying refresh rate in onAttachedToWindow

bug:31624193

It's quite expensive.

Change-Id: Ie3fa1077609102cd67524cb243e1d750db0dfb85
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
231e669441b388f220c6a9a0ae46b5c2f1b4d938 15-Sep-2016 susnata <susnata@google.com> Allow users to pass an interpolator for smoothScroll.

Overloaded smoothScrollBy(...) to take an interpolator to be used
by ViewFlinger for running scroll animation.

Bug: None
Test: None
Change-Id: I3adcf7aef42463979a9ecbea456ac99529355af6
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
40ad9440bd49771bae08d0e3a57b588a920ff9ca 17-Sep-2016 Yigit Boyar <yboyar@google.com> Fix focus handling on API 15

Bug: 31516768
Test: Related failing test now passes on 15 (also tested 23)
Change-Id: I6c2fad9f49fbc543bc56099ac4bd008113b76c1a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
12b34cb67dd04765f61ad16f08d4eed8a899a9d9 16-Sep-2016 Yigit Boyar <yboyar@google.com> fix RecyclerView isRecyclable javadoc

Test: compiled docs locally
Bug: 31528385
Change-Id: Ied19ef05fbb79d425c5d35d833f3b38d7d88a2da
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
27b1b4b15f724bac1158ff2a7ed9101187a9fdbf 15-Sep-2016 Chris Craik <ccraik@google.com> Fix prefetched items being evicted by non-prefetch am: 36c4d66a1b am: c0f66a6837
am: 477a605a3d

Change-Id: I040d064000344d7d083a222798dd7d7975e5e71b
c0f66a683706f6da569ea58cd29bea3e1f600ac6 15-Sep-2016 Chris Craik <ccraik@google.com> Fix prefetched items being evicted by non-prefetch
am: 36c4d66a1b

Change-Id: Ib0c4633f107cfc9d5174b5f1ef766a10d5c0dca7
9f91f06dcaa778ab1a87f60ff63062c243a2f23b 15-Sep-2016 Chris Craik <ccraik@google.com> Merge "Fix prefetched items being evicted by non-prefetch" into nyc-mr1-dev
9480eb4e94e429726b07eba133ffbc6450b8d795 09-Sep-2016 Alan Viverette <alanv@google.com> resolve merge conflicts of 7243922 to master

Change-Id: I34d800e77c4b1a440eb67191b4697213a2e6239e
c39d9c75590eca86a5e7e32a8824ba04a0d42e9b 25-Aug-2016 Alan Viverette <alanv@google.com> Add @RestrictTo(GROUP_ID) annotations to match @hide docs annotations

Also removes some unnecessary @hide annotations on classes that wouldn't
have shown up in docs anyway due to package/private visibility or NO_DOCS.

Bug: 27937193
Change-Id: Iab127a5a3ce57a2d61965d3cef782621eb3859f5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
490c81f56746e2003bbafd7c1797f5fb1da664fa 08-Sep-2016 Aurimas Liutikas <aurimas@google.com> Remove all the extra accessor methods added by javac in support-recyclerview. am: 3a500f61a8 am: 020edc72fd
am: 566ebcefe7

Change-Id: I958999d261b5ce8093b94fb5e2c9b7fb2580e402
3a500f61a8bdf48904f380f2d4925fe420d18ce7 25-Aug-2016 Aurimas Liutikas <aurimas@google.com> Remove all the extra accessor methods added by javac in support-recyclerview.

Change private methods to be package protected to avoid extra methods
that get added to be able to access them from inner classes.

This CL saves 119 methods in our jar.

Bug: 31075707
Change-Id: I1c3147a196ae70ef14080a955d4399e01a997b1a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
36c4d66a1bc449309f0a3b97d61dd5bf692d181d 03-Sep-2016 Chris Craik <ccraik@google.com> Fix prefetched items being evicted by non-prefetch

fixes:31271889

Prevents insertions into the item cache (e.g. during scroll) for
non-prefetched items from evicting prefetched items.

Previously, prefetched items could thrash when several items were
unloaded and recycled in a single frame.

Change-Id: I1d4a4e8dd18f81db2e494281d75ab72371600512
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
209783e4947ebdd3659f88b0179afe8ded6fd217 27-Aug-2016 Chris Craik <ccraik@google.com> RecyclerView item prefetching am: ec4b542988 am: 7e8d354e8d
am: e3557d6715

Change-Id: I770f520ede4927a8066d8b95cd2fb31378c66a21
ec4b5429886bfe93707a85823cf40de107bd9dc6 16-Aug-2016 Chris Craik <ccraik@google.com> RecyclerView item prefetching

bug:27106058

If item inflation or binding are expensive, having them block the
production of a frame can lead to jank/stuttering as frames with such
work fail to meet rendering deadlines.

RecyclerView will now query LayoutManagers for views in advance of them
coming onscreen during scrolls and flings. These views are prefetched
into the Recycler cache during the UI thread's idle time between handing
a frame off to RenderThread, and the start of the next frame.

Change-Id: If3e485231243c188efd4cf3e512b9e8e13a50d47
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cfebb294c1a0f8e2e70d197d15741e3e12edb6a2 24-Aug-2016 Yigit Boyar <yboyar@google.com> Fix GLM and SGLM tests for API 15 am: 9152a7b54b am: cae3c7c58e
am: 5220d098c4

Change-Id: Id9a2ca2c9bafd21940a3d85ca2d08e5bd2c47fe6
9152a7b54bab69ce0b216c1c7f4b4dcb36190a11 18-Aug-2016 Yigit Boyar <yboyar@google.com> Fix GLM and SGLM tests for API 15

Bug: 30799213
Change-Id: Ia8383cf1e5bc0fc799934cf9aa3bd921408d00e2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7656ff5b400049aa7d1d6729da2b36c63b7f7d1c 12-Aug-2016 Yigit Boyar <yboyar@google.com> Invalidate decor offsets after rebound am: 178c4e15a0 am: a605352262 am: 4c76412fd8
am: 851ec40309

Change-Id: I31f233fa1038701e2e720e1f00c2f9ce8772438e
a605352262a3e7fcc8f006c6a04f7b7ea9756d68 12-Aug-2016 Yigit Boyar <yboyar@google.com> Invalidate decor offsets after rebound
am: 178c4e15a0

Change-Id: I22c62be90c533f476adbca4bfc6eeb7f69a576c2
178c4e15a0ebb501d2bb4f3ac3176e4c44954954 09-Aug-2016 Yigit Boyar <yboyar@google.com> Invalidate decor offsets after rebound

RV invalidates decor offsets eagerly which creates a problem
if predictive animations are enabled. In that case, we will
be updating decor offsets before updating the item and
will not update after updating the item.

This CL changes the behavior such that we will use dirty
offsets in pre-layout if item is not re-bound yet and
will invalidate the decor offsets when it is bound which
will trigger a call to the item decoration to update the
offsets.

Bug: 29989333
Change-Id: Idc23f83be19164cf137fa81242e6c90c4e85fbae
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
2dadb5cd6d986a6b653e04e49a319a1d42656fdc 08-Aug-2016 Yigit Boyar <yboyar@google.com> RecyclerView scroll callback fix for 0 to 1 am: 56b45ed1fa am: f1e3efdd63 am: acbd8e1c1a
am: e1af4d9015

Change-Id: If14979b7fdca4a8867fada876b3cbebc0a285771
f1e3efdd631b3b38c6b7d47297e6285883fdf7c7 08-Aug-2016 Yigit Boyar <yboyar@google.com> RecyclerView scroll callback fix for 0 to 1
am: 56b45ed1fa

Change-Id: Ie1b19ba63263edd8badbdab63498a0a671dddfb4
56b45ed1fae2d4a7cd68c8d38bd61518147bc57e 05-Aug-2016 Yigit Boyar <yboyar@google.com> RecyclerView scroll callback fix for 0 to 1

This CL fixes a bug in RecyclerView where it would not call
the scroll callbacks if the number of children changed
from 0 to 1 or 1 to 0.

Bug: 29445923
Change-Id: I4ec6fca71ca4800d17b3cc703b8a72b4b180032f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4e736f0b78bf83bc100ab09c1f79b447b8c9dc4b 03-Aug-2016 Aurimas Liutikas <aurimas@google.com> Make DividerItemDecoration a public API. am: 7febb12fee am: a4c8d62156
am: 9f12302a14

Change-Id: I2438bcc95cead86da45b2d4dbf14a306c2fd414c
7febb12feeade9937fc0bd1a8e5967251c4aad24 26-Jul-2016 Aurimas Liutikas <aurimas@google.com> Make DividerItemDecoration a public API.

Move DividerItemDecoration from API samples to support library to
allow developers to use it directly.

Change-Id: I8256a23214808cc88dfc630199a5cc247defc8fa
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f95596dce8261fd234fbc2abe0253f89c548f97f 29-Jul-2016 Aga Madurska <amad@google.com> Add an OnFlingListener to the RecyclerView. am: c587f7dba5 am: 15d72da718 am: 85d378da83
am: 04725e5245

Change-Id: Ief1476c4fd0438fe84343af68025648a5d19c5da
c587f7dba5a337169e854e235da59f595255d6cc 20-Jun-2016 Aga Madurska <amad@google.com> Add an OnFlingListener to the RecyclerView.

This enable custom fling implementations and
is used to implement expose a snapping API
to developers.

Bug: 28169210
Change-Id: I09ffcab384eb69338df1fcc5f8d1d2a0d1191a57
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fc0e39cb1eccd73d66f7520290913e53b6cb97ad 26-Jul-2016 Yigit Boyar <yboyar@google.com> Log a warning if scroll callback modifies data. am: 6d958ab8ca am: 12f777e830
am: cba60296ce

Change-Id: I5caad09bd2162c7fb03d17793327ccd66dfdc1b5
12f777e83036f52196ca0578f291fede186b77ca 26-Jul-2016 Yigit Boyar <yboyar@google.com> Log a warning if scroll callback modifies data.
am: 6d958ab8ca

Change-Id: I1ec5b50dedb56b4cd9af0013aebdbb388c9a2926
8c3b976347f1e3d3609602bed73535498ba0de52 26-Jul-2016 Yigit Boyar <yboyar@google.com> Merge "Log a warning if scroll callback modifies data." into nyc-support-24.1-dev
6d958ab8caa83b07e9636531febf95347d93d664 25-Jul-2016 Yigit Boyar <yboyar@google.com> Log a warning if scroll callback modifies data.

Bug: 29760466
Change-Id: Ic533512fbc02dd4d0576399baafdba48fa291d52
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ad86f0a655923ea1bac812fe742e618604b6abcb 25-Jul-2016 Yigit Boyar <yboyar@google.com> Proper RecyclerView-LayoutManager binding am: 34a33c72e2 am: aa95f2de0f
am: 0ed6527c4e

Change-Id: I49a9d193a47c9b56b1a7fc152d787e6a13b9f9aa
aa95f2de0f0c9dd8354fdde3ff8e4b167b864741 25-Jul-2016 Yigit Boyar <yboyar@google.com> Proper RecyclerView-LayoutManager binding
am: 34a33c72e2

Change-Id: Ie23f7ee35f8480d2038c7c1f5855708d05254110
133a6522d0dacd65d3ae628d5e1d632fb77f1ab9 25-Jul-2016 Yigit Boyar <yboyar@google.com> Merge "Proper RecyclerView-LayoutManager binding" into nyc-support-24.1-dev
e12dfa03641ad9cf0ddf272675bbe7d1198adbfd 11-Jul-2016 Aurimas Liutikas <aurimas@google.com> Stop using a several deprecated methods/constants.

- Swap FILL_PARENT with MATCH_PARENT
- Stop using ViewCompat#getOverScrollMode and related constants
- Clean up some unused import statements.

Bug: 30074170

Change-Id: Iaafd5415ee69181cc900a7fa971cdd6f5a20c6ce
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
352577ae3bafac060fa893ccfc6a2abebd57e828 22-Jul-2016 Yigit Boyar <yboyar@google.com> resolve merge conflicts of 9377354 to master

Change-Id: Ide4c0f19a7191530e3ecf329c01f2812f3084c04
de8a5de43b647f9b61f4859a22a0ce59155f442a 13-Jul-2016 Yigit Boyar <yboyar@google.com> GridLayoutManager margin bug

This CL fixes a bug in GLM where if a child specifies a
width with horizontal margins (or height with vertical margins)
and the GLM is set to WRAP_CONTENT, it would subtract the margins
from the child's specified width / height.

Bug: 29934904
Change-Id: Ibd21125565c72c4ed30f48262c5e2a6bb9ef002a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
34a33c72e21528b39fe39ca1048ebb9c0d617647 13-Jul-2016 Yigit Boyar <yboyar@google.com> Proper RecyclerView-LayoutManager binding

This CL fixes a bug in LayoutManager detaching process where
RV would clear LM's reference without clearing its own reference
which could potentially create inconsistent states.

Bug: 29876362
Change-Id: I2793326cb5526f8a963aaa0875d23599541fb4c1
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8a50bd8370f166d81f858bc03a6cdc0ae5a4f345 11-Jul-2016 Aurimas Liutikas <aurimas@google.com> Stop using a several deprecated methods/constants.

- Swap FILL_PARENT with MATCH_PARENT
- Stop using ViewCompat#getOverScrollMode and related constants
- Clean up some unused import statements.

Bug: 30074170

Change-Id: Iaafd5415ee69181cc900a7fa971cdd6f5a20c6ce
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
bb67bb69ab2eef2db4307c536f8336de400a8ee2 16-Jun-2016 Aurimas Liutikas <aurimas@google.com> Add a missing space in RV documentation.

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

Change-Id: I00e32666e8b1db7f94213fafeb12819594a4b2c8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f1bd7aabebecaf8415c705195f257f00c995fe71 07-Jun-2016 Yigit Boyar <yboyar@google.com> Merge "Fail focus search if focused view disappears during focus search" into nyc-dev am: ef5387f6e5 am: 41f17e716d
am: 5a36de8a15

* commit '5a36de8a15047aba19b944ecb8fc0e29e0239b50':
Fail focus search if focused view disappears during focus search

Change-Id: Iabb4cc0d4abe941ca2f1a2bcc3de108771eb21cd
5a36de8a15047aba19b944ecb8fc0e29e0239b50 07-Jun-2016 Alan Viverette <alanv@google.com> Merge "Fail focus search if focused view disappears during focus search" into nyc-dev am: ef5387f6e5
am: 41f17e716d

* commit '41f17e716df369c159f5241f2ef2d1577ea95b88':
Fail focus search if focused view disappears during focus search

Change-Id: I58f2c4698b40e97b538c90c2c50a717988bc19ac
114f60c101e949d440518260b5d50d846eeab0e9 07-Jun-2016 Yigit Boyar <yboyar@google.com> Merge "Read clip to padding from attrs" into nyc-dev am: be35bd5005 am: f7c584b63e
am: aa061c4cbe

* commit 'aa061c4cbe03b0693c4825bdb2b60e8b1d5f9b32':
Read clip to padding from attrs

Change-Id: I74d24eb0b8aa78c6c86cb50fdf988268aa9ee9da
ef5387f6e505174ff08aa7584daa96d7ae046b01 07-Jun-2016 Alan Viverette <alanv@google.com> Merge "Fail focus search if focused view disappears during focus search" into nyc-dev
f7c584b63e7560a55f8027c25cf973b01648615c 07-Jun-2016 Yigit Boyar <yboyar@google.com> Merge "Read clip to padding from attrs" into nyc-dev
am: be35bd5005

* commit 'be35bd50059259ef74de91e0008c5ac748fc4e54':
Read clip to padding from attrs

Change-Id: I7ec7a1c65857f3d1c1d1f0ef2b56366ff83e0abf
f3c39cb89a925a2315354116bd012a2e41cebac8 04-Jun-2016 Yigit Boyar <yboyar@google.com> Read clip to padding from attrs

GetClipToPadding is API 21 so RecyclerView steals that
vlaue by overriding setClipToPadding and tracking the
value itself.

Unfortunately, when clipToPadding is defined in the XML and set
by the parent's constructor, RV's field initialization was overriding
the value.
Apperantly, the R.attr.clipToPadding is from API 1
so we can use it to read the value (getter is from 21).

Bug: 29123702
Bug: 26779229
Change-Id: I0521413bbf81c6c5428e7305eefa838c988fc018
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3e61562902afe237012a2d01ac0468d6b70268f4 04-Jun-2016 Yigit Boyar <yboyar@google.com> Fail focus search if focused view disappears during focus search

This CL fixes an edge case where the last focused view disappears
during a focusSearch and we need to call focus search failure.

Calling super potentially crashes the app and calling the LayoutManager
invalidates the API. For now, best seems to just fail the focus
search. Later, we can get more clever and try to pick a view
in a position around the previously focused view.

Bug: 27837873
Change-Id: Id8d5e8ea2e3ce40982e0055b0f45777ef8b2b055
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
88a76494524efd4db5881cac984eb45ee9248631 03-Jun-2016 Aurimas Liutikas <aurimas@google.com> Remove a duplicate the in RecylerView documentation.

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

Change-Id: I453e38b7af3ab72b108b9094eae6dd11ddc1394a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b636aaccd4a15c8c64e62c810f3a3e2051a6ca83 03-Jun-2016 Aurimas Liutikas <aurimas@google.com> Fix two grammar errors in RecyclerView documentation.

Bug:
- https://code.google.com/p/android/issues/detail?id=1978081
- https://code.google.com/p/android/issues/detail?id=203341

Change-Id: Idded1f7a46ac76872596d871bc05ee81eec606d3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
157a2c7cd8c14aae5fa17a9e165252285abfb302 31-May-2016 Aurimas Liutikas <aurimas@google.com> Merge "Fixed a typo in RecyclerView javadoc." am: 7809626286 am: 26069f8a13 am: e8b592583d
am: 6687307e5a

* commit '6687307e5a2734ee0943f804cf9becb8e96b088e':
Fixed a typo in RecyclerView javadoc.

Change-Id: I8e20de4110f2df2c45a4eb92b5df5ad4acd5f60c
e8b592583de66c2126f666f549c97279a7300ff8 31-May-2016 Aurimas Liutikas <aurimas@google.com> Merge "Fixed a typo in RecyclerView javadoc." am: 7809626286
am: 26069f8a13

* commit '26069f8a1357599ef1bfb71b404e8526cb0f07e7':
Fixed a typo in RecyclerView javadoc.

Change-Id: Ida35da867118f5841b0f2dc60267a07cab6ce001
43326c5ebe76a36e6b85e6165efa95eef3ffce65 05-May-2016 Wenxiang Qiu <vincentqiuuu@gmail.com> Fixed a typo in RecyclerView javadoc.

Change-Id: I08c8c0593027659107ecc4c45fa45466bd061fb3
Signed-off-by: Wenxiang Qiu <vincentqiuuu@gmail.com>
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b3a14cb852e554e6c28cb18619bd686f0f318fcb 26-May-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix a random assortment of spelling errors."
fac145da4f4d4dcb328bcc41843562a2a4c1568a 25-May-2016 Yigit Boyar <yboyar@google.com> Merge "Fix item cache bug" into nyc-dev am: d3a7d47d00 am: fa3a8ee9bc
am: 74bce7522b

* commit '74bce7522ba1b38e3d771e08740fcfb05549f746':
Fix item cache bug

Change-Id: Ic8381b0a3c621bcf2d5359ed441e0b2689f7f30a
95819ac5393f72cd5658822e920e23327de50a98 25-May-2016 Yigit Boyar <yboyar@google.com> Merge "Consume pending updates before focus failure" into nyc-dev am: e603e6fc9d am: 80ed025f8b
am: fdfec52214

* commit 'fdfec522148382e58885ad4d841393b3ee433348':
Consume pending updates before focus failure

Change-Id: I456b6033abd8f906edcde9d8a03d5b2a55fe925b
d3a7d47d007faad84356f5f846f92f4abfdff1df 25-May-2016 Yigit Boyar <yboyar@google.com> Merge "Fix item cache bug" into nyc-dev
e603e6fc9dbf00dd0197d56daed424e4b989b8e9 25-May-2016 Yigit Boyar <yboyar@google.com> Merge "Consume pending updates before focus failure" into nyc-dev
c9a859537b0871f84afeeb706a5b425fe3f2b4dd 25-May-2016 Aurimas Liutikas <aurimas@google.com> Fix a random assortment of spelling errors.

Fix spelling errors found by Android Studio.

Change-Id: I121c79029f4e323da4ff2f44891e25480c44ebbc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
df21542c3d8e872757a4a64feb6d2424b764221c 25-May-2016 Yigit Boyar <yboyar@google.com> Merge "Fix default clip to padding value Bug: 26779229" into nyc-dev am: 3b19d52acd am: 6917aa861a
am: 668579027b

* commit '668579027bf4f474ecc5f14e53dfbd30a33ce939':
Fix default clip to padding value Bug: 26779229

Change-Id: Ic784bb6300b7c8758a79b64bc49dbc6d930a3ed1
4be551523e8e36b5a1d480af456bfb392416882c 24-May-2016 Yigit Boyar <yboyar@google.com> Consume pending updates before focus failure

Bug: 28252144
Change-Id: I9a01149d6589f48e3e448cb10527cc1344673b91
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
dc8e099ed130434c0238f558277c5bcb6a533121 23-May-2016 Aurimas Liutikas <aurimas@google.com> Add missing @Override annotations in v7 code. Part 1.

Change-Id: I8487ae3980cf84aa486edb086f676a14a82f22c6
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b3c1aca725ea774de3627575062a1e4ea83754ce 23-May-2016 Yigit Boyar <yboyar@google.com> Fix item cache bug

This CL fixes a bug in RV's cache handling where it was not
caching a view when the list is full but it was still
removing the last item from the cache.

Bug: 27948510
Change-Id: Ifdf8e7f3667086ca3d84e93c90e5ee99828495bc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fa213d311bf9371e434a2458763552f62ae80082 23-May-2016 Yigit Boyar <yboyar@google.com> Fix default clip to padding value
Bug: 26779229

Change-Id: Ia5df6a334b0fd232d1efaf2b85caf1d5723d1daa
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
1b3e9466b4c4d72f28bb4448672ef8bab19b6f3e 11-May-2016 Kirill Grouchnikov <kirillg@google.com> Clean up internal usage of now-deprecated Compat APIs

Change-Id: I309a6637e1c013dc9b218dd048d2cfab7dcee171
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
05f5ba020fa6caa658c75b6d77436aa980ca0fcc 22-Apr-2016 Chris Banes <chrisbanes@google.com> Backport AbsSavedState and fixes to v4

Also makes the support library widgets use it
so that they handle multi-class loaders correctly
when restoring state.

BUG: 27790353

Change-Id: I5c7888f119b8fcb79fd7cb67987c304c0c982c8e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d805095048f6be52cddbd572ee343c4639ba8187 22-Apr-2016 Alan Viverette <alanv@google.com> Clean up deprecation tags in support libraries

Also fixes renderscript and recyclerview docs builds.

Bug: 28339627
Bug: 28073702
Change-Id: I0f38cf82fe260de4488660c87aaed8d26265eeba
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c06177f99006a0af27ed3384ab5c71f8e41713ee 19-Apr-2016 Dake Gu <dake@google.com> RecyclerView: fix focusSearch bug

Should use offsetDescendantRectToMyCoords in comparing bounds
of focused and next focusable.

Bug 28249784
Bug 28246268

Change-Id: Ib361b98aa63f2cb68ef54eaadcacae280d762144
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d8d42d52f8ae53107ffa849b86496650182e24b8 13-Apr-2016 Yigit Boyar <yboyar@google.com> RecyclerView focus search improvements

This CL fixes a couple of bugs in RecyclerView's focus search
handling.
* Built in layout managers were handling focus FWD/BCK wrong if
the layout is RTL.

* RecyclerView was not letting the focus leave RecyclerView if
focus FWD/BCK is called and RV does not have more children in
that direction. It was going back to the top of the list instead
of letting the view system give focus to the next view outside RV.

* RecyclerView was losing focus when focus FWD/BCK is called and
RecyclerView has more children to layout but they are not laid
out. In this case, focus was escaping the RecyclerView because
it was not laying out new children in the focus direction because
it already has some valid candidates. In this case, RecyclerView's
candidates would be overridden by other views outside the
RecyclerView.

Bug: 27222294
Change-Id: Ia5583c21df0a354d53c013aa76c4f9b475240c1f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a90fb62f06861beb3af9f9b3356ef0bb0685547c 12-Apr-2016 Yigit Boyar <yboyar@google.com> Don't invalidate layout on detach

This CL fixes a bug in RV where it was always expecting an onLayout
call after it is detached which may not be the case if the RV's
parent is detached-attached.

With this change, RecyclerView will only clear firstLayout flag if
a layout is already requested.

I've also changed SGLM to request layout on onDetach since it
releases View references.

Bug: 27229764
Change-Id: I8d7b2c9bc2b3e24eaa66253153ffa0c960f81bc6
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8cf399b2e813234a1a603df3575c2dcdfa38dc9e 07-Apr-2016 Yigit Boyar <yboyar@google.com> OnLayoutCompleted API for LayoutManager

This CL introduces a new LayoutManager API: onLayoutCompleted.

This new method is called after a layout calculation is
completed. It is a good checkpoint for layout managers
to clear any layout related data (e.g. pending scroll
position).

We also use this new API to fix a bug where scrollToPosition
may not work if the LayoutManager is measured multiple
times which is likely to be triggered if it is inside a
Dialog.

Bug: 27765270
Change-Id: Ib576ff609dcedc1e9978551c009d00d5c457665a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4510b5c24adad2b94df9b84c6b73f5534ffe9b57 06-Apr-2016 Yigit Boyar <yboyar@google.com> Do not recycle visible views

This CL adds a new API to the LayoutManager where the LayoutManager
can get the bounds of a View while taking into account its
transformation matrix.
This API is mainly useful for recycle decision. I've also changed
built in layout managers to respect this value in addition to layout
position of the view.

Bug: 26402811
Change-Id: If75072c73d3374bfac0439d7714714c82684096a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
251c29b47e062b1093aa2f8fbb61ab080511c38f 06-Apr-2016 Yigit Boyar <yboyar@google.com> Merge "Consume pending should bring layout to clean state" into nyc-dev
e3b89d11cf08a0e9aaa8162757246f286c6df2f8 29-Mar-2016 Yigit Boyar <yboyar@google.com> Preserve focus after layout

LayoutManagers try to keep focused view visible during a layout
calculation. This does not work well if the View is being replaced
with another view due to type change and/or animation. It is
beyond LayoutManager's intended control to care for this case so
RecyclerView will track it and recover focus to the new View
if necessary.

Bug: 25510761
Change-Id: I65680577587839ecfe84a931998da8b9926b5566
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7f5e94985f795f81884334ca2752a0469a998762 01-Apr-2016 Yigit Boyar <yboyar@google.com> Consume pending should bring layout to clean state

Previously, consumePendingUpdateOperations would not run a layout calculation
if the first layout has not happened yet. This was inherited from old logic
where RV runs its own layout pass and if the view hierarchy will run a layout
pass, we rather skip it.

This was not the correct behavior for some use cases where we may receive a
scroll / fling etc callback while mFirstLayoutComplete is false (e.g. RV
has just been attached).

Since RV's custom layout request already checks for first layout flag and
this method is heavily used to sync state of the layout, I'm changing it
to RUN a layout if first layout has not happened and we need to sync
state to be able to call incremental methods.

Bug: 27926253
Change-Id: I3ba5b705713782de6140d4a1da6ef4fc05e94f5c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
9464e655c15a471878080918f3d0db0e607a7f96 31-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Prefer non-hidden children in find methods" into nyc-dev
bd1424dffe99916b724feef9fec6d40639c6b779 30-Mar-2016 Yigit Boyar <yboyar@google.com> Prefer non-hidden children in find methods

Bug: 27921084
Change-Id: I1e9864107bddda1dfde22dfcc88c037afbbf11c2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
aba59f68eb826b4e37553d8610c4db9b177e2709 30-Mar-2016 Chris Banes <chrisbanes@google.com> Merge "Make android:nestedScrollingEnabled work in RV" into mnc-ub-dev
am: 73ec515

* commit '73ec51559a791cf9fe5cfe624eee8d82b9777fb5':
Make android:nestedScrollingEnabled work in RV

Change-Id: Ib39c503ba940487cfa7b9a33a6b62dffb840b03a
73ec51559a791cf9fe5cfe624eee8d82b9777fb5 30-Mar-2016 Chris Banes <chrisbanes@google.com> Merge "Make android:nestedScrollingEnabled work in RV" into mnc-ub-dev
5f538711872b050b93f49a5dcaff1753e0299449 25-Mar-2016 Dake Gu <dake@google.com> RecyclerView: Add convenient methods for margins

Promoted layoutDecoratedWithMargins() from SLM to LayoutManager.
Added getDecoratedBoundsWithMargins().

Change-Id: I353437679250707402c16d766fdcf4ca25350f5a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
92499ca296608acda46465e3ef72c09c64f57a93 22-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Fix RecyclerView range detection for scroll callback" into mnc-ub-dev
am: 34a182d

* commit '34a182d91287d13e72e3966a917114492a079bb0':
Fix RecyclerView range detection for scroll callback
34a182d91287d13e72e3966a917114492a079bb0 22-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Fix RecyclerView range detection for scroll callback" into mnc-ub-dev
aa6e1d7fa3c1fb0f501ed58332b4cc584522df7f 21-Mar-2016 Chris Banes <chrisbanes@google.com> Make android:nestedScrollingEnabled work in RV

BUG: 26351728
Change-Id: Idc579aadfa729955f63b71b8f6238be9ad9f7db3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
75bb46b339ebc9cb89081d2fc4e3068dbda0eda6 21-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Handle hint in unspecified specs" into mnc-ub-dev
am: bebe6d3

* commit 'bebe6d3fb4470c5f9494e2bba84be0fa0aa23bfe':
Handle hint in unspecified specs
bebe6d3fb4470c5f9494e2bba84be0fa0aa23bfe 21-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Handle hint in unspecified specs" into mnc-ub-dev
7541e4bfa0c9fff31bcb12fc5a94365565388715 17-Mar-2016 Aurimas Liutikas <aurimas@google.com> Check for saved state type in onRestoreInstanceState.
am: bb58a82

* commit 'bb58a82daf11bf3c056d1cd5887aa26435d37b69':
Check for saved state type in onRestoreInstanceState.
bb58a82daf11bf3c056d1cd5887aa26435d37b69 16-Mar-2016 Aurimas Liutikas <aurimas@google.com> Check for saved state type in onRestoreInstanceState.

Add instanceof check in onRestoreInstanceState calls throughout
frameworks/support code.

Bug: 27589237
Change-Id: Id9db70de03979379ca9d98bb8599ac9fa2b46218
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e4f37e5de85662368bdc74f71b60bf402e6937df 15-Mar-2016 Yigit Boyar <yboyar@google.com> Fix RecyclerView range detection for scroll callback

This CL fixes a bug in RecyclerView where it would not
invoke scroll callbacks if the range of visible items
shrink. It was working fine if the range expands.

Bug: 27570735
Change-Id: I3a20d7b9c133e72db596f279c25e004349b4e045
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f3844451301cb14ca885e125cb27f108a834c386 16-Mar-2016 Yigit Boyar <yboyar@google.com> Handle hint in unspecified specs

On M+, the parent can pass a hint size with unspecified specs.
Previously, our LayoutManagers ignored this because it might
be garbage on older platforms.

With this CL, RV ensures that it is 0 on older platforms and
the value parent provided in newer ones. This way, RV can
know when to stop based on the hint but still ask for what
it needs (so that it is not treated as AT_MOST).

Bug: 27608240
Change-Id: I2d452731c7251b0ee1f35b9a0694c78381cdf39f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a74d38e1ad24938a7b655600827d72d98ea2fc92 04-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Ignore views that appear and disappear" into mnc-ub-dev
am: 0a945c04bb

* commit '0a945c04bb7c0dede9bd39f09b47e5f48b3b57fe':
Ignore views that appear and disappear
a7d7e30042bb6fbe2944b752a24fd57fd31d285f 03-Mar-2016 Yigit Boyar <yboyar@google.com> Ignore views that appear and disappear

This CL fixes a bug where if a view is added in a layout pass
and removed in a following layout pass, we would try to run
animate disappearance although it never appeared. RV already
handles the case if the view is added in pre-layout. This CL
fixes the case where it happens between different layout
passes, which might happen when the LM uses auto-measure.

Bug: 27457120
Change-Id: I4c044c2eb8ff23883e1522491c1e053645f96131
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3e57aa5f61996c3d8d4317cb1080919f39c9bde6 01-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Avoid NPE in animation scheduling" into mnc-ub-dev
am: 82dc87fab2

* commit '82dc87fab23a590a94b5e63bd11ddfa6234f8695':
Avoid NPE in animation scheduling
9d0897013ce1048fdbd80eeb28080e6a618897e6 01-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Make RecyclerView\'s adapter lock less strict" into mnc-ub-dev
am: f12d32be42

* commit 'f12d32be4207f8476e2adfecaa6e98e8bfbb0eb7':
Make RecyclerView's adapter lock less strict
82dc87fab23a590a94b5e63bd11ddfa6234f8695 01-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Avoid NPE in animation scheduling" into mnc-ub-dev
f12d32be4207f8476e2adfecaa6e98e8bfbb0eb7 01-Mar-2016 Yigit Boyar <yboyar@google.com> Merge "Make RecyclerView's adapter lock less strict" into mnc-ub-dev
dca8e68e966915b8314095e71538d231a7eee575 01-Mar-2016 Yigit Boyar <yboyar@google.com> Avoid NPE in animation scheduling

If a changed item disappears in post layout, RV calls animateChange.
But if item is never laid out in post layout, it was calling animate
disappear. This was inconsistent because even if the View is laid
out in post layout, it probably does not have the updated data.
This edge case is inheritly conflicting so this CL clarifies &
documents the behavior such that:

When a changed item disappears:
* If item animator decided to re-use the same ViewHolder, RecyclerView
will call animate disappearance.
* If item animator decided to creates a new ViewHolder for post
layout, then RV will call animateChange because it is the only
callback with two view holders.
* If the layout manager did not layout the view in post layout,
RecyclerView will call animateDisappearance.

Bug: 27408348
Change-Id: Ie58b1b1a00a89b630b715d680edfa4110b0dd43d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6ebd41635313842a407bd139e8506c05ee4478d3 29-Feb-2016 Yigit Boyar <yboyar@google.com> Merge "Fix RecyclerView measure spec utility methods" into mnc-ub-dev
am: 3794cae2a0

* commit '3794cae2a0739a51089e659a5a09561048886f67':
Fix RecyclerView measure spec utility methods
2e77ca33cc242ec5750cfc11824c215f8d7ffc22 29-Feb-2016 Yigit Boyar <yboyar@google.com> Make RecyclerView's adapter lock less strict

RecyclerView does not allow adapter changes while it is calculating a
layout or scroll. This CL reduces the lockdown period, allowing adapter
changes when scroll callback is called.

Bug: 27406179
Change-Id: Ib4c9660b74a935ee86a1e74cc9a90a917567cce2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
43de23e6297fd4287b9c2a26f1aa04d37ba6968d 26-Feb-2016 Yigit Boyar <yboyar@google.com> Fix RecyclerView measure spec utility methods

This CL fixes two issues with RecyclerView.
* Its default measure spec method was ignoring the padding and
was also taking complete space when its spec is AT_MOST.

* Fixed the getSize method in LayoutManager where if the
spec is AT_MOST, it could be ignored if there is also a
mindWidth / minHeight.

Bug: 27376820
Change-Id: I5764970fa31268fd98effee0f7bf8b4fd5f0824d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
70b124473092e52c9f318b0f8487398374db6f77 19-Feb-2016 Yigit Boyar <yboyar@google.com> Merge "Handle gracefuly if changed items disappears" into mnc-ub-dev
am: de91420439

* commit 'de91420439ba76aad2ec94dad5204571f9aa24c0':
Handle gracefuly if changed items disappears
de91420439ba76aad2ec94dad5204571f9aa24c0 19-Feb-2016 Yigit Boyar <yboyar@google.com> Merge "Handle gracefuly if changed items disappears" into mnc-ub-dev
bffce8105b9ef3835bff35bdb34e6a6a1d780233 19-Feb-2016 Yigit Boyar <yboyar@google.com> Merge "RecyclerView Documentation Fixes" into mnc-ub-dev
am: 1cbb8362fd

* commit '1cbb8362fd6d169969667dad88f16acdada69c73':
RecyclerView Documentation Fixes
f42d50affc194f9f4ee3095ea33b18711ca06e2f 17-Feb-2016 Yigit Boyar <yboyar@google.com> RecyclerView Documentation Fixes

Fixed OnScrollListener malformed documentation.
Clarified setHasFixedSize behavior.
Removed some warnings.

Bug:27057702
Bug: 24664294
Change-Id: I665ea96f3c7496865b908252963cccf16442b806
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
57d97cb4358a78cbfa0b0a3e6e1e55322c16e3de 18-Feb-2016 Brian Carlstrom <bdc@google.com> Revert "RecyclerView Documentation Fixes"

This reverts commit 78c8a27a4380c804e706699ee8a8e84c62bc99bc.

Change-Id: Ia27424673f0bfab93ba0a4151e0fb43292755a2c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8182499446511e7e47752b1ea2dae81556ba5cef 18-Feb-2016 Brian Carlstrom <bdc@google.com> Revert "RecyclerView Documentation Fixes"

This reverts commit 78c8a27a4380c804e706699ee8a8e84c62bc99bc.
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ae165ced26877679fd5bcbc5df912d092c68c023 18-Feb-2016 Yigit Boyar <yboyar@google.com> Merge "RecyclerView Documentation Fixes" into mnc-ub-dev
am: 89ddca2ed7

* commit '89ddca2ed769806b4cc4a983117a2d2030a99a30':
RecyclerView Documentation Fixes
78c8a27a4380c804e706699ee8a8e84c62bc99bc 17-Feb-2016 Yigit Boyar <yboyar@google.com> RecyclerView Documentation Fixes

Fixed OnScrollListener malformed documentation.
Clarified setHasFixedSize behavior.
Removed some warnings.

Bug:27057702
Bug: 24664294
Change-Id: Ib3241221618ff61bf32e6622a139a1e19638204c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
13a0acc0df34344c0b4fd4b494a64e7dcf195b56 17-Feb-2016 Yigit Boyar <yboyar@google.com> Handle gracefuly if changed items disappears

This CL fixes a bug where if an Item is changed and also
disappears in the same layout pass, RecyclerView would call
both animation APIs which is a problem because it is designed
to call only one animateXXX callback per ViewHolder.

With this CL, it only calls animateChange but takes care
of hiding the disappearing views.

Bug: 27137909
Change-Id: I28e7a3c24e9cd0c8bf6790070b382830014e8987
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a8b663f143c90fea1c1e987fccd4fd173ae5b920 25-Sep-2015 Ron Shapiro <ronshapiro@google.com> Fix RecyclerView.LayoutManager javadoc references

Change-Id: I6279d8bd55733fca9dedf8655b703633fa9fa8dd
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3432da1c700ee0af26aa2712c11227ca2f87d113 17-Feb-2016 Aurimas Liutikas <aurimas@google.com> Merge "Fix RecyclerView.LayoutManager javadoc references"
3d37afbbf7bf547c1e1c541df9be9696da668884 26-Jan-2016 Yigit Boyar <yboyar@google.com> Check child's scrollX/Y on bringChildRect method

Bug: 25787435
Change-Id: I21c73470a97db0db15f415442425eae71c5c6a34
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
59b4ea619eb6bc48df480bc99c039b877f0fefcf 22-Jan-2016 Yigit Boyar <yboyar@google.com> API review changes

Bug: 26644605
Change-Id: I1f90c5e6979764da44088f42928f6f4bc0b5d970
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4143554adb9b31b700b6876a251a64419e6111e2 10-Dec-2015 Yigit Boyar <yboyar@google.com> RecyclerView Automatic WRAP_CONTENT support

This CL adds support for wrapping content for RecyclerView while
supporting predictive animations.

It is an opt-in API which is off by default because these changes
will change the callback flow, especially will start calling
LayoutManager#onLayout when RecyclerView#onMeasure is called.

See LayoutManager#setAutoMeasureEnabled for API details.

All built in LayoutManagers support WRAP_CONTENT using this new
mechanishm.

Bug: 22508392

Change-Id: I6e010f8807e9d2fa379dd52493b2d8340b8c65de
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f89e1b82c74b7b85df3a349340a643f62fc5bfa1 29-Dec-2015 Yigit Boyar <yboyar@google.com> Focus search improvements

This CL fixes a bug in GridLayoutManager where it would choose
the wrong view when it scrolls for focus search. Not it does
it properly by prioritizing currently focused View's span.

This CL also adds focus search failure support to StaggeredGridLM.

Bug: 26338413
Bug: 26333507
Change-Id: I263508be1b987f8630a65267cb17efba600292e3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
abea494886a17e7a51080ab5e9c2ca041c533353 09-Dec-2015 Yigit Boyar <yboyar@google.com> Pass list of payloads to Animator#canReUse

This CL adds the payloads as a parameter to the canReUse API.
Turns out it was desired so that custom ItemAnimators can select
between specific animation or the default behavior of cross-fading.

To be consistent with adapter API, the previous method is not
deprecated.

Bug: 25904129
Change-Id: I97c69aef15268bf0960f8ca7ffff773a4a977192
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b2a6ee1e0b6c4343a52b7e176c29d0cfebcd1617 08-Dec-2015 Yigit Boyar <yboyar@google.com> Try to detect developer error for change animations

If an adapter does not have proper stable ids, it may crash RV while
it tries to animate. This is NOT a RV bug but it is very hard for the
developer to recognize this since the crash does not give any clue on
what is wrong.

This CL detects this case and prints a specific error. It also changes
how RV handles this unexpected case. Now, if it cannot detect the error,
it will just log instead of crashing. It will still crash if it detects
an error in the Adapter.

Bug: 25715473
Change-Id: I896bceb09417a42899951311352c15f7c912c57b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4bcf88a56f3048a7ead6f423faa8fa08b95c5dae 01-Dec-2015 Yigit Boyar <yboyar@google.com> Always consume pending updates before post layout.

This CL fixes a bug where RecyclerView would decide not to
run predictive animations due to some other criteria besides
adapter updates.

Now we always process adapter updates before running post layout.

Bug: 25948838
Change-Id: I83d65c9afc0551fc02ede087dcf338f71f0cbb6e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
734a88d349234ac55a110327a6a4894ea6c73499 07-Dec-2015 Yigit Boyar <yboyar@google.com> Merge "Stop scroll when layout manager is replaced." into mnc-ub-dev
14d75838c4578e079d75ea149e9833250c5d741b 03-Dec-2015 Yigit Boyar <yboyar@google.com> Check layout before calling.

Compute scroll offsets might be called even if the RV does not
have a LayoutManager.

This CL guards for it, adds tests.

Bug: 25971558
Change-Id: I660e7b1f28bdf53ac7d5f6d9b5396ba2c1e44f88
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
350ec94b23803aa4ce6b61628b586ec19e5112e9 01-Dec-2015 Yigit Boyar <yboyar@google.com> Stop scroll when layout manager is replaced.

Bug: 25662555
Change-Id: Ia6328060553c77f59bfc2e9ecc8ad87e12f47092
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
71c54eb5572a3e93409024640b8af5740620085c 30-Nov-2015 Yigit Boyar <yboyar@google.com> Use adapter position for cache invalidation

Recycler was using LayoutPosition while calculating cache
offsets which was wrong. This CL changes it to use adapter
positions instead.

Bug: 25923850
Change-Id: Ic446ec31f739fd46e54aa976ab6b02caf4a37176
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5031b30272a0178845f88d06adddb204dd833779 20-Oct-2015 Yigit Boyar <yboyar@google.com> Fix bad hidden child recovery

ChildHelper's method was NOT checking whether
child is removed or not. This means it could return children w/ bad indices.

Bug: 25037922
Change-Id: Ifbec9a9e5a0826603e1f369dec7615b9d327f13c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b354daf8dbeee21cc45fca26e278b4a1df108f0c 08-Oct-2015 Chris Banes <chrisbanes@google.com> Merge "Make sure that we clear any nested offsets" into mnc-ub-dev
2205ed639f409e8c30ece762b61564eab5c43263 08-Oct-2015 Yigit Boyar <yboyar@google.com> Merge "Don't crash when scrollTo is called" into mnc-ub-dev
f66d9125e215cf9adc8e70a93f16144cb7e4aee0 08-Oct-2015 Chris Banes <chrisbanes@google.com> Make sure that we clear any nested offsets

We previously only did this on onTouchEvent(ACTION_DOWN)
which isn't guaranteed to be called if we intercept. Fixed
by now doing this in onInterceptTouchEvent() to.

BUG: 21991284
Change-Id: I98b02f065d5ade583dac931911b5b27eae0c4df0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
dd078b48befbad8647146c46df5b47f8784b655e 07-Oct-2015 Yigit Boyar <yboyar@google.com> Merge "Cleanup for item tracking" into mnc-ub-dev
e09e0b4ea04b6b6b0ef6c62979e8abdead0bf378 30-Sep-2015 Yigit Boyar <yboyar@google.com> Cleanup for item tracking

This CL abstracts the Item tracking for RecyclerView. This makes
it much easier to test (better encapsulation) + cleaner code.
And as an added bonus, I merged some maps to speedup lookups.

There is also a small (unreleased) API change for the new
ItemAnimation callbacks. It was wrong in the first one but didn't
realize because SimpleItemAnimator was taking care of it.

I've also added some support annotations & fixed some warnings.

Bug: 24665726
Change-Id: Idba09e749f1c0f269d81dbdee4056f6b52ba8484
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
476e1cf254339269d5b07b9980cbb2238697fcbe 07-Oct-2015 Yigit Boyar <yboyar@google.com> Don't crash when scrollTo is called

RecyclerView does not support absolute position scrolling and it throws
UnsupportedUperationException if scrollTo is called.
This may create problems when user implicitly calls these methods (e.g.
via TransitionManager). Now instead, we just log an error and continue.

Bug: 24189541
Change-Id: I994fb03bc485bcf33d189a2b2b2ad15a7beccfa4
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cce8c1320bd190ce68790ed193edbd8c6bd30331 05-Oct-2015 Chris Banes <chrisbanes@google.com> Merge "Revert "Make RecyclerView requestDisallowInterceptTouchEvent(true)"" into mnc-ub-dev
9051a368c00c40f8679ae67147b9f5af6f93638d 17-Sep-2015 Yigit Boyar <yboyar@google.com> Reuse hidden views if asked for

If a LayoutManager tries to get a view that is in the
hidden list, Recycler used to recycle it so that it
can be safely rebound as a new item.

This approach, although safe, creates UI glitches
as item jumps from a location to another instantly.
To overcome this issue, now Recycler unhides such
views and moves them to scrap. It also reports it
to the item animator with necessary flags so that
its appearance can properly be evaluated as a
persistence (or change).

Bug: 24176126

Change-Id: I9858abdd6faf859bdc2ee2a9d2a88228c21fa9b1
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
50d0e79c73b69302b447ad37b274f617b2216b39 25-Sep-2015 Ron Shapiro <ronshapiro@google.com> Fix RecyclerView.LayoutManager javadoc references

Change-Id: Icd4f0154b3987a213fd6775708ee2a89f2f20e72
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f9f8726b8ea54c378205880d3dd07467429a6913 25-Sep-2015 Chris Banes <chrisbanes@google.com> Revert "Make RecyclerView requestDisallowInterceptTouchEvent(true)"

This reverts commit 699c56c4cb08cc04cca8b1341a78a4b6084ae9ef.

Seems that the original ommission was intentional. See
Ifa2177e30dcdccc4832e78a78c86dea756f06884.

BUG: 24374039
Change-Id: I5b480fbb8ada6b5ac093b3fcd4b69117d6dcc27d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4d495c172b7d491c21be9116dfa655cb85860454 24-Sep-2015 Yigit Boyar <yboyar@google.com> Merge "RecyclerView Animation API V2" into mnc-ub-dev
ceb1d0ab9e22f5a48b72e9850f713be60311c516 24-Sep-2015 Yigit Boyar <yboyar@google.com> Make SavedState public

RecyclerView's SavedState was not public which breaks unparcelling
on cold launch because Parcel cannot access the CREATOR. This CL
makes it public and hides.

Bug: 24338617
Change-Id: Ifd4351935c60cc7a0f903b730a14324bbfc4cfdc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
121ba9616e5bed44d2490f1744f7b6a9d3e79866 30-Aug-2015 Yigit Boyar <yboyar@google.com> RecyclerView Animation API V2

This CL introduces a new Animation for RecyclerView that
gives more responsibility and power to the ItemAnimator.

It is backward incompatible but there is a new SimpleItemAnimator
that mimics the old API for easy transition.

The main goal for this API change is to enable better change
animations. This change will enable ItemAnimator to easily animate
contents of ViewHolders.

Bug: 22507896
Change-Id: I4d9a6b92ff5c27691b277a777da77116476b1cd3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5c1fb3fbf627905b9c14785007f12ae5dfac3f3e 22-Jul-2015 Vadim Tryshev <vadimt@google.com> am c0d8d3f8: Merge "Hiding removed child views from accessibility." into lmp-mr1-ub-dev

* commit 'c0d8d3f89413a652a64e99485d93230437e20166':
Hiding removed child views from accessibility.
c0d8d3f89413a652a64e99485d93230437e20166 22-Jul-2015 Vadim Tryshev <vadimt@google.com> Merge "Hiding removed child views from accessibility." into lmp-mr1-ub-dev
344e49fcc92aba485da10a983fe916e2e4750a77 30-May-2015 Vadim Tryshev <vadimt@google.com> Hiding removed child views from accessibility.

Accessibility code won't know that hidden child views of RecyclerView
exist. Such views exist during animations that collapse deleted child
views.

Implemented with setImportantForAccessibility. There was an attempt
to implement this using AccessibilityNodeProvider, but after some
soul-searching with accessibility pundits, it was decided that
AccessibilityNodeProvider doesn't quite match this scenario, so I
fell back to the 'mark as important' approach.

Bug: 20055027
Change-Id: Ibb8478ed85990248821ccb1d772b4f2f9c02aa74
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ee20135f435ca237680b38a2c7893302ce969ef7 17-Jul-2015 Dake Gu <dake@google.com> resolved conflicts for merge of ef3e37fe to mnc-dev

Change-Id: I49b96358a0d5e6dec16503379e488fcc0c6db52c
ef3e37fe088c7d8e614bbc4ed58d6c0d3fa807a1 29-Jun-2015 Dake Gu <dake@google.com> RecyclerView: add setLayoutFrozen(boolean)

Add a method to stop recyclerview from udating children.
Including:
- delay the adapter change.
- stop scroll and inner scroll
- stop scroll animation
- cancel ItemTouch helper (dragging)

b/22067316

Change-Id: I24e7baf3477022025a2bba8e56343c5af7196403
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
aa7a9baf6f31ee93558f5eb6924a70ce0f9fb1a9 16-Jul-2015 Chris Banes <chrisbanes@google.com> am d6210381: Merge "Fix RecyclerView nested fling velocity" into lmp-mr1-ub-dev

* commit 'd621038120728873d2020555c450e3b1bca66d6a':
Fix RecyclerView nested fling velocity
d621038120728873d2020555c450e3b1bca66d6a 16-Jul-2015 Chris Banes <chrisbanes@google.com> Merge "Fix RecyclerView nested fling velocity" into lmp-mr1-ub-dev
aafd83e513eaede1fa96ff7a28ba98f955f11f9f 14-Jul-2015 Yigit Boyar <yboyar@google.com> am df73aa2f: Merge "Mark RecyclerView as scroll container" into lmp-mr1-ub-dev

* commit 'df73aa2fc5a55da363b3fe2b99fa3da299878f0e':
Mark RecyclerView as scroll container
df73aa2fc5a55da363b3fe2b99fa3da299878f0e 14-Jul-2015 Yigit Boyar <yboyar@google.com> Merge "Mark RecyclerView as scroll container" into lmp-mr1-ub-dev
ec2139270829c55b0c50c62612306c18b8c0b98b 14-Jul-2015 Chris Banes <chrisbanes@google.com> am 1629c7c8: Merge "Allow vertical dragging of AppBarLayout" into lmp-mr1-ub-dev

* commit '1629c7c8561372ec8a97df983edad01e0657b1d9':
Allow vertical dragging of AppBarLayout
d4c72f08279df548fbc4d556fe1a8b3500fafdbc 15-Jun-2015 Chris Banes <chrisbanes@google.com> Allow vertical dragging of AppBarLayout

Also fixed onStopNestedScroll() not being called
from NestedScrollView and RecyclerView

BUG: 21843568
BUG: 20679299

Change-Id: I1b19d7cae2db403ede30fc9116ea05aace586b3b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6bc164c64d7f4cea6a1f155439269fd189a77d3b 07-Jul-2015 Yigit Boyar <yboyar@google.com> Mark RecyclerView as scroll container

This is necessary to properly handle window size changes.

Bug: 22324832
Change-Id: I109db3db4a60eb43ea01e6d240e973bad9c3df57
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fbb5f81801bd50e630ac655943570544dee1627f 24-Jun-2015 Dake Gu <dake@google.com> am 9ff4326f: Merge "RecyclerView: Add payload for efficient bind" into lmp-mr1-ub-dev

* commit '9ff4326fe5136a9e6b40c7e6573720efa89013cd':
RecyclerView: Add payload for efficient bind
21b345f101abc385496f42d250e580d21f1287b6 04-Jun-2015 Dake Gu <dake@google.com> RecyclerView: Add payload for efficient bind

Add an optional payload in onBindViewHolder and notifyItemChanged.
The payload can be used to indicate the partial change
of an item so that onBindViewHolder can do an efficient rebinding.

We are going to add in-place Change animation in next CL. The in-place
Change animation happens on the existing holder, Adapter will receive
a payload in onBindViewHolder.

The existing crossfading CHANGE involves two viewHolders, the oldViewHolder
is faded out without rebinding, the newViewHolder is binding to a
scrap view and faded in.

Change-Id: I117e5fe24d757dc89e68bb5860b5f4fb71bd9cf5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8013976da5d8ae1faa787268c8fef4e06035ee23 22-Jun-2015 Chris Banes <chrisbanes@google.com> Fix RecyclerView nested fling velocity

Caused by us passing the original MotionEvent
to the VelocityTracker, rather than the nested
scroll offset event.

BUG: 21991284
Change-Id: I69034f167d5ea0dbd082506ce9cd47b27d28aa48
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c138e489f02b120eb5085228f69ff47c5cc7626d 19-Jun-2015 Yigit Boyar <yboyar@google.com> am e1cd8d86: Fix LinearSmoothScroller NPE bug

* commit 'e1cd8d86d84646768867eeaeb038e1c135ca3e4c':
Fix LinearSmoothScroller NPE bug
e1cd8d86d84646768867eeaeb038e1c135ca3e4c 09-Jun-2015 Yigit Boyar <yboyar@google.com> Fix LinearSmoothScroller NPE bug

This CL fixes a bug where LinearSmoothScroller would try to access
RecyclerView after it is stopped.

This was actually caused by a bad API so I deprecated it in favor
of a more open API. This new API, jumpTo also allows instantly
scrolling to a position in case target position is far away.

Bug: 21661478
Change-Id: I3c4bfa8589803a564a61116e73d8b1312c6c9f46
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0f694cd2137e6c760bf09cf6ce4aa7b4e0d070e3 20-Apr-2015 Jun Mukai <mukai@google.com> DO NOT MERGE Fix the mouse wheel orientation for the consistency with AbsListView.

The meaning of scroll value is different between RecyclerView and
AbsListView. Therefore the sign of the scroll value from the
motion event should be inversed in RecyclerView to have the same
scroll orienation for mouse wheels among views.

Bug: 20125071
Change-Id: Iba33b7dedae61432fb399bef28639435c08e6ded
(cherry picked from commit 9daf256d3b66ecb94d9848731abe96f3655904b0)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7a09a05c33facfb12360b45b490717dbcd6e704c 16-Jun-2015 Chris Banes <chrisbanes@google.com> am 93283ff5: Merge "Make RecyclerView requestDisallowInterceptTouchEvent(true)" into lmp-mr1-ub-dev

* commit '93283ff5783df631c327a0b17f2e85a3cd1c3221':
Make RecyclerView requestDisallowInterceptTouchEvent(true)
699c56c4cb08cc04cca8b1341a78a4b6084ae9ef 15-Jun-2015 Chris Banes <chrisbanes@google.com> Make RecyclerView requestDisallowInterceptTouchEvent(true)

BUG: 21844808
Change-Id: I52f7d1162ad436756c1c41e710b8cd421578a124
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cd7208e52058b99154f1c81f388e2a944e279b56 12-Jun-2015 Yigit Boyar <yboyar@google.com> am d2b9503e: Disable focus search failures during a layout

* commit 'd2b9503ec384f3a15a52e1620afeb558b280ae69':
Disable focus search failures during a layout
17e75f76b497fe431a3cc6e1e421b10c4b109dd9 12-Jun-2015 Yigit Boyar <yboyar@google.com> am dfdf6de7: Provide a public API to check if RV is in lockdown

* commit 'dfdf6de7cdd5497248ad00bf82b90fdd4e99fad6':
Provide a public API to check if RV is in lockdown
d2b9503ec384f3a15a52e1620afeb558b280ae69 12-Jun-2015 Yigit Boyar <yboyar@google.com> Disable focus search failures during a layout

If focus changes during a layout and FocusFinder cannot find the
next view, it may call LayoutManager's focus failed method, which
may add new views. This is a problem because we are essentially
calling layout inside a layout which is tricky to handle for any
layout manager.

This CL changes RecyclerView to ignore focus search request that
arrives during a layout or smooth scroll if FocusFinder cannot
find the next view.

When a View gains focus, we run the same checks (already) so that
RecyclerView will not jump around while trying to make the View
visible.

Bug: 18840571
Change-Id: I07c7c8ebcdb5f4d5a064f62caf8ab97e19983426
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
dfdf6de7cdd5497248ad00bf82b90fdd4e99fad6 11-Jun-2015 Yigit Boyar <yboyar@google.com> Provide a public API to check if RV is in lockdown

Bug: 21756143
Change-Id: I4aefbe3059e862a5b12995ec27f5a161747b2d29
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
87c9c97155d4742e7e6f0758394b5b6d12cfaee6 10-Jun-2015 Yigit Boyar <yboyar@google.com> am 429a9029: Check for layout before handling touch events

* commit '429a9029d941a91972cd7601aa7e6d3718872c65':
Check for layout before handling touch events
a59345d9cef037c8cf5be767cb716ac91bbe1eaf 10-Jun-2015 Yigit Boyar <yboyar@google.com> am 8a1422f3: Merge "End animations on scrap views, clear updated views from cache" into lmp-mr1-ub-dev

* commit '8a1422f3422177490f7e36bd93537108392cb3dd':
End animations on scrap views, clear updated views from cache
6e6e7993d801d52e0d6bba37d3ebfc34f6d474d2 10-Jun-2015 Yigit Boyar <yboyar@google.com> am d76f3572: Merge "Prioritize delete animation over move animation" into lmp-mr1-ub-dev

* commit 'd76f3572af33c544d6bac87bd144056f196d8cad':
Prioritize delete animation over move animation
429a9029d941a91972cd7601aa7e6d3718872c65 09-Jun-2015 Yigit Boyar <yboyar@google.com> Check for layout before handling touch events

This CL fixes a bug where RecyclerView would access layout
in motion event callbacks w/o checking if it exists

Bug: 21614659
Change-Id: I2cc6eb3afa1d24404c00bcc6c0cc7a30d441a1de
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8a1422f3422177490f7e36bd93537108392cb3dd 09-Jun-2015 Yigit Boyar <yboyar@google.com> Merge "End animations on scrap views, clear updated views from cache" into lmp-mr1-ub-dev
5a9366fba5e26329bc9a988cfd2d43df980f2764 09-Jun-2015 Yigit Boyar <yboyar@google.com> Prioritize delete animation over move animation

RecyclerView was running a move animation when an item
is deleted but also moved. We should run delete animation
instead to make sure proper callbacks arrive.

In the future, this can be changed but for now, it is not
LayoutManager's responsibility to move a deleted item so
occurrences of a "deleted item being moved" can be ignored.

Bug: 21639668
Change-Id: I5b1cfa37a7e5e7a2ef34d7cc76fbebc41907cf9a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cc1bf428e5bdbcc94e58107da4a100b279810a64 05-Jun-2015 Yigit Boyar <yboyar@google.com> End animations on scrap views, clear updated views from cache

This CL fixes a bug where we would not remove updated views
from cache which was bad utilization of cache since they'll
need to be rebound anyways and they could be rebound back in
preLayout with their bad state.

I also changed how we handle remaining scrap views at the end
of a layout. We used to recycle them wihtout ending their
animations which would prevent them from being recycled.
Instead, we first end their animations inside a recycle
barrier and then recycle them.

I also did some cleanup in layout tests to make them easier
to read :).

Bug: 21615412
Change-Id: Ic4fecfe9b78ee66e46b13bff83cf903be2cc2e1a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
75eada6113c293b04c65315594e64b92b44a9e72 06-Jun-2015 Vadim Tryshev <vadimt@google.com> am c8a1abec: Merge "Not filling accessibility info for hidden views." into lmp-mr1-ub-dev

* commit 'c8a1abeccbb409b9d24e1fac494e522514861526':
Not filling accessibility info for hidden views.
b0147cf64932ddbc71f26db7c2cd396f1b41c41f 05-Jun-2015 Yigit Boyar <yboyar@google.com> am c77daeca: Merge "Make simple on touch listener static" into lmp-mr1-ub-dev

* commit 'c77daeca9f4ec12523b84f667bc447a1c1349c68':
Make simple on touch listener static
c8a1abeccbb409b9d24e1fac494e522514861526 04-Jun-2015 Vadim Tryshev <vadimt@google.com> Merge "Not filling accessibility info for hidden views." into lmp-mr1-ub-dev
2572d238c81a22d5d74d4dc9822dc969a24e8357 04-Jun-2015 Vadim Tryshev <vadimt@google.com> Not filling accessibility info for hidden views.

This change is distinct from totally removing views from accessibility
radar by marking them as not important for accessibility. That
CR is in progress, and will continue.

This CL just plugs the possibility of a crash when an item is hidden.

It makes sense to land it ASAP to at least plug the worst problem first.

Bug: 20055027
Change-Id: I78ddd16b1cf384d22558255986a4eab34b44269f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c77daeca9f4ec12523b84f667bc447a1c1349c68 03-Jun-2015 Yigit Boyar <yboyar@google.com> Merge "Make simple on touch listener static" into lmp-mr1-ub-dev
508367f83359681cf0996edc1a9d9314a40d0d49 02-Jun-2015 Yigit Boyar <yboyar@google.com> am fd616c17: Pass generic motion event to scrollInternal

* commit 'fd616c17febfc3531ba1d8f56261d4f9d8df9b7b':
Pass generic motion event to scrollInternal
e103516e56946830427d7a0c608e9da750d42126 02-Jun-2015 Yigit Boyar <yboyar@google.com> Make simple on touch listener static

Bug: 21562067
Change-Id: Ib70f9d60fa680ee85c083aa3d549e03ae7cc2e92
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fd616c17febfc3531ba1d8f56261d4f9d8df9b7b 02-Jun-2015 Yigit Boyar <yboyar@google.com> Pass generic motion event to scrollInternal

We had a crash where if RecyclerView is used inside a
nested scrolling and event is a generic motion event;
we would get a NPE while trying to access a non-existing
event.
This CL makes a change to check for null events to avoid
the NPE and also starts passing motion event to scroll
internal so that generic motion events work as expected
as well.

Bug: 21561903
Change-Id: Ic48a75d83f083691295e59910fa14de1c6781fd8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b8c789d6bd6d98a7c1e39ef300a5a36a2dbcfaae 02-Jun-2015 John Butterfield <butterfield@google.com> am 1afbdba5: Merge "Fixed a minor typo in a comment" into lmp-mr1-ub-dev

* commit '1afbdba5490bdfab6af6be6d46ff001f16e18f24':
Fixed a minor typo in a comment
1afbdba5490bdfab6af6be6d46ff001f16e18f24 02-Jun-2015 John Butterfield <butterfield@google.com> Merge "Fixed a minor typo in a comment" into lmp-mr1-ub-dev
6075bea9cbf016ac660422d85bb6ced673fead75 02-Jun-2015 John Butterfield <butterfield@google.com> Fixed a minor typo in a comment

Change-Id: I27ccd31494f41bf1dd49812200340a3aff267872
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4ef3b3400174790d6d060c08c25e3f429e68de62 05-May-2015 Chris Banes <chrisbanes@google.com> am 46762cc1: Merge "Nested Scrolling support for RecyclerView" into lmp-mr1-ub-dev

* commit '46762cc1d7e8ab8a12fc8804d0641d54b710881d':
Nested Scrolling support for RecyclerView
f129f1b050d2542a91fe8175eac30183beb07b41 20-Apr-2015 Chris Banes <chrisbanes@google.com> Nested Scrolling support for RecyclerView

Also fixed annotation for ViewCompat's overscroll

BUG: 20334660

Change-Id: Iafa2f52f63d9aa9d5c8ce10b5e8bf108c1407a12
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b72eab7e746ced94b70d2b075280bdb2ebf9aed6 05-May-2015 Yigit Boyar <yboyar@google.com> am ec494eb6: Make constructor accessible before calling

* commit 'ec494eb6490aae36981351d80c778031efcf2ebe':
Make constructor accessible before calling
ec494eb6490aae36981351d80c778031efcf2ebe 04-May-2015 Yigit Boyar <yboyar@google.com> Make constructor accessible before calling

ART fixed newInstance method's accessibility checks which means if
provided class/method is not accessible; RecyclerView will crash.

This CL makes RecyclerView call setAccessible(true) before calling
the constructor to avoid any issues after new ART is released.

Bug: 20824258
Change-Id: Iea114b8265720f99d95a1486d692e7e787746f8b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5467ab02d726e6d18b3389ae233595821d1019e9 24-Apr-2015 Jun Mukai <mukai@google.com> Merge "Fix the mouse wheel orientation for the consistency with AbsListView."
76e89dc27c624e5629249b02ddc8d9cef814a998 23-Apr-2015 Yigit Boyar <yboyar@google.com> am 6a93cd3e: Merge "Add SimpleOnItemTouchListener and make OnItemTouchListener interface again" into lmp-mr1-ub-dev

* commit '6a93cd3e57c345f7010b7324b5047a978f06893c':
Add SimpleOnItemTouchListener and make OnItemTouchListener interface again
e17bbc04ba969d6ada9a0e0bfe24ff6d6619bb72 22-Apr-2015 Yigit Boyar <yboyar@google.com> Add SimpleOnItemTouchListener and make OnItemTouchListener interface again

We normally suffix these classes with word `Adapter` but in this case
I prefer to go with Simple to avoid confusion with RecyclerView.Adapter.

Bug: 20496406
Change-Id: If44497685b6c51ee4111d2a0cb1d59a51574f369
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a6f6599f8c8d258599749ee527228ad394934f9c 22-Apr-2015 Yigit Boyar <yboyar@google.com> am e71a1df9: Item touch interactions helper class

* commit 'e71a1df9b3c0e1bd3c21a1b3dd20a41790d4a950':
Item touch interactions helper class
e71a1df9b3c0e1bd3c21a1b3dd20a41790d4a950 06-Jan-2015 Yigit Boyar <yboyar@google.com> Item touch interactions helper class

Notice: TBR, APIs may change

This CL adds a component that can attach to any RecyclerView
and add support for Drag & Drop and Swiping.

It assumes some defaults based on the scroll orientation of
the LayoutManager but can also be extended to customize behavior.

Bug: 18889496
Change-Id: I7aede2084efa599552e053596661fa58b2685d10
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0e2e979afc3e1067c2af8db4c7a3bda4f0a1842b 16-Apr-2015 Deepanshu Gupta <deepanshu@google.com> Revert "Revert "Inflate RV attr to create the layout manager.""

This reverts commit 4d7dbfd2b24b8ebc49d3be5e0b5cbac76b2751ed.

(cherry picked from commit 0194ed84ad6f1d3d489db52b9431fa93a7697b50)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
9daf256d3b66ecb94d9848731abe96f3655904b0 20-Apr-2015 Jun Mukai <mukai@google.com> Fix the mouse wheel orientation for the consistency with AbsListView.

The meaning of scroll value is different between RecyclerView and
AbsListView. Therefore the sign of the scroll value from the
motion event should be inversed in RecyclerView to have the same
scroll orienation for mouse wheels among views.

Bug: 20125071
Change-Id: Iba33b7dedae61432fb399bef28639435c08e6ded
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0194ed84ad6f1d3d489db52b9431fa93a7697b50 16-Apr-2015 Deepanshu Gupta <deepanshu@google.com> Revert "Revert "Inflate RV attr to create the layout manager.""

This reverts commit 4d7dbfd2b24b8ebc49d3be5e0b5cbac76b2751ed.
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fdbd49decd8805769b3f17095e22e69a15102232 14-Apr-2015 Yigit Boyar <yboyar@google.com> am 696981cd: Merge "Revert "Inflate RV attr to create the layout manager."" into lmp-mr1-ub-dev

* commit '696981cd8025e64e217336a2e5eccc0ce3358a87':
Revert "Inflate RV attr to create the layout manager."
696981cd8025e64e217336a2e5eccc0ce3358a87 14-Apr-2015 Yigit Boyar <yboyar@google.com> Merge "Revert "Inflate RV attr to create the layout manager."" into lmp-mr1-ub-dev
4d7dbfd2b24b8ebc49d3be5e0b5cbac76b2751ed 14-Apr-2015 Yigit Boyar <yboyar@google.com> Revert "Inflate RV attr to create the layout manager."

This reverts commit 044b5b61e962367ccfc80250676eb98c86910877.
All dependent projects has to be changed to include RV resources before this can be merged.

Change-Id: I3d0af4345f9d838cc53d7ce34d81280cc7499760
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ee34066c336e84f0fccddcbf8fc2795ccb9d2098 14-Apr-2015 Deepanshu Gupta <deepanshu@google.com> am 282154bd: Merge "Inflate RV attr to create the layout manager." into lmp-mr1-ub-dev

* commit '282154bd6d9b079324b858540e3bdc48687072e3':
Inflate RV attr to create the layout manager.
282154bd6d9b079324b858540e3bdc48687072e3 14-Apr-2015 Deepanshu Gupta <deepanshu@google.com> Merge "Inflate RV attr to create the layout manager." into lmp-mr1-ub-dev
e446af401de362f3c8fd47665fbacf6d3541e191 10-Apr-2015 Yigit Boyar <yboyar@google.com> am a2d47d67: Merge "Postpone accessibility events to post layout" into lmp-mr1-ub-dev

* commit 'a2d47d675a8e76625176c2b59af0468ec4612a7a':
Postpone accessibility events to post layout
2bf89a9bae2b6110a77cf0b3754b567bb07d12a5 09-Apr-2015 Yigit Boyar <yboyar@google.com> Postpone accessibility events to post layout

During a layout calculation, some accessibility events
might be triggered by the view system synchronously.
These events are very hard to handle for a LayoutManager
since it is in the middle of calculating a layout but
received an accessibility request while trying to
obtain / add or remove a View.

Instead, RecyclerView will silently block these calls
until the end of the layout or scroll calculation and
then dispatch content change to avoid these race
conditions.

This CL also backports more Accessibility code to support
library.

Bug: 19717689
Change-Id: I98aac9264579714352554a7e9cbd2f712a72e6ee
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
044b5b61e962367ccfc80250676eb98c86910877 26-Mar-2015 Deepanshu Gupta <deepanshu@google.com> Inflate RV attr to create the layout manager.

Make RecyclerView more toolable. Add a custom attribute (layoutManager)
which accepts the class name of the LayoutManager to be used. The
LayoutManager specified should have a default constructor or a
constructor with the signature: (android.content.Context,
android.util.AttributeSet, int, int).

Example usage:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
res_auto:layoutManager="LinearLayoutManager"/>

<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
res_auto:layoutManager=".CustomLayoutManager"/>

(res_auto is is the namespace prefix for
http://schemas.android.com/apk/res-auto)

Bug: 19780401
Change-Id: I46b26fce28c5b79b3a1e4321cf5c1e54ad089a5e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e036150d53c4ac1ea3486d849311224e2f4da19b 04-Apr-2015 Yigit Boyar <yboyar@google.com> am 184adf5b: Merge "Fix EdgeEffect behavior for RecyclerView" into lmp-mr1-ub-dev

* commit '184adf5bea56436ec2ac9d7364575a25b0a35db5':
Fix EdgeEffect behavior for RecyclerView
87542e742dc991ad38966b5cd7c753f8419f1939 04-Apr-2015 Yigit Boyar <yboyar@google.com> am e4fc6108: Merge "Exclude RecyclerView children from save state" into lmp-mr1-ub-dev

* commit 'e4fc610896f3476e78a62c9b0d38f0848c7ce9df':
Exclude RecyclerView children from save state
184adf5bea56436ec2ac9d7364575a25b0a35db5 04-Apr-2015 Yigit Boyar <yboyar@google.com> Merge "Fix EdgeEffect behavior for RecyclerView" into lmp-mr1-ub-dev
e4fc610896f3476e78a62c9b0d38f0848c7ce9df 04-Apr-2015 Yigit Boyar <yboyar@google.com> Merge "Exclude RecyclerView children from save state" into lmp-mr1-ub-dev
ca570ddc976f20eae6dcc40bed9f6dee0e749353 04-Apr-2015 Yigit Boyar <yboyar@google.com> Exclude RecyclerView children from save state

This CL fixes a small bug where RecyclerView would still
call children's onSaveInstanceState although this state
was never used. Now it blocks save instance state call
similar to AdapterView.

Bug: 20061783
Change-Id: I8bed04c2e05e473957b32f4fb70587d511af0d76
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a894c985d6e21ae2b7d1986a287f0e6bf36a094b 04-Apr-2015 Yigit Boyar <yboyar@google.com> am e9075f45: Merge "Add trace events to important RecyclerView sections" into lmp-mr1-ub-dev

* commit 'e9075f450982abaf25d055ed4b2c9301d670060e':
Add trace events to important RecyclerView sections
8f46b3298bd25429dfef9da87423de18ce62dee5 03-Apr-2015 Yigit Boyar <yboyar@google.com> Add trace events to important RecyclerView sections

This CL adds a compatibility wrapper for android.os.Trace and
also adds trace events to the following sections in RecyclerView:

* Layout calculation with trigger information
* Scroll
* On bind view
* On create view

Bug: 18362054
Change-Id: I953cc9373190865498994bff8cc6420d7ff09e98
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f5554348a132e821416ee0b2e2718045fc363c33 03-Apr-2015 Yigit Boyar <yboyar@google.com> Fix EdgeEffect behavior for RecyclerView

This CL also fixes the EdgeEffectCompat implementation which was
not using the Lollipop version.

Bug: 18721866
Change-Id: I0f59e71027ec60fbe26043fffe37cdccb5dcfa30
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
beb2040db39ff19448afa64b77e8be5814abd4fc 30-Mar-2015 Yigit Boyar <yboyar@google.com> am ec60a348: StaggeredGridLayoutManager gap handling bug fixes

* commit 'ec60a348ce39889a99f7ca02da94a6867bfdf66f':
StaggeredGridLayoutManager gap handling bug fixes
ec60a348ce39889a99f7ca02da94a6867bfdf66f 13-Feb-2015 Yigit Boyar <yboyar@google.com> StaggeredGridLayoutManager gap handling bug fixes

SGLM may fail to detect a gap if it is created for not having
enough items while filling towards HEAD. Although it could be
fixed by detecting the case and setting a flag, running a
full gap check at the end of a post layout seems more stable.

Bug: 18970779
Change-Id: Ie267092335ce74d315b4677af78c3adf3a98af61
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a32705f15ac5c3fd36e6503ef962c130eefb40b8 30-Mar-2015 Yigit Boyar <yboyar@google.com> am 0cdc2263: Merge "Remove a view from disappear list on recycle" into lmp-mr1-ub-dev

* commit '0cdc226349a8ed360bc3114e8f8b9da0771c6b69':
Remove a view from disappear list on recycle
6a6748f8ec1d1f2824cf5c7c6ee8ade8cad0a63a 27-Mar-2015 Yigit Boyar <yboyar@google.com> Remove a view from disappear list on recycle

There was an edge case in RecyclerView where if a LayoutManager
adds a View then calls removeAndRecycle on the same view
during the same layout pass, we would recycle the view and also
try to animate disappearance. This would break the consitentcy
and trigger an IllegalStateException if View is returned from the
pool before its animation ends. Even without that race condition,
this could still break since View may come back from the pool
twice.

This CL fixes that issue by removing the View from the list
onRecycle (we were already doing it for other sets).

This CL also changes another behavior where we would cache
removedViews if they are removed in pre-layout. This is
probably why very few people were hitting the above exception.

Bug: 19935582
Change-Id: I502d7d3fdb08737e6727fd15856c90dfc41b27a8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a75ca911e26945e0b326e7b70dd12378ace80270 23-Mar-2015 Dake Gu <dake@google.com> RecyclerView: fix ArrayIndexOutOfBoundException in removeAndRecycleScrapInt

App implemented onViewDetachedFromWindow() might force "AddAnimation"
stop and change internal mRecycler.mAttachedScrap list, then next loop
getScrapViewAt() may access out of bound index.

Accessing the array in reverse to avoid the problem.

Bug 19892594

Change-Id: Ie3a12c60d8135cc2cc048aa0f74f29821e5f708a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
54693c0ed6f4bfa968f86158b2062c5688413b6c 24-Mar-2015 Dake Gu <dake@google.com> am 5fb3b3d7: Merge "RecyclerView: fix ArrayIndexOutOfBoundException in removeAndRecycleScrapInt" into lmp-mr1-ub-dev

* commit '5fb3b3d749f84f6e44065365579984a6653d5372':
RecyclerView: fix ArrayIndexOutOfBoundException in removeAndRecycleScrapInt
95ff60ba852e21922aa606b5117f6a0c4f4f33d3 23-Mar-2015 Dake Gu <dake@google.com> RecyclerView: fix ArrayIndexOutOfBoundException in removeAndRecycleScrapInt

App implemented onViewDetachedFromWindow() might force "AddAnimation"
stop and change internal mRecycler.mAttachedScrap list, then next loop
getScrapViewAt() may access out of bound index.

Accessing the array in reverse to avoid the problem.

Bug 19892594

Change-Id: Ie3a12c60d8135cc2cc048aa0f74f29821e5f708a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
79f5d415918f3621e929975131297f491a32b560 18-Mar-2015 Yigit Boyar <yboyar@google.com> am 7e4b03ab: am c3f91e0c: am b530dc2a: Merge "Check for null layout when add focusables is called" into lmp-mr1-ub-dev

* commit '7e4b03ab71840e8a86d48fe9e461ca9c3cac933b':
Check for null layout when add focusables is called
2bf1da46d262ea61cd172ff49c9d26ec2f83fffe 18-Mar-2015 Yigit Boyar <yboyar@google.com> am 3389434e: am 3814ec82: am 2cba9043: Merge "Fix RecyclerView focus issues when target view is too big" into lmp-mr1-ub-dev

* commit '3389434ef705180f06e059a29ad70f6b810e68a5':
Fix RecyclerView focus issues when target view is too big
b530dc2a072ddd058c431de1c84f732cc675989b 18-Mar-2015 Yigit Boyar <yboyar@google.com> Merge "Check for null layout when add focusables is called" into lmp-mr1-ub-dev
2cba904324003b514001f2464891fc8818e6be0f 18-Mar-2015 Yigit Boyar <yboyar@google.com> Merge "Fix RecyclerView focus issues when target view is too big" into lmp-mr1-ub-dev
6ea3414746984e4c2c7df1e5bd7bbcb424b4a604 13-Mar-2015 Yigit Boyar <yboyar@google.com> am 23b55773: am 92e7ee57: am da50fde3: Ignore accessibility events if layout is invalid

* commit '23b55773b12cc623b64490f4215a344a85fe7c7f':
Ignore accessibility events if layout is invalid
da50fde358bd3ef2edb273b3bf0265cf5e84ec6b 12-Mar-2015 Yigit Boyar <yboyar@google.com> Ignore accessibility events if layout is invalid

This CL adds a check to AccessibilityDelegate to ignore accessibility info
requests if RecyclerView has a pending layout calculation. These callbacks
are problematic to handle in these limbo states because any custom callback
does not necessarily know whether RecyclerView could update or not.
Also, since there will be a layout calculation in near future, all these
events will arrive again.

This CL also adds a public API to query this state so that developers can
take advantage of it for custom logic (e.g. ignore click event if data is
invalid).

Bug: 19085424
Bug: 19717689
Change-Id: Ice13ed8d77657632007686bc57183f09954b8e8a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
1ce0a758b3798657ad5eb51479b7d6ec9934896f 12-Mar-2015 Adam Powell <adamp@google.com> am 8df16e5a: am 4f1bb233: am 49940349: Expand RecyclerView scroll event handling

* commit '8df16e5aa4064c2d4bab1fa0c50ecbcb609688da':
Expand RecyclerView scroll event handling
c87b4ef91fd4ff97369304bd781182c32813e98d 12-Mar-2015 Filip Gruszczynski <gruszczy@google.com> am 21e95225: am f52a1ed0: am 4c27e526: Add add/removeOnScrollListener alongside setOnScrollListener.

* commit '21e95225b896b8cb13aab6cd6bb0cb4eda84bfcc':
Add add/removeOnScrollListener alongside setOnScrollListener.
499403498431a198a5952fac56ca977c56d8c560 11-Mar-2015 Adam Powell <adamp@google.com> Expand RecyclerView scroll event handling

Add onFoo methods to RecyclerView for handling scroll and scroll state
change events. This gives a place for subclasses to respond to these
events without adding separate listeners. Subclass methods are always
called before listeners, giving them a chance to modify state before
listeners observe the change.

@deprecate setOnScrollListener in favor of the newly added add/remove
methods. While the set version is useful, it can be fully replaced by
the add/remove/clear methods. Apps should be careful to manage the
lifecycle of their listeners correctly and use clear only as a full
reset mechanism. Library-style components should be aware that other
components that fully "own" a view such as an adapter may clear scroll
listeners on that view.

Change-Id: I405440a00d3f9ac8c7622e6c41bd42027da5c5e2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4c27e52601045c81b2f90a364750b3e0445f5cc1 09-Mar-2015 Filip Gruszczynski <gruszczy@google.com> Add add/removeOnScrollListener alongside setOnScrollListener.

Change-Id: I1fa7445fd58a5e3c85610e3690815bdfdfb2b5de
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
2e887cc0567cf7d284b73389f502b1a746b1628c 10-Mar-2015 Scott Kennedy <skennedy@google.com> am 198afb08: am e71a2789: am d3787f13: Merge "Add some @Nullable annotations to RecyclerView" into lmp-mr1-ub-dev

* commit '198afb08474137aec20e3e8f7dc391e9a216cb1a':
Add some @Nullable annotations to RecyclerView
70acb0c19be3831a2080e4f902324de16bfbf62e 04-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate support library with @ColorInt, @CallSuper, etc

Change-Id: Ifa25a628f89a07d3903cd71eb1c3639297fdf722
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c245f3bc426b1b460cdc8f02769ca9c0aa867a7c 08-Mar-2015 Scott Kennedy <skennedy@google.com> Add some @Nullable annotations to RecyclerView

Change-Id: I706466aff55128096eadeccc76a85099d19851b7
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6d109dd6676f6bca949643d2d04365494eaeb867 07-Mar-2015 Yigit Boyar <yboyar@google.com> Fix RecyclerView focus issues when target view is too big

This CL fixes a bug where if the View which asked for focus is partially
visible, we would scroll such that the invisible part of the view also
becomes visible. Unfortunately, this scroll was not capped so if view is
too big, we would scroll too much and hide the currently visible side.

Bug: 19642142
Change-Id: I408b7c8aa544cde8d4de5050e080f5431aa3cd87
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
2766f4864a9b42433f6ed8b74881d44c364d959d 04-Mar-2015 James Lemieux <jplemieux@google.com> Delegate baseline computation to the LayoutManager

Change-Id: I880c8dc043e786881d9635bb58d77f8628453004
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c8757e50338ab6077089cf7e6de3345b780650ba 26-Feb-2015 Yigit Boyar <yboyar@google.com> Check for null layout when add focusables is called

Bug: 19516927
Change-Id: I0828b7f1201ae9839445575a0304e11f381f9aba
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
347669814c026a2b88c4b81841f25379e51c6014 13-Feb-2015 Yigit Boyar <yboyar@google.com> Merge "Enable DisplayList hack for JB MR2" into lmp-mr1-ub-dev
283cd982d1772b34a64bbabc494d87c688a1c1b8 12-Feb-2015 Yigit Boyar <yboyar@google.com> Enable DisplayList hack for JB MR2

KitKat has a display list invalidation bug which fails to invalidate
a View's display list if it is update while detached. Looks like
this issue was present on JBMR2 as well.

This CL extends RecyclerView's hacky workaround to JB MR2.

Bug: 19308238
Change-Id: I3d78ee4976a181b0deb25b83909b1a5c6940de4a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e0d1925f5cfaeaa66a9772d1c390dbb13ee83743 12-Feb-2015 Yigit Boyar <yboyar@google.com> Make RecyclerView focusable in touch mode

When an item is being detached, it will trigger a new
focus search which looks really bad if items are focusable
as it looks junky. Making RecyclerView focusable fixes
the issue. This is also set by ListView so behavior
will be more predictable for devs.

Bug: 18863217
Change-Id: Ib41876434dbdfcf517580e6a5b0a6271c65ff85c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
136e308e613409268569fcf099823308eb39d4c4 06-Feb-2015 Yigit Boyar <yboyar@google.com> Handle sub view focus in RecyclerView

RecyclerView's child focus handler checks child's decor offsets
to ensure its decorations are also in viewport. There was a bug
in this section where if a descendant of an item view is focused,
it would crash. This CL fixes it by ignoring item decors if
focused view is not a RecyclerView child.

Bug: 19282711
Change-Id: I0f32a6d8ecfeea6f429f102b8d471251e278cd27
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6c41f9b75eacb44b2a94ea8e003f187a5493b122 06-Feb-2015 Philip Nowell <pnowell@google.com> Reduces the number of calls to getItemViewType.

Change-Id: I99ab81c9b9bad0447f8488f1e6e45d5d7568af77
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f225a3b785fe24c31aa5f75501754b974e106859 05-Feb-2015 Yigit Boyar <yboyar@google.com> Consider decor offsets on child focus

When a child requests focus, RV tries to scroll to make it fully
visibile. Previously, it was not taking decor offsets into account
which may look buggy. This CL adds decor offsets to visibile rect.

Bug: 19247249
Change-Id: I2bb613db7437038669ecdd2aaa1ee31eeceaabb2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4ef064e4d8dd8e835d878bf0c0358dff60e46733 30-Jan-2015 Yigit Boyar <yboyar@google.com> Merge "Widen the scope of ViewHolder#getAdapterPosition" into lmp-mr1-ub-dev
619ac016831a5ad75c2e0921c9036b6f030a9e63 29-Jan-2015 Yigit Boyar <yboyar@google.com> Widen the scope of ViewHolder#getAdapterPosition

getAdapterPosition in ViewHolder needs to access RecyclerView to get
the up to date position. This does not work if developer wants to
access adapter position in onViewDetached/Recycled callbacks.

This CL adds a reference from ViewHolder to the RecyclerView for the
duration it is controlled by the RecyclerView (right before binding
from the adapter till it is passed to the RecycledViewPool).

Bug: 18960075
Change-Id: I4e310aff14f827f6289caaf2b94e61288ed3fb1a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ef68828acd47ab1903ce9a4a7e0ce6b1f4d3a422 29-Jan-2015 Yigit Boyar <yboyar@google.com> Merge "Ignore hidden views for adapter helper" into lmp-mr1-ub-dev
1a2a95faea3d32075b8506f13f6d6f8292db51b6 29-Jan-2015 Yigit Boyar <yboyar@google.com> Ignore hidden views for adapter helper

When adapter helper processes updates, it is important for it
whether a View is already in the UI or not. When we run
that check, we would usually check hidden views as well.

This becomes an issue if hidden view is not up to date because
it will be recycled while trying to re-use it in pre-layout.
(end animation callback will recycle it because it is not
up to date)

This CL changes AdapterHelper to ignore hidden views so that
they can continue their animation and LM will animate the rest.

Bug: 19170543
Change-Id: Ic26efd4e2a215481415131715625d785edc4f6ef
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c452f417e833ebffad05827b9b36786cb976e532 22-Jan-2015 Yigit Boyar <yboyar@google.com> Merge "Add generic scroll support to RecyclerView" into lmp-mr1-ub-dev
a1479baf472fc836ae402d9e751b958b943c106f 14-Jan-2015 Craig Stout <cstout@google.com> am f07b5d82: Merge "Ensure only a single scroller animation callback per frame." into lmp-mr1-dev

* commit 'f07b5d820d31f6dae6c0993664439f9b5f66533b':
Ensure only a single scroller animation callback per frame.
3655d024e05cd2eabbfc9e39b662cbb73a399769 18-Dec-2014 Craig Stout <cstout@google.com> Ensure only a single scroller animation callback per frame.

Prevents build-up of tens of callbacks per frame when scrolling
a leanback browsefragment, and Helps overall animation smoothness.

b/18742856

Change-Id: I0a0b84829be00c09da4696fa88698786065f4dd3
(cherry picked from commit 6fd84d58c261e9c127f50ff789ab28dabf720fe8)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4dbd11ef441f637f32edd585248da0c914622a38 30-Dec-2014 Yigit Boyar <yboyar@google.com> Add generic scroll support to RecyclerView

This CL adds support for scrolling RecyclerView with a separate input
device (e.g. mouse).

AbsListView handles generic motion scroll as an instant scroll event,
so does RecyclerView (instead of smooth scrolling).

Since most of the necessary APIs are added on Froyo or Honeycomb, this
CL adds InputDeviceCompat to access constants in InputDevice.

It also extends the scope of MotionEventCompat to suport axis and source.

Bug: 18796745
Change-Id: I8f12d452d39b27bf2b2da425d57e87b09ac1bf26
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f9b9ce76405345744bd57482d21c35a657836f87 12-Dec-2014 Yigit Boyar <yboyar@google.com> Make SwipeRefreshLayout RecyclerView compatible

This CL introduces a ScrollingView interface which makes computeScroll**
methods public so that we can calculate canScrollVertically|Horizontally
prior to API 14.

Bug: 18680011
Change-Id: If89ce3947d6638e38ab82b1c0e65303f38b3dbb5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
78f659a66b021d5d0e36800a7144e956d8054cea 09-Dec-2014 Yigit Boyar <yboyar@google.com> Don't stop scrolling if scroller reports 0 diff

Bug: 18667843
Change-Id: Ie05dbc2b198ee7b5eb83bf36e9c7f01e59b5e14c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0c9222b8ff65798fa394eb4df49755a34150c1d5 02-Dec-2014 Yigit Boyar <yboyar@google.com> Merge "Enable getAdapterPosition when View is rebound" into lmp-mr1-dev
e37d2e63f16bc5c2938e372238ba54679a9e578e 27-Nov-2014 Yigit Boyar <yboyar@google.com> Enable getAdapterPosition when View is rebound

getAdapterPosition used to return NO_POSITION if data set has changed
after the last layout and the next layout is not complete yet.
This would be a problem if RecyclerView already processed adapter
updates, rebound the view but has not finished the layout calculation.

This CL starts tracking position invalidation per ViewHolder and
removes the flag as soon as it is rebound. This way, when
ItemDecoration callbacks are called, developers can access adapter
position.

This CL also adds a test to ensure that ItemDecoration callback
promise is kept so that we don't break it in the future by mistake.

Bug: 18524432
Change-Id: I3fc7ac9b0d78bd87b1b85ed15c99af89e252c58b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3f937299abacc5ff1be7a5ffa91793396aca0a57 26-Nov-2014 Yigit Boyar <yboyar@google.com> Remove transient views if necessary

This CL fixes a bug where if a disappearing ViewHolder's animation count
reaches to 0 but it is not removed due to its transient state.
We don't care about it anymore and let Adapter decide if it is recycleable
but we should still remove it.

I would actually prefer to update ViewHolder#isRecycleable but it is public
API and changes may break external code so created a different internal
method.

Bug: 18248568
Change-Id: I6a89bc0a2249ea4f0effc90ef2636e1ce69e283f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4965046abec63014d2a5e7f72f6c9e11b73a4907 25-Nov-2014 Yigit Boyar <yboyar@google.com> Trigger on scroll callback if position changes during a layout

Bug: 18433923
Bug: 18248568
Change-Id: Iae93ebe2f9c850aee70c2efcd71f2da7301940ae
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
9c0a9654497b759feef634e3d574c511d4d4ef4e 25-Nov-2014 Yigit Boyar <yboyar@google.com> Merge "Fixed minor bugs in RV's scroll handling." into lmp-mr1-dev
670a72b9301fa53a763344036e4d3ff1995f36df 24-Nov-2014 Yigit Boyar <yboyar@google.com> Fixed minor bugs in RV's scroll handling.

This CL fixes two issues related to how RV handles scrolling.
Previously, if layout manager supports scrolling in both directions, RecyclerView
would stop flinging if LayoutManager cannot scroll as much as requested
in both directions. Now, it continues even if only one of them is fully consumed.

This CL also fixes a bug where if fling or smooth scroll is manually called, we would not
check if LayoutManager supports scrolling in that axis. This would result in unexpected
calls to LayoutManager which may create problems if it is a generic one that supports
both orientations (like the default ones). Now, we'll check if LM supports scrolling
in that axis in public scroll/fling methods.

Bug: 18208220
Change-Id: Ia8e30a3b822b06cf275ae6c2de7e64b8e70e4d59
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
115ba0c7b2a14aa4cd0273952195e1d8f6468f87 10-Nov-2014 Yigit Boyar <yboyar@google.com> Deprecate ViewHolder#getPosition

getPosition methods in RecyclerView were ambiguous because of the deferred
handling of adapter updates. To avoid future confusion, this CL deprecates
methods that receive or return "position" and introduces two methods that
receive / return "layoutPosition" or "adapterPosition".

This will help developers get the exact number they need (e.g. the position
in adapter vs the position user is currently seeing)

The following methods have been deprecated:

RecyclerView#getChildPosition
RecyclerView#findViewHolderForPosition
ViewHolder#getPosition
LayoutParams#getViewPosition

Bug: 18213371
Change-Id: I52667bd43e32fc55de8861f5fdc01a0aa7fbe60f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d17ce72488bb0b13b34a3684c86e48c230b6a5a4 21-Nov-2014 Yigit Boyar <yboyar@google.com> Merge "Add an API to let Adapter recycle transient views" into lmp-mr1-dev
e2437126f0225135891544315ff72e54c7de0f59 05-Nov-2014 Yigit Boyar <yboyar@google.com> Add an API to let Adapter recycle transient views

Bug: 17783452
Change-Id: I70f2386b6f7d88e78a389a7fc1f583d0f1c45c0e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
abd0fbfcdd5b438909f126392eca5978b5939b6d 19-Nov-2014 Yigit Boyar <yboyar@google.com> Guard layout managers calls not to crash

Previously, RecyclerView would crash if a call should be handled by Layout Manager
and it is not set yet. Although this makes sense, there are some cases where
developer would like to set LayoutManager after checking some other logic or
RecyclerView is attached/detached w/o being setup. This CL guards a bunch of
public calls to print an error if LayoutManager is not present, instead of crashing.

Bug: 18444564
Change-Id: I666ea346a615ca5338af32b25774bf90bbcb551c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cde1904360f40242927aed189f7ee7fc7e3ac0e3 13-Nov-2014 Adam Powell <adamp@google.com> am 6259936e: am 150903e5: Touch slop modification for RecyclerView

* commit '6259936e9266aeace2e6acbe02fae2a840c6fced':
Touch slop modification for RecyclerView
150903e517bf7c5a992674a6899e6427cd036d76 12-Nov-2014 Adam Powell <adamp@google.com> Touch slop modification for RecyclerView

Provide a way for apps to declare that they are using RecyclerView for
a specific purpose and therefore need a touch slop value different
from the default value reported by the system.

Add a touch slop configuration for paging. (e.g. ViewPager)

Bug 18257096

Change-Id: I9733126ec24e29378cca830b7871dda65b5e53d2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
92a1de7cf4a073e0f201f482722e613c33003f5b 11-Nov-2014 Yigit Boyar <yboyar@google.com> Merge "DO NOT MERGE Fix RecyclerView's child focus rect calculations" into lmp-dev
6c0f598533402efa1b08045e6850d1fac92818cf 11-Nov-2014 Yigit Boyar <yboyar@google.com> Merge "DO NOT MERGE Don't create accessibility info for removed items" into lmp-dev
c546ca2a483b19e357ab55a8d739ba6004312025 11-Nov-2014 Yigit Boyar <yboyar@google.com> Merge "DO NOT MERGE Check for notifyDataSetChanged calls when processing adapter" into lmp-dev
fad47f22e7a701410074a20137e5e51f9ff440ab 16-Oct-2014 Yigit Boyar <yboyar@google.com> DO NOT MERGE Fix RecyclerView's child focus rect calculations

When a child of RV requests visibilty for a rectangle, we were calculating the width
and height wrong, causing unwanted scroll. This CL fixes it and also disables the
event if it arrives during a scroll or layout

Bug: 17980781
Change-Id: I9584958ae0b208e4a3544d8d36f36d1b283fe6f0
(cherry picked from commit 5794eb556a5b2407fb6bebceba2cc1a032b9f27e)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fa66d6838610841f5577ada0221077da1fb99e8d 04-Nov-2014 Yigit Boyar <yboyar@google.com> DO NOT MERGE Don't create accessibility info for removed items

Bug: 18091923
Change-Id: I162cb0bb49ad7d8b9bf8d03c76b71fc99fd78cc1
(cherry picked from commit 086733fbb01e659a6bee96aeeff138ce1844e07b)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cf8c77256c4d7079099d506a03af2f1c25b0ce7b 03-Nov-2014 Yigit Boyar <yboyar@google.com> DO NOT MERGE Check for notifyDataSetChanged calls when processing adapter

Bug: 18182313
Bug: 18208149
Change-Id: I34013523b6b47ba3859ebb1bafa3ee433b51c75f
(cherry picked from commit 17d560c4a247dbfb795a2ea838c819cda77e5fa7)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c110be5ead608d60a4e30307c46f51205ca51b10 03-Oct-2014 Yigit Boyar <yboyar@google.com> DO NOT MERGE Fix RV's onViewAttached/detached callbacks

This change also fixes a bug in DefaultItemAnimator.

Bug: 17599182
Bug: 17881182
Change-Id: I4adadeb5d2d7d5aaef0f253eac52d2624de73d5e
(cherry picked from commit 90ca3086dbf66ad6bb8840e46ec8524a705e1c18)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
086733fbb01e659a6bee96aeeff138ce1844e07b 04-Nov-2014 Yigit Boyar <yboyar@google.com> Don't create accessibility info for removed items

Bug: 18091923
Change-Id: I162cb0bb49ad7d8b9bf8d03c76b71fc99fd78cc1
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
17d560c4a247dbfb795a2ea838c819cda77e5fa7 03-Nov-2014 Yigit Boyar <yboyar@google.com> Check for notifyDataSetChanged calls when processing adapter

Bug: 18182313
Bug: 18208149
Change-Id: I34013523b6b47ba3859ebb1bafa3ee433b51c75f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
2556d9b0d386915843da11be97a1a86fa9416f5e 20-Aug-2014 Mark Wei <markwei@google.com> DO NOT MERGE Only call #requestDisallowInterceptTouchEvent on the parent if #scrollByInternal consumed any scroll in either direction.

Add return value to #scrollByInternal to return whether any scroll was consumed in either direction.

Change-Id: Ifa2177e30dcdccc4832e78a78c86dea756f06884
(cherry picked from commit bbdd1b82ef6edc1bb5fee9e7c6e116a8a086fcb9)
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
453a20a62b58f663bb4a8df3325b41c6f1c0a7b4 27-Oct-2014 Yigit Boyar <yboyar@google.com> Merge "Clarify findViewHolder method documentations" into lmp-mr1-dev
41c6a88599d7611e6628bca965749c21e8ef8d47 17-Oct-2014 Yigit Boyar <yboyar@google.com> Clarify findViewHolder method documentations

Bug: 17960853
Change-Id: Id34d4db31c114d001b4f96353a4127441011eb13
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
90ca3086dbf66ad6bb8840e46ec8524a705e1c18 03-Oct-2014 Yigit Boyar <yboyar@google.com> Fix RV's onViewAttached/detached callbacks

This change also fixes a bug in DefaultItemAnimator.

Bug: 17599182
Bug: 17881182
Change-Id: I4adadeb5d2d7d5aaef0f253eac52d2624de73d5e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
62de6c980de09f2c437652cec60d3f1dd4364fa7 22-Oct-2014 Yigit Boyar <yboyar@google.com> Merge "Fix RecyclerView's child focus rect calculations" into lmp-mr1-dev
5794eb556a5b2407fb6bebceba2cc1a032b9f27e 16-Oct-2014 Yigit Boyar <yboyar@google.com> Fix RecyclerView's child focus rect calculations

When a child of RV requests visibilty for a rectangle, we were calculating the width
and height wrong, causing unwanted scroll. This CL fixes it and also disables the
event if it arrives during a scroll or layout

Bug: 17980781
Change-Id: I9584958ae0b208e4a3544d8d36f36d1b283fe6f0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
824a7db96feacf3b68f56993ed72712bc935153e 14-Oct-2014 Yigit Boyar <yboyar@google.com> RecyclerView should call correct adapter on swap

Bug: 17687329
Change-Id: I35bc785e6c64d1fd0844286766e8ddb59d061737
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d58fec35d48d3b48a27987262c3e231cfa9dbf53 09-Oct-2014 Yigit Boyar <yboyar@google.com> Merge "Clear accessibility delegete from recycled views" into lmp-mr1-dev
9c2b7d097933db121b8e3ee956c3aa1029b9c44d 09-Oct-2014 Yigit Boyar <yboyar@google.com> Enable change animations by default in RecyclerView

Bug: 17470078
Change-Id: I801fee8f094be837f698d8192563edacd8ecf872
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d392c8cae159a3a9a416200f4e117634bdbf064e 09-Oct-2014 Yigit Boyar <yboyar@google.com> Clear accessibility delegete from recycled views

When a view is recycled, RecyclerView should clean the accessibility
delegate. Not doing so was causing problems if View is added to
another container which is not a Collection

Bug: 17739472

Change-Id: I45c5895342f33fa485daae178ad508bda0fb4f68
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c774dadb5fc72bca35f16dd87cf3ac256d8d8c4c 03-Oct-2014 Yigit Boyar <yboyar@google.com> Channel detachView(view) method via childHelper

Bug: 17811893
Change-Id: I217bb9c9d3464f09b956fe321bd367eebfb5e26d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c13b4e15a08da12b094ddd08760c3983be3174ba 27-Sep-2014 Yigit Boyar <yboyar@google.com> Merge "Add documentation to RecyclerView.Adapter" into lmp-dev
59b0d307a6011603af030f407adf7f442270ff73 26-Sep-2014 Yigit Boyar <yboyar@google.com> Add documentation to RecyclerView.Adapter

Bug: 17671775
Change-Id: Ifd95e8c704c14e5f86f10894bc56e5e9f4bed3fe
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
bb6ebab3b3b85ec20b3bc262289a2460705322f5 25-Sep-2014 Yigit Boyar <yboyar@google.com> Set scroll state when stop scroll is called

Bug: 17644072

Change-Id: Iac0b0cff4ee06b461cebb6e933a5a712a06a7a4e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b2090541871a8efb3d07f13d6f062ff6184e0827 21-Sep-2014 Chet Haase <chet@google.com> Replace continue with break

The current code continues iterating through the loop, when the intention
was to break after finding a match.

Issue #17588980 Missing break in dispatchLayout

Change-Id: I98121b92bd04ea0eb21990094a960cb50e7429e6
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
888fd59cf92d15a843518c84a1ef3914fd968a98 16-Sep-2014 Svetoslav <svetoslavganov@google.com> Fix a NPE in Recycler View

bug:17513773

Change-Id: I31b4e15542180100f0a1a102b3071d6d152f0b29
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4b9b4d3fca81486051bac9aadb73d8865948c3bf 12-Sep-2014 Yigit Boyar <yboyar@google.com> More adapter helper tests and bugfixes

Move operations are harder to handle because they break
continuity. With this change, AdapterHelper will first
reorder ops to push them to the end of the list then
process as usual.

Bug: 17457999
Change-Id: Ifb95264adf75a59b81fcab02269047681a26333c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ef45c7a86f619561da341346a31ea9ac9814c29f 11-Sep-2014 Yigit Boyar <yboyar@google.com> Fix reference to wrong build

Bug: 17411052
Change-Id: I13aea08560289bfbaaf704187e43e3872206c548
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a910619e83d0052e1d81aa5fe532821a2f99d76c 09-Sep-2014 Yigit Boyar <yboyar@google.com> Add a11y support for RecyclerView

Bug: 17411052
Change-Id: I9ef93f0bb072e190d6017ee991e6d2c0ab119a62
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
62f48726406b8be9ff7f990564bc82febefde931 05-Sep-2014 Yigit Boyar <yboyar@google.com> Merge "Fix GridLayoutManager's reverse scroll" into lmp-dev
061c3284cf284424ae084799dd7ba5c8d6d59faa 01-Sep-2014 Yigit Boyar <yboyar@google.com> Fix GridLayoutManager's reverse scroll

This change also fixes a bug where GridLayoutManager was not
respecting the size in LayoutParams (in scroll direction).

Bug: 17338285
Change-Id: I80f5fdd7c46f4ed2c7357f89c3556b0a7ed59d85
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a5dc6f3eb86aacd2b287f6ea588aa1d900f6702a 01-Sep-2014 Yigit Boyar <yboyar@google.com> Return first level focused child of RecyclerView

Bug: 17340646
Change-Id: Ic583cd54984f46dc3c8dfa3b65cb60dcd923cf69
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7105f33709abaa02f1c5a911045886d8faed226a 29-Aug-2014 Yigit Boyar <yboyar@google.com> Merge "Call invalidate when detached child is rebound & added" into lmp-dev
0ec96558f829719283bb1a49ff218c3ce1430626 28-Aug-2014 Yigit Boyar <yboyar@google.com> End all animations when RV is detached

Bug: 17307859
Change-Id: Ia213d52ab79f8c80bdfb5321e7a726876b8554a2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
2fa9ba9bab24354d4a279b4a5e4d05ddc9b80938 28-Aug-2014 Yigit Boyar <yboyar@google.com> Call invalidate when detached child is rebound & added

Bug: 17299435
Change-Id: I393fc5d8066fbc13cdacb1855419932a35934225
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
42c4af4ff383daf001263ae18a9b00b9fbf87487 23-Aug-2014 Yigit Boyar <yboyar@google.com> Clean old positions for unused scrap views

Bug: 17144600
Change-Id: I810edc10d110b9473e2bb5a2ce80d193359c1133
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7545ae95dc15e2e4365dfeb2720cce6ffdd63082 20-Aug-2014 Yigit Boyar <yboyar@google.com> Merge "Fix adapter's onViewDetached callback for animations" into lmp-dev
cb3e8e071d7d7dd06a2ce21c3e3376ee988ac109 19-Aug-2014 Yigit Boyar <yboyar@google.com> Fix adapter's onViewDetached callback for animations

Bug: 17069397
Change-Id: Ic29c46e38b838f41a47cb1795832d4300c87f889
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
93d88283955af6643f2ea0f3cc6cbc34ea49f181 18-Aug-2014 Yigit Boyar <yboyar@google.com> Recycle a view if it is added then removed instantly

Bug: 17096150
Change-Id: I6115512f71598f88fdc631ff50f7a1c4f7dc4481
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
950ba62a354885861a47e2e56ad46e2b99ac4e9e 14-Aug-2014 Yigit Boyar <yboyar@google.com> Don't mark cached views as changed

Bug: 17019652
Change-Id: Ic4aa9bdd5a273bc57c550d420cb1c59c7869c5bc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
18ae336dbaae3db982f38cde08936c9f0243757b 14-Aug-2014 Yigit Boyar <yboyar@google.com> Make sure views are not re-added to disappearing list

Bug: 17020852
Change-Id: I044ae613ac00e2bd0b1ec7928fac9a5ca09c3f59
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d18ad0e2b5268420e252382f3524d535826aae6e 14-Aug-2014 Yigit Boyar <yboyar@google.com> Merge "Check all pending animation groups in DefaultItemAnimator#isRunning" into lmp-dev
047e1151b1ce6965f5578eac83ee1ac3cf524ba7 13-Aug-2014 Yigit Boyar <yboyar@google.com> Check all pending animation groups in DefaultItemAnimator#isRunning

I also added a test case class for DefaultItemAnimator

Bug: 16958409
Change-Id: Id410890d146afeb953e934358e9c2ba12c14bc07
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
36e2603548ec837e49e4ae6e9413e082ccfb376c 14-Aug-2014 Yigit Boyar <yboyar@google.com> Merge "Ignored views should be ignored by getViewForPosition" into lmp-dev
f485be9def4c0f72cfdfa6b0c616c23f04652817 13-Aug-2014 Yigit Boyar <yboyar@google.com> Ignored views should be ignored by getViewForPosition

Bug: 16950247
Change-Id: I3940ce3b049a3ae718706c503b0404f3fda43ffd
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
01814b4356a90ec5bbb42ce060e54c30a552fec0 14-Aug-2014 Yigit Boyar <yboyar@google.com> Avoid velocity tracker NPE in RecyclerView

Bug: 16980122
Change-Id: I96c460542f1b12484b396b86ae9d35b3b0f82eb6
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e7acc857d898ab8fedb82d0113202ce008f0c7c0 08-Aug-2014 Chet Haase <chet@google.com> Remove deprecated method in RecyclerView.ItemAnimator

Issue #16399347 Add to ItemAnimator onAddFinished, onRemoveFinished, and onMoveFinished

Change-Id: Ib956416ea0f029b9bb5113fb291cda7bf897a4a9
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4d0ec6f430fd1e0228e5465a7973f50438bf2949 08-Aug-2014 Yigit Boyar <yboyar@google.com> Merge "Provide an API to map pre-layout positions to adapter" into lmp-dev
4bacf13ec17763ba2e2d049d32a4a1dcca77a433 07-Aug-2014 Yigit Boyar <yboyar@google.com> Provide an API to map pre-layout positions to adapter

This CL also fixes a bug in AdapterHelper where it was not handling
it properly when a moved item is removed at the same layout pass.

Bug: 16192614
Bug: 16823251
Change-Id: I30e66e75a85f0396381c9a4f1dea8bf20655e4bc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5e79cc4e2c96b0dd1d4de6f3208f9da3bcb69d26 06-Aug-2014 Yigit Boyar <yboyar@google.com> Provide a public method to calculate decor insets

Bug: 16842411
Change-Id: I3fa347d8f99da26b3afbf675334f670db710ca45
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a64498c53faef538d3fb31166ac71c2d826198cc 06-Aug-2014 Yigit Boyar <yboyar@google.com> Stop ViewFlinger when layout does not consume full distance

Bug: 16573996
Change-Id: I3a586f22637e709d345d96d2dce3f14974a48eb3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
02e8289d7a68e5917d5fc04b6ebde51ac95feaac 05-Aug-2014 Yigit Boyar <yboyar@google.com> Merge "Improve LinearLayoutManager's re-layout handling" into lmp-dev
310e95e1c6dfe4f26ef594233e65e1ff83e0f1ff 01-Aug-2014 Yigit Boyar <yboyar@google.com> Improve LinearLayoutManager's re-layout handling

This CL fixes a bug in LinearLayoutManager where it was not respecting
stackFromEnd/reverseLayout parameter when RecyclerView is resized.

With this CL, LLM also considers focused child when selecting the anchor
item so that focused child stays at the same position.

I also cleaned up some code and moved complex stuff to separate methods.
This should help make the code more readable.

Change-Id: I8427ee60ee45c337e7e670853d4eeb002592048e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e321eb5c831282c92a28a483692d8520b766a0a5 04-Aug-2014 Chet Haase <chet@google.com> Add methods to ItemAnimator for listening to animation events

Subclasses of itemAnimator can now override new on*Starting() and on*Finished()
methods to find out when animations are starting on specific ViewHolder
objects.

Issue #16399347 Add to ItemAnimator onAddFinished, onRemoveFinished, and onMoveFinished

Change-Id: Id9b47e3f743d5cb53f261a4db58cfdf4ed911005
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8b6069452294cf0845f6da5908d35040c86c1650 30-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Corrected onChange animation documentation" into lmp-dev
8c919d867f4172ff2f5f28334b1142df9ba26e8b 30-Jul-2014 Yigit Boyar <yboyar@google.com> Corrected onChange animation documentation

Bug: 16656145
Change-Id: If06bf79ab39278c9dc6d6dc5511aa9eeec0bfa16
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
66a5670ac0e58e1d08f6af57b13648c1ab9df441 26-Jul-2014 Yigit Boyar <yboyar@google.com> Change public recyclerview to unscrap views

Bug: 16201361
Bug: 15910842
Change-Id: I5453f9ed33c88c5a0d92f617a4f57cf938be4ec0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c7092783df339e83f46df8d233969f9e059ce0c8 30-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Clarify RecyclerView.LayoutManager#getItemCount behavior" into lmp-dev
931e448545eb21875a7e11c121822921ee084817 26-Jul-2014 Yigit Boyar <yboyar@google.com> Clarify RecyclerView.LayoutManager#getItemCount behavior

Bug: 15410611
Change-Id: Iadc6fd3cf535f8d53e672cf5ea1da8fbeb5e452b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ee30f03253207f694cc46063b0c8c7cb91d24a6e 28-Jul-2014 Yigit Boyar <yboyar@google.com> Update scroll target if it is removed while scrolling

Bug: 15933296
Change-Id: If576382c3ca64060bc62cd9437c7b6993b8ccb11
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a87ca5a4e00bd446073cf11f75af9bd45fc7a07f 29-Jul-2014 Yigit Boyar <yboyar@google.com> fix broken links in RecyclerView documentation

Change-Id: I7714fdaa8bd761c5f5454f89d207cd4a97205c4f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ab4950e7752a69a4bab6bf2d20d881135108f32f 29-Jul-2014 Yigit Boyar <yboyar@google.com> Fix build: Removed reference to an old method

Change-Id: I144283444cc9b1f17ddcecd96cc443c85a47f2fc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
20bdc1249666a6bbdf226f7afab52ce27828dee0 28-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Add support for parellel move and change animations" into lmp-dev
a29fe6d4967a704799dc83d35ba80e426e9512cf 24-Jul-2014 Yigit Boyar <yboyar@google.com> Add support for parellel move and change animations

If an item moves during a change animations, now it is also animated to the new location.

We still dont support moving a changed item while it has a shadow. Right now, changed item
jumps to final state while shadow is still fading out.

Change-Id: Id73becbc6832b921a8b11c4999f3da0435e26680
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
bc2c6d6432a227d46a43fd18eb204d89ca472064 25-Jul-2014 Yigit Boyar <yboyar@google.com> Add an API to mass invalidate decor offsets

Bug: 16549198

Change-Id: I24c40aef0a988622d256214fb58e1c2a2daf43c0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7c7fba8365684e1ccfc4f39f286df4d100c6c81f 21-Jul-2014 Justin Klaassen <justinklaassen@google.com> Support predictive change animations

Currently appearing views are not positioned correctly when performing a
predictive animation due to a change in the underlying dataset. To allow the
LayoutManager to supply pre-layout info for the appearing views, allow the
changed view to be scrapped and preserved during the pre-layout pass / change
animation.

Bug: 16040380
Change-Id: Ib4ed1b4fee1965cae356e6ba1b6e6d7a8ea52e67
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
5cfed5428d421f179f83382ad72ec6edd11a066d 23-Jul-2014 Yigit Boyar <yboyar@google.com> Update state on onMeasure call in RecyclerView

Bug: 16187385

Change-Id: Ifee446c47d49536327f34233a853929c6cf2a196
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e0110f4c5dca898db2cc6ee2c5bde64416e52a96 22-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Add methods to get decorations in each side." into lmp-dev
e772f07349e4d9d359e0acca29d27fe6e184db70 22-Jul-2014 Yigit Boyar <yboyar@google.com> Add methods to get decorations in each side.

Bug: 16113209
Change-Id: I145612c35b5177a5841dfcb95745494346663666
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6f2e6bb7c3d11950dbbb194151fea12916bd7e71 22-Jul-2014 Yigit Boyar <yboyar@google.com> Recursively invalidate display list on detached views

Bug: 16372890
Change-Id: I9789cb26a8880ec66a2234dc10cd6f6685c50fe8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0b1059b711009601ff08354e2df6bfc45266e80a 21-Jul-2014 Yigit Boyar <yboyar@google.com> Add swapAdapter method to RecyclerView

Bug: 16315373
Change-Id: Ia790aff458d2ca61ec403dd9887d9758eb74f47a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a5cfdf6e647d34c66b7df8688cb35d9a3b7b24a0 19-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "RecyclerView should skip ignored children in mass recycle" into lmp-dev
24e05b1d19b94e2258a6a07c508b17600b71b2c6 18-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Invalidate RecyclerView during animations" into lmp-dev
e3d27c97eb0769997cd9d73baabffff70551efe0 18-Jul-2014 Yigit Boyar <yboyar@google.com> Invalidate RecyclerView during animations

Bug: 16241985
Change-Id: Icac7f6d035095f2937a2628fa59af056ba6aa478
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
18f44fd3da1e99bf58fdbadc43deca4d2c5080ff 18-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Check for NPE on focus callback in RecyclerView" into lmp-dev
cef7b4942bacc862ea4eac66952e9f7aba027d18 15-Jul-2014 Yigit Boyar <yboyar@google.com> Update RecyclerView scroll listener API

This change adds RecyclerView as a first parameter to the scroll related callbacks.

It also fxies a bug where scroll callback was being called w/ the intended scroll
amount instead of the real scroll amount.

I also changed it to be an abstract class instead of an interface to make future
changes easier.

Bug: 16054949
Change-Id: I99a1f91dcd442c1ac3ad1ed7dbf4598d1cee9c28
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c032ec5462f6c7c07031310090e23af65841deee 18-Jul-2014 Yigit Boyar <yboyar@google.com> Track clip to padding variable in RecyclerView

* Changed edge effects to respect clip to padding
* Improved LinearLayoutManager support for clipToPadding=false

Bug: 16353602
Change-Id: I58957b03766594121404bbb8187c57ed1d8ea74e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7f65de5b5acda0b08e1eea2687a92d90148230ca 18-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Fixed RecyclerView EdgeEffect positioning" into lmp-dev
1bcda2c4c2c4224dcdccd621c0c376645acefd0a 17-Jul-2014 Yigit Boyar <yboyar@google.com> Check for NPE on focus callback in RecyclerView

Bug: 15521068
Change-Id: Ifd64708d92a988f05bb99564d5885c59a2c2c2a7
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
1faed0c7c20fc3a0b7befabbac1beac1019effc7 10-Jul-2014 Yigit Boyar <yboyar@google.com> Add move operation to RecyclerView adapter

Bug: 16127440

Change-Id: Iefd305e714a4bc6dad5f071dfba92aa5c5af8ca3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
504c54ea52c1b2aae6f8f4ae128f1dcaac7e3f6a 13-Jul-2014 Yigit Boyar <yboyar@google.com> Support animations during multiple layout calls

This CL also fixes two bugs related to view recycling
* we were moving views to cached view list w/o checking if they are recycleable or not
* AdapterHelper had a bug where it was checking missing views via < -1 instead of == -1

Change-Id: I7d70c1b884c3af046ba78924c9a966f83cda99f0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6e560171b774afafd572b1896becac7b308a92e6 16-Jul-2014 Yigit Boyar <yboyar@google.com> RecyclerView should skip ignored children in mass recycle

Bug: 16322508
Change-Id: Ieddc317771538c7cdab29a2e4898df05706fd6ba
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
decaa3d79db8d5064193401cffe870de1916ea9d 14-Jul-2014 Yigit Boyar <yboyar@google.com> Fixed RecyclerView EdgeEffect positioning

Bug: 16009048
Change-Id: I1cb4c96449d7474e20d7ea5a426d8e863c76396d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
76e3f987878e9ab5f0ad783a94ae9f1e6b78a435 13-Jul-2014 Yigit Boyar <yboyar@google.com> Use fully qualified class names to fix sdk build

Change-Id: I70ba5d7146193e816b372811e9b15032d7beafbf
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fe887e2ef94f19c4c8808bf65d7d3bb79511e18f 01-Jul-2014 Yigit Boyar <yboyar@google.com> Added custom view cache support to recycler view

Bug: 15991371

Change-Id: I6c775d3d610e1a824683aef6f60f141bf344eea9
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cadd54707a7aaa4cfa9c8b8051c6185e8717f22e 11-Jul-2014 Chet Haase <chet@google.com> Invalidate ItemDecorators more aggressively

This CL also changes the ViewDecorator API to receive View and State instead of position

Bug: 15699227
Change-Id: Ie4deb49eed803540a3bd274454d2e67d2f34a50d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
08d9f8fcfb271a508e82c6b845608e764727ccaf 11-Jul-2014 Chet Haase <chet@google.com> Merge "Add RecyclerView animations for change actions"
235114f0ea0ae165e74a478f39bfc586392c53aa 09-Jul-2014 Chet Haase <chet@google.com> Add RecyclerView animations for change actions

Issue #15691746 RecyclerView item animations for changed/resizing item views

Change-Id: Iacfda5b2508b20c8de3ea5ec9547e0f4d527d05e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
38efc791651510a8bc815a707e105554e3bf99f2 11-Jul-2014 Yigit Boyar <yboyar@google.com> Fix RecyclerView to recyle invalid scrap properly

Bug: 16210009
Change-Id: Id4cdf1ef87aaa52581009b651690abbf90ad4522
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8da5bba529a2fe9bd2aafab28010e11ec4de93c7 08-Jul-2014 Yigit Boyar <yboyar@google.com> Reset ViewHolder when it is passed to/from RecyclerPool

* Fixed a code path where cached views may be sent to recycler
even if they are not recyclable. Did some cleanup on how
cached views are handled.

* This CL also fixes a small NPE when we scrap a view holder

Change-Id: I172fbedf0d3ba06b4121fa275d8fa62c583b91b5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6e43f4f95e3ce4a8a14d7ecf0b14a647eba72e93 08-Jul-2014 Yigit Boyar <yboyar@google.com> Merge "Fix StaggeredGrid layout to support clipToPadding=false"
c8b0ff5869e17a656a3a1d7fb306efa5b99fa07f 07-Jul-2014 Yigit Boyar <yboyar@google.com> Improved how RecyclerView handles stable ids

RecyclerView can re-use views via stable ids but it was going into an
inconsistent state if an item is removed and re-added in the same layout pass.
This CL takes care of that case and handles it as if item has moved.

Bug: 16081401
Change-Id: Ic0bec5061a4958111c8e43a1cd6634cd90d975b5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0ae47e8ceb8062ba460c74149b009cf7914388ea 02-Jul-2014 Yigit Boyar <yboyar@google.com> Fix StaggeredGrid layout to support clipToPadding=false

This change also introduces a way to LayoutManager to force simple
animations if possible

Bug: 15988721

Change-Id: I3726090f9510c14732f67b19e0eab2340cda562e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0bdfd8728199045676f3ad6c6571e7080099716f 30-Jun-2014 Yigit Boyar <yboyar@google.com> Validate layout and scroll only methods in RecyclerView

If an adapter update method or LayoutManager configuration method is called
during a layout or scroll; it creates very hard to detect bugs.

With this change, RecyclerView, LinearLayoutManager and
StaggeredGridView starts checking some of these potential mistakes.
Coverage can be extended.

Bug: 15615904

Change-Id: I07a4fcf59d02af09e634b4a4eff090538d051d3e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e0c347f627f8a78d3e5e3e5eaac9c3ae26208689 24-Jun-2014 Yigit Boyar <yboyar@google.com> Run simple animations if adapter has stable ids

Previously, if adapter calls notifyDataSetChanged, RecyclerView would
disable all animations since the world may have changed unexpectedly.

With this change, RecyclerView takes advantage of stable ids when views are
returned from scrap/cache so that we can animate these views to their new
locations / positions.

This change also fixes a bug where cached views would not be recycled if
notifyDataSetChanged is called. Now, if adapter does not have stable ids,
cached views are recycled. If adapter has stable ids, they are retrieved
via stable ids.

Bug: 15692095
Bug: 15857302
Bug: 15632007

Change-Id: Ic321dfeb3438e47a0f7606a857511eb821161a0e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
bbf19899050278ae64da0a8bfce209a9f359c853 27-Jun-2014 Yigit Boyar <yboyar@google.com> Do not trigger layout when RecyclerView is detached

Bug: 15911289
Change-Id: I654bdcdadf94956b917614e0a3fbee214877e4d8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
49c83b12201dde5b93d4eca3d44478e0c967a2e6 26-Jun-2014 Yigit Boyar <yboyar@google.com> Pass recycler to LayoutManager#onDetach callback

Bug:15736907
Change-Id: I6cd50800ebae0ff10b99665fcda77b0da411065c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
501b13667b2cc4426b7b69e015a1ded9c0b13352 28-Jun-2014 Yigit Boyar <yboyar@google.com> Merge "Fixed a bug where RecyclerView would not re-bind invalid children"
03a57e1f233833f7d5706bfacb0d5c84d4a039e9 27-Jun-2014 Yigit Boyar <yboyar@google.com> Fixed a bug where RecyclerView would not re-bind invalid children

When an adapter update happens which does not include item addition-removal, I was checking
the wrong boolean which was causing views not being rebind (or layout not being invalidated)
This CL addresses that issue with some other updates in StaggeredGridLayoutManager test

Change-Id: I7f39713b5dc3e5d66306677f06db9774df6f75ff
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3ed05355fded55e438477b23a1864c3b6d129342 27-Jun-2014 Yigit Boyar <yboyar@google.com> Fixed RecyclerView edge effect problems

This fixes an issue where RecyclerView glows were not drawn in correct location.

It also changes how LayoutManagers handle padding. Now LinearLayoutManager and
GridManager both ignore padding for recycling.

Bug: 15262561
Change-Id: Id760ace44b809f37ee4a905dcb0d56c1583ae072
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
668e774379c036a5d53d07ec69ed9ebee13a1fd9 20-Jun-2014 Yigit Boyar <yboyar@google.com> Track hidden views to allow interleaved disappearing children in RecyclerView

RecyclerView used to put animating views at the end of the view group list
which may cause problems if views overlap. Instead, this implementation keeps
track of hidden item positions.

This CL also removes the requirement to not to call addView for disappearing
children. Instead, LayoutManager can add children via addView (if it is removed)
or addDisappearingView (if LayoutManager want to remove it) and RecyclerView
will hide those views from the LayoutManager after the layout pass is complete.

This CL also enabled animations even if no item changed notifications are
received from Adapter. This is useful when LayoutManager changed how it lays
out views w/o any change in the adapter. LayoutManger can still disable this
feature via existing animations callbacks.

Change-Id: I1aee1832ba1d4e5aff4213bc73fa77a52b70a83d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fe3996cf5af65fe11cc3ed47b67123ec267bd336 18-Jun-2014 Yigit Boyar <yboyar@google.com> Do not scrap invalidated views in RecyclerView

Bug: 15703871
Change-Id: Ib765ddd2ea5b5d897879f2387e8ae6a9f98e555e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
08232ee3340c1ada9f66f8a7f8af9668a51fd32f 20-Jun-2014 Yigit Boyar <yboyar@google.com> Merge "Improved how RV handled item update notification"
50a99fd5de3a9878edbc16e03bda9ea555c71452 19-Jun-2014 Yigit Boyar <yboyar@google.com> Improved how RV handled item update notification

Change-Id: Iafee2f1dc205371b46fc815c85ab9a12ff72221f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
db1a59e506abf901e4415ffb05007d6aebbef9cf 20-Jun-2014 Yigit Boyar <yboyar@google.com> Eat request layout when animation is finished in RecyclerView

Bug: 15748748
Change-Id: I00ad2531af999cc450260f5a4291d0421b0740c3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
72f8976c85b97f828bbec7b1f2df65b46b570d13 20-Jun-2014 Yigit Boyar <yboyar@google.com> Fixed the scrap view tracking in RecyclerView

Bug: 15750784
Change-Id: I44e063c9136cfc3f91b24a080217d9ee840c7950
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
94c0b086c12e634976fecd47d442bc7a1a6341bb 17-Jun-2014 Yigit Boyar <yboyar@google.com> LLM cleanup

Change-Id: Ib4c9571855dc9a0be6bc5931536e37ff686f5c7d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
1dab44e92c6ae06adce342a1df899ac754f51900 18-Jun-2014 Yigit Boyar <yboyar@google.com> RecyclerView position bugfix when predictive animations are disabled

ViewHolders automatically cache their old position even if two pass animations are not enabled.
(these are separate logics). To avoid bugs caused by it, RecyclerView should always clean
old positions before running final layout pass

Change-Id: Ia0e99b4c66e12cf8f43f3650fb4dd5c5024ab4ae
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c17b4da9ebfac1c9c18237cf10b1e63d9337f62b 18-Jun-2014 Yigit Boyar <yboyar@google.com> Merge "Disable RecyclerViewAnimations on notifyDataSetChanged"
b7b44e5454dc409934bcc5609b81d1715c984d40 14-Jun-2014 Yigit Boyar <yboyar@google.com> Disable RecyclerViewAnimations on notifyDataSetChanged

Bug: 15618007
Bug: 15615904
Change-Id: I429847428df00fe334552378e489d92c78d8555b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7a59e4b36500bcfddd842376d6c3abe0d9f23d84 18-Jun-2014 Yigit Boyar <yboyar@google.com> Merge "findViewByPosition in RecyclerView should ignore removed children."
5ced882cabdcefbb469e332f6f73983999aad0e5 17-Jun-2014 Yigit Boyar <yboyar@google.com> findViewByPosition in RecyclerView should ignore removed children.

Bug: 15676570
Change-Id: I83aed0f0a8e0fee96fac194dd061ec0ca45ff27a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7a1d7693cfd4d0df5a044a5b5817a750a8b7c1b4 17-Jun-2014 Yigit Boyar <yboyar@google.com> Merge "Check view type before re-binding ViewHolders in RecyclerView"
ec93520d243d3eb3c6cddeaea7908d1b869bf367 14-Jun-2014 Dake Gu <dake@google.com> RecyclerView: fix animation not ended properly

1. DefaultItemAnimator should also end animations of mAdditions
and mMoves list.

2. setItemAnimator() should end animations.

b/15622617

Change-Id: I97f8427b2f0c9182c8b5088d6720b71dd14faf4d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
81b1ad72051668805d730edb901bb1a749458505 14-Jun-2014 Dake Gu <dake@google.com> am 2310c154: RecyclerView: fix crash due to bad mAnimatingViewIndex.

* commit '2310c15479d4ed6785c8fcac22145089e5843e13':
RecyclerView: fix crash due to bad mAnimatingViewIndex.
7e9da1a2629b657d56e2f54abd18c6249f3be037 14-Jun-2014 Yigit Boyar <yboyar@google.com> Check view type before re-binding ViewHolders in RecyclerView

Bug: 15596672
Change-Id: Ia42700e400b98b1020dbbba282d383da14d5816c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
2310c15479d4ed6785c8fcac22145089e5843e13 14-Jun-2014 Dake Gu <dake@google.com> RecyclerView: fix crash due to bad mAnimatingViewIndex.

When LayoutManager insert view at a position, RecyclerView does
not update mAnimatingViewIndex.

b/15613119

Change-Id: I2e27917953a7bab7ef124899a8ab60d2a7143ca6
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ddb43d869494cac8a4a8a136014e1e76c4dd1fa1 14-Jun-2014 Yigit Boyar <yboyar@google.com> fix docs

Change-Id: If3d5f03ab762e2f6bc627e1df15d17fbd162ac23
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
22b6b8163d2e15eb6d0a89906854dec801945f1d 13-Jun-2014 Yigit Boyar <yboyar@google.com> RecyclerView: Fix type-check bug for cached views

Change-Id: I1b6d33d7e1aeeb36e697cb95cd7109a9ac53a909
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8ae76f91527ce850f155ce960fb9068bcd5d49f9 05-Jun-2014 Yigit Boyar <yboyar@google.com> Fixed RecyclerView position bookkeeping bugs

Bug: 15397591
Bug: 15350129
Bug: 15547859
Change-Id: I54d754eb2b788311048d7557f51967b748b2de3e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
341cfcd010161e46b455f5a2b117fd3cc198fbb1 12-Jun-2014 Chet Haase <chet@google.com> Allow item animations to be disabled mid-layout

Some layout changes may necessitate disabling item animations. dispatchLayout()
currently assumes that the state of item animations remains constant throughout
the method, which can result in assumptions about the non-null state of itemAnimator.

This change re-checks the state of itemAnimator after the call to onLayoutChildren(),
which can safeuly abandon attempting to animate changes if the animator has been set
to null in the meantime.

Issue #15570240 NPE when set ItemAnimator to null temporarily

Change-Id: I9c921c50612a619d6fc35c8429ac45a2d9bfcd80
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4af5d9935fd50a8b8d3d185bea59c849434071cb 13-Jun-2014 Chet Haase <chet@google.com> am 0532ce04: Merge "Allow item animations to be disabled mid-layout" into lmp-preview-dev

* commit '0532ce043188768de74d86aead0247dbd23a1b13':
Allow item animations to be disabled mid-layout
11cc99706be620f4a2d7a533f9db5fe005c9b8ea 12-Jun-2014 Yigit Boyar <yboyar@google.com> Pass State to focus callback in RecyclerView

Bug: 15550260
Change-Id: I99da75ea461656f796037ce14485a364665aa4b5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
902f069d9f895507767adfab322cd0536b9af8e8 12-Jun-2014 Yigit Boyar <yboyar@google.com> DO NOT MERGE Disable predictive animations in RecyclerView

Bug: 15568972
Change-Id: Ic3de8673fb6897e8457fab481f2771562a6a1f88
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c35968d173f900d8024bdf38174e2225c9a7f311 28-May-2014 Chet Haase <chet@google.com> Enable simple automatic item animations for RecyclerView

RecyclerView now has automatic animations for add/remove operations requiring
no changes from LayoutManagers. This approach, which is enabled by RecyclerView
having a non-null ItemAnimator (the default behavior) and LayoutManager returning
false for supportsPredictiveItemAnimations() (the default behavior), enables
LayoutManagers to run normally, with only one layout pass and requiring no extra
logic to predict placement of appearing or disappearing items. Appearing
and disappearing items will simply be faded in/out, since the RecyclerView lacks
the knowledge or where to animate the views from/to.

Issue #15542012 Simplify RecyclerView animations

Change-Id: I6219210c9b0ca32535182c1d233076a355fe0671
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d3f1c99a290de13631f9635e06444f75344967d2 03-Jun-2014 Yigit Boyar <yboyar@google.com> Flush item updates before scroll in RecyclerView

Bug: 15350129
Change-Id: Ia759eee95a2158df3835a283ad7d44841d699c3b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
fd79d050b9c7daacf082a029b2cdcfa6bcb588ad 04-Jun-2014 Yigit Boyar <yboyar@google.com> Merge "Fixed RecyclerView scrap matching bug" into lmp-preview-dev
11b7cfea15306c0d6e4ed7da09f7698df01695df 03-Jun-2014 Yigit Boyar <yboyar@google.com> Fixed RecyclerView scrap matching bug

Bug: 15386994
Change-Id: If742678f83363b20f4e461060bd081ead0f07bf6
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
519f659f9fb1e5ec6bf0f750e3dff5ff8f1b39b8 03-Jun-2014 Yigit Boyar <yboyar@google.com> RecyclerView should recycle views on adapter change.

Bug: 15389459
Change-Id: I1b926a9dc6cda205070fba5a61c6123e59d5e0bb
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
774aeed975cbe193e37e2ff9c8575234f2463921 02-Jun-2014 Craig Stout <cstout@google.com> Recycle cached views when clearing the cache.

b/15291691

Change-Id: I29aa8ecc916aa88028b453e38cd7a49eb517192a
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d7848507d6c561ca8e17d1954653f4fd26b58f84 30-May-2014 Yigit Boyar <yboyar@google.com> Added first/lastVisible methods to LinearLayoutManager

Bug: 13909619
Change-Id: I947c3cd018afa2a8d387d6cbc87e03b566ee5392
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
888c70abaa77e15458c366b8d27835d176dcc546 30-May-2014 Yigit Boyar <yboyar@google.com> Invalidate RecyclerView on scrap cleanup

Bug: 15331930
Change-Id: I3bee951201342f6a30764db3c766308e00a4383d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
43329fc348a0134d4a3273796a6a9cf71dad04a5 28-May-2014 Craig Stout <cstout@google.com> Add Recycler and State parameters to LayoutManager.onMeasure.

Allows a layout manager to measure children when measuring itself.

b/14885970

Change-Id: Icad22a5e4d19b9827c4c601a364a83bd84883cd2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d4a794983364c7b1801638abc7f332abee12b6e6 28-May-2014 Yigit Boyar <yboyar@google.com> RecyclerView Cleanup

Removed deprecated methods from RecyclerView.

(cherry picked from commit 34106bc044343fdac6d16623166d17cda17c083e)

Change-Id: Ie9de0aae4519b870302424deaf2326cbf9e4b7fc
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
02751a77fb12b65fefb307b715967efa854620d4 29-May-2014 Craig Stout <cstout@google.com> Fix RecyclerView caching.

b/15314857

Change-Id: I005d709e877d3433a1d52aa8af3480d4f1a18323
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d7d27e9ebe5c7325e67e1a8af265378bd2056cad 28-Feb-2014 Chet Haase <chet@google.com> Add animations to RecyclerView

This CL adds the basic plumbing for animating item changes in
RecyclerView. It also implements the bare essentials add/delete
animations. When the app specifies that items have been
added/removed (by calling the appropriate Adapter methods), the
RecyclerView will determine the appropriate fading and moving
animations to animate the items being added, removed, and moved
into new locations.

Change-Id: I4fa8686f54c8bfa2ba29c399eea112d33f71689c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b1bfdf4c03d1b25959c5818805b997020f7ed085 15-May-2014 Chet Haase <chet@google.com> Revert "Add animations to RecyclerView"

This reverts commit 33b18903168c177d65e3c2ef7398c1b2ca0c826f.

Change-Id: I41664a375f9fc5fa878481b90cd2e61aad17f739
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
33b18903168c177d65e3c2ef7398c1b2ca0c826f 28-Feb-2014 Chet Haase <chet@google.com> Add animations to RecyclerView

This CL adds the basic plumbing for animating item changes in
RecyclerView. It also implements the bare essentials add/delete
animations. When the app specifies that items have been
added/removed (by calling the appropriate Adapter methods), the
RecyclerView will determine the appropriate fading and moving
animations to animate the items being added, removed, and moved
into new locations.

Change-Id: If70c09e7af168ce5963c785b5886a18c87a7dc98
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6598bbee8b4e7af155671a5b40039c00b347954f 09-May-2014 Yigit Boyar <yboyar@google.com> Avoid stopping scroller twice

Change-Id: I6412f2067bed7799112a02f958350b83db6be0bf
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7d404b70424ddce590753e30cd86f85bced9c400 02-May-2014 Dake Gu <dake@google.com> RecyclerView: REMOVED holder should not be returned from getScrapViewForPosition

also removed/invalid holder should not be added to cached view.

b/14490672

Change-Id: Id3f52be81d2bd2e2d93008dd6ad9a2c7eb78a07c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
846786b33c7325e99603c2a7947f976b633c3496 30-Apr-2014 Yigit Boyar <yboyar@google.com> Stop scroller when ViewFlinger stops

Also fixes ScrollCompat bug where Chaser may not track finished state properly

Bug: 14409589
Change-Id: I802de488ee6a631a8e8c8860f7689264eab27a75
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c30b4fceb76f45348c20f8b15096e1e13ff0c42f 29-Apr-2014 Yigit Boyar <yboyar@google.com> Fix RecyclerView save instance state bug

Bug: 14351525
Change-Id: I633f073151c4bcbf8b4c24e16d0737aba9e3e3bd
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ac7cd79494bd02a044c9df413d2a20aeebc696e8 25-Apr-2014 Mark Wei <markwei@google.com> Make ViewHolder#isRecyclable respect the view's hasTransientState.

Change-Id: I63ab4b62352cedd765c74384453f6f246fa6e7de
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
0447ba889146f60d6965e6ea66fa4e2cac4d0891 07-Apr-2014 Yigit Boyar <yboyar@google.com> RecyclerView smooth scrolling support

Added APIs and base code to RecyclerView to support smooth scrolling
Added a LinearSmoothScroll that can be used as the default one and should work well
for most layouts.
Added ScrollContext class as a POJO to carry state information to layout and scroll methods.

Change-Id: I9a83c460adfdd5330141167cfbc793beb3a845c8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
08cbcdeb4283048c097397d042d5ae0d2b8683d3 04-Apr-2014 Yigit Boyar <yboyar@google.com> RecyclerView saveInstanceState

Initial implementation for LinearLayoutManager

Change-Id: Iaf734c5a23c1d5bf8504875975c75af3b9c88388
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8935a4620bba8a2d2ab7cc8aaa9eeb8f772dadd6 22-Apr-2014 Yigit Boyar <yboyar@google.com> Verify non-null adapter before calling LayoutManager

Bug: 14247753
Change-Id: I5888f2673e07bec836fd57dc04fe82e22ef351f4
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
3b5b2ea88bce411ee2a89d6f9d0e51466c1ab461 19-Apr-2014 Adam Powell <adamp@google.com> Fix docs

Change-Id: I7822e0da1cf2b123a682832b3a257e0cdf067190
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f2b93981846ce21a06b6a92a5a6ba70a29c345ed 18-Apr-2014 Adam Powell <adamp@google.com> Give RecyclerView LayoutManagers control over measurement

Add an onMeasure call to RecyclerView.LayoutManager and turn
RecyclerView#onMeasure into a passthrough. Default implementation
behaves much like View's standard implementation of measurement.

Add supporting functionality for getting min width/height in
ViewCompat.

Change-Id: Ic7b95f85520d31191f663f6cf3e96880468e20a2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d2a6991ee3db24fb72be50077770eb1b514e7774 29-Mar-2014 Filip GruszczyƄski <gruszczy@google.com> Merge "Option for not showing glow bars in RecyclerView." into klp-modular-dev
25a1df3b5e7fcd875440ccf6b877cb280d63f418 26-Mar-2014 Yigit Boyar <yboyar@google.com> Scrollbar and scrollToPosition support for RecyclerView

* Added scrollToPosition(int) to LayoutManager and implemented in
LinearLayoutManager.
* Added a passthrough scrollToPosition method to RecyclerView for convenience.
* Added passthrough computeScroll* methods to LayoutManager, implemented in
LinearLayoutManager.

Change-Id: If749b4447363cca6cf8162a1cf1bf03cfac3cd14
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a75ac8e8035b766da916171b1c97ea7f9989cc26 21-Mar-2014 Filip GruszczyƄski <gruszczy@google.com> Option for not showing glow bars in RecyclerView.

Change-Id: I6e8880696d8d56b383318a4c5b578a98c65e8542
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f5d83f6e99ccd5cc3922a3cbe95db48fdd43c835 21-Mar-2014 Yigit Boyar <yboyar@google.com> Invalidate structure when adapter is changed

Bug: 13568463
Change-Id: I47152146299e1f5d8b1ae415e7aa74a5d4ba898e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7dad56243ebcde65d75d592dc802269a4d86c875 18-Mar-2014 Yigit Boyar <yboyar@google.com> List Layout Manager

Layout Manager that can be attached to a RecyclerView and provide similar
functionality to android.widget.ListView.

This is work in progress but stable enough to start using. Keep in mind,
API may change.

So far, it supports:
* Horizontal and vertical layouts
* RTL layouts
* Reverse layout (similar to RTL but also works vertical)
* Stack from end (similar to AbsListView's stackFromBottom but in both
orientations).
* View recycling

It does NOT add dividers by default but you can provide them as ItemDecorators.

Change-Id: Ic13922bac938b40fd74fa2ed910cdd1c3ea735b7
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
1a0aad1c8ddf7e9b36c8465c6f5fd0bc4168ada3 19-Mar-2014 Dake Gu <dake@google.com> RecyclerView: remove deprecated version of onAddFocusables()

Change-Id: I738fdce02005cfb4aad4dc90a50149be192f9789
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
b56bf9a6ae8a8490ff440ed8c136a72ee6398157 18-Mar-2014 Dake Gu <dake@google.com> RecyclerView: minor change of onAddFocusables() signagure

Pass RecyclerView as parameter.
Uses ArrayList instead of List to match View.addFocusables().

Change-Id: Iac06f2e862894ee9c420cfab062289500baf9067
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4efe4de5e8b02cfd5f64be432695513428ef6bb8 14-Mar-2014 yigit <yboyar@google.com> Pass adapter references to LayoutManager's Adapter changed callback

Added old adapter and new adapter references to `onAdapterChanged` so that
listener can easily register-unregister without keeping a reference to
the adapter.
Fixed a bug where old adapter was not properly sent to recycler's
`onAdapterChanged` method.

Change-Id: I890ddcf527657297e5d0a4bfb40a09c13cd31def
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a102d8db8bfebe4da3d9a8e204b28527f069e81e 14-Mar-2014 Adam Powell <adamp@google.com> Add RecyclerView.LayoutManager callbacks for structural adapter changes

The LayoutManager can now requestLayout if a structural change would
change the visible set of children.

Change-Id: Ie0067c6ffaf563da9f12ec2d1adfd8577b6de8db
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
8e032f7070214b27589e80935e618315f6a41d3a 13-Mar-2014 Adam Powell <adamp@google.com> Implement RecyclerView ItemDecorations

ItemDecorations can now apply offsets to views for cooperating
LayoutManagers. LayoutManagers should use the passthrough methods for
measurement and querying child size and view frame edges.

Change-Id: Ib9c03a8934709a35b894187139331dca81f79f9f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
792172bfec2050ef936a003d9e37829160eb658a 11-Mar-2014 Adam Powell <adamp@google.com> RecyclerView: suppress double ACTION_DOWN for item touch listeners

Since item touch listeners can be called from either
onInterceptTouchEvent or onTouchEvent it's possible that they could
receive the same ACTION_DOWN event twice. Stop this from happening to
prevent listener confusion.

Change-Id: I47b16793eb329e1f0ac07c19a78f90f47b7b05d8
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c096ad1894f1a4543e703ddc9d279fbd3b596c53 06-Mar-2014 Adam Powell <adamp@google.com> More RecyclerView API additions

* findViewHolderForChildUnder() becomes findChildViewUnder()

* Have findChildViewUnder() respect translationX/Y properties

* getChildViewHolder() becomes public

* LayoutManager gets onAddFocusables to override default
ViewGroup#addFocusables behavior

* LayoutManager gets onInterceptFocusSearch to override the default
focus finder behavior before onFocusSearchFailed

Change-Id: Id7e79167fbe68bdbeac6e0cd09c90202b493f4df
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
73fac3b3098a13785965f80eb85ed4516fae79ef 04-Mar-2014 Adam Powell <adamp@google.com> RecyclerView API - child attach/detach and stopScroll

Add methods that RecyclerView subclasses can override to be notified
when child views are attached or detached by a LayoutManager.

Add a stopScroll method to halt any animated scrolls in progress.

Change-Id: I080a65b9f23b709686e3b7ab37d70b543f4478ac
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
37e13211d0dbc700656c262cff7aa801efea5a9d 26-Feb-2014 Adam Powell <adamp@google.com> Add view attach/detach callbacks for RecyclerView adapters

Offer a chance for an adapter to do more fine-grained resource
management and tracking as views are added and removed from the
layout. This lets adapters check if a view was actually attached to a
window vs. just speculatively measured as well as control more of the
caching process if item views come with large bitmaps, etc. attached.

Lower the default offscreen view cache size. Offer a public setter for
the cache size.

Change-Id: Idb2a5e8ab5a84a1e35d46dc261f2ff264cee0624
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
75d83ebafd03b1d949facca738e546ba6f3a1ae4 25-Feb-2014 Mindy Pereira <mindyp@google.com> Off by 1 error when checking child views

When starting from the end, the first position to check
is count - 1

Change-Id: I1d9127486af069d64ada66f35ddd6082722744eb
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
bd254c5a170a60055b8c594441660e4fe819add7 22-Feb-2014 Adam Powell <adamp@google.com> RecyclerView API: create/onCreateViewHolder, bind/onBindViewHolder

Split the create/bind process for RecyclerView adapters into on*
methods to be implemented by the subclass and keep the 'raw' methods
final to perform internal bookkeeping. This ensures that the resulting
ViewHolders are consistent; an app may choose to preemptively create
views from an adapter that may be expensive to inflate and dump them
into a shared pool for later use.

Add a structureChanged bit to LayoutManager#layoutChildren. This gives
a coarse-grained hint to the LayoutManager that can be used to invoke
various fast paths if no new items have been added or removed and only
potential rebinds or relayouts of existing item views may be required.

Change-Id: Ia704bd22a465bc2f0b22e4de43ddfae956d51623
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
d07af858a3791ee91f585d6ed86be0fac6435719 21-Feb-2014 Adam Powell <adamp@google.com> Remove contiguous/fixed count item view type restriction in RecyclerView

Allow non-contiguous view type identifiers from RecyclerView
adapters. This removes the need for a preemptive view type count.

Change-Id: Id6d8b9f89874f2ca9b3453e06787f646db6e63f9
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
beade59d0b2490cc3985c250a8fc3b116f939680 15-Feb-2014 Adam Powell <adamp@google.com> Prevent RecyclerView from reusing cached views with mismatched types

Allow rebinding data from an invalid cached view as long as the types
still match.

Change-Id: I8af155b8c9352cf6cbfc53f989aa9013729df029
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f7482db37156ce8fa8a2118de456d6ab4c8d0f99 14-Feb-2014 Adam Powell <adamp@google.com> Merge "Fix bugs in add/remove operations for RecyclerView" into klp-modular-dev
67d540464135703df452bcb24c8da05cece3b9d9 14-Feb-2014 Adam Powell <adamp@google.com> Fix bugs in add/remove operations for RecyclerView

Change-Id: I02d085c8f8e57e0ed29c8af098d5a31ad4e7ec91
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
98ba91c2aea31ef4d727c7562b0248ecc422f10e 14-Feb-2014 Adam Powell <adamp@google.com> Have RecyclerView properly handle adapter changes with shared pools

Change-Id: I03a033642b4298e7d215b3f4cc61fc43d7a245cf
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
238bb4aadc07834051eb46a0c5683eaaf1da3970 29-Jan-2014 Chet Haase <chet@google.com> Add functionality for item animations

Change-Id: I2466e9a9dbdc0e9dbb52edb2d8d918357814b798
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
7809c2c229c3a83d0449dfe2d8333c2d15ea0891 12-Feb-2014 Adam Powell <adamp@google.com> RecyclerView updates, caching

Give RecyclerView a first-level cache for views that don't otherwise
need to be updated from the adapter. This allows scrolling back and
forth within a short distance and no round trips to the adapter.

Add extra LayoutManager API needed by clients.

Have RecyclerView offset position records of known views when adapters
are updated, allowing caches to function across updates.

Internally disable the dispatch of start/finish temporary detach. This
shouldn't be necessary since this state never lasts beyond a single
operation. Make reuse of temporarily detached scrap more strict; only
adjusted position matches are valid reuse cases now.

Make the handling of shared RecycledViewPools more precise. It is now
an error to change the adapter of a RecyclerView with a shared pool to
one with a different item view type count.

Add an explicit measureChildWithMargins for LayoutManagers.

Change-Id: Iae31ecd23abb5b55e11dad6fbba370100266039b
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
4b424993a577b4f3d38ebf3611ee743b4beea0c6 11-Feb-2014 Chris Sadler <csadler@google.com> Merge "Fix bug in smoothScrollBy duration when moving vertically." into klp-modular-dev
3ceef3c274cbf8310b3cb1baa6665fb89dea513a 10-Feb-2014 Adam Powell <adamp@google.com> Generify RecyclerView adapters for ViewHolder types

Fix a few small bugs around decoration invalidation and children
relayout.

Change-Id: Ia02ba1468b657302c1034d128c31048b9b1c6d7f
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
76c6c88503b835f681162aefe2f493f7cbebbb69 11-Feb-2014 Chris Sadler <csadler@google.com> Fix bug in smoothScrollBy duration when moving vertically.

Change-Id: I88113a85fdd594e3cf780ff32558bc74d6ff2f67
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
10748a323a5eb18dbac992a463b829ac88c21c4d 07-Feb-2014 Adam Powell <adamp@google.com> Bug fix for scroll state reporting in RecyclerView

Fix a bug that could cause RecyclerView not to report a return to
SCROLL_STATE_IDLE after a touch scroll involving velocities below the
minimum fling threshold.

Change-Id: Ia4df895e743576701da55637fcb60c48772295b5
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
a599398f19adde80e82d2e81753a6e5cefb1fd35 06-Feb-2014 Adam Powell <adamp@google.com> RecyclerView listeners; beginnings of lightweight rebinds

Don't trigger a full relayout automatically if an adapter reports that
existing items changed in-place.

Wire up OnItemTouchListeners.

Change-Id: I0b8333f38a5de8b4a81b2872cc5fb013eeca6bec
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e532b345104d3d66e53a093588dcdc9a44c35ad0 24-Jan-2014 Chet Haase <chet@google.com> Minor cleanups and docs for RecyclerView

Change-Id: I62036e8b92cf0b5f7cb1321ed665117af69d3a11
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
cf0d4af7e679998321173127fddadb437f97c335 03-Feb-2014 Adam Powell <adamp@google.com> Reworking dirty bits for RecyclerView

Split the "dirty" flag for ViewHolders into a more detailed flag
set. This lets the system express distinctions between simply needing
an update from the adapter vs. no longer being valid for the previous
item it was bound to.

Add onAdapterChanged to LayoutManager

Change-Id: Ib3414bc80b6c6e1d241060f432d905001a18ea6d
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
6ba47f724920cd831087c92b59f450e3f9a92fa3 01-Feb-2014 Adam Powell <adamp@google.com> Fix a RecyclerView bug when recycling scrap views

Change-Id: I6765b9b15835c249a77b1aab328e301d065dc69e
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
17ba7c1dc54fcd5654551289e421184d5b1a2549 29-Jan-2014 Adam Powell <adamp@google.com> Fix docs

Change-Id: I0c69cf308439fb12a93c548cf5859b535cd6ac42
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e0c0b3ec37dc49035acd2fd6e1eee25c3d8d8c29 29-Jan-2014 Craig Stout <cstout@google.com> Merge "RecyclerView: Fix error in setAdapter" into klp-modular-dev
a6613ed42e0dee0cac3da01f5450e2d61c270b52 27-Jan-2014 Adam Powell <adamp@google.com> API refinements for RecyclerView

Continue clarifying the responsibilities of Recycler and
LayoutManager. Provide more pass-through API on LayoutManager for
subclasses for when the getRecyclerView() method is removed in the
future.

Scrap and recycled views are now more clearly defined. Added temporary
detach capability to keep consistency with scrapped views.

Change-Id: Ie17541401cd1f6f1933205a8e6a5c6f3d66d3afb
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
ac89a5c19c2d0577e4d537b1e1a3fe54d81e06d6 29-Jan-2014 Craig Stout <cstout@google.com> RecyclerView: Fix error in setAdapter

Change-Id: I0d2ce863980521eb54ad92ce7979fd2323e1d8f3
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
e096e4c526feeb64833b5a75649ec36d75d7cbbf 23-Jan-2014 Adam Powell <adamp@google.com> RecyclerView bugfixes and API revisions

Further clarify the responsibilities of the LayoutManager,
RecyclerView, Recycler and Adapter.

This change deprecates a number of RecyclerView methods. These
deprecated methods will be removed in an upcoming patch before
wider release.

Add additional bidi helpers to ViewCompat.

Change-Id: I6ad6e0464796fb4c475cb796d630e51ca85d84ab
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
524f00fa5a4e8b63f75a4935a7d2e9e4ec2dc400 23-Jan-2014 Adam Powell <adamp@google.com> Remove obsolete assumption in RecyclerView

Don't assume position is a proxy for identity unless we have another
positive signal that data hasn't changed. (This will continue to
evolve as we start adding more internal features.) For now, serve up a
scrap view that is either marked dirty or has the same position as
long as the types are correct.

Change-Id: Ida371f109a0c4fcc5898a567388ed0864fd4ea3c
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
988130d95692026b843e06c78d6886b69d0e2c23 23-Jan-2014 Adam Powell <adamp@google.com> Have RecyclerView fully claim touch event streams during scrolling

Parent views will have requestDisallowInterceptTouchEvent called when
scroll state transitions to DRAGGING

Change-Id: I4950de57f816d76f1fd53dc9e1bef24c8d03a5d0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
247185b98675b09c5e98c87448dd24aef4dffc9d 22-Jan-2014 Adam Powell <adamp@google.com> Initial data set change functionality for RecyclerView

Propagate basic events to handle adapter data set changes through
RecyclerView. Fix a bug that would cause touch events to be mishandled
after a touch scroll that did not end in a fling.

Change-Id: I2d3c2a5c6242011d426dc6d090ec00cd78cbd798
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
c57607df82148e2ee99c76047fb48a9c9caafe3c 10-Jan-2014 Adam Powell <adamp@google.com> Implement RecyclerView#onInterceptTouchEvent

It's kind of important.

Change-Id: If5ab9321e6d12df74456b10114fb4d6793f4d3e2
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
f2d3042737c0d7d0667b3418c3e5d04967667f34 10-Jan-2014 Adam Powell <adamp@google.com> Add view recycled events to RecyclerView

Allow both the adapter and a listener to receive events about when
views are recycled in a RecyclerView.

Change-Id: I9926aafbb190864d34f0b3d79f357690a9cf8b69
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java
009b4ef9d97e1cc237477e3284fc305bb1438cc9 19-Jul-2013 Adam Powell <adamp@google.com> Add RecylerView to the support library

RecyclerView is a new base for implementing adapter-backed views
similar to ListView. It offers a number of hooks within its API to
allow custom layouts, item display and touch behavior and richer
communication between adapters, layouts and recycling behavior. This
makes custom displays of large data sets and animations within those
presentations much easier to implement.

Start adding smoothing to ScrollerCompat.

Change-Id: Ic14c6aa723be03aa4da29d1fd44baf42a359f6c0
/frameworks/support/v7/recyclerview/src/android/support/v7/widget/RecyclerView.java