• Home
  • History
  • Annotate
  • only in /frameworks/support/v17/leanback/tests/java/android/support/v17/leanback/widget/
History log of /frameworks/support/v17/leanback/tests/java/android/support/v17/leanback/widget/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5723e456309c09c31054d29187fd26b6e2b760ef 17-Jun-2017 Dake Gu <dake@google.com> DO NOT MERGE leanback: fix fastRelayout for extra views added in preLayout

Then in post layout pass, fastRelayout() should invalidate after
the item that position is inconsistent with Grid position.
Previously this was relying on didStructureChange(), it is now
no longer safe to do so when prelayout may add items before first
child.

Bug: 62727612
also no longer reproduce Bug 36738635 after this change
Test: testMoveIntoPrelayoutItems

Change-Id: If67f6697b21c132ed5934bdc0fc2790ac4aae32c
ridWidgetTest.java
2d973a4fe4a42e14aed6278b14998964dd18f3c0 16-Jun-2017 Dake Gu <dake@google.com> DO NOT MERGE leanback: fix wrong insert view index in fastRelayout

Bug: 62451353
Test: testWrongInsertViewIndexInFastRelayout
Change-Id: I2e127650d9374a2f061aa18790ec366448d0a886
ridWidgetTest.java
92fd72dacfea51814e05f24a092aaa2ae12c8449 15-Jun-2017 Dake Gu <dake@google.com> DO NOT MERGE leanback: clarify comments

And modify the test to be what exactly happened
in the original bug.

Bug: 62448243
Test: testLayoutWhenAViewIsInvalidated
Change-Id: Id4cfa3e97ad179474c172d6cfc45149b759097ae
ridWidgetTest.java
5db6d414ed0329b4f5464a92d1a7f8e6d8bb1678 09-Jun-2017 Keyvan Amiri <keyvana@google.com> DO NOT MERGE Fixed fastRelayout when a view is invalidated

The views that are off the screen are cached and invalidated after a
layout. getAdapterPositionByView returns NO_POSITION for such views that
was causing crash in fastRelayout when getViewForPosition was called.
Now will skip laying out children when such a view is encountered.

Bug: 62448243
Test: testLayoutWhenAViewIsInvalidated
Change-Id: I5bb86682dba0bff6a4a5e77438b4735a2a720345
(cherry picked from commit e79b22a10835076150c04e96c52d8342b3af8409)
ridWidgetTest.java
6d65d10a40b33e52a365610cb299771178a56824 27-May-2017 Dake Gu <dake@google.com> leanback: fix flaky testMoveItemToTheRight

The default wait animation timeout was same as animation duration.
Increase the default timeout to 6 seconds.

Bug: No
Test: testMoveItemToTheRight
Change-Id: Ia04080d5636a7da0d874ebfdb2c9fdaa2084c72a
ridWidgetTest.java
2447d5ed8f4396fc6d1271df7f00ddf150bb5d41 27-May-2017 Dake Gu <dake@google.com> leanback: fix new flaky tests

Fails due to the size of view vs window

Bug: none
Test: testMoveItemToTheRight testPredictiveLayoutRemove2

Change-Id: I2675c87780a7931357d8539b7bc60bf7c4b78db1
ridWidgetTest.java
bb1f461f210836de67bc68980409c5112889299a 27-May-2017 Dake Gu <dake@google.com> leanback: better cordinate scroll and itemanimator

Instead of scroll jump for child size change, onLayoutChildren() will
start a new scroll animation if previous scroll animation
was going to stop at unaligned position due to child size / position
changes.

Bug: 38339297
Test: testSwapAfterScroll

Change-Id: I3a5174f3a76c7269bfa5a5f6f28b1ba3875433db
ridWidgetTest.java
c50aca4940c8ae508393278aa7a9c77a3f93f87d 26-May-2017 Dake Gu <dake@google.com> leanback: fix predictive animation move

1. When move items out, we need use addDisappearingView to
tell recyclerview to slide them out and those views will
not be pruned by scroll pass. This is done by adding
scrapList views in post layout fillDisappearingItems()

2. When move items out, we need check if item is moving
out side old adapter's range, prelayout needs layout extra
space for these cases.

Bug: 38339297
Test: testDontPruneMovingItem testMoveItemToTheRight
testMoveItemToTheLeft

Change-Id: I6e2c4ffeb8befb62f060247bb6c5345dc8f6bab7
ridActivity.java
ridTest.java
ridWidgetTest.java
134b0891c25facf14c53ef939846010284025ca9 20-May-2017 Dake Gu <dake@google.com> leanback: support predictive animation

1. supports predictive animation
2. no longer abort scrolling upon state.didStructureChange() is true.
So scroll animation will continue while item animation is running.

Bug: 38339297
Test: GridWidgetTest

Change-Id: If5b4a05e3dca9946395dd19204c2fcd59fa7a824
ridTest.java
ridWidgetTest.java
6a3e5a1ea0f4791413a81bf1667f358f1eda1aff 16-May-2017 Dake Gu <dake@google.com> leanback: change default shadow value of unselected item to be 0

And selected item to be 10dp to be consistent with launcher.
App can still customized the shadow values in code.

Test: visually inspect
Bug: 37003555
Change-Id: I172459c053571aee7b01084a15191ce922b34cb2
istRowPresenterTest.java
b6dde2cfe2fbe3151c52d92e3754288aab11a3b1 05-May-2017 Dake Gu <dake@google.com> leanback: support preferring key line over edge

We have a requirement that for WINDOW_ALIGN_HIG_EDGE, when there are
limited items, we prefer the first item aligned to keyline instead
of last item aligned to bottom padding. Introduced two APIs:
setPreferKeyLineOverLowEdge and setPreferKeyLineOverHighEdge.
"prefer keyline over low" is by default false.
"prefer keyline over high" is by default true since keyline is
before high edge and user usually prefer align to lower side.

In current implementation, the scroll_max is always decided by the
last item align to edge of bottom padding.

When we prefer keyline over high edge, scroll max is no longer only
decided by last item, it will be decided by both the last item and
first item. So we will need updateScrollMin/Max altogether.

The CL also clean up GridLayoutManager code, no longer need concept
of mScrollOffsetPrimary.

Bug: 38036352
Test: testPreferKeyLine1 testPreferKeyLine2 testPreferKeyLine10000
testScrollSecondaryCannotScroll testScrollSecondaryNeedScroll

Change-Id: Ia1e03b3eb8f5d78255090380684e35e5434172bc
ridWidgetTest.java
93b954ed786fcd8c25c332cb921b9a51c525dfd4 04-May-2017 Dake Gu <dake@google.com> leanback: Fix rounding error for test assertion

On nexus5x, density is 2.625, textview layout_width 50DP is
translated 131.25pixels as width.
This causes rounding errors.

Bug: 37967115
Test: GridWidgetTest
Change-Id: I5c039caf4a6150fa5c8b137b3698a4d3be1e53fe
ridWidgetTest.java
bc6713f8e2fa9702675dc3827591ed401b539723 29-Apr-2017 Dake Gu <dake@google.com> leanback: fix Item alignment.

1. Add support of RTL case.

2. The existing rule of using offset negative/positive as indication
of start/end padding does not make sense, switch to use percentage,
when percentage is 0, we will use low padding, for percentage 100, we
will use high padding.
Although this changes behavior, existing apps all use low padding
and set percentage to 0, so this will not break existing apps.

Test: testItemAlignmentVertical testItemAlignmentHorizontal
testItemAlignmentHorizontalRTL
Bug: 37794661

Change-Id: I3fe4a05642fa959812f6079b335c707570c6761a
ridWidgetTest.java
a23c768a1a61495852074869b244064cf535b4c1 21-Apr-2017 Dake Gu <dake@google.com> leanback: better support custom onSelectLevelChanged()

Custom onSelectLevelChanged() does not handle the case that
child is added later. Introduce applySelectLevelToChild() to be
called in onAttachToWindow.

And add a complete test for shadow overlay container.

Bug: 37545125
Test: ListRowPresenterTest
Change-Id: I50dae625714ec122161d790de372c5b4b0833a81
istRowPresenterTest.java
3bcad88cbf4488e747d84893c35f2351b8f84afe 21-Mar-2017 Dake Gu <dake@google.com> leanback: new transport controls

PlaybackTransportRowPresenter is the new UX.

PlaybackTransportControlGlue extends from PlaybackGlue.
PlaybackTransportControlGlue is backed by PlayerWrapper.
PlaybackWrapper wraps underlying media player,
concrete example: MediaPlayerWrapper.

PlaybackSeekDataProvider defines the data interface that app
provides to leanback.
PlaybackUI defines seeking interaction between
PlaybackTransportControlGlue, PlaybackGlueHost and the presenter.

more:
- added progress bar support for media loading.
- fixed vertical video proportion and support video size change.

Test: PlaybackTransportControlGlueTest
PlaybackTransportRowPresenterTest.
Updated SampleVideoFragment.

Bug: 33751556

Change-Id: I1d39c6f65d04121f8cb9c25fb7ce103e32355190
laybackGlueHostImplWithViewHolder.java
laybackSeekProviderSample.java
laybackTransportRowPresenterTest.java
3719c5ffa1f4b3a92c9186374100a8a6eb9572ec 13-Apr-2017 Dake Gu <dake@google.com> Fix flaky GridWidgetTest

We should not verify times of bindToView, because
holding DOWN key might causes smoothScroller which
overshoot and bounce back, which causes re-bind
of the early items.

Bug 36702460
Test: GridWidgetTest

Change-Id: I358bc520e08e6446e0bdaae3867f8f446eaef84b
ridWidgetTest.java
e36e2ce16cbd6144ccd49e0b90ae4c587a08c8f3 10-Apr-2017 Dake Gu <dake@google.com> leanback: switch to use getAdapterPosition() for accessbility node

Disappearing ITEMs that were pushed out of the RV due to inserting
other items will crash when onLeftHiddenState changes
importantForAccessibility to yes. The item's viewLayoutPosition is
invalid, so we should use AapterPosition which will return -1 and
onInitializeAccessibilityNodeInfoForItem will bail out.

This bug will happen on any LM which does not support preLayout uses
viewLayoutPosition in onInitializeAccessibilityInfo.

Bug: 37096264
Test: testAccessibilityNodeInfoOnRemovedLastItem
testAccessibilityNodeInfoOnRemovedFirstItem
simulatesAccessibilityOfItemsBeingPushedOut
testAccessibilityOfItemsBeingPushedOut

Change-Id: I2804b5b55f2cbc917155cf8b902b9487f65b8e28
ridActivity.java
ridWidgetTest.java
9e537f8a5bcc66a10280e3e34e866fd36790fcf8 28-Mar-2017 Dake Gu <dake@google.com> Merge "leanback: fix alignment when appending to last item." into nyc-support-25.4-dev
am: 9522574131

Change-Id: I89426dc66090db41d768a57958860ded08c02e72
af3606dbd00dd77a2b0d0950edf203247509ad4c 28-Mar-2017 Dake Gu <dake@google.com> leanback: fix alignment when appending to last item.

When append new item, it falls into fastRelayout() path
where LM didn't updateScrollMin/Max for the new item.

Bug: 32488200
Test: testAddLastItemHorizontal testAddMultipleLastItemsHorizontal
Change-Id: I660207a1fa48ff899e487b4ee457b57067ab4725
ridWidgetTest.java
4f8e91cb517e7eb6e02400d9a72d6d37aa168af1 16-Mar-2017 Dake Gu <dake@google.com> Merge "leanback: remove usage PersistentFocusWrapper" into nyc-support-25.4-dev
am: 28b952a462

Change-Id: I8ab23eb2d403aecd011eaec4db612ed57479885e
28b952a46223a08a7ed6dd555188d4191ab9fb0f 16-Mar-2017 Dake Gu <dake@google.com> Merge "leanback: remove usage PersistentFocusWrapper" into nyc-support-25.4-dev
5c6d801d0e8ff28808a1a4b74db0519ebc22c317 14-Mar-2017 Dake Gu <dake@google.com> leanback: fix crash caused by wrong position
am: 5c4d5ee669

Change-Id: I294957d867fc1b6c79e436c975fcd1d30dc01336
5c4d5ee6697503c9c170fe240b0fe97792d83904 14-Mar-2017 Dake Gu <dake@google.com> leanback: fix crash caused by wrong position

When notifyDataSetChange() is called on Adapter that clears
its data and has stable ids, it will trigger a requestChildFocus()
in creating DISAPPEARING animation. At that time we should
use adapter position instead of view position. The adapter
position would be -1, so requestChildFocus() should do nothing.

Bug: 36139432
Test: GridWidgetTest.testRemoveLastItemWithStableId

Change-Id: Ief37156d58c2596c28002143cd14395ade24c6a5
ridActivity.java
ridWidgetTest.java
6e28bd2903a19cd4560d94413161bd3fa36542e6 10-Mar-2017 Dake Gu <dake@google.com> leanback: remove usage PersistentFocusWrapper

Disable PersistentFocusWrapper and simplify the layout.
Now the ControlBar is responsible for persistent
the last focus index.

Test: ControlBarTest

Change-Id: Ie2766693cd10f198a17feede527eb2c372e8b0ba
ontrolBarTest.java
05944c3367279f44345963acc40674b1653f6418 08-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "A pass at fixing unchecked javac warnings."
8d3e223e8023bbb0902a13745d5ab961e196540e 07-Mar-2017 Dake Gu <dake@google.com> resolve merge conflicts of ec6f358e25 to master

Change-Id: Idb5f4da1ddd439b0ae6d31799d5faef43a44ecc9
c298c564b70739d3c69cbc405815e5b21831a79b 07-Mar-2017 Dake Gu <dake@google.com> Merge "Parallax: API factorying and add direct mapping" into nyc-support-25.2-dev
11ca0f6ce6e4b22294c421f8fb43b50615a82491 06-Mar-2017 Dake Gu <dake@google.com> Merge "Missing implementation for TitleViewAdapter.setOnSearchClickedListener" into nyc-support-25.2-dev am: 14a1d5a894 am: 076beb4abb
am: 2a5614b332

Change-Id: I374a3b54243dbb5881799f629c3073888b6e79f3
bc744e9d0499d4af0cc12511ccce33ed283423db 06-Mar-2017 Dake Gu <dake@google.com> Missing implementation for TitleViewAdapter.setOnSearchClickedListener

Bug: 35996134
Test: TitleViewAdapterTest
Change-Id: Ibc1f8065897b779eae857c27502d88f5c8ac95d1
itleViewAdapterTest.java
bf4318c67254bc11307796601b9fb4a8bbfe67b2 21-Feb-2017 Dake Gu <dake@google.com> Parallax: API factorying and add direct mapping

Remove six classes from api file: Parallax.IntParallax,
Parallax.FloatParallax Parallax.IntPropertyMarkerValue,
Parallax.FloatPropertyMarkerValue, ParallaxEffect.IntEffect
parallaxEffect.FloatEffect.

Remove methods Parallax.verifyProperties ParallaxTarget.getFraction
from API file

The standard parallax mapping converts value of source
into 0~1 fraction then convert it back to target value.
This is not only inefficient but also causing rounding errors.
Added a concept of ParallaxTarget.isDirectMapping(). When
true, ParallaxEffect bypass the fraction calcuation and directly
passes value from source Property to
ParallaxTarget.updateValue(Number).

Now DetailsFragment uses direct mapping for changing
child drawable's bound.

Fix the bug that ValuesRule's type is unmodifiable.

Bug: 35933446
Bug: 32022097
Bug: 35632609
Test: DetailsFragmentTest.parallaxTest
ParallaxIntEffectTest.testDirectMapping
CompositeDrawableTest

Change-Id: Ibd89ba6621fc0804ea24cba099b6d2e6bf3fccc9
arallaxFloatEffectTest.java
arallaxFloatTest.java
arallaxIntEffectTest.java
arallaxIntTest.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
ridWidgetTest.java
ee2249ba014169e1bf03bab5ba628de35d625685 05-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Add all missing @Override annotations."
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
ridWidgetTest.java
arallaxFloatEffectTest.java
arallaxFloatTest.java
arallaxIntEffectTest.java
arallaxIntTest.java
93f9a8fd25341dd983b4fa44d55723dcc21d62dd 04-Mar-2017 Dake Gu <dake@google.com> leanback: fix bad state of mFocusPosition am: b484ccb63d am: 88c7e86803
am: 85f9458aab

Change-Id: I207564714db1075f20af22e67d7fe1bc6eed5a2a
b484ccb63d546196c4b39f9a86a9c714006cfdc3 04-Mar-2017 Dake Gu <dake@google.com> leanback: fix bad state of mFocusPosition

When smoothScroller starts, the target position is cropped by adapter
size, leanback doesn't adjust its internal mFocusPosition, which
causes unable to focus to a child in onRequestFocusInDescendants().

The launcher could fix this by double check the position before pass
to setSelectionSmooth().

Bug: 32118060
Test: testSmoothScrollerOutRange
Change-Id: I5c4ea3b3b4776971f511b0d689e4f9c66bb5ae47
ridWidgetTest.java
9e9fa070c89cd4bf63d0e0becfb8bf3896547f6f 03-Mar-2017 Chris Craik <ccraik@google.com> Fix prefetch item count naming am: d6696c2abe am: fe945f9863
am: 0ecce1716e

Change-Id: Ie3fe498c6f51a52bf91987d9c2bc69d800f6a33c
d6696c2abea2771acd000c2269cf9113acc6c0a9 02-Mar-2017 Chris Craik <ccraik@google.com> Fix prefetch item count naming

Fixes: 35855437
Test: adb shell am instrument -w -r -e debug false -e size small android.support.v17.leanback.test/android.support.test.runner.AndroidJUnitRunner
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: Ifa5afd2260b4705aa9f7b8771cc35b4cb3fc2363
ridWidgetPrefetchTest.java
3600c90d8cd4c048574e5ce27c9463c176db4943 24-Feb-2017 Dake Gu <dake@google.com> Merge "Suppress layout handling during animateOut()" into nyc-support-25.2-dev am: 06ce76214e am: e887776d2c
am: 25f055493f

Change-Id: Id34b275429dc0f84631fa244ca1ee0d950e41985
5c05fc026b77c6387917560f8dbbbd4bff13bbf9 23-Feb-2017 Dake Gu <dake@google.com> Suppress layout handling during animateOut()

When playing video, data change of rows will automatically
pulls row in. This CL suppresses layout when animateOut()
until a specific animateIn() is called.

Bug: 35399351
Test: testAnimateOutBlockLayout testAnimateOutBlockSmoothScroll
testAnimateOutBlockScrollTo
Change-Id: Ie91137687e96f0d48a674c410041b9412c8945d6
ridActivity.java
ridWidgetTest.java
b4eaf7c503a5cd93c46f1c9147bff92bcf2795fc 18-Feb-2017 Chris Craik <ccraik@google.com> Merge "Support nested prefetch in leanbacklib's gridviews" into nyc-support-25.2-dev am: dfd191344d am: 788a8ed795
am: 5997a1df80

Change-Id: I6b4d84ceca447d876428b334561f2a19fa168058
dfd191344d980025695f3c3e96f7097f33c19a29 17-Feb-2017 Chris Craik <ccraik@google.com> Merge "Support nested prefetch in leanbacklib's gridviews" into nyc-support-25.2-dev
dac5dcf32af1e67c9ee09991b600bbb55976a653 17-Feb-2017 Chris Craik <ccraik@google.com> Support nested prefetch in leanbacklib's gridviews

Fixes: 32981813
Bug: 35443218
Test: GridWidgetPrefetchTest passes

Includes minor workaround for attached, non-drawing RecyclerViews

Change-Id: Icf34bf8db941b4d03d23230d19676da03d5e990e
ridWidgetPrefetchTest.java
acb3523a1af65a3a3440d720d4712d187c1ae32b 17-Feb-2017 Dake Gu <dake@google.com> Merge "leanback: Fix BaseGridView.animateIn()" into nyc-support-25.2-dev am: a1ee39dad4 am: 549ba57e73
am: 51f0998eda

Change-Id: I78c374683300dcd8ca03774958ce18ebf05547b2
8e06d698aa47dfdea344d2529f2879489eb4610f 16-Feb-2017 Dake Gu <dake@google.com> leanback: Fix BaseGridView.animateIn()

We dont need animateIn() since layout manager will slide in
items when user refocus or scroll to the item.
What is nicer is that the refocus logic already handles the
half way slide back. It is wrong that animateIn() slides a
fixed distance.

Also added support for animateOut for HorizontalGridView.

Add missing implementation of smoothScrollToPosition()

Bug: 35399351
Test: testAnimateOutResetByScrollTo testAnimateOutResetByFocusChange
testHorizontalAnimateOutResetByScrollTo testHorizontalAnimateOutRtl

Change-Id: Ia24c10ecf812cc1609acfa529b226ad87bf8da3a
ridWidgetTest.java
5de710d1797653c540391f7cd8572d36012b28dc 11-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "TimePicker widget for Leanback" into nyc-support-25.2-dev am: b1917de2ef am: 335bc4ff5f
am: 6c233a41b1

Change-Id: I1d9bb32f9d10818ea47d1666e33088a66c640151
1d43a78a12bd32b07d299123f3e4f0df19c71f52 07-Feb-2017 Keyvan Amiri <keyvana@google.com> TimePicker widget for Leanback

A spinner type VerticalGridView based picker widget for displaying time
according to the current system locale. The picker can be customized to
work in 2 modes based on xml attribute: 24-hour and 12-hour mode.
In 12-hour mode, AM/PM will be displayed next to the selected time.

Bug: 33751452
Test: ./gradlew support-leanback-v17:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v17.leanback.widget.TimePickerTest

Change-Id: I220d9b7e0183c5938cf04d1c751179397ae554fa
imePickerActivity.java
imePickerTest.java
0232fc4f79f077b132266642a24739754555aaa9 10-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "Fixed visibility of inactive columns in Leanback Picker widget" into nyc-support-25.2-dev am: 330cb0338a am: ed6a211fd2
am: 74573cb2ed

Change-Id: I38e50f077fc6fe7c3f74ecc9b628af06473c763b
7041ebbfa7b73695f5c8e831fa6f14233c95d9ef 09-Feb-2017 Keyvan Amiri <keyvana@google.com> Fixed visibility of inactive columns in Leanback Picker widget

When the picker widget is activated and the column size grows, the
picker items were not rebound. Thus the views that were cached by the
RecyclerView and just get laid out could hold an outdated alpha.
This is because views' alphas get updated in either during binding
or a focus change.
This for example created a problem when setting dates for an
inactive picker, and later activating it. The inactive columns
could still display unselected rows.

Bug: 35179122
Test: ./gradlew support-leanback-v17:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v17.leanback.widget.DatePickerTest#testInvisibleColumnsAlpha

Change-Id: Ib343f1a4ebcbb9e6a8caa81cc673a1026d873225
atePickerTest.java
59cf2273a0e710d86020aa60ac69e985a63c4315 08-Feb-2017 Keyvan Amiri <keyvana@google.com> Fixed focus transfer for GridLayoutManager and Leanback picker widgets am: b0818cc234 am: 3a433fd50f
am: c63014a86c

Change-Id: Ia2eda1b1455b5c188f87d910a39e0afd84a8a510
b0818cc234e9df4312732f95fd6849922bfa0fa1 30-Jan-2017 Keyvan Amiri <keyvana@google.com> Fixed focus transfer for GridLayoutManager and Leanback picker widgets

GridLayoutManager continued focus search even if the parent blocked the
focus delivery to its children. Also, Picker widget did not have the
right focus logic for the containing view and its child text views in
activated/deactivated modes. This CL fixed these 2 issues.

Bug: 34814581
Test: ./gradlew support-leanback-v17:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v17.leanback.widget.DatePickerTest
./gradlew support-leanback-v17:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v17.leanback.app.wizard.GuidedDatePickerTest

Change-Id: I90d4b9f870ae3f16c4591fd0b1e085a568ca4c7d
atePickerActivity.java
atePickerTest.java
b804ed74c4594ea647822db5b90ca6af389fe657 08-Feb-2017 Aurimas Liutikas <aurimas@google.com> Revert "Fixed focus transfer for GridLayoutManager and Leanback picker widgets" am: 4346be85d3 am: e0953a9262
am: 4b62f934d1

Change-Id: I7b0791c3685700f4af8febfd138619a358f6bbba
4346be85d3250c5c7b6498445c01c2f1fea7b49a 08-Feb-2017 Aurimas Liutikas <aurimas@google.com> Revert "Fixed focus transfer for GridLayoutManager and Leanback picker widgets"

ag/1864147 breaks tests.

This reverts commit a2b8c1ba43e061620043eee7a4749b7f2e364570.

Bug: 34814581
Change-Id: I2cae846e33529975e93d31e709270fd8e0803f1e
atePickerActivity.java
atePickerTest.java
98f91cfb42ba7a6ac215556944270252e99631c9 07-Feb-2017 Keyvan Amiri <keyvana@google.com> Fixed focus transfer for GridLayoutManager and Leanback picker widgets am: a2b8c1ba43 am: 31416ae350
am: f5492dc4c8

Change-Id: I9b4c805663a5e86256182696f9cb9d35ae9d65ba
a2b8c1ba43e061620043eee7a4749b7f2e364570 30-Jan-2017 Keyvan Amiri <keyvana@google.com> Fixed focus transfer for GridLayoutManager and Leanback picker widgets

GridLayoutManager continued focus search even if the parent blocked the
focus delivery to its children. Also, Picker widget did not have the
right focus logic for the containing view and its child text views in
activated/deactivated modes. This CL fixed these 2 issues.

Bug: 34814581
Test: ./gradlew support-leanback-v17:connectedCheck
-Pandroid.testInstrumentationRunnerArguments.class=android.support.v17.leanback.widget.DatePickerTest
Change-Id: Id9d186a5363bed37d0df2e98940bea14aa70ad60
atePickerActivity.java
atePickerTest.java
35232c6eaeb9b99f390cb8ef0ac83bf45fa0b3fa 01-Feb-2017 Aurimas Liutikas <aurimas@google.com> Update test sizes for all currently @SmallTest.

SmallTests are supposed to complete in <200ms, Medium in <1s, and Large in <30s.
This CL updates the size of all the SmallTest based on excecution times from
presubmit test runners.

Test: None
Bug: 34854821
Change-Id: Iec73f7b6ef63b27cd3d8b19a8e8c7a9b91ff6729
ridWidgetTest.java
28f32a294cf077dd4c681f24581b3eec902ec633 30-Jan-2017 Dake Gu <dake@google.com> Leanback: parallax and details video API refactoring
am: e1cde4d4ac

Change-Id: I9f1111e1e895087430cede7607aebf488c159b0e
f3ecc26dc721487179ea927094c9c0083c42eeff 30-Jan-2017 Dake Gu <dake@google.com> Merge "Leanback: parallax and details video API refactoring" into nyc-support-25.2-dev
e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771c 21-Dec-2016 Dake Gu <dake@google.com> Leanback: parallax and details video API refactoring

There are too many new concpets introduced when we create
multiple building blocks around parallax. This CL tries to
get rid of some classes.

1. Remove class ParallaxSource, integrated into Parallax.
So there is no more setSource()/getSource().

2. Replace DetailsParallaxManager with DetailsParallax. It is no
longer a manager pattern but DetailsParallax is a direct
subclass of Parallax.

3. Replace DetailsBackgroundParallaxHelper with
DetailsParallaxDrawable which is a direct subclass of
CompositeDrawble. No more helper concept.

4. remove the glue creation API from DetailsFragment, those
are not necessary and app can do it on the side.

The summary of new classes:
1. Parallax, tracks multiple UI events and perform multiple
ParallaxEffects on ParallaxTargets. RecyclerViewParallax is a
subclass of Parallax that monitors RecyclerView child positions.

2. DetailsParallax is a subclass of RecyclerViewParallax,
DetailsFragment holds the DetailsParallax object and is responsible
to attach it to VerticalGridView and sync with Transition animation.
DetailsParallax is shared by both background bitmap and video.

3. Created a DetailsFragmentBackgroundController class responsible
for parallax background and embedded video playing.

Bug: 33750080
Bug: 33751156
Test: all existing leanback tests

Change-Id: Iec81a444d5d4fbeb675f16222b09b407acf007a2
arallaxFloatEffectTest.java
arallaxFloatSourceTest.java
arallaxFloatTest.java
arallaxIntEffectTest.java
arallaxIntSourceTest.java
arallaxIntTest.java
cf2ed161d09de8af108dfa9775b2d4449d46306a 25-Jan-2017 Chris Craik <ccraik@google.com> Initial prefetch support for leanback's GridLayoutManager

Bug: 32981813
Test: new tests passing

Prefetch 1 row/column, without nested support yet.

Change-Id: I7bd467e5176791d68002c98d663ee637b5e0d3d9
ridWidgetPrefetchTest.java
ingleRowTest.java
33c8bbc49708facb096e30a98b82a743c898bdd3 18-Jan-2017 Dake Gu <dake@google.com> leanback: Support single RowHeaderView with no id case

This fixes testcase when the view does not have id.
In next release we should explicitly specify the id in java doc.

Bug 34282002
Test: leanback tests
Change-Id: I82d21982cf88692c437b12abad891fcad4639fa6
resenterTest.java
16cb98dc4b7af5eae092a25446a0aa5133f1f5eb 09-Dec-2016 Dake Gu <dake@google.com> leanback: make description view GONE for empty text

Bug: 33484449
Test: testRowHeaderPresenter
Change-Id: I352c13b9085d6ea3cc040ce313b18d26fe6ff1c7
resenterTest.java
cc671dd3caac1d0cbf3f6999ab063c9ff1f297b2 18-Oct-2016 Dake Gu <dake@google.com> Add checkstyle:off flag

Test: None
Bug: 32243836

Change-Id: I5c28ee5b4623e25126518ceb99f17b5ee384cb76
arallaxFloatEffectTest.java
arallaxFloatSourceTest.java
b50e46706ac654b071942bd7f6ba059c14c9c29a 12-Oct-2016 Dake Gu <dake@google.com> Fix flaky GridWidgetTest more

Test: testFocusToFirstItem GuidedStepFragmentTest
Bug: None

Change-Id: I815284eb38ae181b18fe229a89c66eb288b5bfb2
ridWidgetTest.java
21ac4a7e2cc753b4e4eeaa7edb9696add157ebf8 08-Oct-2016 Dake Gu <dake@google.com> Fix some flaky test

Use onLayoutCompleted() callback to wait layout.

Bug: 31771962
Test: GridWidgetTest

Change-Id: I30b72ed046bf2b7d24db7c6cd920e6b5825d5593
ridWidgetTest.java
580515488b23ac8a39795d11aef985c0f05c467e 05-Oct-2016 Dake Gu <dake@google.com> leanback test: add more analysis info for flaky test

Test: nothing changed
Bug: none
Change-Id: Ie0bf45a04525b3d858a36e4330e6ea0f92af4904
ridWidgetTest.java
03eae4e82fccd027e003a8d1544d3e9023404b14 03-Oct-2016 Dake Gu <dake@google.com> leanback: dont clearFocus in layoutInit

clearFocus() triggers unecessary focus search.

Test: added two test cases and run against all widget test
Bug: none
Change-Id: I78bad294d70b79d9d28c7d9015db8dca11081dfb
ridWidgetTest.java
b3034c5df0d06f3dbfa466af19b1f014967f3d75 29-Sep-2016 Dake Gu <dake@google.com> Leanback: Fix flaky tests

Test: modified
Bug: 31771962

Change-Id: Id44203e3ed696bd63d2661f0a4e67a7e3a889d1b
ridWidgetTest.java
42e7d6fafcde7bfe261dd7d8d75ee53ca0cd6790 28-Sep-2016 Aurimas Liutikas <aurimas@google.com> Replace usage of Instrumentation#runOnMainSync with ActivityTestRule#runOnUiThread.

ActivityTestRule#runOnUiThread handles exceptions correctly and thus should be used
in place of Instrumentation#runOnMainSync. This changes most of these use-cases
except for tricky cases.

Bug: 31801302
Test: ran support-design:connectedCheck and support-appcompat:connectedCheck
Change-Id: I70904aef89e6bbc2a3cff1b3be697258d666e316
ridWidgetTest.java
754cb29c50f09a83251dd4bb633ba445b2411adb 27-Sep-2016 Aurimas Liutikas <aurimas@google.com> Switch from deprecated size annotations to new ones.

Switching from android.test.suitebuilder.annotation.*Test
to android.support.test.filters.*Test.

Bug: 30074170
Test: manual - ran small appcompat tests, they still run and pass
Change-Id: Idce58b988c8e1a809f7f5fae67e0e235159d9fc5
aseCardViewTest.java
ridWidgetTest.java
orizontalGridViewEx.java
ediaNowPlayingViewTest.java
agingIndicatorTest.java
arallaxFloatEffectTest.java
arallaxFloatSourceTest.java
arallaxIntEffectTest.java
arallaxIntSourceTest.java
resenterTest.java
hadowOverlayContainerTest.java
ingleRowTest.java
taggeredGridDefaultTest.java
erticalGridViewEx.java
a49ace0cc347f152d2847ca1290d9150a0413b31 23-Sep-2016 Keyvan Amiri <keyvana@google.com> Updated support for animator in MediaNowPlayingView pre-Lollipop

propertyValuesHolder is not supported pre-L which was causing crash for
API 21 and below. Moved all the animation for the MediaNowPlayingView
inside the code.

Test: MediaNowPlayingViewTest
Bug: 31687045
Change-Id: I139bdc61841b64f26f4ed9b719605d9f86feab7a
ediaNowPlayingViewTest.java
3103f63e99d47573823957f7aa34308555873221 20-Sep-2016 Aurimas Liutikas <aurimas@google.com> Fix all operator wrapping issues in leanback library.

Test: code still compiles, there should be no code/logic changes.
Change-Id: I6e97e2ba429c323022055263540c3fb6d0003822
aseCardViewTest.java
ridActivity.java
ridWidgetTest.java
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
ridActivity.java
ridTest.java
ridWidgetTest.java
agingIndicatorTest.java
ingleRowTest.java
taggeredGridDefaultTest.java
bb97551549241c4adff4dc246de80def40aad744 26-Aug-2016 Dake Gu <dake@google.com> Fix BaseCardView

Bug 28746430 The flip flop visiblity issues.

Deprecated setExtraVisibility() since BaseCardView never looked
at that value, internally it uses value of setInfoVisibility().
Decouple setActivated() and setSelected(), setSelected() is no
longer considered dependant on setActivated.
Fixed many other issues related with animation.

Created several test cases.

Change-Id: I93a973a014c20cbd4de03fcc7c6cbd5da775dc13
aseCardViewTest.java
386c77e84a7eacf073c86aead6f653770d6c56ba 06-Sep-2016 Aurimas Liutikas <aurimas@google.com> Convert several Leanback tests to JUnit4.

Change-Id: I5dd78555a40d2f08806bf90101d2ff3341a7309e
ridTest.java
agingIndicatorTest.java
resenterTest.java
hadowOverlayContainerTest.java
06dd2b62f48746fbb1447b171db882d0a458368e 25-Aug-2016 Dake Gu <dake@google.com> Convert GridWidgetTest to AndroidJUnit4

Change-Id: Idea0f1d83c133d2654d0e81b3df758f266026f92
ridWidgetTest.java
d1f491d37de7420febb0345cb6b254f6eef196eb 18-Aug-2016 Dake Gu <dake@google.com> Merge "Fix GridWidgetTest.testFocusableViewAvailable"
61afde67696f46ecb82eb0a26038c6fbf3383c2c 18-Aug-2016 Dake Gu <dake@google.com> Fix GridWidgetTest.testFocusableViewAvailable

Bug 30943873

Change-Id: Id1175e0fdf1bdb801acbb8853a62bf128b5b2f77
ridWidgetTest.java
f0039c1465cd83a4f30c4f0ce24a6b15f3e26874 17-Aug-2016 Aurimas Liutikas <aurimas@google.com> resolve merge conflicts of 019c65e to master

Change-Id: I6846ffff4a5085a15c2786fbebcbd22da746f0bf
fad2335f169d36b7b6f2c0ec8ddfe6c0094c2072 16-Aug-2016 Aurimas Liutikas <aurimas@google.com> Annotate more support lib tests with size annotations.

Turns out we were not running these tests because they are not
annotated with @SmallTest, @MediumTest, or @LargeTest.

Bug: 30892341
Change-Id: I4ed870d4c1a456c1fcd446243179c005653a041d
ridWidgetTest.java
resenterTest.java
hadowOverlayContainerTest.java
35a680402b90f786b912cead8b23ecca4ab7c692 05-Aug-2016 Dake Gu <dake@google.com> Fix build for Parallax test

Change-Id: I17e0b17d0e07f198d578de4abc9bd95c6c6a3fd3
arallaxFloatEffectTest.java
arallaxFloatSourceTest.java
arallaxIntEffectTest.java
arallaxIntSourceTest.java
f5f386abee45f9256980e99d910c80922f1865e7 04-Aug-2016 Dake Gu <dake@google.com> Merge "leanback: Refactoring ParallaxSource to use Property"
ef4e1b371215f9fffa9245159250740b611dfb4d 01-Aug-2016 Dake Gu <dake@google.com> leanback: use android attr vertical/horizontalSpacing

Follow the name convension of android, call the space between grid
item "verticalSpacing" and "horizontalSpacing". Deprecate the old
customized attribute verticalMargin and horizontalMargin.

Change-Id: Id5a1efdb9ce2f1062abd62d501869d2b0310a5c9
ingleRowTest.java
taggeredGridDefaultTest.java
3778c4eaa62895085d33965ee391c8b21783cffa 29-Jul-2016 Dake Gu <dake@google.com> leanback: Refactoring ParallaxSource to use Property

Removed "Variable", replaced with "Property", move the
stored int/float values into ParallaxSource. Property contains
an index to retrieve value from ParallaxSource.

Let the ParallaxRecyclerViewSource to subclass Property
to add definitions of how to track a view position on screen.

Bug 30476379

Change-Id: Id442f32177edfbcd21eb98a98d2b6ed8021d666b
arallaxFloatEffectTest.java
arallaxFloatSourceTest.java
arallaxIntEffectTest.java
arallaxIntSourceTest.java
39cd1462e1d9e3c8f890db8964a6b0a93f58bd3f 28-Jul-2016 Dake Gu <dake@google.com> leanback LM: Fix unnecessary prepended when there is margin am: 5642066d79 am: af4d015ff4 am: e5a24e3e02
am: 4bcc360dcf

Change-Id: I59bdbeab77821a8ac46f0faec3ec75ba89c946cd
46ae6eb27de10f019258fe197c794cf2234abe5d 27-Jul-2016 susnata <susnata@google.com> Fix bug with non-linear update in ParallaxTarget.

By default ObjectAnimator uses accelerateDeccelerate interpolator,
which causes issues with our parallax behavior. This fix sets
LinearInterpolator as the default interpolator in ObjectAnimator.

Change-Id: I747df4616b6c453f2dec2412b51b6654270a7efa
arallaxFloatEffectTest.java
arallaxIntEffectTest.java
5642066d798fb95368c66e78bcd70644552a98b2 26-Jul-2016 Dake Gu <dake@google.com> leanback LM: Fix unnecessary prepended when there is margin

Also converted Grid test cases to use AndroidJUnit4.

Bug 30404474

Change-Id: Ia4a5b2d625a445ebb4db847a2ba5fcca9d47a9c1
ridTest.java
ingleRowTest.java
taggeredGridDefaultTest.java
770847c0c8424175f0619026615b11fef50ca269 19-Jul-2016 Dake Gu <dake@google.com> Make Parallax working and add Parallax Tests

Change-Id: I8909a090a8648e50faf84f3c4c5a3a0d6840da56
arallaxFloatEffectTest.java
arallaxFloatSourceTest.java
arallaxIntEffectTest.java
arallaxIntSourceTest.java
7a38d7478bb7a0ec2bfc87e50b77c93fe5f66bfe 22-Jun-2016 Dake Gu <dake@google.com> leanback: add test case for selection with adapter change

Bug 29279610

Change-Id: Iec421d841033bafc41f8dc836d1a8e8e541e5ce0
ridWidgetTest.java
88c1cf67c6437e5e0f386b65b9e79605a111bd03 31-May-2016 Dake Gu <dake@google.com> GridLayoutManager: call focusableViewAvailable() inside layout pass

Onboard fragment layouts VerticalGridView, then starts a transition.
focusableViewAvailable() is called in a post runnable, causing a
scroll animation run together with transition.

Move focusableViewAvailable() call into layout pass, if framework
focuses to the view, gridview will align to the view in layout pass,
avoids extra scroll animation.

Bug: 28274171

Change-Id: Id348746c4d93a23527e7e829801e0a63e4622d77
ridWidgetTest.java
7d7bf9541e0203ec67df0fe53367e2c126355b9e 07-Jun-2016 susnata <susnata@google.com> Moving Leanback unit tests.

Moving Leanback unit tests from frameworks/support/v17/tests
to frameworks/support/v17/leanback/tests.

Change-Id: I1dbfe73434a61d721f8666911c688930a8cb32cb
ssertHelper.java
ridActivity.java
ridTest.java
ridWidgetTest.java
orizontalGridViewEx.java
agingIndicatorTest.java
resenterTest.java
hadowOverlayContainerTest.java
ingleRowTest.java
taggeredGridDefaultTest.java
erticalGridViewEx.java