• Home
  • History
  • Annotate
  • only in /frameworks/support/v17/leanback/src/android/support/v17/leanback/widget/
History log of /frameworks/support/v17/leanback/src/android/support/v17/leanback/widget/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a5bdf8e4c360022cd211b2cb9f3807b7cf7b50a2 30-Jun-2017 Keyvan Amiri <keyvana@google.com> Fixed NPE in onAddFocusables

If the currently focused child is invalidated, findViewByPosition could
return null for valid focused child index. This caused onAddFocusables
crash when adding focusable views for the currently focused child.

Bug: 36738635
Test: Not reproduciable for now
Change-Id: I6c455f5b25fc8ce3cdd476fa5c6f19c76a302100
(cherry picked from commit d1c84431459c8f6196777617d8d32e3206b58412)
Merged-In: I6c455f5b25fc8ce3cdd476fa5c6f19c76a302100
(cherry picked from commit 1d3842a69a4a1ff5d3fc9e0f46b291e2ac5728ac)
ridLayoutManager.java
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
rid.java
ridLayoutManager.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
ridLayoutManager.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
ridLayoutManager.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)
ridLayoutManager.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
ridLayoutManager.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
rid.java
ridLayoutManager.java
ingleRow.java
taggeredGrid.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
rid.java
ridLayoutManager.java
ingleRow.java
taggeredGrid.java
ce678995ede4a5e09486145727fe76f231a7c866 17-May-2017 Dake Gu <dake@google.com> leanback: add TYPE_TEXT_FLAG_NO_SUGGESTION for GuidedAction

For edit text, we have to explicitly disable the suggestion
or we might see a underline, discovered this on latest oc-dev
build. I didn't discover this before O. I haven't figured out
when the auto suggestion is activated.

Test: set the flag and rerun SupportLeanbackDemos.
Bug: 38355872

Change-Id: I5ecb6befcd9bee8614e67016c8cbccfaedfac826
uidedAction.java
uidedActionsStylist.java
85b5869271426afffbc95e05591450ea18e336ed 16-May-2017 Dake Gu <dake@google.com> Merge "Fix constant in PlaybackControlGlue Actions." into oc-dev
946a01cfedb6838e98d7a37e30f64c39b603893d 12-May-2017 Dake Gu <dake@google.com> Fix constant in PlaybackControlGlue Actions.

The values are ment to be constant.

Bug: N/A
Test: N/A

Change-Id: I1ba306fe02beb52f837748c5af75d0c1fffea991
laybackControlsRow.java
18c79200bde99dcb8919935e40f2dc788e3bf9bc 12-May-2017 Dake Gu <dake@google.com> Merge "Leanback: fix javadoc of overriding child overlay." into oc-dev
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
aseGridView.java
ridLayoutManager.java
indowAlignment.java
2f49fc87c3ae6d410162e7c28215d7ca859318c6 11-May-2017 Dake Gu <dake@google.com> Leanback: fix javadoc of overriding child overlay.

The javadoc is a little misleading about overriding the overlay of
child. Subclass should override applySelectLevelToChild.
onSelectLevelChanged() is overriden for additional dimming effect
on other static views added by subclass such as a footer view.

Bug: none
Test: none

Change-Id: I4e3b7623ae9a4b87bd5d677708126fbc63107bc8
istRowPresenter.java
128c9c1b32907fd5390eedf535ca91e2605a57d6 04-May-2017 Dake Gu <dake@google.com> Merge "leanback: Fix GuidedStepFragment greyed items" into oc-dev
163df90a6133c655cb84bbea89247496f157db6c 04-May-2017 Dake Gu <dake@google.com> Merge "leanback: fix GuidedStepFragment baseline alignment" into oc-dev
fa3662f76a0ed5591417144d866d511812667afd 04-May-2017 Dake Gu <dake@google.com> Merge "Adding support for launching GuidedAction in edit mode." into oc-dev
3a585b405904d1d8dc9c714ae06da4441a07382d 03-May-2017 Dake Gu <dake@google.com> leanback: fix GuidedStepFragment baseline alignment

Using FontMetricsInt does not consider the case that textView
can have extra space above the the text line. Switch to
use getBaseline()

Bug: 37947607
Test: manually change Guidance text view and Guided action text view
layout_height in style and inspect in sample app.

Change-Id: I312e19ff4dbedbd867f18c6b546a9bf78737928e
uidanceStylingRelativeLayout.java
temAlignmentFacet.java
temAlignmentFacetHelper.java
df715f15ab54e487840c51f9fedd9a4409856096 03-May-2017 susnata <susnata@google.com> Adding support for launching GuidedAction in edit mode.

Currently, for editing actions in GSF we need to click on the title.
This CL allows us to set the edit mode on action which will launch
GSF directly in edit mode while showing the keyboard.

Test: None
Change-Id: If2c7eec194c20966e6e690db89eab9bf3e110592
uidedActionAdapter.java
uidedActionsStylist.java
66e932ebd959ffe318f0780c5f689bac29b09b50 03-May-2017 Dake Gu <dake@google.com> leanback: Fix GuidedStepFragment greyed items

Should save and cancel existing animator.

Test: manual test sample app
Bug: 35881764
Change-Id: Ia9b5822fc91380c7a4e981de0133b7b66070c1fc
uidedActionsStylist.java
87f6053302ff011864c8a050f7e527a7c4e90893 03-May-2017 Dake Gu <dake@google.com> Merge "leanback: fix Item alignment." into oc-dev
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
aseGridView.java
temAlignmentFacet.java
temAlignmentFacetHelper.java
0cb1f577feba17baceb159ab7592e1050425bbad 02-May-2017 Keyvan Amiri <keyvana@google.com> Enabled customization of the arrow color in OnboardingFragment

Previosuly, we could customize the foreground color of the arrow but not
the arrow itself which was a PNG drawable. This CL uses ColorFilter that
is installed on the paint which draws the arrow. This enables setting
the bitmap color.
Also defined theme attribute for setting color. Programmatically setting
this color will supersede the theme attribute.

Bug: 37881573
Test: tested with a subclass of OnboardingFragment both setting the
color through the theme attribute as well as dynamically in onCreate().

Change-Id: I18a8d98f7fffe1c029a9116bbcd031ad67c6b10d
agingIndicator.java
d296eb89993ae82628e82ae9528688f7b2620774 24-Apr-2017 Dake Gu <dake@google.com> Merge "leanback: better support custom onSelectLevelChanged()" into oc-dev
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
istRowPresenter.java
hadowOverlayContainer.java
c807587e03e775abb23f62894ad59bfb91cfbd97 20-Apr-2017 Dake Gu <dake@google.com> leanback: fix crash late assigning Adapter that has stable ids

We cannot assign a ItemBridgeAdapter to RecyclerView
and later RowsFragment.setAdapter() to change hasStableId
to true. RecylcerView will crash.

So BaseRowsFragment have to delay the
RecyclerView.setAdapter(itemBridgeAdapter)
until app pass in a adapter.

However, this has a side effect on FocusHighlightHelper.
setupHeaderItemFocusHighlight(VerticalGridView). We no longer
guarantee the VerticalGridView will have an ItemBridgeAdapter
assigned to it in onViewCreated(). So we have to introduce
new APIs to expose getBridgeAdapter() and let FocusHighlightHelper
use ItemBridgeAdapter.

Bug: 37515649
Test: HeadersFragmentTest#disableScaleInConstructor
RowsFragmentTest#changeHasStableIdToTrueAfterViewCreated

Change-Id: I1137b81ced68a9d9a8fb13ca689882b9a39d09c7
ocusHighlightHelper.java
6ab60d4d0b40ff9d886132c3e76a6c91f50286dc 19-Apr-2017 Dake Gu <dake@google.com> leanback: add missing methods in package private BaseGridView

Make the BaseGridView public so the methods will appear in api file.
The constructor is kept package private so only support library can
subclass BaseGridView.
Minor javadoc improvement.

Bug: 37415980
Test: generateDocs and updateApi
Change-Id: I5be7c9cf51296564cfea2b5a2a612cd5bd3de4ec
aseGridView.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
ontrolBar.java
ontrolBarPresenter.java
laybackControlsRow.java
laybackControlsRowPresenter.java
laybackControlsRowView.java
laybackSeekDataProvider.java
laybackSeekUi.java
laybackTransportRowPresenter.java
laybackTransportRowView.java
owContainerView.java
eekBar.java
humbsBar.java
8a058074df40beb07fe45c1eaae5baffd63f6a97 14-Apr-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Remove unnecessary casts on calls to findViewById" into oc-dev
93cc83d6fffa2138aa0509f6fd70f1c02087683c 13-Apr-2017 Keyvan Amiri <keyvana@google.com> Enabled dynamic setting of different colors in OnboardingFragment

OnboardingFragment enabled setting the TitleView, DescriptionView
colors and background colors for dots and arrows through theme attributes.
This CL adds APIs to enable setting them programatically. When set
through the code, these colors will supercede the color values set
through theme attributes.

Test: manual test on an app with both theme attributes and programmatic
setting of different colors. The color from the API calls should take
over.

Change-Id: I859b73bbf104dad423fce4b4295d921bd155b278
agingIndicator.java
fa2e2acf79d791a90410025daad438968550d18c 31-Mar-2017 Alan Viverette <alanv@google.com> Remove unnecessary casts on calls to findViewById

Updates Android.mk where applicable.

Bug: 24137209
Test: make -j32
Change-Id: I04084b2d05ddd7afaa160a76efe0b0d0c8eb5f00
mageCardView.java
istRowHoverCardView.java
ediaNowPlayingView.java
owContainerView.java
icker/TimePicker.java
4f30a89b26d64a98cddf8aa4a399f008fe5c2c4d 12-Apr-2017 Dake Gu <dake@google.com> Merge "leanback: switch to use getAdapterPosition() for accessbility node" into oc-dev
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
rid.java
ridLayoutManager.java
taggeredGrid.java
902cd5c04e05bd5d94b969698a5ce502f0d92180 12-Apr-2017 Chris Craik <ccraik@google.com> Merge "Work around android.view.animation.Animation bug prior to N" into nyc-support-25.4-dev
am: 678e6103ca

Change-Id: I707a85154bd35781ec4f65edb22c9cd107f8d5e5
678e6103ca1d3fd4ce95a5cd35c6e42a0ca9c88c 12-Apr-2017 Chris Craik <ccraik@google.com> Merge "Work around android.view.animation.Animation bug prior to N" into nyc-support-25.4-dev
c6dae16bdbaf9070358886a55b556bfc45025a83 11-Apr-2017 Chris Craik <ccraik@google.com> Work around android.view.animation.Animation bug prior to N

Fixes:36652953
Test: none

Prior to N, Animation#cancel() would cause an animation to infinitely
loop instead of stopping. Calling View#clearAnimation avoids the
problem, since it removes the Animation entirely.

Change-Id: Iabce4bbcfedcf6b2e1d87c742d859c174113b1ab
aseCardView.java
43d43155a4d311e79ce9cd49b4519c7697d41eae 31-Mar-2017 Dake Gu <dake@google.com> Merge "DetailsFragment: support switchToVideo in onCreate" into nyc-support-25.4-dev
am: 73a205fa58

Change-Id: I0aec780f5e2ab7769115572ab8a7c2865caaba09
89097f67f988ebba714a95e10369665280db0c27 25-Mar-2017 Dake Gu <dake@google.com> DetailsFragment: support switchToVideo in onCreate

Allows DetailsFragment to be put in intial video mode
and skip entrance transition and enter transition.

The DetailsFragment's state model is fairly complicated
including entrance transition, enter transition and
switchToVideo call. So reworked StateMachine and based
DetailsFragment on StateMachine, remove the PF_ flags used
before.

When switchToVideo is called in DetailsFragment.onCreate,
there is no video fragment yet, but we still fade out
cover drawable and create a pending flag once the video
fragment view is created will focus on to it.

Added support in GridLayoutManager to allow slideOut() when
there is no child, and layout the first pass out of
window.

switchToVideo is not allowed with entrance transition.
once prepareEntranceTransition is called, switchToVideo will
be ignored until entrance transition is finished. On the other
hand, calling prepareEntranceTransition after switchToVideo
will be ignored.

switchToVideo will clear activity enter transitions. Once
it is called in onCreate, we do not want the activity enter
transition to run.

Test: bunch of new tests in DetailsFragmentTest for all kinds
of scenarios
Bug: 36126851

Change-Id: Ic0279331b12b1e285507dffda3ad351245c01a1b
ridLayoutManager.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
ridLayoutManager.java
a207d6d23fe5e7c15e4a3dbc4832e732d884ad05 23-Mar-2017 Dake Gu <dake@google.com> Merge "leanback: make Details embedded video more useful" into nyc-support-25.4-dev
am: 41533c6ca0

Change-Id: I63f3c58ce9db27801a2c1ac21c6677167746c7e7
f87eb1d84dfee2f1be9ea326754829b1eff4967f 22-Mar-2017 Dake Gu <dake@google.com> leanback: make Details embedded video more useful

The current implementation has assumption that
the PlaybackGlue is setup during onCreate() and there
is only one PlaybackGlue allowed. The restriction
makes some use cases impossible. This CL address this
by adding more flexibility of when a PlaybackGlue can
be assigned to DetailsFragmentBackgroundController.

1. allow setupVideoPlayback() later, this allows
app add a purchase flow before playing.

2. allow setupVideoPlayback() multiple times, so
a real video can replace trailer video after
purchase flow is done.

3. Fix bug of RecyclerViewParallax not running
parallax effect when there is no item, added
a onLayoutChangeListener so that DetailsParallaxDrawable
will set correct bounds when RecyclerView is assigned
a initial size (verified by test noInitialItem)

4. new API canNavigateToVideoFragment(), this allows
app to control when DPAD_UP can navigate to videos.

5. new API switchToVideo() so that app can switch to video
UI programmatically after a purchase flow finishes.

Bug: 36126851
Test: DetailsFragmentTest DetailsSupportFragmentTest

Change-Id: I7cd4084e71b85d8fd739d30a421746312bdb086c
ecyclerViewParallax.java
51bde5dfa2070705a9ee1072f2f89bcd37040568 22-Mar-2017 Dake Gu <dake@google.com> Merge "Fix multiple bugs related with DetailsFragment:" into nyc-support-25.4-dev
am: 256abb7035

Change-Id: Idc97e0fea29eeba0223ba5fbaa1754a37890be3f
f2fdec90b07738a4a246aa1e5c75ce3a1d2ae4fa 22-Mar-2017 Dake Gu <dake@google.com> Merge "Leanback: fix regression caused by fixing error prone" into nyc-support-25.4-dev
am: 1973b350ba

Change-Id: Ic2d18bc55b895a1f1445beaec32b424661cc3731
256abb7035e1769e56ee440c3abdf3f673b6c885 22-Mar-2017 Dake Gu <dake@google.com> Merge "Fix multiple bugs related with DetailsFragment:" into nyc-support-25.4-dev
6525e063fbbd691a8553f4fc77f3960f93bea34d 22-Mar-2017 Dake Gu <dake@google.com> Fix multiple bugs related with DetailsFragment:

1. If onStart reinitialize the adapter, it may causes
BaseGridView.animateOut() being called when there is
no child which causes NPE in GridLayoutManager.slideOut()
2. In DetailsFragment.onStart() we should not requestFocus()
on vertical grid view if DetailsFragment already gains focus,
otherwise it will move focus out of embedded video playing.
3. remove support of DPAD_DOWN from playback to details ui.
The returning is done through BACK.
4. Fix the flaky DetailsFragment navigation tests.
5. Make PlaybackFragment internal variable package private
to remove potential generated stub method and easy to test.
6. Change DetailsFragmentTest to be "LargeTest" to skip
the TreeHug integration.

Bug: 36492114
Test: DetailsFragmentTest DetailsSupportFragmentTest

Change-Id: Ia437611c234565aa6a85709c897cdd436ff21cf9
ridLayoutManager.java
985d0981d78f9ea1602e5562fda5f08a2fa8748c 22-Mar-2017 Dake Gu <dake@google.com> Leanback: fix regression caused by fixing error prone

Revert the round() change in fixing error prone warning.

Bug: b/36497651
Test: GridWidgetTest

Change-Id: I0d0c7e004ba2e6b265e5d956febafb486bef51cc
temAlignmentFacetHelper.java
8e93f05e1730ebd537764f1e7680c3bdc0e1bddb 21-Mar-2017 Dake Gu <dake@google.com> Merge "leanback: fix errorprone warnings" into nyc-support-25.4-dev
am: 27d7a9f884

Change-Id: I5894593e25e11ab6f44573e776cd959da814b8d7
27d7a9f8840a21da4ef3319a6930d192c1adb1cd 21-Mar-2017 Dake Gu <dake@google.com> Merge "leanback: fix errorprone warnings" into nyc-support-25.4-dev
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
694edde99dc3782374977dab6d9aa34a16c13337 15-Mar-2017 Dake Gu <dake@google.com> leanback: fix errorprone warnings

Bug: 36252690
Test: N/A
Change-Id: I60a692554882a17d63789a689b4d4c3c37a00aed
bstractMediaItemPresenter.java
ctionPresenterSelector.java
etailsOverviewSharedElementHelper.java
ocusHighlightHelper.java
ullWidthDetailsOverviewSharedElementHelper.java
ridLayoutManager.java
uidedAction.java
temAlignmentFacetHelper.java
owHeaderPresenter.java
6e1de7526676147778d7f3721d7f06743f924379 15-Mar-2017 Dake Gu <dake@google.com> Merge "leanback: fix javadoc ArrayObjectAdapter#add" into nyc-support-25.4-dev
am: f51b77245e

Change-Id: Ic1bb8ed0de87e528fd1f52b589dacf91177de9d6
f702a22f32f169c18139d4047779f9da60b9158c 15-Mar-2017 Dake Gu <dake@google.com> leanback: fix javadoc ArrayObjectAdapter#add

Bug: 36259460
Test: N/A
Change-Id: I3dfd61e5e15cc5d4595d4e04b5f0f70006e1f663
rrayObjectAdapter.java
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
ridLayoutManager.java
695dafc28f3a6befa849f620021304b6f2344278 13-Mar-2017 Dake Gu <dake@google.com> lenback: fix flaky parallaxTest
am: 5feb286576

Change-Id: I49f3a6176f460cc88ae11ce065b219f9186c62a8
5feb2865769ac490ceeb1a77a96afe77a3efc24e 13-Mar-2017 Dake Gu <dake@google.com> lenback: fix flaky parallaxTest

Exclude transaltionY applied by recyclerview's ItemAnimator
animator.

Test: DetailsFragment.parallaxTest
Bug: 32022097
Change-Id: I92c247a79868ed1b91af6582a5e0610a307de485
ecyclerViewParallax.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
ontrolBar.java
laybackControlsPresenter.java
22bdcb0886c8ce31d003457db9e5ebb734f11b5a 08-Mar-2017 Aurimas Liutikas <aurimas@google.com> Fix IdentityBinaryExpression warnings in support library

Error prone found these 2 bugs in our code.

Bug: 35965190
Test: ./gradlew assembleErrorProne
Change-Id: I97fba6f70dcdc979567e94f58ee1676e3736f0b3
etailsOverviewLogoPresenter.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
itleViewAdapter.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
etailsParallax.java
etailsParallaxDrawable.java
arallax.java
arallaxEffect.java
arallaxTarget.java
ecyclerViewParallax.java
27644c071b7fc0e1e4f91194f2a08b4aa2cf1465 05-Mar-2017 Aurimas Liutikas <aurimas@google.com> Remove unused imports in support library classes.

Test: ./gradlew assebmle assembleAndroidTest
Change-Id: I429f0abb742bfed9288f84a7d6a3208063068f23
bstractMediaListHeaderPresenter.java
ction.java
etailsOverviewRow.java
oregroundHelper.java
uidanceStylist.java
uidedDatePickerAction.java
temAlignment.java
temBridgeAdapterShadowOverlayWrapper.java
nChildViewHolderSelectedListener.java
laybackControlsRow.java
earchEditText.java
taggeredGrid.java
taticShadowHelper.java
treamingTextView.java
itleViewAdapter.java
erticalGridPresenter.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
ction.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
owContainerView.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
ridLayoutManager.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
aseGridView.java
ridLayoutManager.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
aseGridView.java
ridLayoutManager.java
83f91e3fe2c3e265e8b1ef937ea5cfe9ed0e597c 23-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "Added the default format and ordering of columns for TimePicker" into nyc-support-25.2-dev am: ab90877071 am: 9a09efcbee
am: 6a42c47d9d

Change-Id: I94c1b4f935c7b5c90d58f5e7aa4f7e624a64170a
6a6f2481fd4d80846a9527339a8fd2f29533f4d0 23-Feb-2017 Keyvan Amiri <keyvana@google.com> Added the default format and ordering of columns for TimePicker

TimePicker used 12 hour format by default, if not explcitly set by
the user. It now retrieves the 12 vs 24-hour mode from the context
based on the user preference.
Also used a more reliable method to find the ordering of AM/PM column
w.r.t the other fields for API 18 and above.

Test: See the ordering of AM/PM column for Korean which should come at
the beginning.

Change-Id: I8817c1db991877e74cb50d175ca94f3c2b6a3e04
icker/TimePicker.java
9c6e3b7efd131555af309968f3043878e69446af 18-Feb-2017 Dake Gu <dake@google.com> resolve merge conflicts of d27354038a to master

Change-Id: I67d5c7af137b92a0cb7b1f6988e30529319d2784
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
9869eb38607552105baa88a0fcba610461045eb5 16-Feb-2017 Dake Gu <dake@google.com> DetailsFragment: move navigation actions out of focusSearch

Move the showTitle and slideOut actions from focusSearch()
method to when focus actually changed.

Doing actions in focusSearch is generally a bad idea, wont work
with talkback which completely bypass the focusSearch() senario.
This is first step toward supporting talkback.

Refactored DetailsFragmentTest and added script to generate
DetailsSupportFragmentTest.
Added Test of navigation between video/rows/title using
requestFocus and DPAD.

Test: DetailsFragmentTest DetailsSupportFragmentTest
Bug: 35437018

Change-Id: I01f51c07675dc6858fbc1a83ea23921294fb48ac
rowseFrameLayout.java
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
aseGridView.java
ridLayoutManager.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
aseGridView.java
ridLayoutManager.java
0800a58729f5fdc6e399cbd299fbbc7442dbdb38 13-Feb-2017 Aurimas Liutikas <aurimas@google.com> resolve merge conflicts of 3be4cef3e4 to master

Change-Id: Ib5e4df4aba3637a51777ee167eed5bb9a8d99913
44ece5ceaaee232f9139ccbde40ac4a5e642bdee 12-Feb-2017 Christophe Beyls <software@digitalia.be> Fixed various it's -> its typos in comments and documentation

Test: None
Change-Id: I25617e1cfe26cdeacaa54040676a7abff475478e
mageCardView.java
owPresenter.java
iewsStateBundle.java
b1917de2ef088586d66986d641d6b1a196bda3d4 11-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "TimePicker widget for Leanback" into nyc-support-25.2-dev
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
icker/DatePicker.java
icker/PickerConstant.java
icker/PickerUtility.java
icker/TimePicker.java
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
ridLayoutManager.java
330cb0338aaa640c6bb0124b65ecc8377700143e 10-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "Fixed visibility of inactive columns in Leanback Picker widget" into nyc-support-25.2-dev
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
icker/Picker.java
01f4dd4a9bc3b80d3ddecc0264facbf6abfc1cc3 07-Feb-2017 Dake Gu <dake@google.com> DetailsFragment: coordinate transition and PlaybackGlue

1. Exclude SurfaceView from transition because
it's quite a big hit on performance and unknown consequence
if we force the color format to be RGBA8888.
Disabled setTransitionVisibility() which causes
visual flickering even view is not running
transition. We will see the SurfaceView disappears
immediately after activity return transition is finished.

2. DetailsFragment will postpone setHost on PlaybackGlue until
all three conditions satisfied:
- onStart() is called
- activity enter transition is finished
- entrance transition is finished
It is tricky to query if enter transition will run. We did
this by checking if there is enter transition started after
200ms of data loading.

3. When DetailsFragment execute return transition:
- call DetailsBackgroundVideoHelper.disableParallax()
to avoid auto-play video when detailsFrame is
running a slide transition to bottom.
- if video is not playing: immediately remove VideoFragment
so we wont see a dark SurfaceView during return transition.
- if video is playing: Let the Video continue playing when
running return transition. (Because it's much better to
pops out VideoFragment at end than in the middle of running
transition).

4. removed 1 sec CROSSFADE_DELAY between play() and fade out
background drawable, this seems unnecessary after we have
the onPlaybackReady() callback.

Bug: 32987665
Test: leanback tests (and there is no way to test activity transition
in ActivityTestRule)

Change-Id: I2ecee0276aa6ffc7963b92cd2104bb1ca62b01cd
ideoSurfaceView.java
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
ridLayoutManager.java
uidedActionsStylist.java
icker/Picker.java
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
ridLayoutManager.java
004e15ce37409d77fb5b5beaf1766850be2695ac 08-Feb-2017 Aurimas Liutikas <aurimas@google.com> Merge "Revert "Fixed focus transfer for GridLayoutManager and Leanback picker widgets"" into nyc-support-25.2-dev
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
ridLayoutManager.java
uidedActionsStylist.java
icker/Picker.java
182466f9292cfb12c3810733c2b43f7f40ecbf8a 06-Feb-2017 Keyvan Amiri <keyvana@google.com> Merge "Fixed focus transfer for GridLayoutManager and Leanback picker widgets" into nyc-support-25.2-dev
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
ridLayoutManager.java
uidedActionsStylist.java
icker/Picker.java
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
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
ridLayoutManager.java
50cf9ada93e50e906f20f5edf595234ada196d45 28-Jan-2017 Dake Gu <dake@google.com> Add option to allow customize HeadersFragment

To support enable/disable focus scale of HeadersFragment,
Refactored BaseRowFragment and Presenter to allow retaining
the same ItemBridgeAdapter when wrapped Adapter changes or
Presenter changes. So user can set up FocusHighlight
on the ItemBridgeAdapter without worrying it was overwritten
when recreating the ItemBridgeAdapter.
Added BrowseFragment.onCreateHeadersFragment() for user to
override HeadersFragment.

Added more test in RowsFragmentTest, Added HeadersFragmentTest.

Bug: 34777164
Test: RowsFragmentTest RowsSupportFragmentTest
HeadersFragmentTest HeadersSupportFragmentTest

Change-Id: Id3fbc9cb0b5b0a3c637d9bc789bb1104fbaa21f3
ocusHighlightHelper.java
temBridgeAdapter.java
377357a8c26c8c54ba8cb876ae775265635a8448 24-Jan-2017 Elliot Waite <elliotwaite@google.com> Fix @links in support docs.

Change-Id: I7acb3d14dee5227ac4d87710453f018c9d0f1b9d
ursorObjectAdapter.java
icker/PickerColumn.java
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
etailsParallax.java
etailsParallaxDrawable.java
arallax.java
arallaxEffect.java
arallaxRecyclerViewSource.java
arallaxSource.java
arallaxTarget.java
ecyclerViewParallax.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
rid.java
ridLayoutManager.java
ingleRow.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
owHeaderPresenter.java
0cbb8adab5ffa9ea87a070ff7b0de5bf3d84756f 16-Dec-2016 Dake Gu <dake@google.com> GuidedStepFragment: continue fix subActions

Last CL didn't consider both subActions Adapter
and actions Adapter share the same GuidedActionStylelist.
When we call setActions on subActions, we shouldn't
collapse subActions.

Bug: 32858270
Test: GuidedStepFragmentTest on API 19 and O/master

Change-Id: Ib6e2a0eafd32c8fb8be6bac5b86bdfa36d9976df
uidedActionAdapter.java
a51a405279fb81135abbb7c25ba431842582c8c8 15-Dec-2016 Dake Gu <dake@google.com> GuidedStepFragment: fix replacing actions when subActions expanded

Bug: 32858270
Test: GuidedStepFragmentTest#setActionsWhenSubActionsExpanded
Change-Id: I98ad2b08ec9199751b93727e6438c9081860f9a1
uidedActionAdapter.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
owHeaderPresenter.java
fe4317c9f0492c67e2ee48e3d135f649f5f1fc5c 29-Nov-2016 Dake Gu <dake@google.com> leanback: hide embedded video, parallax, CompositeDrawable

Hide the new classes/methods before finalizing APIs.

Change-Id: I3b6660a60457821f9e5e7aa40b5e98f16fb0baff
arallax.java
arallaxEffect.java
arallaxRecyclerViewSource.java
arallaxSource.java
arallaxTarget.java
77d397d533d04dfec663939692f2e048a072ee5b 23-Nov-2016 Alan Viverette <alanv@google.com> Perform API backwards compatibility check as part of support checkApi

Works around Doclava API check limitations in Snackbar and v17 classes.
Removes @removed code. Restores GuidedActionsStylelist API that was
removed without prior deprecation.

Bug: 30434567
Change-Id: I58c8a869f4e620d2aca8765a73105c95c185c791
uidedActionsStylist.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
ackgroundHelper.java
aseGridView.java
rowseRowsFrameLayout.java
ividerPresenter.java
ocusHighlightHandler.java
ocusHighlightHelper.java
uidedActionAdapter.java
uidedActionAdapterGroup.java
uidedActionItemContainer.java
uidedActionsStylist.java
nvisibleRowPresenter.java
ediaNowPlayingView.java
agingIndicator.java
owHeaderPresenter.java
caleFrameLayout.java
til.java
icker/DatePicker.java
34b46f02a89224481777e7de93d6e22e45e41e96 08-Nov-2016 Dake Gu <dake@google.com> Support parallax in transition and fix alpha performance

Add ParallaxTransition class to perform ParallaxSource.updateValues()
on every frame. DetailsFragment sets ParallaxSource as a View tag during
setup.

Changed details parallax effect to reduce overdraw, now bitmap's bottom is
matching top of details_frame, solid_color's top is matching bottom of
details_frame. Their bounds will change during enter/exit transition.

Switch details_background_view to non overlapping rendering view to avoid
creating expensive layers in alpha animation.

Bug: none
Test: DetailsFragmentTest and visually inspect SupportLeanbackDemos

Change-Id: Iaac20e6c733a0e42e5f8eeef2b912b0e26e2f606
arallaxRecyclerViewSource.java
arallaxSource.java
b655650666d7bd317c41c7a5be229e3a80dd2692 11-Nov-2016 Dake Gu <dake@google.com> leanback: Lint fixes

1. add missing recycle() call
2. Convert Handler to static to avoid possible memory leak.
3. Some code condition fixes.
4. layout lint fixes.

Bug: 32831641
Test: existing LeanbackTests
Change-Id: I50ea555a3aabf77dcfe6f88754cec75faa3233a5
aseGridView.java
istRowPresenter.java
onOverlappingLinearLayoutWithForeground.java
laybackControlsRowView.java
0908efd712e79f77e0cf9307bd5c32753c855561 04-Nov-2016 Dake Gu <dake@google.com> Details Background improvement:

Add ParallaxManager.setRecyclerView() to allow create ParallaxManager
before fragment view is created. Updated sample app to setup
Parallax background/video effects in DetailsFragment.onCreate()

Add onCreateParallaxManager() for customize.

Clean up some unused code in BackgroundManager.

Bug: none
Test: SupportLeanbackDemos
Change-Id: I9945e4d893a12f4f2f48d44175d6e27a4f1d287d
arallaxRecyclerViewSource.java
a6d291e599ce68740855b50e08d5cb9604b92256 07-Nov-2016 Dake Gu <dake@google.com> Leanback: fix testSetSelectedPositionDetached

Leanback restores focus inside onLayoutChildren().
Due to the nature of leanback, it needs extra steps
to do the alignment inside layout. So there is no
need to run extra recycleView save/restore focus
logic.

This change "fixes" testSetSelectedPositionDetached on
TV, however the problem for phone/tablet still exists.
Because leanback always maintains a "selectedIndex".
When RV is detached and reattached, it will reselect
the same child. This is not true for a general RecyclerView
which does not maintain a "selectedIndex" and the
focused child will lose focus when detached.

This behavior can either be a WAI for general recyclerview. Or
recyclerView in general can behave similar to leanback
to maintain the selectedIndex.

Bug: 32673710
Test: GridWidgetTest
Change-Id: I05942c7c1c3e437d4a71c1f925e023280cd31b38
aseGridView.java
181c8847d5a1169e26755ed690131333b7fff7e9 28-Oct-2016 Dake Gu <dake@google.com> Rework background manager and add TestCases

1. Simplify background layerDrawable from 5 layers to 2 layers.
Especially disable the DimLayer to reduce graphics burden.
2. Made release() in onStop() a default behavior to reduce
possible memory growing.
3. Top activity will inherit background from bottom activity,
but not the other way. This fixes the problem that BrowseActivity
inherits DetailsActivity's parallax background after returns from
it.
5. Add convenient method to query selected item in BrowseFragment.
6. updated samples to handle background change in opening/closing
header fragment and reapply background when returning to the
activity (onStart)
7. Added new BackgroundManagerTest

Bug: 32415435
Test: BackgroundManagerTest

Change-Id: I93a026d3e1437c93e22cf0a2fa456d0b3e5f15b7
istRowPresenter.java
owPresenter.java
61d1128c062df38a10217b1de3922d233b39ae4d 27-Oct-2016 Dake Gu <dake@google.com> leanback: Use weareference for details transition timeout task am: 2056c3e524 am: 18f26b71f8 am: 9ea0501864
am: 81db5b459d

Change-Id: Ic3b5069375ded491da94adf8471281f9aea22701
18f26b71f804b4a32a5b18b2bf9c9c589a56f045 27-Oct-2016 Dake Gu <dake@google.com> leanback: Use weareference for details transition timeout task
am: 2056c3e524

Change-Id: I9b3b74bf057142c578a42f2d9585651166c0cc52
33d6a4df689e82c62edf900e36bcc696b5a17bac 26-Oct-2016 Dake Gu <dake@google.com> Fix "null" in content description am: 259e5377e4 am: 233fad1a4f am: fe2a8918ab
am: 6a3d426cdb

Change-Id: I20d37d1851fab1a99bb41f5721311fefe089c0f8
2056c3e52465864d60f6f64c16a0a27629ba5fd8 26-Oct-2016 Dake Gu <dake@google.com> leanback: Use weareference for details transition timeout task

Makes holding reference to activity shorter.
Bug: 32352643
Test: SupportLeanbackDemos

Change-Id: Ida5a806dd72cccad37a0a5b7d72a32267becec2f
etailsOverviewSharedElementHelper.java
ullWidthDetailsOverviewSharedElementHelper.java
259e5377e4a79f1060b16b7307a66fdd99530589 25-Oct-2016 Dake Gu <dake@google.com> Fix "null" in content description

Bug: 32407867
Test: Manually run SupportLeanbackDemos with null description
Change-Id: Ic2a8394a8cedeac49d6b56880539c32cc8f7430b
uidanceStylist.java
6f5495baf9acf7b275839e4a1eea091781fd112b 14-Oct-2016 Susnata Basak <susnata@google.com> Merge "Adding video player to DetailsFragment."
4702556bfd15c9819a7b2af759aee0f719cd631f 11-Oct-2016 susnata <susnata@google.com> Adding video player to DetailsFragment.

Added VideoFragment for rendering videos to DetailsFragment.
Video playback will be configured by DetailsFragmentVideoHelper.
Parallax functionality will continue to be configured by
DetailsBackgroundParallaxHelper. ParallaxManager will be shared
between the helpers for running animations based on the position
of DetailsOverview view.

Updated LeanbackSupportDemo(NewDetailsFragment) sample code to
use the video player.

Test: None
Change-Id: Iaeee2caf3b7f3567e4a53ad76574db9adaa32ba0
aseGridView.java
rowseFrameLayout.java
ridLayoutManager.java
bjectAdapter.java
laybackControlsRowPresenter.java
f131f9b21327a6bb77e6d716bf44cd9a02f3cb97 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
(cherry picked from commit a49ace0cc347f152d2847ca1290d9150a0413b31)
ediaNowPlayingView.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
ridLayoutManager.java
02bc902b96bc014f9242205f195cf62e1482e84f 06-Oct-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "leanback: switch to use standard TraceCompat"
bbc48593794ced540ed3d5fd798251be06876642 04-Oct-2016 Dake Gu <dake@google.com> leanback: switch to use standard TraceCompat

Remove the class introduced before TraceCompat

Test: unit tests
Bug: None

Change-Id: Ie411092fc6e2b053472399bc320ee1fbf1969718
ridLayoutManager.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
ridLayoutManager.java
6938d8b565a9ab42c7741262049e0c86138c55e0 27-Sep-2016 Dake Gu <dake@google.com> Rename attribute dotRadius to avoid conflicts with wear am: 13c7d89d1f am: 919024c751
am: 218b9557ec

Change-Id: Iccdfdc26c259b49d2aea879f04db3d107722aace
13c7d89d1f64bdb782bddd2a6e8cdb81b7e77886 27-Sep-2016 Dake Gu <dake@google.com> Rename attribute dotRadius to avoid conflicts with wear

Test: with SupportLeanbackDemo app
Bug: 30104998
Change-Id: I80f191416b260da4c33e93803977d0ecb8ba3d92
agingIndicator.java
180dc4030628425a8081fe058bdc1d529c505ae8 26-Sep-2016 susnata <susnata@google.com> Revert "Revert "Refactoring DetailsBackgroundParallaxHelper.""

This reverts commit 6eebd92660979650cbde3b9d303099cff3015a23.

Test: DetailsFragmentTest, DetailsParallaxManagerTest
Change-Id: I86a3ef75b862a60f7dcef037e7d4eebcaa488785
arallaxRecyclerViewSource.java
d28c4182e0dd46d83027fcf9e5f43aa669c7514c 26-Sep-2016 Aurimas Liutikas <aurimas@google.com> Merge "Revert "Refactoring DetailsBackgroundParallaxHelper.""
6eebd92660979650cbde3b9d303099cff3015a23 26-Sep-2016 Aurimas Liutikas <aurimas@google.com> Revert "Refactoring DetailsBackgroundParallaxHelper."

ag/1459549 broke support library test builds:
https://android-build.googleplex.com/builds/submitted/3301972/support_test_apks/latest/logs

This reverts commit d7ba0d89531101088939239bb0339658dbe6c85b.

Change-Id: Ia60f9696e2bce6952e46763c645151f0b93a126e
arallaxRecyclerViewSource.java
9daa79a86eb2f50966ee5277b1faa03c72f6ef8c 24-Sep-2016 Susnata Basak <susnata@google.com> Merge "Refactoring DetailsBackgroundParallaxHelper."
d7ba0d89531101088939239bb0339658dbe6c85b 19-Sep-2016 susnata <susnata@google.com> Refactoring DetailsBackgroundParallaxHelper.

Test: added DetailsParallaxManagerTest and existing unit tests pass.
Change-Id: I6c06ac944da6ffc62875c03edfa6f4fb21e5fee5
arallaxRecyclerViewSource.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
ediaNowPlayingView.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
bstractDetailsDescriptionPresenter.java
bstractMediaItemPresenter.java
aseCardView.java
ontrolBarPresenter.java
ontrolButtonPresenterSelector.java
etailsOverviewLogoPresenter.java
etailsOverviewRowPresenter.java
etailsOverviewSharedElementHelper.java
ullWidthDetailsOverviewRowPresenter.java
ullWidthDetailsOverviewSharedElementHelper.java
ridLayoutManager.java
uidedActionAdapter.java
uidedActionsStylist.java
orizontalGridView.java
orizontalHoverCardSwitcher.java
temAlignmentFacet.java
temBridgeAdapter.java
istRowPresenter.java
ediaItemActionPresenter.java
agingIndicator.java
arallaxEffect.java
arallaxRecyclerViewSource.java
arallaxSource.java
ersistentFocusWrapper.java
laybackControlsPresenter.java
laybackControlsRowPresenter.java
esizingTextView.java
owHeaderPresenter.java
owPresenter.java
caleFrameLayout.java
earchBar.java
hadowOverlayContainer.java
itleHelper.java
indowAlignment.java
cd13b9ea8225b182bb136e69f45d8f6e993d2fe8 13-Sep-2016 Zhen Sun <zhensun@google.com> Added methods setting search orb color in SearchFragment

Added methods to set listening/not-listening state color of search orb
in SearchFragment.java and SearchBar.java.
Made corresponding changes in SearchOrbView.java.

Fixes: 31344410
Change-Id: Id4a882ad97d168cbf218f1344e160d3bfc0823a3
earchBar.java
peechOrbView.java
7fa3b7eb3a75783fac168bccb2ee9745a319b491 10-Sep-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "resolve merge conflicts of 7243922 to master"
9480eb4e94e429726b07eba133ffbc6450b8d795 09-Sep-2016 Alan Viverette <alanv@google.com> resolve merge conflicts of 7243922 to master

Change-Id: I34d800e77c4b1a440eb67191b4697213a2e6239e
4f83ddcec012a1de3ba38b3e573fdff7d054c54e 08-Sep-2016 Zhen Sun <zhensun@google.com> Changed time setter/getter type to long

PlaybackControlsPresenter.java
--Added two member variables of type long to keep track of current/total
time.
--Used ratio instead of raw time in ms to show progress bar.
--Made corresponding changes to setters/getters and formatTime().
--Added necessary long type setters/getters.

PlaybackControlsRow.java
--Added long type version of setters/getters of current/total time.
--Made corresponding changes of two listeners' parameter.

PlaybackControlsRowPresenter.java
--Changed type of parameters of two listener methods overriding
PlaybackControlRow.java.

*Added MathUtil.java to use similar method Math.toIntExact() that is only
available in Java 8.
*Also updated api file corresponding to my changes.

Change-Id: I77317fcaf79da55e1f5b3d2b4e4050386d16acb1
Bug: 27694135
laybackControlsPresenter.java
laybackControlsRow.java
laybackControlsRowPresenter.java
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
ackgroundHelper.java
aseGridView.java
rowseRowsFrameLayout.java
ividerPresenter.java
ocusHighlightHandler.java
uidanceStylingRelativeLayout.java
uidedActionAdapter.java
uidedActionAdapterGroup.java
uidedActionItemContainer.java
uidedActionsStylist.java
nvisibleRowPresenter.java
ediaNowPlayingView.java
onOverlappingLinearLayoutWithForeground.java
agingIndicator.java
ersistentFocusWrapper.java
laybackControlsRowView.java
esizingTextView.java
owHeaderPresenter.java
caleFrameLayout.java
til.java
icker/DatePicker.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
aseCardView.java
e5d263725fb60aa6a24f2221548afb20d0dc46e1 08-Sep-2016 Dake Gu <dake@google.com> Fix GuidedStepDatePicker NPE before API 21

When going through the "without transition" code path, we didn't
check if it has subaction.

Bug 31348799

Change-Id: I347d4fb3b1175e9941262083e1f5744ef2d5eeb0
uidedActionsStylist.java
7bda08a942394e11774c8f8d1cb3fc7498a11fd3 07-Sep-2016 Dake Gu <dake@google.com> Fix drawing order when shadow is not applied am: b8e4d4a19d am: 19fe32bbf9 am: cd9465d236
am: ac106cf5a9

Change-Id: Ic1c3e3cbc7e2c8acb8c52ac8d0a84a84bdd956f5
b8e4d4a19d98ce742eff0eca5520fc3b591d7e21 07-Sep-2016 Dake Gu <dake@google.com> Fix drawing order when shadow is not applied

Bug 31340316

Change-Id: Ibbdd61d5b918e680becb13fac810220940f5b50f
istRowPresenter.java
erticalGridPresenter.java
62a7677a4a03aaada6ec36b73919ba418e0c886a 06-Sep-2016 Aurimas Liutikas <aurimas@google.com> resolve merge conflicts of 7373090 to master

Change-Id: I72c42608cc4b6cd214023caf42a213404f3b9e0a
e16c356299d286e6d84fc4cd66abe3a35f48726b 06-Sep-2016 Aurimas Liutikas <aurimas@google.com> Remove all the extra accessor methods added by javac in support-leanback.
am: 99ec8b0cb3

Change-Id: I5c519d8e5a9eea6e2b5492de322c83f826942b13
829605a1b1373e26525463220f85c3bbeb1a348a 06-Sep-2016 Aurimas Liutikas <aurimas@google.com> Merge "Remove all the extra accessor methods added by javac in support-leanback." into nyc-support-24.1-dev
fd07caad75ffa82a9ab8cf18441e2278968dfed9 27-Aug-2016 Keyvan Amiri <keyvana@google.com> Leanback support: Fixed focus wraparound when hitting DPAD_RIGHT on last
view of a row

TitleHelper was incorrectly returning the root view in
GridLayoutManager when there's no TitleView. This caused the focus to
wrap around back to the first view when hitting DPAD_RIGHT on the last
view of a row. This fixes the playlist focus issue in Play Music app and
Showcase app.

Bug: 31090232
Change-Id: I7f879d1677d859ec82a3dd7421d1599e576909b6
(cherry picked from commit 4931f89139d52164327a2878a6cfa50d24c257e2)
itleHelper.java
0921a20dbf4c9bc8ac8a94f9304aaa58636bac7a 29-Aug-2016 Keyvan Amiri <keyvana@google.com> Merge "Leanback support: Fixed focus wraparound when hitting DPAD_RIGHT on last view of a row"
4931f89139d52164327a2878a6cfa50d24c257e2 27-Aug-2016 Keyvan Amiri <keyvana@google.com> Leanback support: Fixed focus wraparound when hitting DPAD_RIGHT on last
view of a row

TitleHelper was incorrectly returning the root view in
GridLayoutManager when there's no TitleView. This caused the focus to
wrap around back to the first view when hitting DPAD_RIGHT on the last
view of a row. This fixes the playlist focus issue in Play Music app and
Showcase app.

Bug: 31090232
Change-Id: I7f879d1677d859ec82a3dd7421d1599e576909b6
itleHelper.java
99ec8b0cb375f7e5577ea3ec9f09e6ff7a95de0d 25-Aug-2016 Aurimas Liutikas <aurimas@google.com> Remove all the extra accessor methods added by javac in support-leanback.

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 469 methods in our jar.

Bug: 31075707
Change-Id: I68c8152d060c9f35c72a2d78c608a9bccd12c86e
bstractDetailsDescriptionPresenter.java
bstractMediaItemPresenter.java
ackgroundHelper.java
aseCardView.java
aseGridView.java
ontrolBarPresenter.java
etailsOverviewRowPresenter.java
etailsOverviewSharedElementHelper.java
ocusHighlightHelper.java
oregroundHelper.java
ullWidthDetailsOverviewRowPresenter.java
ullWidthDetailsOverviewSharedElementHelper.java
ridLayoutManager.java
uidedAction.java
uidedActionAdapter.java
uidedActionsStylist.java
uidedDatePickerAction.java
temBridgeAdapter.java
istRowPresenter.java
bjectAdapter.java
agingIndicator.java
laybackControlsPresenter.java
laybackControlsRow.java
laybackControlsRowPresenter.java
oundedRectHelper.java
owPresenter.java
earchBar.java
earchOrbView.java
hadowHelper.java
taticShadowHelper.java
treamingTextView.java
itleHelper.java
erticalGridPresenter.java
indowAlignment.java
icker/DatePicker.java
icker/Picker.java
99c19b51762938cb55f16bc676f2e5a9f6b1dfab 23-Aug-2016 Dake Gu <dake@google.com> Leanback: Disable 9-patch shadow on API-19 am: b7c09c22aa am: 678e5f8d10 am: 4fef705fbf
am: 6fcc85a4f9

Change-Id: Ifd0e74aa897927965c7ca516afc81bcd0e1d8da0
b7c09c22aa6e2edf28335894e5fff4f2b7a30175 23-Aug-2016 Dake Gu <dake@google.com> Leanback: Disable 9-patch shadow on API-19

There is a double applied delta issue in optical-bounds
causing a negative measured size.

Bug was fixed in API-20 and after:
https://googleplex-android-review.git.corp.google.com/#/c/431321/

Bug 30943877

Change-Id: I82f48f3c2b73884854691a4a67673a08ebed0594
taticShadowHelper.java
afd999aba1b74d876ea2620775ba9157e6df7102 16-Aug-2016 susnata <susnata@google.com> Creating a new PlaybackFragment.

This will be used to deprecate the old PlaybackOverlayFragment.
We will use it in DetailsFragment to render the controls when
in fullscreen video mode.

Change-Id: I646ae5f64323c569aefb9cb039e16f6035a8eee4
aseOnItemViewClickedListener.java
nActionClickedListener.java
laybackControlsRowPresenter.java
laybackRowPresenter.java
ae746be7c46297b910a99c07697e33e3a5fd7fac 04-Aug-2016 Dake Gu <dake@google.com> GuidedStepFragment: support BACK for drop down list

Added onChildViewHolderSelectedAndPositioned when Child of GridView
is being laid out, that is required to adjust the expanded focus
item view vertical position in *one* layout pass for fragment
transition to properly run.

Add BACK key interception for sub actions list
and action with hasEditableActivatorView() (e.g. Picker)

Removed mSelectedIndex from GuidedStepFragment since we already
save/restore index in view state.

Show case in SupportLeanbackDemo NewPaymentFragment to use
setTargetFragment to pass result back to second fragment.

Bug 29901385

Change-Id: Ib856b776bc02c8cc01bf3379aa7562285c9bd41c
aseGridView.java
ridLayoutManager.java
uidanceStylingRelativeLayout.java
uidedActionAdapter.java
uidedActionAdapterGroup.java
uidedActionsRelativeLayout.java
uidedActionsStylist.java
nChildViewHolderSelectedListener.java
f5f386abee45f9256980e99d910c80922f1865e7 04-Aug-2016 Dake Gu <dake@google.com> Merge "leanback: Refactoring ParallaxSource to use Property"
db3e36adea8ddbe9abf5bc61fe0ce3e3b3e366bb 03-Aug-2016 Susnata Basak <susnata@google.com> Merge "Fixing RowHeaderPresenter unit test."
50d7840691afde416a8ce3dc8060da1adab687a1 03-Aug-2016 susnata <susnata@google.com> Fixing RowHeaderPresenter unit test.

Change-Id: I259ffd432a97eff855787fec6235ef504222fec2
owHeaderPresenter.java
e69a2947597f18adc1926364d7f53b4254f78299 02-Aug-2016 Dake Gu <dake@google.com> leanback: make picker item height shorter

Use spacing between picker item instead of defining a tall item.
Bug 30566120

Change-Id: I6685a02d9cb4a8d0f69a6159c3268bac8ccded3b
icker/Picker.java
10ebe639de989274907bd12e0a2c642a2e8f7fa8 02-Aug-2016 Dake Gu <dake@google.com> Merge "leanback: use android attr vertical/horizontalSpacing"
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
aseGridView.java
rid.java
ridLayoutManager.java
ingleRow.java
taggeredGrid.java
taggeredGridDefault.java
00bd96ea980b06fca48f4605a260a36e35495c40 01-Aug-2016 Susnata Basak <susnata@google.com> Merge "Adding description field in HeaderPresenter (BrowseFragment)."
48cbca8d2f412611a09e4f231055f10573a1f45a 29-Jul-2016 susnata <susnata@google.com> Adding description field in HeaderPresenter (BrowseFragment).

Change-Id: If306cd60f91dfb6edccdfc63960fd40e26174445
eaderItem.java
owHeaderPresenter.java
f17f812773522c20ff67ac3ac5c19f3ae285e48b 01-Aug-2016 Keyvan Amiri <keyvana@google.com> Merge "Support library: Updated API docs for media item presenter" into nyc-support-24.1-dev
78be4412362eafffe14b60a20b7ddd4bf86a515b 23-Jul-2016 Keyvan Amiri <keyvana@google.com> Support library: Updated API docs for media item presenter

Unexposed MediaNowPlayingView and MediaRowFocusView from the public docs.

Bug: 30088038
Bug: 30088617
Change-Id: I3e9f004821cf5716651a30c5069dec6ac8529c3c
(cherry picked from commit 1dcc356c7c60f493010d69ded3d8e8f92f54217d)
bstractMediaItemPresenter.java
ediaNowPlayingView.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
arallax.java
arallaxEffect.java
arallaxRecyclerViewSource.java
arallaxSource.java
8be7e7b0b81450f406354f4672d0e0cf7138e127 30-Jul-2016 Dake Gu <dake@google.com> fix doc build

Change-Id: I3e3c80cfa03db0c5bc2e774a2cd3c58d85983846
arallaxRecyclerViewSource.java
fd52a3ee07fd7f15dfdf75e61bc1bd73a6352aaf 28-Jul-2016 Susnata Basak <susnata@google.com> Merge "Providing a generic way to define the parallax behavior in DF."
935b033edfd9d03129fce6a5b7a1d3a327b74f91 28-Jul-2016 susnata <susnata@google.com> Providing a generic way to define the parallax behavior in DF.

Change-Id: I89afcec08425dbf1c20f12b0d5112d7dfa2d1ac2
arallaxRecyclerViewSource.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
3ff524750533d864c02b0e018b39d346bae30a7d 27-Jul-2016 Susnata Basak <susnata@google.com> Merge "Fix bug with non-linear update in ParallaxTarget."
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
arallaxTarget.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
rid.java
fbb762e7daf56d6ddd576c3388cd54bffedde028 26-Jul-2016 Dake Gu <dake@google.com> GuidedStepFragment: fade out drop down list background in transition am: fa4d2cddf2 am: 9404dcebb9
am: d3fb164b68

Change-Id: I60c22e11d0c4e63f143e10677c131c3b6b9d4c3e
fa4d2cddf2cb9619088153a1fe07d09203d792fa 26-Jul-2016 Dake Gu <dake@google.com> GuidedStepFragment: fade out drop down list background in transition

Instead of slide the drop down list background to the left,
Make the background a separate view so we can run a different fragment
transition animation to fade it out.

Bug 30308816

Change-Id: I68078e97afb7502808dfa98c5be43352ba4f1ab3
uidedActionsStylist.java
c415c3f8c4a1f56ecc3bd30e8dac483a8ac7dd53 25-Jul-2016 Keyvan Amiri <keyvana@google.com> Merge "Support library: Updated API docs for media item presenter"
1dcc356c7c60f493010d69ded3d8e8f92f54217d 23-Jul-2016 Keyvan Amiri <keyvana@google.com> Support library: Updated API docs for media item presenter

Unexposed MediaNowPlayingView and MediaRowFocusView from the public docs.

Bug: 30088038
Bug: 30088617
Change-Id: I3e9f004821cf5716651a30c5069dec6ac8529c3c
bstractMediaItemPresenter.java
ediaNowPlayingView.java
ediaRowFocusView.java
29d63109a6afe055561d46350f987a1874d7409f 25-Jul-2016 Dake Gu <dake@google.com> resolve merge conflicts of 6672d7d to master

Change-Id: Ib9075a3204a2ee95aacb9b2a603465980f0129f6
00c679cbba786f9788451e87995daf7dac4115f1 22-Jul-2016 Dake Gu <dake@google.com> Fix broken ff/rw action text.

The FF/RW action should has "numSpeed + 1" items where the extra
first item is for start FF/RW.

Bug 30162199

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

Change-Id: I8909a090a8648e50faf84f3c4c5a3a0d6840da56
arallaxEffect.java
arallaxSource.java
0f54322103fed4bd9ad8a5090d90214062fb0012 16-Jul-2016 Dake Gu <dake@google.com> fix doc build

Change-Id: I1a4e8b9345e599ece46c5e08b88a48a515ed5f43
arallaxSource.java
05de4b68e45fc22c867d49ab88e2bdfd599bf7cc 30-Jun-2016 Dake Gu <dake@google.com> Add Parallax support

Parallax includes three parts:
1. ParallaxSource which tracks a list of changing Variable values
typically retrieved from position of foreground UI elements.
2. ParallaxTarget which performs a update(float) operation on
another target (e.g. background view)
3. ParallaxEffect includes a list of KeyValues used to compute
the fraction from current Variable values in ParallaxSource.
Then it will call update() on target.

ParallaxSource is the abstract class to be implemented. For example
app can define a ParallaxRecyclerViewSource to tracking child view's
positions on screen.

ParallaxTarget is backed by PropertyValuesHolder, it supports
arbitrary Property of different types: float, int, Rect, etc.

Change-Id: Iaa0c2354619ae6d2ddc6bfd0a1929714dd991fde
arallax.java
arallaxEffect.java
arallaxSource.java
arallaxTarget.java
0cba959de28af08fdce8f974024718a188398aa6 22-Jun-2016 Dake Gu <dake@google.com> leanback: should wait pending data change in select am: 05984a273d am: 739a283009
am: e42ee703d6

Change-Id: I318a033ed064f714a8626db909f375414d91f01b
739a28300971509d87f03a7d0924985ae8783841 22-Jun-2016 Dake Gu <dake@google.com> leanback: should wait pending data change in select
am: 05984a273d

Change-Id: I71dffae1870f17dca26d189996639d6690fabe38
05984a273dc5f596a3e8abbffe90c68d050630b9 21-Jun-2016 Dake Gu <dake@google.com> leanback: should wait pending data change in select

Bug 29279610

Change-Id: I9f6dd736d8b52bee90b90c1ac8d3982ab4d99d84
aseGridView.java
f5214d235d0702e75c1a85f68666a35da06209ad 21-Jun-2016 Dake Gu <dake@google.com> GuidedStepFragment: Fix focus bug when cancel IME am: 71afae9a0c am: bf4fb6d430
am: 2e51015e8e

Change-Id: I0fbe7cdf8062882dc2729afd5aa37b5172b7a673
2e51015e8e78c37be4e96a88609e1c4f787e4159 21-Jun-2016 Dake Gu <dake@google.com> GuidedStepFragment: Fix focus bug when cancel IME am: 71afae9a0c
am: bf4fb6d430

Change-Id: Id730c37f8cbe6a31fdc9b2696884ef67a8a017c9
0ae4e0a355b8fb8b8c1f46f829e6f81d6a6f0b6b 21-Jun-2016 Dake Gu <dake@google.com> GuidedStepFragment: Fix focus bug when cancel IME
am: 71afae9a0c

Change-Id: Ia9457f847d6e452e159186506b2dca1de2f95db2
71afae9a0c4fd555c16a8e0a9727ba8c21bc39a8 21-Jun-2016 Dake Gu <dake@google.com> GuidedStepFragment: Fix focus bug when cancel IME

Bug 29395093

Change-Id: I6d84f02ae3d063fddcd812a1f1fc1cbb7a7cd092
uidedActionAdapter.java
16be61b99ced164c4b7253068ad57c76b892219f 21-Jun-2016 Dake Gu <dake@google.com> Merge \\\"leanback: SearchOrbView should not show when no listener is set\\\" into nyc-dev am: 2cb2e5ee7f am: 595851cb18
am: 3bcc75a87c

Change-Id: Ie2feb834259f9a4cbe68c788cd8387ca0f7d523b
595851cb186991e76d86918c9e28c8241a471870 21-Jun-2016 Dake Gu <dake@google.com> Merge \"leanback: SearchOrbView should not show when no listener is set\" into nyc-dev
am: 2cb2e5ee7f

Change-Id: I1106a0a0e88beb4cbc49c0d8984ecb53e5ca0fbd
0674181fa96779197f965dd4efc47bfd90cd085e 21-Jun-2016 susnata <susnata@google.com> Forcing full data refresh when using custom object adapter.

Change-Id: I721ee032aece7109518583d836b29f621fc24b77
rrayObjectAdapter.java
ursorObjectAdapter.java
bjectAdapter.java
parseArrayObjectAdapter.java
7adf7fdd0c2978bb0a87096c89d6356e4e26ad98 11-Jun-2016 Keyvan Amiri <keyvana@google.com> Leanback playback: Added support to flip between different views
for each media item row depending on the playback state

The first view of each media item row can now flip between different
views. A default layout is provided by the AbstractMediaItemPresenter or
the user can set a theme attribute that defines a custom layout for
different playback states.
In the default layout, a 3 peak meters animation is provided when a
media item is playing.

Change-Id: Ibcc8d995a9d46cf089afc998980c815948609371
bstractMediaItemPresenter.java
ediaNowPlayingView.java
977f0610fcfc783a9ed91ccb08387472b743ce63 17-Jun-2016 Dake Gu <dake@google.com> leanback: SearchOrbView should not show when no listener is set

This is a regression caused by customize TitleView in 24 release.

Bug 29108300

Change-Id: I7455c6a561a31d479d99e28c61dd59f865c8b160
earchOrbView.java
itleView.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
ridLayoutManager.java
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
etailsOverviewLogoPresenter.java
rid.java
ridLayoutManager.java
uidedAction.java
orizontalGridView.java
istRowPresenter.java
onOverlappingLinearLayoutWithForeground.java
earchBar.java
hadowOverlayContainer.java
hadowOverlayHelper.java
taggeredGridDefault.java
treamingTextView.java
erticalGridPresenter.java
erticalGridView.java
icker/Picker.java
15375aa6fd54b036f97f99229aefab2822c8a1c9 24-May-2016 Aurimas Liutikas <aurimas@google.com> Add missing @Override annotations in support library code.

Change-Id: Ifcc3a20b54d6a14b0a14aa0f48e642cf7e8c0e70
aseGridView.java
ridLayoutManager.java
uidedActionsStylist.java
icker/DatePicker.java
9a6ea44991261dc55eda2af7247f01ba4d775bf8 23-May-2016 Chris Banes <chrisbanes@google.com> Merge "Null check listener before dereferencing for callback." am: 27b9913521
am: 4747e2b9cc

* commit '4747e2b9cc49d27e7c67fa637b32ba997706d269':
Null check listener before dereferencing for callback.

Change-Id: I2d353b2f44a4d68eba0a98a4bc38a1106dcb874c
27b991352168daf986809f5c01e3f3013892134f 23-May-2016 Chris Banes <chrisbanes@google.com> Merge "Null check listener before dereferencing for callback."
08b235bf23a8ca8e68aa678d598b6af8fd8a8ddf 07-May-2016 Keyvan Amiri <keyvana@google.com> Merge "Leanback media-list support: Added optional customizable actions" into nyc-dev
4fe538f2d65eefc57f618887ccb1226ec1a9741d 28-Apr-2016 Keyvan Amiri <keyvana@google.com> Leanback media-list support: Added optional customizable actions

AbstractMediaItemPresenter now supports arbitrary number of optional
custom actions. Each media item row can consist of multiple, separately
focusable views where each component is highlighted through an animated
drawable.

APIs are provided for capturing click events on media item details or
actions, and dynamically altering the contents of the details or
action views.

Also changed the attribute names to "media items" to make them more
generic for any media item list usage (e.g. music app, podcast, etc.).

Bug: 28636413
Change-Id: I167fc15c3961dec4280a77c1356f1bf571525650
bstractMediaItemPresenter.java
bstractMediaListHeaderPresenter.java
ediaItemActionPresenter.java
ediaRowFocusView.java
ultiActionsProvider.java
d231d521d71262ff0394a36c47c62fa99a73d945 26-Apr-2016 Susnata Basak <susnata@google.com> Merge "Fixing styling issue with GuidedStepFragment." into nyc-dev
63c6ac5434dd9e6d0f497bc35588b20bf9fb1849 26-Apr-2016 Susnata Basak <susnata@google.com> Merge "Adding support for mapping multiple rows to header items." into nyc-dev
c6c8abcf06a958b8d1249d2d966daa8d267dca66 26-Apr-2016 susnata <susnata@google.com> Fixing styling issue with GuidedStepFragment.

GuidanceStylist relies on onPredraw() callback to reposition
child views. This interferes with fragment transition (enter).
To avoid it, we're using custom relative layout to position
the child views in the layout pass thereby avoiding any interference
with transition.

Bug: 28381660
Change-Id: I9ec5188f4b746108a42afb354a151bb3747f5931
uidanceStylingRelativeLayout.java
uidanceStylist.java
b9fd330aaaede57fd2ff0ac1289429aab7a3cf42 25-Apr-2016 susnata <susnata@google.com> Adding support for mapping multiple rows to header items.

Bug: 28377671
Change-Id: I29b67547378611f64f29ea839c97afda9d554404
istRowPresenter.java
cb60a4567ebaf69b87395764e8744fbaee408a09 25-Apr-2016 Dake Gu <dake@google.com> GuidedStepFragment: no longer slide content on IME open

Since key line offset was moved to above center of screen.

Bug 28381660

Change-Id: I89e552d15b58d3864b7d8b05e8c5a21f6453139e
uidanceStylist.java
uidedActionsStylist.java
9736403e3fbc99ca47b6a45ebab094ecef971f30 23-Apr-2016 susnata <susnata@google.com> Fixing NPE issue with GuidanceStylist.

Bug: 28366486
Change-Id: I690c5c96a5484e74ac69e5506e04671b067261bc
uidanceStylist.java
009c666bbd09f54e9a7a5786d22bfd3135117277 22-Apr-2016 Susnata Basak <susnata@google.com> Merge "Fixing styling issue with GuidedStepFragment." into nyc-dev
f7bdb2b37497128b8a9108eea43c17ea544c957a 22-Apr-2016 Alan Viverette <alanv@google.com> Merge "Clean up deprecation tags in support libraries" into nyc-dev
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
etailsOverviewRow.java
50c611b216a4b2c8eb2bbd2a2848bb6da34677be 21-Apr-2016 susnata <susnata@google.com> Fixing styling issue with GuidedStepFragment.

Change-Id: Ia2780de5c44925872d9d5a0996dd99caefdfece1
uidanceStylist.java
uidedActionsStylist.java
temAlignmentFacet.java
temAlignmentFacetHelper.java
a373804d10f93a9488adc35cf6ce44dce09b3778 21-Apr-2016 Dake Gu <dake@google.com> leanback: allow customize title view branding

Added theme attribute browseTitleViewLayout to customize layout
for title view. The theme attribute is shared across all
BrandedFragment subclasses including BrowseFragment, DetailsFragment,
VerticalGridFragment and ErrorFragment.

Custom layout can provide a customized widget which implements
TitleViewAdapter.

Expose hidden base BrandedFragment class to public in API, this fix
issues of API generator does not handle public methods in
hidden base class.

Refactored ErrorFragment to use BrandedFragment.

Bug 28297243

Change-Id: I355a0a12a1d994b6bb0a63745a0754557a5f4b20
itleHelper.java
itleView.java
itleViewAdapter.java
16ab389e0bd11594059f8164a1477045ee625154 20-Apr-2016 Dake Gu <dake@google.com> Leanback: Add onGuidedActionCanceled

onGuidedActionEdited() was called for the cancel case and confirm case,
which was very confusing.
Now deprecate this method and introduce onGuidedActionCanceled() method.

Bug 28279231

Change-Id: I000491611b78a7aaba11ed61a5196ac34d7babd6
uidedActionAdapter.java
uidedActionAdapterGroup.java
uidedActionsStylist.java
8ff4c54cdaf5e8164fba7eac999c1ceafc462fc8 16-Apr-2016 Dake Gu <dake@google.com> HeadersFragment tweaking

support two lines header
support divider
support unfocusable section header

Bug 28270725

Change-Id: I41f97e0ccca390db6e440e26567b18faa029e492
ividerPresenter.java
ividerRow.java
nvisibleRowPresenter.java
ageRow.java
ageRowPresenter.java
ow.java
owHeaderPresenter.java
ectionRow.java
600d0c97c2a40f2477ad844742432dd6945806b1 19-Apr-2016 Dake Gu <dake@google.com> leanback: workaround RV focusSearch() issue.

CL "RecyclerView focus search improvements" breaks the scenario
to keep focus within RV when regular FocusFinder fails.

Returning same focused view in onFocusSearchFailed() is no longer
working since RV.isPreferredNextFocus() rejects it.

This workaround moved logic from onFocusSearchFailed to
onInterceptFocusSearch.

Bug 28246268
Bug 28256038
Bug 28270709

Change-Id: Iabe4b981c40f0282ef0d8d370669692ca612d727
ridLayoutManager.java
7350fc450e5850b7a3dddff6d63fb87bd24886dd 19-Apr-2016 susnata <susnata@google.com> Adding support for customization of TitleView.

Following the Youtube model, we are adding the ability for page
fragments to control the visibility of TitleView.

Bug: 28269880
Change-Id: I5153f51ff155aeac3186156f79f2ddc0ab34cb42
itleView.java
ac30644710e427c77b9d1f20ae385590bdac6c60 14-Apr-2016 Dake Gu <dake@google.com> Add contentDescription for ListRow, HeaderItem and fast lane

This allows app to

1. customize the contentDescription in BrowseFragment fast lane by
calling HeaderItem.setContentDescription(), by default HeaderItem
.getName() is used.

2. customize the contentDesciption of each ListRow so talkback
will announce "in $contentDescription list" when moving between rows.

3. Announce when entering "navigation menu" of BrowseFragment

Change-Id: I3006a91c4e8e9bcd72ed0114394ba93b7f3c0295
eaderItem.java
istRow.java
istRowPresenter.java
owHeaderPresenter.java
7709986aa43e891046183168a29f3e78d05abcc5 13-Apr-2016 Dake Gu <dake@google.com> Merge "GuidedStepFragment: differentiate clicking confirm button and cancel IME" into nyc-dev
9050c0fc8fbcd8ffe794915375efd5d2b96a0b2d 02-Apr-2016 Dake Gu <dake@google.com> GuidedAction: Add save/restore support

These cases will be saved automatically when autoRestore
is not turned off on GuidedAction:

1. editable none password title
2. editable none password description
3. checked status
4. DatePicker's current selection

Bug 27978256

Change-Id: If52f09e440538fb1d70a697eb69db371f02fd63f
ction.java
uidedAction.java
uidedDatePickerAction.java
bcc19824dc43bc2e1bf23bccb1263f8de87ac013 13-Apr-2016 Dake Gu <dake@google.com> GuidedStepFragment: differentiate clicking confirm button and cancel IME

It used to call same onGuidedActionEditedAndProceed().
We now call different methods
onGuidedActionEdited()
onGuidedActionEditedAndProceed()

Bug 27989656

Change-Id: If71352e86238a3a37845da3dd39256c518f4bf76
uidedActionAdapter.java
uidedActionAdapterGroup.java
6a8b0fd35afda4d204e3f46d192bf20f510185d9 08-Apr-2016 Chulwoo Lee <chulwoo@google.com> Support customization of paging indicator dimensions

Bug: 26024822
Change-Id: I24238f46d30e9b289cc24adfd8ae01c2c59d37ba
agingIndicator.java
39dff61bd1d6107b545a02988e2cca5a3a5a1d2c 01-Apr-2016 Keyvan Amiri <keyvana@google.com> Merge "Revert "Revert "Leanback Support: Added support for rendering media items in a playlist""" into nyc-dev
b6ea4fa686b06fdb91f10998bd1d4b14c14af0ce 31-Mar-2016 Keyvan Amiri <keyvana@google.com> Revert "Revert "Leanback Support: Added support for rendering media items in a playlist""

This reverts commit 5d65f5e507e1c11e65c1c29728545821d9726f73.

Change-Id: Iada2af5185018d203ee5edc8a0c0efc68e5934bd
bstractMediaItemPresenter.java
bstractMediaListHeaderPresenter.java
owPresenter.java
9ee42e485eaacb41a07a441be09bf94e0feec37d 31-Mar-2016 Dake Gu <dake@google.com> Merge "leanback: switch to use helper methods for margins" into nyc-dev
79ff332bab6f8e85643a2302b9aae433b54db5b1 31-Mar-2016 Dake Gu <dake@google.com> Merge "Revert "Leanback Support: Added support for rendering media items in a playlist"" into nyc-dev
5d65f5e507e1c11e65c1c29728545821d9726f73 31-Mar-2016 Dake Gu <dake@google.com> Revert "Leanback Support: Added support for rendering media items in a playlist"

This reverts commit cea4884a1494192ffdd78bd2e72fb3c53ec027fd.

Change-Id: Id1175086e448caa9f65a628fff1f0b66690d94a6
bstractMediaItemPresenter.java
bstractMediaListHeaderPresenter.java
owPresenter.java
0c02f226ad952c3afa1d2e5e6adb990d9a96b4cc 31-Mar-2016 Keyvan Amiri <keyvana@google.com> Merge "Leanback Support: Added support for rendering media items in a playlist" into nyc-dev
cea4884a1494192ffdd78bd2e72fb3c53ec027fd 25-Mar-2016 Keyvan Amiri <keyvana@google.com> Leanback Support: Added support for rendering media items in a playlist

Created abstract presenters for media header and playlist that define
the layout and views for rendering tracks in a vertical playlist format.
Also created themes and styles for customizing individual widgets within
the playlist header and media items.

Users of this class must subclass these presenters in order to bind
their own arbitrary header or media item data models to the views
provided by these abstract media presenters.

Change-Id: I14d5389ae1f826fb91b5d8d28de607c8753084b6
bstractMediaItemPresenter.java
bstractMediaListHeaderPresenter.java
owPresenter.java
7874ba8942718e7bd249e65adc0baddb76dd102c 31-Mar-2016 Tony Mantler <nicoya@google.com> Merge "Implement scrollToPosition in GridLayoutManager" into nyc-dev
d25c850c5d8053809d260d34c4d4d526da992d4f 31-Mar-2016 Dake Gu <dake@google.com> Merge "Fix GudiedStep GridView focus 2nd try" into mnc-ub-dev
am: e12b873

* commit 'e12b87372d9c4c745fa54e124947316e0ecc6c88':
Fix GudiedStep GridView focus 2nd try

Change-Id: I3d21829267ead27d0025f5ad4a2d58bed5a80c2a
015eaf265571c84b5d37311f58bc69b2eb4af8d4 30-Mar-2016 Dake Gu <dake@google.com> Fix GudiedStep GridView focus 2nd try

Setting focusable in style/layout doesn't work for RecylerView,
so set the attribute in GuidedActionsStyleList.

Making grid view not focusable causing another issue: in Fragmet
to Fragment transition, fragment.onResume() does not have any item
view in the action list yet. So actionlist.requestFocus() gets
ignored. Fixing this by declaring focusableViewAvailable() when
RecylerView layout pass added focusable children.

Bug 27886380

Change-Id: Ic95db8fb60d6e6c309f5a8d45642dbe0505d457b
ridLayoutManager.java
uidedActionsStylist.java
ca5ab1a00298f1c1ad5227e352b8ae2e67c079a7 31-Mar-2016 Tony Mantler <nicoya@google.com> Implement scrollToPosition in GridLayoutManager

Just call through to setSelection.

Also remove extraneous parameter in setSelection calls.

b/27248919

Change-Id: I31aca71934e5ff62c468061be947c88ddaa0e42a
aseGridView.java
ridLayoutManager.java
e2443a93fcb82151f5290b89617b34b69442fdd3 29-Mar-2016 Dake Gu <dake@google.com> leanback: switch to use helper methods for margins

Switch to use RecyclerView helper methods with margin support.
Added test cases for optical bounds used together with margins and
item decoration.

Change-Id: I021a4f1c6c6c777845a7379fd8c23a128a13356c
ridLayoutManager.java
9fc9697041379aa7fb93de81cfade751fd181d66 26-Mar-2016 Keyvan Amiri <keyvana@google.com> Merge "Leanback Support: ClassPresenterSelector now supports both Presenter and PresenterSelector" into nyc-dev
7d27a45ebd455e2cb35505d589c562dba27e3710 26-Mar-2016 Keyvan Amiri <keyvana@google.com> Leanback Support: ClassPresenterSelector now supports both Presenter and
PresenterSelector

Added addClassPresenterSelector to ClassPresenterSelector to support
adding PresenterSelectors. This makes it convenient to define inner class
PresenterSelectors that define different presenters for objects of the
same class and use them within the same ClassPresenterSelector.

Change-Id: I5430aae96c137e6de1b3eb737f0e8ccec1bd5354
lassPresenterSelector.java
eae1c323930b88acfb1c9171edad5abb8bcdae54 25-Mar-2016 Dake Gu <dake@google.com> leanback: Fix ItemDecoration
am: 5509e27

* commit '5509e275a04396bfb16b3a217c5392a864398174':
leanback: Fix ItemDecoration
5509e275a04396bfb16b3a217c5392a864398174 25-Mar-2016 Dake Gu <dake@google.com> leanback: Fix ItemDecoration

1. We should skip the optimizaton of checking isLayoutRequested()
Because when child view's decoration changes, it will not
be layout requested.
2. calculate opticalInsets is wrong, it doesn't count the decoration
offset, so incorrectly put decoration insets as optical insets.

Bug 27794028

Change-Id: Ide4f907764a4f35507c32ba3db764f8ad4ccd090
ridLayoutManager.java
0871d9fcdb56eb87ddb1ab16b4ca3bd9fb426750 25-Mar-2016 Dake Gu <dake@google.com> Merge "leanback: Fix selection offset when restoring gridview" into mnc-ub-dev
am: 1cf161b

* commit '1cf161b0830594d6a14c5e8c297b6ceab69ad254':
leanback: Fix selection offset when restoring gridview
936fd406f49a6fae8768084e84fa7d1beccf40a9 19-Mar-2016 Dake Gu <dake@google.com> leanback: Fix selection offset when restoring gridview

We add offset to selected position in onItemAdded, this
should be avoided before LM layout children.

Bug 27819090

Change-Id: I299832c491bff19846f1f7bacda01ecb8ea685ea
ridLayoutManager.java
6b0ab7ef6ee771896b72d77912b9aa9757071081 24-Mar-2016 Dake Gu <dake@google.com> Merge "Leanback: Fix crash in navigation and removing a view" into mnc-ub-dev
am: ea07ad9

* commit 'ea07ad9313b138a4dae1e0b6c3fbcc90bc010082':
Leanback: Fix crash in navigation and removing a view
678a58f6a6772d955f21d1ff869f2bcd999aade3 23-Mar-2016 Dake Gu <dake@google.com> Leanback: Fix crash in navigation and removing a view

We should exclude removing view (but still focused) from focus search.
It crashes because we start searching from removing view's index in
RecyclerView which might be out of range of LM.getChildCount().

Bug 27766012

Change-Id: I6adc629dd3210abeb84072dc3f07d45b522d1b8a
ridLayoutManager.java
9b5ef3e2e264a624058bc514e05cf5e5dc8d94b9 23-Mar-2016 Chulwoo Lee <chulwoo@google.com> Add attribute for PagingIndicator

The dot color should be able to be changed by the sub class.

Change-Id: I17c05a9a02841849a5531d6ddde6c7125d1dc852
agingIndicator.java
13ea718f8c985c0e04a94c6b46e8e81ec00eec15 21-Mar-2016 Dake Gu <dake@google.com> leanback Fix typo caused extra select event being fired
am: a2aafea

* commit 'a2aafea6e51bb33581853e16c21d546b316a52a3':
leanback Fix typo caused extra select event being fired
a2aafea6e51bb33581853e16c21d546b316a52a3 21-Mar-2016 Dake Gu <dake@google.com> leanback Fix typo caused extra select event being fired

Bug 27775003

Change-Id: I4d9f693c2e42a3bc51c528d8f723de90a2da6300
ridLayoutManager.java
0d841b3454f896da58deb506ca22730bfd04f34f 19-Mar-2016 Dake Gu <dake@google.com> leanback: fix row selection problems

Bug 27718801 When removing all rows in SearchFragment,
the search bar's visibility is set to gone

Bug 27751344 BrowseFragment missing item in OnItemSelected event

Bug 27751870 RowsFragment does not update mSelectedPosition

Change-Id: If455ccaeee6b10bbfed9586e73f55449a825250d
istRowPresenter.java
e2e9faf86bd8b8a2953bd9f89e731d1c6357eb66 19-Mar-2016 Dake Gu <dake@google.com> DO NOT MERGE leanback: fix row selection problems

Bug 27718801 When removing all rows in SearchFragment,
the search bar's visibility is set to gone

Bug 27751344 BrowseFragment missing item in OnItemSelected event

Bug 27751870 RowsFragment does not update mSelectedPosition

Change-Id: Ib4cd980f295bdf4dcff87d255edca6e009d919d7
istRowPresenter.java
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
ersistentFocusWrapper.java
22eaa9441bf3a521bfafb160674ff2da421eded8 15-Mar-2016 Dake Gu <dake@google.com> Loosen the requirement of using Row inside RowsFragment.

Only BrowseFragment requires rows to be subclass of Row which includes a Header.
RowsFragment, DetailsFragment and PlaybackOverlayFragment can now put any
object as rows; they should still use RowPresenter to support the selection event.

Change-Id: Id97e6ec27dfbf3bcc87449db4a6695f51588945d
aseOnItemViewClickedListener.java
aseOnItemViewSelectedListener.java
nItemViewClickedListener.java
nItemViewSelectedListener.java
owPresenter.java
25ea2c39a03d7ca6c2d2a6185e75bb03c9d4623a 10-Mar-2016 Keyvan Amiri <keyvana@google.com> Leanback Support: Fixed the crash for dateformats with less than three
fields

Added a check in DatePicker to make sure that the date column being
processed exists in the specified date format, otherwise it crashes
for number of fields less than three.

Bug 27655071

Change-Id: I30e2d5f3a1317fa54c23ec655a1a7165ba1cbd86
(cherry picked from commit caf252f1367feb333ab64fcd746aadecfe7d2662)
icker/DatePicker.java
299f5abe5c314e085dd82428c25932bb9220f47f 07-Mar-2016 Keyvan Amiri <keyvana@google.com> Leanback Support: Fixed the constant date range updates in DatePicker which
also fixed animation jumps

When scrolling vertically across a datepicker field, the date ranges kept
being changed resulting in the scroller adapter to be constantly updated.
This in turn resulted in undesirable animation jumps when hitting the top
or bottom range values.
Now, the range is always kept up-to-date and is updated only when
needed.

Bug: 27527022
Change-Id: I8f2799a05c1432839ec8a034f4b85da30e2124fb
(cherry picked from commit d27d42e5bb400a7ee883a1496ee64f09de586c8e)
icker/DatePicker.java
caf252f1367feb333ab64fcd746aadecfe7d2662 10-Mar-2016 Keyvan Amiri <keyvana@google.com> Leanback Support: Fixed the crash for dateformats with less than three
fields

Added a check in DatePicker to make sure that the date column being
processed exists in the specified date format, otherwise it crashes
for number of fields less than three.

Change-Id: I30e2d5f3a1317fa54c23ec655a1a7165ba1cbd86
icker/DatePicker.java
421f4b36f688375f303286a2339304d12f2656e3 07-Mar-2016 Keyvan Amiri <keyvana@google.com> Merge "Leanback Support: Fixed the constant date range updates in DatePicker which also fixed animation jumps" into nyc-dev
d27d42e5bb400a7ee883a1496ee64f09de586c8e 07-Mar-2016 Keyvan Amiri <keyvana@google.com> Leanback Support: Fixed the constant date range updates in DatePicker which
also fixed animation jumps

When scrolling vertically across a datepicker field, the date ranges kept
being changed resulting in the scroller adapter to be constantly updated.
This in turn resulted in undesirable animation jumps when hitting the top
or bottom range values.
Now, the range is always kept up-to-date and is updated only when
needed.

Bug: 27527022
Change-Id: I8f2799a05c1432839ec8a034f4b85da30e2124fb
icker/DatePicker.java
b2121d7935303972c0d515c29b9771c74311c8ba 05-Mar-2016 Keyvan Amiri <keyvana@google.com> DO NOT MERGE ANYWHERE Leanback Support Library: Fixed issue with GuidedStepFragment actions
disappearing after an action is collapsed

The recycler view, by default, prunes children of mActionsGridView
when they were pushed off of the screen after expanding actions.
Fixed that by disabling the pruning behavior before an action
is expanded (after the first click on an action),
and enabling it back after the action is collapsed
(after the second click on that same action).

Bug: 27482284
Change-Id: Ibf0ba8c3bae271059e6bea0202fefe9b16acc867
(cherry picked from commit 0740d73b910f78f4ee33db9bdee0b4d5a0aa20f6)
uidedActionsStylist.java
be5bcc2e3b3bbe468c1425b2919e1fa072af1854 07-Mar-2016 Dake Gu <dake@google.com> Override addViewInLayout to apply scale factor

Apply scale factor in alternative path of adding child.

Change-Id: I8ee998da3c97ab7a53854e3a493510f78380f347
caleFrameLayout.java
0740d73b910f78f4ee33db9bdee0b4d5a0aa20f6 05-Mar-2016 Keyvan Amiri <keyvana@google.com> Leanback Support Library: Fixed issue with GuidedStepFragment actions
disappearing after an action is collapsed

The recycler view, by default, prunes children of mActionsGridView
when they were pushed off of the screen after expanding actions.
Fixed that by disabling the pruning behavior before an action
is expanded (after the first click on an action),
and enabling it back after the action is collapsed
(after the second click on that same action).

Bug: 27482284
Change-Id: Ibf0ba8c3bae271059e6bea0202fefe9b16acc867
uidedActionsStylist.java
ce06f6b530f22e1e7839d068d5dd8ea3e4af8262 04-Mar-2016 Dake Gu <dake@google.com> SearchFragment: request RECORD_AUDIO runtime permission

Added callback in SearchBar to request runtime permission when start
using internal recognizer. SearchFragment implements the callback,
request permission and re-startRecognition when permission is granted.

Bug: 23958590

Change-Id: I3090e16b76eb592c3336434781f9f69cd2f6e14b
earchBar.java
a0c6cf7b04195cc373024f0d33e5a0ac7f061241 04-Mar-2016 Susnata Basak <susnata@google.com> Merge "Moving all scaling logic into BrowseFragment." into nyc-dev
a9f6062bd2dd02b3de253b57c69302893bf1f2e3 03-Mar-2016 susnata <susnata@google.com> Moving all scaling logic into BrowseFragment.

Change-Id: I00c3ce502903730c239d4b0510e56f6484065dd2
rowseFrameLayout.java
caleFrameLayout.java
4a4238c62f42657d25bb102e728082d49cdea625 03-Mar-2016 Dake Gu <dake@google.com> Merge "leanback DatePicker: fix range updates" into mnc-ub-dev
am: f2210ecaaa

* commit 'f2210ecaaa5e6b629f88e03b26f172d9114ff0d9':
leanback DatePicker: fix range updates
9ec66b7209a1b939b93438b909e863129b2ceedf 02-Mar-2016 Susnata Basak <susnata@google.com> Merge "Refactoring BrowseFragment to support single page fragments." into nyc-dev
1c3ce0fa10ec24e4edd5e5ea909b4d4357534b53 23-Feb-2016 susnata <susnata@google.com> Refactoring BrowseFragment to support single page fragments.

Change-Id: Iccf5de0fd3f1b38667d450b3fd110200afb914a3
ageRow.java
ageRowPresenter.java
34914fd296a56b55c3c6c3183c7b58c4f16ca775 01-Mar-2016 Dake Gu <dake@google.com> leanback DatePicker: fix range updates

Missing a notifyDataSetChange in scroll pass caused the mess, do the
updateSpinner in a post Runnable

Bug 27431465

Change-Id: I489b19645ee0934e15beb7dcb131f150b5cfa0d1
icker/DatePicker.java
icker/Picker.java
17ffb0b4ff1a9470d23bbe22ea31cfd3fabe467a 01-Mar-2016 Dake Gu <dake@google.com> Merge "leanback: customize focusables in secondary direction" into mnc-ub-dev
am: 33edf072df

* commit '33edf072df1c153a8689c07de5de2cd8836b6f6c':
leanback: customize focusables in secondary direction
33edf072df1c153a8689c07de5de2cd8836b6f6c 01-Mar-2016 Dake Gu <dake@google.com> Merge "leanback: customize focusables in secondary direction" into mnc-ub-dev
362fda0323b85ec2379967901a0bd33a2ad4b8b5 25-Feb-2016 Dake Gu <dake@google.com> leanback: customize focusables in secondary direction

When the focus search direction is PREV_ROW or NEXT_ROW,
we fall back to default addFocusables() which basically
add all children and descendants within RecyclerView.

This isn't the default behavior desired when navigating LEFT
out of a vertical list, we do not want the siblings of
current focused item to be part of focusables list.
Because the siblings might got a higher score in FocusFinder.

In the broken case (a modified browse row moves first card to
the middle when it gets focused), sibling browse row's first
card gets a higher score than left side navigation menu because
they are closer to current focused card.

This fix explicitly handles PREV_ROW and NEXT_ROW case
and overrides default addFocusables(), it wont add siblings when
they are on same grid ROW.

Bug 27258366

Change-Id: I2e11cea7bc8e370fbda0be1dc5ccccb587a3fb43
ridLayoutManager.java
6b82086170658ccce079766ce277bd5e504a49df 22-Feb-2016 Alan Viverette <alanv@google.com> Merge "GuidedStepFragment item accessibility fix" into mnc-ub-dev
am: 02fded4583

* commit '02fded4583e8f675b23eb5278d43b9c942c8883e':
GuidedStepFragment item accessibility fix
ed6ddac644df9949403f1a01e1224a37cb568feb 20-Feb-2016 Dake Gu <dake@google.com> GuidedStepFragment item accessibility fix

set VisibleToUser=false is a hack fix, the EditText is visible
to user. Instead, make EditText not clickable and not focusable,
so the EditText will not get a11y focus.

Bug 26692260

Change-Id: I997b899e317f44e6c043df4406619e648fb5998c
uidedActionEditText.java
uidedActionsStylist.java
900505d3c7f595fa161a70526dec2fec72f50d72 19-Feb-2016 Chulwoo Lee <chulwoo@google.com> Fix minor bugs
am: 1dd331211b

* commit '1dd331211beded89ec02c37d68afced18d329375':
Fix minor bugs
1dd331211beded89ec02c37d68afced18d329375 19-Feb-2016 Chulwoo Lee <chulwoo@google.com> Fix minor bugs

- Fix wrong class name in layout.
- Call getters/setters explicitly to guard from the proguard.

Change-Id: I443d416c76aeb05adaac2dddea9edda7a661afa7
agingIndicator.java
63de67ad4e954f49ba030210fb2d21fbc3efec5b 18-Feb-2016 Chulwoo Lee <chulwoo@google.com> Merge "RTL support in onboarding" into mnc-ub-dev
am: 315c581396

* commit '315c581396f861fb927c70d524964d5c4e9fd6c8':
RTL support in onboarding
315c581396f861fb927c70d524964d5c4e9fd6c8 18-Feb-2016 Chulwoo Lee <chulwoo@google.com> Merge "RTL support in onboarding" into mnc-ub-dev
565559f19379a308990b8587bb2a3b65ea999680 18-Feb-2016 Keyvan Amiri <keyvana@google.com> Merge "Leanback Support Library: refactored all GuidedAction boolean attributes into a single integer flag" into nyc-dev
accd54788b769d62a99300306741551fe207b2d4 16-Feb-2016 Keyvan Amiri <keyvana@google.com> Leanback Support Library: refactored all GuidedAction boolean attributes
into a single integer flag

GuidedAction had multiple boolean attributes for customizing each
action. Now represented a single bit for each one of these attributes
and
gathered them all into one integer flag similar to the way attributes
are interpreted in "View.java".

Change-Id: I3faa944e5ca74392935ce7c2d9f67a9de0d37b5a
uidedAction.java
10c68e10d549ba74f9999e36c9728628fd7aad6e 17-Feb-2016 Dake Gu <dake@google.com> Merge "Fix crash: Dont fetch items in onMeasure when HasFixedSize is true" into mnc-ub-dev
am: 19882964d4

* commit '19882964d4f7ad97fa8fc6c8ed032c63db62cbdd':
Fix crash: Dont fetch items in onMeasure when HasFixedSize is true
e2f2ff730ed20153aa006d655888190763c16d5c 17-Feb-2016 Dake Gu <dake@google.com> Fix crash: Dont fetch items in onMeasure when HasFixedSize is true

With new RV change, HasFixedSize=true hehavior has been defined as:
RV size is not determined by child size. So when HasFixedSize is
true, the items passed to onMeasure() are no longer valid and should
not be used. Though HasFixedSize=true is generally not allowed when
WRAP_CONTENT is used, add extra protection.

Bug 27202689

Change-Id: Ic1e30674588227988621f7802692a1f12eeac3d7
ridLayoutManager.java
6cb24d438e700ceb0a8b7d5a93683b19eae6c1b5 08-Feb-2016 Chulwoo Lee <chulwoo@google.com> RTL support in onboarding

Bug: 26024822
Change-Id: I9a135b0679ca0bb86917e38bc571ce5520e1c323
agingIndicator.java
5abf487fa74b54baa211b00ad9ad15663a3d4ed6 10-Feb-2016 Dake Gu <dake@google.com> Merge "GuidedStep API review change" into mnc-ub-dev am: 40a9d3cc9a
am: 24b56dd978

* commit '24b56dd978c2c588715953614d7d58de537b4c5b':
GuidedStep API review change
942f79291db75ccf6ecd0351d23a444a43dd0501 09-Feb-2016 Dake Gu <dake@google.com> GuidedStep API review change

Added API to set min date and maxDate on GuidedDatePickerAction.
And API changes for Bug 27076166

Change-Id: I32a542fd005688fd9a1dca211e28a51e882ca38f
uidedAction.java
uidedActionsStylist.java
uidedDatePickerAction.java
icker/DatePicker.java
icker/Picker.java
icker/PickerColumn.java
cae4cc5a7c5d1694aa9fa1a36623f59e4a32a812 05-Feb-2016 Dake Gu <dake@google.com> Merge "GuidedStep: Turn on underline of EditText" into mnc-ub-dev am: d32fc5f91c
am: 3d94ad2626

* commit '3d94ad2626c11848bec9b0e73fe559e38fd92b3d':
GuidedStep: Turn on underline of EditText
0e7ad46e829a72558e9e256895fd6d46bbbb60b2 05-Feb-2016 Dake Gu <dake@google.com> GuidedStep: Turn on underline of EditText

Save the underline background of EditText and turn on/off
when it is focused or unfocused.

Bug 26990241

Change-Id: Ie9ef48774114f8b3d60005f718c59e720a6be8a9
uidedActionEditText.java
8fcba4ffcb24e08c36230dc465f6270c603c7a6d 04-Feb-2016 Dake Gu <dake@google.com> GuidedAction: Make single line text work am: 918306ceb8
am: 1224288d6c

* commit '1224288d6c242d2c6b2ac8b4e0e1eb56a4b4a037':
GuidedAction: Make single line text work
918306ceb829009d348a749a7a648ba3a727e2c3 04-Feb-2016 Dake Gu <dake@google.com> GuidedAction: Make single line text work

Just setMaxLines(1) is not enough, needs to call setSingleLine(true)

Bug 26349478

Change-Id: Ib648b7cde6009127381a402ae0f5a536ae27fa66
uidedActionsStylist.java
7fddd706b2e9a698ecebc3f7695cbfc30982efa2 03-Feb-2016 Dake Gu <dake@google.com> Merge "Fix leanback grid view addFocusables() when isFocusable is false" into mnc-ub-dev am: 8717ba9475
am: c628b73530

* commit 'c628b735300d98cb7ff0afa8c00911c6d677f37c':
Fix leanback grid view addFocusables() when isFocusable is false
fd4ac97d700ae14ed2b4bb2f0eb6ef83c68a6966 02-Feb-2016 Dake Gu <dake@google.com> Fix leanback grid view addFocusables() when isFocusable is false

When strategy is FOCUS_SCROLL_ALIGNED, we need add the last focused
item remembered at mFocusPosition into the focusables list, so even
the GridView itself is not focusable, we could make FocusFinder
selects the child item.

Bug 26918143
Needed to fix Bug 26894680

Change-Id: I7125ea0389a0299deb7d0fd31c02a5c3dc77e74f
ridLayoutManager.java
e852cd68f0b0dd2c5523cb05cd2cadb0951e2dc2 02-Feb-2016 Dake Gu <dake@google.com> Fix GuidedAction.editable(false) am: 7b93b3baf1
am: 15d6149350

* commit '15d6149350b3a1acb84d6909711ed7c0e365f5b8':
Fix GuidedAction.editable(false)
7b93b3baf1195fbd286517556b981e25cb542a40 02-Feb-2016 Dake Gu <dake@google.com> Fix GuidedAction.editable(false)

Bug 26913673

Change-Id: I25f821c3c329dd306d7c3c5f99e2a3bcb0cc3df5
uidedAction.java
7689b0d50f633f9a6d68f76e08a67182340a3b7d 01-Feb-2016 Dmitri Plotnikov <dplotnikov@google.com> Merge "Prevent activity leak when enableOrbColorAnimation is called on an unattached view" into mnc-ub-dev am: a8fbffb075
am: 7be1cb335f

* commit '7be1cb335f095f68c01eda5f35063749c26a362d':
Prevent activity leak when enableOrbColorAnimation is called on an unattached view
a8fbffb075861f3984e864baa1b63f7e530228be 01-Feb-2016 Dmitri Plotnikov <dplotnikov@google.com> Merge "Prevent activity leak when enableOrbColorAnimation is called on an unattached view" into mnc-ub-dev
77212efe8bac2cea4bbff413f10489dbc786ca35 30-Jan-2016 Chulwoo Lee <chulwoo@google.com> Merge "Initial CL for the onboarding screen" into mnc-ub-dev am: 05dcb796b0
am: 8b6f2862f2

* commit '8b6f2862f2eef52c6bfc46fef3d02f7427272a36':
Initial CL for the onboarding screen
77b750bc2094fbe921058d8748fe26f830fbc6c8 30-Jan-2016 Dmitri Plotnikov <dplotnikov@google.com> Prevent activity leak when enableOrbColorAnimation is called on an unattached view

Bug: 26883209
Change-Id: I031880f9c9655785acd5e6a45071c8f122568a4f
earchOrbView.java
b78877670c813ccfc46071a8d361f45185fd06f4 27-Jan-2016 Chulwoo Lee <chulwoo@google.com> Initial CL for the onboarding screen

Refer to the documents about onboarding in the bug.

Bug: 26751768
Change-Id: I673afd21d1b8b8d72ec549d0d35da36b1fee68ae
agingIndicator.java
54bda9b47eb150ee1808da789ccb0294306b1be4 29-Jan-2016 Dake Gu <dake@google.com> Merge "leanback: fix layout issue of wrap_content" into mnc-ub-dev am: 5e78d2c2df
am: c5e5b92bf2

* commit 'c5e5b92bf238a699ef1fccfbaffd6973059fc08e':
leanback: fix layout issue of wrap_content
11c2c736390d6255a6a11acc53243deed9fb4e8f 29-Jan-2016 Dake Gu <dake@google.com> leanback: fix layout issue of wrap_content

With latest RV change, it no longer pass items in onMeasure()
if HasFixedSize is true. This unfortunately may cause some
performance issue because we are going to causing layout pass
all the way to the ViewRoot instead of handling within the RV.

Bug 26856007

Change-Id: I72313b8244e13f00e10d87528cf15914ffeef515
istRowView.java
4dd8cdf91d7411203092d27f20f82c1d74c2a8fb 28-Jan-2016 Dake Gu <dake@google.com> Merge "GuidedStepFragment: made Picker accessibility friendly" into mnc-ub-dev am: 9350d61309
am: 69ff8d97eb

* commit '69ff8d97eb6f1a2112f8a3e6feab132b43eb1fdb':
GuidedStepFragment: made Picker accessibility friendly
0f96ae4965103bade4bebe7776b2ee35cd603112 26-Jan-2016 Dake Gu <dake@google.com> GuidedStepFragment: made Picker accessibility friendly

Interpreting keys in Picker view does not work with accessibility services.
Talkback 4.4 expects the view to be focusable to drive the UI. The change
makes Picker's child views focusable. Also added new functions to
block focus out of item view when it's activated for editing.

Bug 26725708

Change-Id: I332fe577dffa4fe86a83dfe25e13cb90444d5da3
uidedActionItemContainer.java
uidedActionsStylist.java
til.java
icker/Picker.java
6f8ca8bd6e2361bc9ec614470d7c8c971cf24e50 22-Jan-2016 Dake Gu <dake@google.com> Merge "GuidedStepFragment: Accessibility of checkable item" into mnc-ub-dev am: eb9bf4ae1a
am: 9ea942bbdb

* commit '9ea942bbdb1ffd6634aa9b83849bf3f8beef5d18':
GuidedStepFragment: Accessibility of checkable item
7d038f7b9c369d431c61963ef5689790e582c1a3 22-Jan-2016 Dongwon Kang <dwkang@google.com> Merge "Leanback: Add PictureInPictureAction in PlaybackControlsRow"
b6b910bb30da6b2af318e77d0ab2f3575187f7bc 22-Jan-2016 Dake Gu <dake@google.com> GuidedStepFragment: Accessibility of checkable item

Set checkable and checked status of item.

Bug 26729943

Change-Id: I82e652499b527e80ff28503be5baf1f426fbf47d
uidedActionsStylist.java
b88b36aa081a500eb0e9d4be0bac85b33cd57dde 05-Jan-2016 Dake Gu <dake@google.com> Adding datepicker in GuidedStepFragment

Add GuidedDatePickerAction. Added a new VIEW_TYPE_DATE_PICKER in
GuidedActionsStylist to handle GuidedDatePickerAction. The behavior
is abstracted as a "click to activate/deactivate" widget, allowing
subclass to support action other than DatePicker. The transition
shares same code for drop down list (i.e. sub actions).

Fix the generic Builder class problem, passing the concrete Builder
class as generic parameter.

Switch Picker to use standard activated status from a customized
"expanded" attribute.

And API review changes

Bug: 25390757
Bug: 26509683
Bug: 26509387
Bug: 26509381

Change-Id: I35cb5f99a1e81acaa51366cf17b1353180c7a549
uidedAction.java
uidedActionAdapter.java
uidedActionAdapterGroup.java
uidedActionsStylist.java
uidedDatePickerAction.java
icker/DatePicker.java
icker/Picker.java
icker/PickerColumn.java
2401804c25909d3b271f5d5aea8f9d1b2168fc07 21-Jan-2016 Dongwon Kang <dwkang@google.com> Leanback: Add PictureInPictureAction in PlaybackControlsRow

Bug: 26696095
Change-Id: I78feba953433da2bc0534f6aecfbb6dcebbc20b2
laybackControlsRow.java
db14ff55f779f2a0c6e2c4c8009bb67458beb267 21-Jan-2016 Dake Gu <dake@google.com> leanback: group guidance accessibility text

Group the 3 texts together as a single accessibility node.
Assign default contentDescription if it is not specified in layout.

Bug 26062221

Change-Id: I1b5569bdb02dea9414d9b9c26485b0cce82129ce
uidanceStylist.java
6626b899cb2565105f20e4ee2060a5104826d1dd 20-Jan-2016 Dake Gu <dake@google.com> Leanback: Accessiblity navigation fix

1. disable accessiblity focus of header view in the RowsFragment
because the focusfinding model of talkback is not same as leanback,
causing unpreditive manner. Disable it before we figure out how to
customize accessibility focus finder.

2. Fix guided action item's accessibility focus, make TextView not
focusable before it's in editing and disable focusable after TextView
loses focus.

Bug 26692260

Change-Id: I55291ed8db734d592f0e8a7c2ce9afe796cc6fba
uidedActionAdapterGroup.java
uidedActionEditText.java
uidedActionsStylist.java
023bf7d01378f30a63dce3d0a1112eb56bd6b99f 12-Jan-2016 Dake Gu <dake@google.com> GuidedStepFragment: fix missing Icon

A regression caused by code lost in refactoring.

Bug 26473407

Change-Id: Ie40c13f6b0e9656b0a8b906aac2f094b855b8f01
uidedActionsStylist.java
10c27646c1a19989f824a44ecd5dec2663db048d 19-Dec-2015 Dake Gu <dake@google.com> leanback: Dont use widget style in ContextThemeWrapper

This removes few attributes from ImageCardView widget and add few
attributes in Theme to select style for sub components.

Bug 26249596

Change-Id: Ib90c05f9471878be896121963019ddc6c05de5f2
aseCardView.java
mageCardView.java
b7552b3149dac104fc3ff1a621971417c298db74 19-Dec-2015 Dake Gu <dake@google.com> GuidedStepFragment: fix duplicated sound.

Dont need extra click sound on down, system already take care.

Bug 26275712

Change-Id: If4d6e158a585c2fb1b5adbfd9c5883987c896f54
uidedActionAdapter.java
bc62e0bf64bc727e7fe983ee1ffe07e266f143c8 16-Dec-2015 Dake Gu <dake@google.com> leanback: GuidedAction API tuning

- add GuidedAction.setIntent
- add context to Builder constructor
- Use ContextCompat to load drawable (instead of getResources().getDawable)
- remove multiple Builder.constructXXX() methods, replaced with
clickAction(int id)
- add methods to load strings from resource id, using the newly
added Context parameter of Builder constructor.
- fix typo of nchecked.

Bug 26228853

Change-Id: Ib9a11d6cecbd4462fd3291e73abfc379acc71fd3
uidedAction.java
cff6e470de4a0b2ed1dec944bdc848bd26f852f6 16-Dec-2015 Dake Gu <dake@google.com> leanback: API tuning: inner classes

Change-Id: I00b48c1d3a3d16c783744c978a4d73337d6558ad
istRowPresenter.java
istRowPresenterSelectItemViewHolderTask.java
resenter.java
resenterViewHolderTask.java
b19799d69cbbe7f7ca104520e9b07312ab7539af 15-Dec-2015 Dake Gu <dake@google.com> DatePicker: allow change columns after initialized

Also fixed NPE when one of the date column is not in format.

Bug 25390757

Change-Id: Ic1ee9c50d9c3d93f71f3bf587bd594d411097ee5
icker/DatePicker.java
icker/Picker.java
93877b8541a9a6934f943bf8a1477a40154c3bda 14-Dec-2015 Dake Gu <dake@google.com> Merge "Prevent LinearSmoothScroller going too fast" into mnc-ub-dev
3b41f91889912304ab334d97d197b51eaea7ce28 11-Dec-2015 Dake Gu <dake@google.com> Prevent LinearSmoothScroller going too fast

This applies to the cases for a spinner which only show one
item Vertically, the VerticalGridView's height is very short.
The default settings in LinearSmoothScroller will way over
scroll the views.

Change-Id: Id002bf1bc9f102ae844ad50d1946876b84df3bce
ridLayoutManager.java
942b6ba8bc8803a57eebcfd51bc2707b58699dd3 14-Dec-2015 Dake Gu <dake@google.com> Merge "Refactoring GuidedAction Builder" into mnc-ub-dev
a7f9f2928b60143e09f216a10ea50f2dd4581170 14-Dec-2015 Dake Gu <dake@google.com> Refactoring GuidedAction Builder

Use generic to allow subclass defining T build(). So subclass of Builder
won't need multiple build() methods or having caller to cast GuidedAction
returned by build().

Change-Id: I54c70e50ef795441294970b9dbe2f3500ce77baa
uidedAction.java
2e42db84057616ff5fc755ab55debef731015d3a 12-Dec-2015 Dake Gu <dake@google.com> leanback: Improvement of Picker

Support two states: expanded and not expanded.
Auto toggle expanded states onClick.

Bug 25390757

Change-Id: I857f25099a7a936d29250b2488e0e42e6eb18359
icker/Picker.java
71d30e1cf5514761ba8ad4bd3c8c70540d60dbd3 08-Dec-2015 Dake Gu <dake@google.com> leanback: add Picker and DatePicker widgets

Bug 25390757

Change-Id: I0acfb545e311b9d8d8e79410785d636485c59d9c
icker/DatePicker.java
icker/Picker.java
icker/PickerColumn.java
icker/PickerConstant.java
60f531e3d9667db9afe091f5a7979410eb7a0b48 07-Dec-2015 Dake Gu <dake@google.com> leanback: Expose some APIs

Bug 26027075

Change-Id: I2ab5c0683f1e00e4dd06b702787e3358cf64c105
istRowPresenter.java
0d73d42df7cf4b325b8f49660e3326204915ce8f 04-Dec-2015 Dake Gu <dake@google.com> Add helper to select a row then a card on that row.

Bug 26010216

Change-Id: Ic1cedc60c58644631ce62a6f4c8f95971d6702ab
aseGridView.java
istRowPresenterSelectItemViewHolderTask.java
resenterViewHolderTask.java
ed838f628cbf453b8df555c88f00a9eb69d507a9 03-Dec-2015 Dake Gu <dake@google.com> PlaybackControlsRow: Fix wrong ClosedCaptioningAction id

Bug 26010405

Change-Id: I4dd01bbf27ed1070d9aff219c43c8583336b74ec
laybackControlsRow.java
7a45714d94e3e5566e3879042f7ee2b93eb5c62a 03-Dec-2015 Dake Gu <dake@google.com> GuidedStepFragment: Fix "next icon" direction in RTL

Change-Id: Ia31383635d76373dd0cf5f4cf241b790482ce7cc
uidedActionsStylist.java
fb23f1271e21761bb523948d9ea9c60c42ae7251 03-Dec-2015 Dake Gu <dake@google.com> GuidedStepFragment: Fix bug of sub actions focus

Bug 26007404

Change-Id: Ib02b0cb3b8c92b30e822a7e7bb09e728ee82a473
uidedActionsStylist.java
30ef11f479e5bfeadf5ccc24c9f015a04e1575c5 03-Dec-2015 Dake Gu <dake@google.com> Merge "Fix focusOutSideStart and focusOutSideEnd for VerticalGridView" into mnc-ub-dev
173d79a987bec7d8dc9fd4e7066200d0b9b9842e 03-Dec-2015 Dake Gu <dake@google.com> Fix focusOutSideStart and focusOutSideEnd for VerticalGridView

Bug: 25982172
RTL GuidedStepfragment is unable to move focus to button actions

Change-Id: I3e534753ef1d187ce2518bd60819215581dc0931
ridLayoutManager.java
1db5382081756ee276c1fb88f5ebdbc138b70249 02-Dec-2015 Dake Gu <dake@google.com> GuidedStepFragment: switch to material selector/ripple effect

Use android:attr/selectableItemBackground for highlighting.
Add a customized LinearLayout to support foreground before v23.

Change-Id: Ie7f0448e3782853c20938826560aa137957cec49
uidedActionsStylist.java
onOverlappingLinearLayoutWithForeground.java
1ed9dc77616514e20c51baa67a04adab42e4135e 01-Dec-2015 Dake Gu <dake@google.com> GuidedStepFragment: Support animation of expanding sub actions

Bug 24979518

Change-Id: Ie2d5bf7c25c30db89f6edffd6f71a26e9bca2090
uidedActionsStylist.java
adb84c07a691bd044b470c2e2ffe6c3ae630ad50 24-Nov-2015 Dake Gu <dake@google.com> DetailsOverviewRowLogoPresenter: Support fixed size and scaleType

1. Made maxWidth/maxHeight work when using intrinsic size of drawable.

2. Now app can override onCreateView() and sets fixed width/height
and scaleType for ImageView.

Bug: 25868604

Change-Id: If6a963fa6d95384fda261fc6d5fefa3313e0892a
etailsOverviewLogoPresenter.java
be6eb618b4ba8a74d69fa04c77c717b1fcbea818 20-Nov-2015 Dake Gu <dake@google.com> GuidedStepFragment: support expand/collapse sub actions.

Refactored GuidedActonsStylist.ViewHolder to be subclass of
RecyclerView.ViewHolder, since GuidedActionsStylistis already
assumes running in RecyclerView and adding scroll listener.
There is no benefit of hiding RecyclerView.

Added support to disable focus right / left in actions list
view. We don't allow focus to the side buttons from sub actions.
Also disable focus left so it won't be interpreted by a bottom
BrowseFragment as open fast lane.

Expand/collapse animation is yet to be added.

Bug 24979518

Change-Id: I4309e63347e5b85b746477f988721fd4fca67943
aseGridView.java
ridLayoutManager.java
uidedAction.java
uidedActionAdapter.java
uidedActionAdapterGroup.java
uidedActionsStylist.java
iewHolderTask.java
8e5ae27d6db125867640b672cc97d4a158fdfd48 18-Nov-2015 Dake Gu <dake@google.com> GuidedStep: sync selectorView translationY to focused view

Current implementation assumes the focused view stays at fixed Y location.
This is no longer true for expanded actions.

This CL added support to sync selectorView Y position to focused
view Y position. And due to the conflicts of both IME and scroll changes
selector Y position, added common parent for change Y position for IME.

Simplified selectorView animation implementation.

Fixed bug that FadeAndShortSlide resets transitionY to 0.
Fixed a mismatch of transitionName for guidedactions_root2.
Remove unnecessary transition excludes since the views are already part
of shared element transition.

Tested by changing alignment rule of VerticalGridView.

Change-Id: Id9f676e607aa6e3e9fed14e5b2687e4ad0951f45
uidedActionsStylist.java
7f43e18536eae40705d5c63830e9edb283f196ad 16-Nov-2015 Dake Gu <dake@google.com> Theme dark version of brand color and guided actions background

Follow the same strategy for defaultBrandColor/colorPrimary, introduce
defaultBrandColorDark/colorPrimaryDark for details action background.
Remove the code that auto-calculate dark version from defaultBrandColor.
Simplify HeadersFragment and FullWidthdetailsOverviewRowPresenter code
by using theme attribute in layout file.

Follow the same naming convension, renamed guidedButtonActionsBackground
to guidedActionsBackgroundDark for the "dark" version.

Change-Id: I05f4ebc0903a3e10b860777c4eb44c4ac5547c9a
ullWidthDetailsOverviewRowPresenter.java
4705eed4421d3b00923b56062765206dea21387e 13-Nov-2015 Dake Gu <dake@google.com> GuidedStepFragment: Allow app to override Ime Action text

Change-Id: Idcc713472639bacb9767ee6d64de1bf6452b272b
uidedActionsStylist.java
11cb62de8bfc6b5b6d22811ad12a1e60451b82be 11-Nov-2015 Dake Gu <dake@google.com> GuidedStep: support checkbox and use standard android drawable

Introduce a special checkset id for checkbox.

Current implementation uses non-standard View and animation resource for
radio. Switch to use standard android checkbox/radio defined in the
theme.

Bug 25631132

Change-Id: I0c9356a624dfd9b3b2dfc38be2b1dcb3eea125b7
heckableImageView.java
uidedAction.java
uidedActionsStylist.java
c1bb05750e8a59ed1c8824656cc6893da352b859 11-Nov-2015 Dake Gu <dake@google.com> Merge "GuidedStepFragment: allow move focus to button action list" into mnc-ub-dev
43e10e99e55c1c2eeca31fa13e9cc84160850f59 09-Nov-2015 Dake Gu <dake@google.com> GuidedStepFragment: allow move focus to button action list

Add a GuidedActionAdapterGroup to maintain single ImeOpen flag and
control next focus after editing. This would allow focus move
between different action lists.
Code refactoring moves editing logic from GuidedActionAdapter into
GuidedActionAdapterGroup.

Don't openIME in onKeyUp event, this causes timing issue that onKeyUp
can be fired on a different view of keyDown. Move openIME into onClick
event.

Remove references to Adapter objects and view objects after Fragment
onDestroyView(), fix potential View leaking.

Change-Id: If89a7bf67bd62ff02d3ac2a2c64a1164d3fa76bd
uidanceStylist.java
uidedActionsStylist.java
00e05297683e1cc2a5fb25a00632a778b7b5d0e4 10-Nov-2015 Dake Gu <dake@google.com> GridLayoutManager: fire selected event when selected item type changed

Not only compare focused position but also compare the focused View that might
changed in fastLayout pass.

Bug 25619502

Change-Id: Ib59c8d753224daf23667d2f6ebd9a1babad61eb4
ridLayoutManager.java
1cf203ef9c991909e6a85455aebdb26de77280a4 07-Nov-2015 Dake Gu <dake@google.com> GuidedStepFragment: fix initial selector view size flicking

In layout pass, onLayout of VerticalGridView triggers a focus change event
where we change LayoutParams of the selectorView, but because parent RelativeLayout
does not re-measure the selectorView in RelativeLayout.onLayout, parent RelativeLayout
calls selectorView.layout() with the obsolete values and leave the view size
inconsistent with LayoutParams.

Our current workaround "post a Runnable" causes one frame flicking when fragment
is initially loaded.

One non-trivial fix is to override RelativeLayout and re-measure the selectorView
between VerticalGridView.onLayout() and selectorView.onLayout().

But since we use scaleY anyway later, switching to use scaleY is much simpler.

Change-Id: I585609695048cffd23e67619320af187e37ffbb6
uidedActionsStylist.java
0b3811639349fd5791a3f330b23b7e4b1c099c27 06-Nov-2015 Dake Gu <dake@google.com> GuidedStepFragment: morph action panel size change in fragment transaction

Use shared element transition to morph between single action panel
and double action panel. This requires different view Ids and
transitionNames for two action panels in order to match shared element
views correctly.

b/24979563

Change-Id: I507c0329071317d0c1282f8892c0f4901d72c245
uidedActionsStylist.java
a97810e4e2ec2552f8247ebdadf323dae70d9e3f 04-Nov-2015 Dake Gu <dake@google.com> GuidedStepFragment: multiple fixes:

1. Handle Keyboard ENTER key correctly. Go through the same logic
that press enter icon in soft IME.

2. Add theme attribute for actions elevation value where SetupWraith
need override as 0dip

3. Make EditText not focusable if action is not editable.

Change-Id: I0e77487ba655c2d4ab729f180fe057b28e19e7e2
uidedActionsStylist.java
0c047fba6b8acc3154830f12c0d09bd5e8df0f55 04-Nov-2015 Dake Gu <dake@google.com> Merge "GuidedStepFragment: fix the unfocus alpha being overriden." into mnc-ub-dev
19c1329def8d277c914cba46540d24bfde58b2a4 04-Nov-2015 Dake Gu <dake@google.com> GuidedStepFragment: fix the unfocus alpha being overriden.

A regression of fixing b/20759626: if onAnimateItemFocused()
changes item alpha, it will be overriden by animator created by
onAnimateItemPressed(false).

Introduce onAnimateItemPressedCancelled() which sets alpha without animation.
Let onAnimateItemFocused() be executed after onAnimateItemPressedCancelled().

Bug 20759626

Change-Id: I61d100d93c47afa1ad9dc6c070dc9477eb092dc9
uidedActionsStylist.java
d14724d33d61385c27a00c31bbc67ad8eeb57b3c 31-Oct-2015 Dake Gu <dake@google.com> GuidedStepFragment: two columns actions

Duplicated action methods into another copy.

The weight of actions width is controlled through theme:
guidedActionContentWidthWeight, guidedActionContentWidthWeightTwoPanels.
When there is one column: actions take 40% of screen width.
When there are two columns: actions take 50% of screen width.

Two actions backgrounds are controlled through theme:
guidedActionsBackground, guidedButtonActionsBackground.

b/24979563

Change-Id: I96486921c39693771c243b18ef9897aa750c65cb
uidanceStylist.java
uidedActionsStylist.java
9a8833a689869ecdacfcc280b5cffb133ccf9f76 31-Oct-2015 Dake Gu <dake@google.com> GridLayoutManager: Dont crash in measure when using weight

Using the size passed from parent instead

Bug 24738452

Change-Id: I2692b92bf0bcd2d067a30162d1c7b3b1d6ce28ca
ridLayoutManager.java
e2f7aef2f45dcdfe116995b64f9a7be5c68a36a1 30-Oct-2015 Dake Gu <dake@google.com> GuidedActionsStylist: support different viewTypes and LayoutIds

Bug 25387934

Change-Id: I1ebc652b2de4d162284e111fe2a095ab3d37158d
uidedAction.java
uidedActionsStylist.java
7af424644dc8daae5298a5ca2f655770270366fe 29-Oct-2015 Dake Gu <dake@google.com> Make GuidedAction extensible, add focusable attribute

Change-Id: I043c683f2e53aaa2bd923f1ca8bf09f9af8aa8d1
uidedAction.java
uidedActionsStylist.java
6f09284ea29241b4d4700ea89111f30517b958e7 28-Oct-2015 Dake Gu <dake@google.com> GuidedStep: add standard action ids and titles

Bug 25193684

Change-Id: Icb0ade25e5b182ec568c333822c403567064fa7a
uidedAction.java
11d840a367ff9d760a3a0307944151ee6917f1a5 27-Oct-2015 Dake Gu <dake@google.com> Merge "GridLayoutManager: handle smoothscroller cancellation properly" into mnc-ub-dev
ac6a1a35cff83fdb50d9c8e203f881a54e92e40c 27-Oct-2015 Dake Gu <dake@google.com> GridLayoutManager: handle smoothscroller cancellation properly

When smoothscroller is cancelled and the targetView not found yet,
immediately jumps to the final position. Otherwise the LayoutManager
is in a bad state.

Bug 25322065

Change-Id: I3e8cce98ff218ad74c263c2f6412ba39911c7e3e
ridLayoutManager.java
9562425bf9bc15281ac27df817141854769c1042 26-Oct-2015 Dake Gu <dake@google.com> GuidedStep: Support action title and description InputType

Bug 25288089

Change-Id: I938de1066f768d190ff8b01fb09aa9ca4374f27e
uidedAction.java
uidedActionsStylist.java
c1741246af607f6be2389056da0182c40f938348 17-Oct-2015 Dake Gu <dake@google.com> GuidedStepFragment: lots of editing improvements

1. Support editing description
2. add onGuidedActionEditedAndProceed() to control
target action to focus on when IME finished. Currently
we always focus to sibling action regardless whether the
input is correct or not.
3. add notifyActionChanged() to update action item ui
4. Dim alpha of title when disabled

Bug: 24979559
Bug: 25019347

Change-Id: I3258681d27761a3892f67f528539110bc7640c88
uidedAction.java
uidedActionsStylist.java
8403619efebe94666c0615c3fc85080a303acf80 14-Oct-2015 Dake Gu <dake@google.com> leanback: fix NPE of transition listener and clean up

We actually can not support setListener(null) because transition
class only provides addListener() and removeListener(). Details fragment
adds a transition listener with null callback to the sharedelemententer
transition. The bug was not discovered because leanback theme always
specifies the sharedElementReturn transition. When sharedElementReturn
transition is not specified. When pressing back, the null callback listener
of sharedElementEnter transition are cloned into sharedElementReturn transition.

Now we switch to use addListener/removeListener and change
TransitionHelper methods to static.

Bug 24202013

Change-Id: I7cc918013e4a357a59987ea9727bc03c15cb0097
etailsOverviewSharedElementHelper.java
ullWidthDetailsOverviewSharedElementHelper.java
istRowPresenter.java
itleHelper.java
erticalGridPresenter.java
c88e63b62bf417df87d9c14daf35d7a7e1125115 12-Oct-2015 Dake Gu <dake@google.com> leanback: use item multiple align info when calculating scroll max

This wasn't discovered because the FullWidthDetails row was always tested
with related rows and it was never used to calculate scroll max.
If there is no row after FullWidthDetails row, we need use the
last focusable view (the details descritpion) to calcualte the scroll
max.

Bug 24801632

Change-Id: Ia3345fbee2c81464a1b016c74b9c6561be551e9e
ridLayoutManager.java
ce4c2014042fe6e4723bab30741039848adcf4be 09-Oct-2015 Dake Gu <dake@google.com> leanback: some javadoc fixes

Bug 24804296
Bug 24806837
Bug 24807801
Bug 24806081
Bug 24804939

Change-Id: Ie611c6c663335628ba98c2571bfda494e80f47b3
istRowPresenter.java
hadowOverlayHelper.java
5356bc373aa2c51ff7dac08058e7ae5e53e20509 05-Oct-2015 Dake Gu <dake@google.com> GuidedStepFragment: allow editing a different text than title

Added getEditTitle() and setEditTitle(), this is the String being
edited instead of title.

Bug 24673827

Change-Id: I1501c105ab1ce6982af0d111ba1506292449a6f3
uidedAction.java
afb203b71421cb0d477d4d470e852cc9647dde48 26-Sep-2015 Dake Gu <dake@google.com> Apply transitionGroup=true for static shadow

Current code only add transitionGroup=true to ShadowOverlayContainer
for dynamic shadow.

Apply transitionGroup=true to ShadowOverlayContainer when static shadow is
used and also when ShadowOverlayContainer is not used at all.

Bug 24416053

Change-Id: I805c52b46d0438d2a0e04568cd97bf94d1ff0ea1
istRowPresenter.java
hadowHelper.java
erticalGridPresenter.java
4d495c172b7d491c21be9116dfa655cb85860454 24-Sep-2015 Yigit Boyar <yboyar@google.com> Merge "RecyclerView Animation API V2" into mnc-ub-dev
a63d86321b1b4d09f965019e4bcb62f0d0aaa12f 28-May-2015 Dake Gu <dake@google.com> GridLayoutManager: supports decorated bounds and margin

Switched to use "getDecoratedXXX" bounds method and added support of margin.
This also makes LM available to future RV size change animation.

Change-Id: I508c9419ae9bb6b8d363164e7eacf7f29fd3598c
ridLayoutManager.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
aseGridView.java
42ae32908312e63b474963fef789017c75feae37 23-Sep-2015 Dake Gu <dake@google.com> Revert "Revert "GuidedStepFragment transition and new features""

This reverts commit d7b834d0339476a8867c6d14e67ed9a08d314e75.
ragmentAnimationProvider.java
uidanceStylist.java
uidedActionsStylist.java
4935f2739238e9abba8fa792e97a33d6fe04beeb 21-Sep-2015 Dake Gu <dake@google.com> Merge "Revert "GuidedStepFragment transition and new features"" into mnc-ub-dev
d7b834d0339476a8867c6d14e67ed9a08d314e75 21-Sep-2015 Dake Gu <dake@google.com> Revert "GuidedStepFragment transition and new features"

This reverts commit ce0bd5abebf662db7d8b42468009b227715698ec.

Change-Id: I4ee14b2e4af37f707f6232fa0a5a1cb149c51540
ragmentAnimationProvider.java
uidanceStylist.java
uidedActionsStylist.java
3b2e3fdb89c30fb5f807dcbf8321876b705837d2 21-Sep-2015 Dake Gu <dake@google.com> Merge "GuidedStepFragment transition and new features" into mnc-ub-dev
682b577d8c89af032bb9e114d9df59d7aeaad6ef 16-Sep-2015 Jake Wharton <jakewharton@gmail.com> Null check listener before dereferencing for callback.

Change-Id: Ie1d060712bac791f49e1882d95d0b8c8c17291c2
earchEditText.java
130dbe99821ae2ab77511f7e08ed79eb610de343 14-Sep-2015 Dake Gu <dake@google.com> Fix ItemBridgeAdapter NPE

Bug 23974032

Change-Id: I37df73a76c2524b8d038e3517e3f58127c31bf21
temBridgeAdapter.java
ce0bd5abebf662db7d8b42468009b227715698ec 01-Sep-2015 Dake Gu <dake@google.com> GuidedStepFragment transition and new features

This is a re-iterate of use cases of GuidedStepFragment, new
features including allowing app to add GuidedStepFragment
on top of other content with a covering background fragment;
using activity return transition to slide out content.

Switched from fragment animation to fragment transition. Using
transition will allow us to clone a support version of
GuidedStepFragment that is impossible under fragment animation.

Clearly defined three use cases:
1. When GuidedStepFragment is launched in empty activity.
2. When GuidedStepFragment is launched on top of other content.
3. When GuidedStepFragment is replacing exisitng GuidedStepFragment.

For case 2, we need background to cover bottom content.
Three cases has different transitions settings. Case 1 does not
need Fragment enter transition because that's handled by activity
transition.

Bug 21504593
Bug 23976865

Change-Id: Id7a49d8706fb4b6d21f5f93db5ba9b21238b2c5e
ragmentAnimationProvider.java
uidanceStylist.java
uidedActionsStylist.java
058fb01f7890df9b0379e49c7559266b4097abad 28-Aug-2015 Dake Gu <dake@google.com> ShadowOverlayContainer Fix MATCH_PARENT handling

Added test cases

Bug 23625951

Change-Id: I66430f35d3c8997f9dfed84f3295d37aa5313a64
hadowOverlayContainer.java
85833087b2288e0f002de6b4ebcbc0564839a217 07-Aug-2015 Dake Gu <dake@google.com> Make ShadowOverlayHelper public and customizable

Some refactoring to make ShadowOverlayHelper ready for public.

1. Use Builder pattern to avoid unstable parameters in constructor.

2. Added Options to customize rounded corner radius and shadow Z depth.

3. Make ShadowOverlayHelper independant of ItemBridgeAdapter.

4. Fix bug that Overlay drawable should not override the Ripple drawable
foreground of card view. That means a wrapper container is needed for
overlay color.

Change-Id: I0952d3cc15de21fde0b8e237078919d35592848e
ocusHighlightHelper.java
temBridgeAdapterShadowOverlayWrapper.java
istRowPresenter.java
oundedRectHelper.java
owPresenter.java
hadowHelper.java
hadowOverlayContainer.java
hadowOverlayHelper.java
erticalGridPresenter.java
c738357d90fcc7876415ee16d7fe935510229d4a 26-Aug-2015 Jerome Poichet <jpoichet@google.com> Exposing CompletionInfo API on SearchFragment

CompletionInfo have both label (displayed text) and text (value actually
used when completing), so in order to allow applications to add "icons"
to distinguish between different type of search suggestions, expose
CompletionInfo directly.

b/23348955 | Allow annotating different types of search completions

Change-Id: Ib23da2109f49e9e95941d02a469d4372d78fa130
earchBar.java
a35153609850cbb33d9ea5ebe6d6e136e26ba327 19-Aug-2015 Dake Gu <dake@google.com> PlaybackControl: Allow showing 0 seconds for current time

Bug: 21021839

Change-Id: I946999e292773266ff65d01d97affdfd78a7029f
laybackControlsPresenter.java
786ba352397f44022617411936515fc9eb28d23f 18-Aug-2015 Dake Gu <dake@google.com> Staggered transition support for VerticalGrid

Bug 23319507

Change-Id: Ib86761eccd06bdbe9e2b0712a12a4d2507c5c0db
owPresenter.java
erticalGridPresenter.java
ac07e9d12b10138d4a449522f7082a40f18861e2 08-Aug-2015 Kris Giesing <kgiesing@google.com> Allow action item layouts that do not supply editable actions.

Fix cast operations that were throwing exceptions; make the Leanback
edit text object public to allow reuse.

b/23039755

Change-Id: Id9ceda139efeb352210831dbed0f1dfbbcccd76a
uidedActionEditText.java
uidedActionsStylist.java
eanbackEditText.java
fa6b4eadf5959e147ea5f548d5e33500227ae7a6 06-Aug-2015 Dake Gu <dake@google.com> Merge "Dont change android:background in ContextThemeWrapper" into mnc-ub-dev
69d050a8f2cb15e48185a413327feb4fb0e7a1ac 06-Aug-2015 Dake Gu <dake@google.com> Dont change android:background in ContextThemeWrapper

ImageCardView needs a ContextThemeWrapper to create its children.
The child ImageView is used in activity transition. GhostView
creates a full screen FrameLayout using ImageView's context, which is a
ContextThemeWrapper created by ImageCardView. So the FrameLayout
accidentally inherits a background same as the ContextThemeWrapper.

While we can fix GhostView in MNC, to make it work before MNC:
use a different attribute name other than "android:background".

Similarly defines attribute for card foreground.
Move cardForeground and cardBackground default settings to base card view.

Bug: 22988113

Change-Id: I8b30c6e8730e2379b29827fe8970f1d72e45ac1f
aseCardView.java
mageCardView.java
16233ade5b051564ff297ee48c172bf7dec22440 06-Aug-2015 Kris Giesing <kgiesing@google.com> Merge "Add support for editable actions to GuidedSteps" into mnc-ub-dev
4158705d3f0751d419a08c47a659abeae5f6c196 23-May-2015 Kris Giesing <kgiesing@google.com> Add support for editable actions to GuidedSteps

b/21403345

Change-Id: Id46c94e237f461fcb96439c1dea033e3c2f2a1c4
ragmentAnimationProvider.java
uidanceStylist.java
uidedAction.java
uidedActionsStylist.java
meKeyMonitor.java
eanbackEditText.java
4d14fb53ebf304ad989afbc57baa71cfcafa4e7a 05-Aug-2015 Dake Gu <dake@google.com> Further change for ShadowOverlayHelper

Switch VerticalGridPresenter to use ShadowOverlayHelper.
Don't force use ShadowOverlayContainer if rounded rectangle outline
is not used.

Change-Id: I1851f8209008ef8713039429165926bc195d585e
ocusHighlightHelper.java
istRowPresenter.java
hadowOverlayHelper.java
erticalGridPresenter.java
20921beeb51f39558a7ac3b646cce8e342cb7183 05-Aug-2015 Dake Gu <dake@google.com> Force use ShadowOverlayContainer for overlay

Accidentally commited debugging code.
Need force to use ShadowOverlayContainer.

Change-Id: I7e4a2e2dd6c03c0d2b52ec8f5420cfd627e741a8
hadowOverlayHelper.java
4fbeceb26d6f45e65f025b569bc5b44cf822b421 05-Aug-2015 Dake Gu <dake@google.com> Merge "Remove overlay view for better performance" into mnc-ub-dev
254b417129de2a8c5612826a152f8a26c8f1d0e8 27-Jul-2015 Dake Gu <dake@google.com> Remove overlay view for better performance

Overlay view does not help performance, when animating
background color, invalidate() will be called on overlay View.
That's equivalent to invalidate() on ShadowOverlayContainer.
Remove the extra view to save memory and override draw()
instead. This turns out to save about 5~10% in UI thread and
RenderThread in a vertical scrolling of BrowseFragment
according to systrace.

Refactoring a ShadowOverlayHelper to include all options for ListRowPresenter:
hasOverlay, hasShadow, hasRoundedCorner, make decision whether to
create a wrapper.

Ultimately the extra layer ShadowOverlayContainer could be removed
and we can use setForeground() on any view for API>=23, but
animating foreground causes uncessary rebuildOutline() right now.
So we force to always use a wrapper for overlay.

b/22794753

Change-Id: I4848f7fc6b832706445da8e6e1b807d0f1830968
ocusHighlightHelper.java
oregroundHelper.java
istRowPresenter.java
oundedRectHelper.java
hadowHelper.java
hadowOverlayContainer.java
hadowOverlayHelper.java
taticShadowHelper.java
459e0eacc1c547f272bc8b897dd3cfb44243c06a 04-Aug-2015 Robert Hahn <hahnr@google.com> Fixed focus bug in new ImageCardView

b/22955551
ImageCardViewStyle had focusable defined
in style which caused all it's children
to also get set focusable=true. Thus the
VerticalGridFragment didn't know what to
set focused or not. The ImageCardView is
not set focusable in code.

Change-Id: Id8c427d86042a24d0f8c88b7adc04fb997108e6e
mageCardView.java
708efc58b8f3950a1a90d7ac7bee4adc4b8bf211 01-Aug-2015 Dake Gu <dake@google.com> am a83f447b: am 949de5e4: am 27173217: Merge "FullWidthDetailsOverviewRowPresenter: fix NPE" into mnc-dev

* commit 'a83f447bc6ef6f58d2c61204178099189517d9b9':
FullWidthDetailsOverviewRowPresenter: fix NPE
be299ddf7ea565c5ba897b8e89f55de61b280d56 31-Jul-2015 Robert Hahn <hahnr@google.com> Merge "Leanback: Support for styling ImageCardView through XML" into mnc-ub-dev
df805b881bdb8794a068a482038df8176dd4ac4a 17-Jul-2015 Robert Hahn <hahnr@google.com> Leanback: Support for styling ImageCardView through XML

Bug: 16635577

ImageCardView can be styled by using the global Theme
attribute 'imageCardViewStyle' or specifying a style
when using the ImageCardView in a layout, or by using
the newly introduced constructor which takes a
styleResourceId as second argument. The styling allows
to specify what components the ImageCardView is using
such that only necessary Views are created and we are
able to reduce the overhead of creating unnecessary
Views.

Change-Id: I62733dad6e0460d6a303565c3386440cb02c78b8
813de6fe46801f8a01952699d553826a4f5fe116 30-Jul-2015 Dake Gu <dake@google.com> FullWidthDetailsOverviewRowPresenter: fix NPE

Remove callbacks properly when unbind from a row (row
becomes null).

Remove the accidentally exposed mHandler from api.

b/22828212

Change-Id: Iffb138e1535f2c6595a19acbfb7f0c02cd54f103
ullWidthDetailsOverviewRowPresenter.java
06388129e48b308b25bfd85e6f136db8528d4c62 27-Jul-2015 Dake Gu <dake@google.com> Fix regression of unable to focus out of empty gridview

b/22706497

Change-Id: I53b7a9d7840fe614f0bb0d0c3307386a1e4e65db
aseGridView.java
e8ae51595e52a0acc36bfd9261f4f2634bccdde0 24-Jul-2015 Dake Gu <dake@google.com> Remove not needed round rect outline

The rounded rect outline is set on ShadowOverlayContainer.
Do not need second one on dim layer.

b/22702823

Change-Id: Ia0b1e17857ac39cf954058d707d734019fdeb080
hadowOverlayContainer.java
52aff68afe51c82a416701db4ac8c7a8d1a5695b 22-Jul-2015 Dake Gu <dake@google.com> am 756d7b63: Merge "leanback: prevent RV update children during transition" into lmp-mr1-ub-dev

* commit '756d7b63dc1e9d9b1f5674882fb3717cd10f08db':
leanback: prevent RV update children during transition
89b4aed6fcd80f940531e265936ab908a8037f87 22-Jul-2015 Dake Gu <dake@google.com> GridView: fix two focus problems

1. if gridView has a list of children and gridView.requestFocus()
is called from top-down which is a typical case when activity
created: gridview should auto focus to first focusable child.

2. When none of visible children is focusable and gridview itself
is focused, focusSearch(int) should navigate to first focusable
child.

b/22634251

Change-Id: I345119c47f0d70029e18eb8405ed67a53bc26fe8
aseGridView.java
ridLayoutManager.java
902e68c114f86e8002516ff3f0248b722b6c5711 29-Jun-2015 Dake Gu <dake@google.com> leanback: prevent RV update children during transition

Introduce onTransitionPrepare() which is earlier than onTransitionStart().
Now it's three stages:
- onTransitionPrepare() stops animation, scroll, user interaction but
allows RV change without item animation.
- onTransitionStart() further stops RV layout, prevent any child change until
onTransitionEnd() resumes it. Adapter change is postponed.
- onTransitionEnd() restores everything.

Fixed a bug when focused header view is re-binding, select level
gets assigned to 0.

b/22067316

Change-Id: If3e05e0bffe8b1b3d67e424989142dc9b69cccdb
owHeaderPresenter.java
53704ef3a54f4f199593a6f45ae3ccc966803d8a 10-Jul-2015 Dake Gu <dake@google.com> am 85313571: Merge "GridLayoutManager: fix jumping problem caused by requestLayout" into lmp-mr1-ub-dev

* commit '853135719b3252dacaba27a3fd884f26266e08a0':
GridLayoutManager: fix jumping problem caused by requestLayout
91feb947412e0521a5f1835553214dcbe03fd362 09-Jul-2015 Dake Gu <dake@google.com> GridLayoutManager: fix jumping problem caused by requestLayout

When requestLayout during scrolling, onLayoutChildren() does not
check return value of getScrollPosition so it may get dirty values
from the temp array.

Bug 22209986

Change-Id: I2506d2774d2069cae86b360f8c985d2ea05cc629
ridLayoutManager.java
f5b4803291bc39e6bae407c3d9963a6e589ebb13 08-Jul-2015 Dake Gu <dake@google.com> am 6d4cf951: Merge "GridLayoutManager: Fix scroll bug when target view is removed." into lmp-mr1-ub-dev

* commit '6d4cf9512d2bf439176826cfc5fd78dcf93836fe':
GridLayoutManager: Fix scroll bug when target view is removed.
ff3b38c570fa25327bb6a9bca1753827d9f9d7fd 08-Jul-2015 Dake Gu <dake@google.com> GridLayoutManager: Fix scroll bug when target view is removed.

When item is removed, we should stop scroll animation and scroll to
a new focus position or same focus position of different item.

b/21970393

Change-Id: I3917adbbed7dd1599f93a5459c7f4bfc3bbac7c6
ridLayoutManager.java
adc6e503d75e4e6b0838f65103259aad1c156c98 27-Jun-2015 Xiaolei Wang <wxiaolei@google.com> am 54b54ced: Merge "add action background bar and support two alignment modes" into lmp-mr1-ub-dev

* commit '54b54ced24a296b9ecb064bb33d5ebe1e92ae466':
add action background bar and support two alignment modes
c6714279e5a39ac1f5eabd0431bb46fcfe6240fe 24-Jun-2015 Xiaolei Wang <wxiaolei@google.com> add action background bar and support two alignment modes

Change-Id: I8c2f6331a18c4f26f8bfde6f74b592703593d0a2
ullWidthDetailsOverviewRowPresenter.java
3f4477b21d634dae3729b6818d4e5cf7790e3c0b 24-Jun-2015 Dake Gu <dake@google.com> am d1cab1b5: Leanback: support Scroll Accessibility action

* commit 'd1cab1b54104d55407335c5d649398635822fffd':
Leanback: support Scroll Accessibility action
d1cab1b54104d55407335c5d649398635822fffd 24-Jun-2015 Dake Gu <dake@google.com> Leanback: support Scroll Accessibility action

Behaves differently than phone/tablet, it scrolls to
last/first item on the same row for SCROLL action.

simplify the dispatchChildSelection() in SmoothScroller
a little bit: only dispatchChildSelection() for the
final target.

b/19072385

Change-Id: I543e5298c681e3809d87de767ec3ab93ef6fe15c
ridLayoutManager.java
47f61f244e877541aad3aa4883c4d3656b70f87d 23-Jun-2015 Dake Gu <dake@google.com> am 8c571342: Merge "Supports extra layout space" into lmp-mr1-ub-dev

* commit '8c5713428379689839330c344c4a800039db0400':
Supports extra layout space
8c5713428379689839330c344c4a800039db0400 23-Jun-2015 Dake Gu <dake@google.com> Merge "Supports extra layout space" into lmp-mr1-ub-dev
88dea72af6042049560140a70e059820dbb8f746 19-Jun-2015 Dake Gu <dake@google.com> Supports extra layout space

When layout reordering aligned focused item, extra space is
needed during prelayout for filling. However there is no
general solution now based on REMOVE/CHANGE flag of ViewHolder.

This CL is a case-by-case solution allows extra item to be added in
invisble area so that item animator can animate slide-in instead of
fade-in.

b/21949401

Change-Id: Ic78a0d639f387a0bf319fcc504b8401262148a0b
aseGridView.java
ridLayoutManager.java
b92cd928e2a9a06d6781308feaf12f6928229df7 20-Jun-2015 Dake Gu <dake@google.com> am 83de2e82: Merge "Leanback: use SingleRow for most widgets" into lmp-mr1-ub-dev

* commit '83de2e82354859ce689e9bb253298f58ecbd69a2':
Leanback: use SingleRow for most widgets
f923d595ace34894c49d1609d3c629336b175b89 17-Jun-2015 Dake Gu <dake@google.com> Leanback: use SingleRow for most widgets

Use a simple SingleRow module for single row case.
Improves both memory and cpu.

b/21898578

Change-Id: I7aa235d343c87a87e66bac4d3209a194262e6e87
rid.java
ridLayoutManager.java
ingleRow.java
1b5af565a8957e16f587a415fb8795bca249eb58 16-Jun-2015 Dake Gu <dake@google.com> am 048454a7: Merge "Leanback: fix fading mask and make ImageCardView up to spec" into lmp-mr1-ub-dev

* commit '048454a762e769ee6439cd2c12d791776a7cc4bd':
Leanback: fix fading mask and make ImageCardView up to spec
cb933aeb5c89f168f604bf081d6f8f4fdde6534f 12-Jun-2015 Dake Gu <dake@google.com> Leanback: fix fading mask and make ImageCardView up to spec

No longer need a fading mask per ux.

Adjusted padding, size, color up to date.

remove redundant FrameLayout.

Remove the code that change visibility based on content.
All the cards on same row should have same height, regardless
their content. Haven't yet decided how to provide a two
textviews customization.

b/21662705

Change-Id: I8c435bb12a3ee8344f463a4975a2af4c5f14f516
mageCardView.java
onOverlappingRelativeLayout.java
9cca6200e250989e80caaeee8c0df09d88c18dc6 18-May-2015 Dake Gu <dake@google.com> am 69713501: Merge "Leanback: fix bad dim support of new details UI." into lmp-mr1-ub-dev

* commit '69713501946f090154c451b0aaf2526bec79d8a5':
Leanback: fix bad dim support of new details UI.
bc00c3b6c1d1be08d2f462080fb7ccd551fe65d8 16-May-2015 Dake Gu <dake@google.com> Leanback: fix bad dim support of new details UI.

The current code has bug that being revealed on mnc.
Need extra FrameLayout to apply dim foreground before
mnc. The code is copied from the old details UI.

b/21205552

Change-Id: Ibb77e70f1329f039d8fdf9f4af4d8afb63076fe3
ullWidthDetailsOverviewRowPresenter.java
61ac5487d7617d62ca9ce3b10ea739c53ed3d2c3 05-May-2015 Kris Giesing <kgiesing@google.com> am 7eda2860: Merge "Support static in addition to dynamic shadows." into lmp-mr1-ub-dev

* commit '7eda2860540ba53d11b068dca80623b3511bdbe3':
Support static in addition to dynamic shadows.
7eda2860540ba53d11b068dca80623b3511bdbe3 05-May-2015 Kris Giesing <kgiesing@google.com> Merge "Support static in addition to dynamic shadows." into lmp-mr1-ub-dev
24502efdf76165e8bd35044e44737de8c6efbe46 05-May-2015 Dake Gu <dake@google.com> am a16d7278: Merge "New details fragment design" into lmp-mr1-ub-dev

* commit 'a16d727807a23ac7de1c94c946555fb2e42ac8d1':
New details fragment design
0246318f27a905a31df5a8af445cfe67d31dfb68 15-Apr-2015 Dake Gu <dake@google.com> New details fragment design

Added new FullWidthDetailsOverviewRowPresenter and changed
DetailsFragment.

Under new design, details fragment is responsible to setup
alignment for each row.

Details fragment is also responsible to change the view state
of row based on selected position and selected sub position.

There are three states for the overview row:
STATE_FULL: covers full width and full height(may be customizable).
STATE_HALF: has empty space in the top to look through.
STATE_SMALL: a banner style like the old Details.

The layouts for different states are defined in the new
FullWidthDetailsOverviewRowPresenter.

Made the logo view presenter exposed and replaceable.

Decouple SharedElementHelper from FullWidthDetailsOverviewRowPresenter
to make it possible to customize shared element transition.

For the apps: they only need switch to use the new presenter.
The old DetailsOverviewRowPresenter is still supported at this point
but might be removed in the future.

Support customize or disable title of DetailsFragment.

Fixed api/current.txt: Hide GridLayoutManager.

Change-Id: Id53aa5a185f132c8d74c95042595f223371fa708
ctionPresenterSelector.java
aseGridView.java
lassPresenterSelector.java
ontrolButtonPresenterSelector.java
etailsOverviewLogoPresenter.java
etailsOverviewRow.java
etailsOverviewRowPresenter.java
ullWidthDetailsOverviewRowPresenter.java
ullWidthDetailsOverviewSharedElementHelper.java
ridLayoutManager.java
temAlignmentFacet.java
istRowPresenter.java
nChildSelectedListener.java
nChildViewHolderSelectedListener.java
resenterSelector.java
owPresenter.java
inglePresenterSelector.java
4f1eb56082092e92a30d3ce1b3bbda7ac81fd306 29-Apr-2015 Dake Gu <dake@google.com> am aa371c68: Merge "fix bug of wrong selection when itemAdded is triggered" into lmp-mr1-ub-dev

* commit 'aa371c684fa58d3696f5469ff39c9adc97bef670':
fix bug of wrong selection when itemAdded is triggered
aa371c684fa58d3696f5469ff39c9adc97bef670 29-Apr-2015 Dake Gu <dake@google.com> Merge "fix bug of wrong selection when itemAdded is triggered" into lmp-mr1-ub-dev
db0b1afb71440b79923692d58adee982b5954838 29-Apr-2015 Dake Gu <dake@google.com> fix bug of wrong selection when itemAdded is triggered

When items are added at the same time that setSelection()
is called, we incorrectly apply the offset to the position that
user wants to select. Disable the offset when target view
hasn't created yet.

Bug 20672263

Change-Id: Iaf990b58109d005ef04d9a47029e5c0a493bb8c3
ridLayoutManager.java
674cb8b91bec1a1de9c8d3482e1044cfe481846f 28-Apr-2015 Kris Giesing <kgiesing@google.com> am 6b28bed7: Merge "Fix variable reference errors related to check groups." into lmp-mr1-ub-dev

* commit '6b28bed7db5c19985275b33ffeba3f27e9118cc4':
Fix variable reference errors related to check groups.
6b28bed7db5c19985275b33ffeba3f27e9118cc4 28-Apr-2015 Kris Giesing <kgiesing@google.com> Merge "Fix variable reference errors related to check groups." into lmp-mr1-ub-dev
5ca941194494a2c96a3f08b0fe864fe3a5fb866c 28-Apr-2015 Dake Gu <dake@google.com> am 08c56822: Revert "Revert "Support multiple alignment within one ViewHolder""

* commit '08c56822b71ab0aa0b9bb03e5fd45e28f6e358b8':
Revert "Revert "Support multiple alignment within one ViewHolder""
08c56822b71ab0aa0b9bb03e5fd45e28f6e358b8 28-Apr-2015 Dake Gu <dake@google.com> Revert "Revert "Support multiple alignment within one ViewHolder""

This reverts commit bc0edc3ab9bac3c8d7d3cc9de1cb499ea3b4155e.

Change-Id: I1f9540e54fdee874adf7239a0ead1fb5447f2610
aseGridView.java
acetProvider.java
acetProviderAdapter.java
ridLayoutManager.java
orizontalGridView.java
temAlignment.java
temAlignmentFacet.java
temAlignmentFacetHelper.java
temBridgeAdapter.java
resenter.java
erticalGridView.java
633f924bac2b143ae67f86eace4d5068f2acab5e 28-Apr-2015 Kris Giesing <kgiesing@google.com> Fix variable reference errors related to check groups.

Checkmarks were incorrectly turned off for the clicked view rather
than all views in the current group; checkmark fade used the wrong
animation constant.

b/20545155

Change-Id: I3d93149708f87950da9ce818a84c48d08dea2b77
uidedActionsStylist.java
b72729f00055b518a80864364459e86705fcada5 28-Apr-2015 Dake Gu <dake@google.com> am 4ff1516c: Merge "Revert "Support multiple alignment within one ViewHolder"" into lmp-mr1-ub-dev

* commit '4ff1516c6860afc1b4b8ee57ee98274f30e01ed4':
Revert "Support multiple alignment within one ViewHolder"
4ff1516c6860afc1b4b8ee57ee98274f30e01ed4 27-Apr-2015 Dake Gu <dake@google.com> Merge "Revert "Support multiple alignment within one ViewHolder"" into lmp-mr1-ub-dev
bc0edc3ab9bac3c8d7d3cc9de1cb499ea3b4155e 27-Apr-2015 Dake Gu <dake@google.com> Revert "Support multiple alignment within one ViewHolder"

This reverts commit 86a6309c3e89ec6abc40ec045bfaef7827cbe427.

Change-Id: I3385d74766e948566b7321cbe2afcf31a66282c1
aseGridView.java
acetProvider.java
acetProviderAdapter.java
ridLayoutManager.java
orizontalGridView.java
temAlignment.java
temAlignmentFacet.java
temAlignmentFacetHelper.java
temBridgeAdapter.java
resenter.java
erticalGridView.java
20a8f868896ee67116b114aa36d6313b8a64f090 27-Apr-2015 Dake Gu <dake@google.com> am 067473f6: Merge "Support multiple alignment within one ViewHolder" into lmp-mr1-ub-dev

* commit '067473f6cd124a8ac0822bdbd30840285a59399e':
Support multiple alignment within one ViewHolder
067473f6cd124a8ac0822bdbd30840285a59399e 27-Apr-2015 Dake Gu <dake@google.com> Merge "Support multiple alignment within one ViewHolder" into lmp-mr1-ub-dev
3998e33b723e04874bae46b457674e142ca3c3e0 24-Apr-2015 Craig Stout <cstout@google.com> am 87480a3b: Merge "Support persistent focus on the playback controls row." into lmp-mr1-ub-dev

* commit '87480a3bc0b3b6ccafc934939a9b6e2ebfaf5f1f':
Support persistent focus on the playback controls row.
61a3f8427097edbe213748882bf5b1c9e08935b7 24-Apr-2015 Craig Stout <cstout@google.com> am 62cf2fe6: Merge "Progress bar gets transparent background when full width." into lmp-mr1-ub-dev

* commit '62cf2fe6f8e4d7813562e8aabb1862e426c01bf8':
Progress bar gets transparent background when full width.
87480a3bc0b3b6ccafc934939a9b6e2ebfaf5f1f 24-Apr-2015 Craig Stout <cstout@google.com> Merge "Support persistent focus on the playback controls row." into lmp-mr1-ub-dev
d30b6d18e1c6b988f75d76c50dbec7199386ce9b 15-Apr-2015 Craig Stout <cstout@google.com> Support persistent focus on the playback controls row.

b/20148117

Change-Id: I4973f6ad2b5b450ea850939a47d1b8f73ea11f54
ersistentFocusWrapper.java
laybackControlsPresenter.java
laybackControlsRowPresenter.java
6b447e693090017258eb48a51ae4119fb0f5119e 16-Apr-2015 Craig Stout <cstout@google.com> Progress bar gets transparent background when full width.

Also remove the ability to set a rounded rect background, since they're
generally unnecessary (because of the view clip to rounded rect outline)
and they're expensive to draw.

b/20247335

Change-Id: I607c9124bcebcdb137333120c6ed1d041317dbb0
ontrolBarPresenter.java
etailsOverviewRowPresenter.java
laybackControlsRowPresenter.java
oundedRectHelper.java
f4acd3cf076435ce836a6d4a9027b73ec3050def 30-Mar-2015 Craig Stout <cstout@google.com> Support static in addition to dynamic shadows.

ShadowOverlayContainer may be configured to use static or dynamic shadows.
Adds new Settings with key PREFER_STATIC_SHADOWS.
Settings are maintained staticly so they only need to be generated
when a new app process is created.
Some settings may be customized by partners via a customization package.
If apps override the defaults they must do so on every activity create.

Change-Id: Ib0af2411e82cdb95ffe3ff619150392c0a2bd883
istRowPresenter.java
hadowHelper.java
hadowOverlayContainer.java
taticShadowHelper.java
erticalGridPresenter.java
86a6309c3e89ec6abc40ec045bfaef7827cbe427 07-Apr-2015 Dake Gu <dake@google.com> Support multiple alignment within one ViewHolder

Add support of align to multiple positions within one ViewHolder of
Grid View.

Introduce "FacetProvider" inteface for optional features to be implemented
without requiring an object must implement a java interface. Benefit
is less impact on the major feature of a class, make the extra optional
features loosely coupled with existing class. (And it is the only way
for ItemBridgeAdapter to provide a list of optional features that
are implemented by some Presenters but not others)

Add a new ItemAlignmentFacet class to describe multiple alignment positions.

Grid view gets optional ItemAlignmentFacet from RecyclerView.ViewHolder(rare)
or RecyclerView.Adapter for a given view type. If the facet exists, it's used
to calculate multiple alignment positions within this ViewHolder.

At high level, for apps that using Presenter, they don't directly use
RecyclerView.ViewHolder or RecyclerView.Adapter. apps put Facet in Presenter
(most cases) or a ViewHolder(rare cases). For example in the new detail page
design, DetailsOverviewRowPresenter will need this facet(TODO),
ItemBridgeAdapter is responsible to "bridge" facet from Presenter.

In the future, Facet may be used to customize child view state saving.

Bug: 20094419

Change-Id: Iabef94e46f9a304ffd68e49bed10e74a57dfe4ce
aseGridView.java
acetProvider.java
acetProviderAdapter.java
ridLayoutManager.java
orizontalGridView.java
temAlignment.java
temAlignmentFacet.java
temAlignmentFacetHelper.java
temBridgeAdapter.java
resenter.java
erticalGridView.java
be6b6282397861a044efd596bf5db501fa0b3a66 03-Mar-2015 Craig Stout <cstout@google.com> Support for rounded corners with nine-patch shadows.

Updated nine patch to accomodate foreground rounded corners.

Change-Id: I753e686d9fcc4998343314a262e9278dcf6be97b
(cherry picked from commit a76db0cf97b5f05ef0a5e1f6d999933f738f4a3e)
oundedRectHelper.java
hadowHelper.java
hadowOverlayContainer.java
a76db0cf97b5f05ef0a5e1f6d999933f738f4a3e 03-Mar-2015 Craig Stout <cstout@google.com> Support for rounded corners with nine-patch shadows.

Updated nine patch to accomodate foreground rounded corners.

Change-Id: I753e686d9fcc4998343314a262e9278dcf6be97b
oundedRectHelper.java
hadowHelper.java
hadowOverlayContainer.java
dda3b1cf483b95be03f6a10fceacd62d373e6e0f 04-Apr-2015 Dake Gu <dake@google.com> am f8bac02b: Use the recyclerview fix of child state saving

* commit 'f8bac02be73439a0aa4f2ca88490e27af0efe893':
Use the recyclerview fix of child state saving
f8bac02be73439a0aa4f2ca88490e27af0efe893 04-Apr-2015 Dake Gu <dake@google.com> Use the recyclerview fix of child state saving

No longer needed it since RecyclerView fixed it
in b/20061783. Test case passes with RV fix.

Bug 20016293

Change-Id: I53407d98125b86fe274ea1e0d7856d32f5ca4bc5
ridLayoutManager.java
0670f090a011e864bd726784c2a85333bf2ae7fb 02-Apr-2015 Craig Stout <cstout@google.com> Merge commit '870246af'

Change-Id: Ia2e3cc2d15ff6b3d3b88a3f1a6e822374df67bd7
870246affed5ced2eb69e0a0b9ba460c7d17f80f 02-Apr-2015 Craig Stout <cstout@google.com> Merge "Javadoc polish." into lmp-mr1-ub-dev
a00bada00bff4a58436a39472ab14ccb7a8f619d 31-Mar-2015 Craig Stout <cstout@google.com> Javadoc polish.

Includes new package level javadoc for:
android.support.v17.leanback
android.support.v17.leanback.app
android.support.v17.leanback.widget

b/19007191

Change-Id: Id1e5d55eabbf37c0420e6e4c73abe3d4f1aabee1
bstractDetailsDescriptionPresenter.java
ction.java
rrayObjectAdapter.java
aseGridView.java
rowseFrameLayout.java
lassPresenterSelector.java
ontrolButtonPresenterSelector.java
ursorObjectAdapter.java
etailsOverviewRow.java
etailsOverviewRowPresenter.java
ocusHighlightHelper.java
uidedActionsStylist.java
eaderItem.java
orizontalGridView.java
orizontalHoverCardSwitcher.java
mageCardView.java
temBridgeAdapter.java
istRow.java
istRowHoverCardView.java
istRowPresenter.java
istRowView.java
onOverlappingLinearLayout.java
bjectAdapter.java
nActionClickedListener.java
nChildLaidOutListener.java
nChildSelectedListener.java
nItemViewSelectedListener.java
laybackControlsRow.java
laybackControlsRowPresenter.java
resenter.java
resenterSwitcher.java
ow.java
owHeaderPresenter.java
owPresenter.java
earchBar.java
earchEditText.java
earchOrbView.java
hadowOverlayContainer.java
parseArrayObjectAdapter.java
peechOrbView.java
peechRecognitionCallback.java
treamingTextView.java
erticalGridPresenter.java
erticalGridView.java
ackage-info.java
508d5c11062fb3a0ebb6e178192117ae6e447dac 02-Apr-2015 Dake Gu <dake@google.com> am 61e5a56e: GridLayoutManager: fix child states incorrectly saved

* commit '61e5a56ed066815e69be7526e3d1bee2d5268d20':
GridLayoutManager: fix child states incorrectly saved
61e5a56ed066815e69be7526e3d1bee2d5268d20 01-Apr-2015 Dake Gu <dake@google.com> GridLayoutManager: fix child states incorrectly saved

We already handles child state in LM.onSaveInstanceState(). But
ViewGroup dispatchSaveInstanceState() and dispatchRestoreInstanceState()
directly invoke child view's dispatch methods without going
through onSaveInstanceState(), so it saves states that we don't need
and later being used unexpectedly in dispatchRestoreInstanceState().

Disable the dispatchXXX() of child by toggling the flag
when a child view is created.

Bug 20016293

Change-Id: I599515ac8a0bfe29b7abef190509ef464fd2ccb6
ridLayoutManager.java
9e7d9c69980088d48bf404aafbea73ab0073fa13 01-Apr-2015 Craig Stout <cstout@google.com> am b2200244: Merge "Make NonOverlappingView package-private." into lmp-mr1-ub-dev

* commit 'b2200244430ba9070ec032af9ac623675cec1232':
Make NonOverlappingView package-private.
0bd55cf7ca716160378bf143d84c08727e0cfb09 31-Mar-2015 Craig Stout <cstout@google.com> Make NonOverlappingView package-private.

Consistent with other NonOverlapping views.

Change-Id: I9774aff8d3568b73b027b09c4e577bc00d3463f2
onOverlappingView.java
599ee673eebbde49283f489cb8f3c800d68dca89 27-Mar-2015 Dake Gu <dake@google.com> am a1bb171b: Merge "GridLayoutManager Fix child state restoring bug" into lmp-mr1-ub-dev

* commit 'a1bb171b488f988758d00e018ed031a1d3c68966':
GridLayoutManager Fix child state restoring bug
3bd331ac6fe8ef25a2deb3559b0b5958573c231b 26-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager Fix child state restoring bug

A regression of ag/630154: detached and reattached child is
assigned with obsolete state saved at opening activity.

The (correct) logic is now:
1. Child state is saved when child is unbound (onViewRecycled)
2. When being asked for onSaveInstanceState(), copy the states
saved in (1) and save current onscreen views state into bundle.

Bug in ag/630154 is that in (2) we saved onscreen views state in
the GridView offscreen states and that information can be invalidated
after a while (e.g. selection of a row can change) and it's later
incorrectly used when a view is detached/re-attached.

added test case.

Bug 19937291

Change-Id: Iac6bd849fdd9755471bce6c7763316d0264cc7a2
ridLayoutManager.java
iewsStateBundle.java
05fc55725c9881e6a1c11e6dc5ff3f9d7281d491 21-Mar-2015 Dake Gu <dake@google.com> Fix setNumRows gets ignored

setNumRows goes through onMeasure() then onLayout().
Before the onMeasure() gets called, another onLayout()
clears the mForceFullLayout flag without knowing
there is a pending numRows change not handled by onMeasure()
yet. When 2nd onLayout() gets called, it doesn't go to the
non fastlayout pass.

There is no need to set the flag when change num rows,
comparing with grid row number can decide if goes through
fast layout pass.

Bug 19872498

Change-Id: Ia5254a49e24be04665a1e5175355827a5dfa7258
ridLayoutManager.java
1a5a2c58890e69b0554a82f22e3c0d1ffb238366 25-Mar-2015 Dake Gu <dake@google.com> Fix crash when calculated secondary size is 0

If for some reasons, parent of GridView asks to measure with 0 secondary size,
calculated mFixedRowSizeSecondary is zero and the array for maintaining the
secondary size of each row is also null. Then processRowSizeSecondary()
will crash.

Bug 19930906

Change-Id: Ifa45ee94cda133830a0e78b563df5edeeaff9c3f
ridLayoutManager.java
492506cede17ecee39ce7fa35ee7a347ff31c5ba 25-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: fix size change not detected

When rowHeight=wrap_content, onMeasure() will measure
the child's size. So when fastRelayout is run, the
measured size is already new value, it should not be
compared to decide wether there is a size change.
Switch to use the correct view size method.

Bug 18537143

Change-Id: I084e54ba45cbb1a79fe67b65d064843035d3abf4
ridLayoutManager.java
c0b265dd2df42b399ba1f959b3dfd14dd14012b5 25-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: Fix focus bug

During layout, when a view already had focus.
Should not call requestFocus() again which might
change the focused child within it.

Bug 19828044

Change-Id: I97074469d9e4fbcc8f45cd8c738200b7faba00a5
ridLayoutManager.java
57f5baa07260dad2a9641e9ceb80567ce2784e9a 21-Mar-2015 Dake Gu <dake@google.com> Fix setNumRows gets ignored

setNumRows goes through onMeasure() then onLayout().
Before the onMeasure() gets called, another onLayout()
clears the mForceFullLayout flag without knowing
there is a pending numRows change not handled by onMeasure()
yet. When 2nd onLayout() gets called, it doesn't go to the
non fastlayout pass.

There is no need to set the flag when change num rows,
comparing with grid row number can decide if goes through
fast layout pass.

Bug 19872498

Change-Id: Ia5254a49e24be04665a1e5175355827a5dfa7258
ridLayoutManager.java
bed90193f6f3a864074699f341e4a2a5fbb66722 25-Mar-2015 Dake Gu <dake@google.com> am 3b6f469a: Fix crash when calculated secondary size is 0

* commit '3b6f469a658c71ec5a118a1528fe6559a0a8fd9e':
Fix crash when calculated secondary size is 0
3b6f469a658c71ec5a118a1528fe6559a0a8fd9e 25-Mar-2015 Dake Gu <dake@google.com> Fix crash when calculated secondary size is 0

If for some reasons, parent of GridView asks to measure with 0 secondary size,
calculated mFixedRowSizeSecondary is zero and the array for maintaining the
secondary size of each row is also null. Then processRowSizeSecondary()
will crash.

Bug 19930906

Change-Id: Ifa45ee94cda133830a0e78b563df5edeeaff9c3f
ridLayoutManager.java
123222d1dbe022444e9be3359dc0092957201717 25-Mar-2015 Dake Gu <dake@google.com> am 5915e79e: GridLayoutManager: fix size change not detected

* commit '5915e79eb6b377a29d66c89d58e1e498fc77595d':
GridLayoutManager: fix size change not detected
5915e79eb6b377a29d66c89d58e1e498fc77595d 25-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: fix size change not detected

When rowHeight=wrap_content, onMeasure() will measure
the child's size. So when fastRelayout is run, the
measured size is already new value, it should not be
compared to decide wether there is a size change.
Switch to use the correct view size method.

Bug 18537143

Change-Id: I084e54ba45cbb1a79fe67b65d064843035d3abf4
ridLayoutManager.java
d868d1916d866479d093bd5fbc11af60f4efe43c 25-Mar-2015 Dake Gu <dake@google.com> resolved conflicts for merge of 4bbee3a6 to master

Change-Id: I8e7f486326cc3671bd23fad2c4a7ee0bfe5e5ee8
4bbee3a6d989ff4693cbb960a750a40fbe17c0f2 25-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: Fix focus bug

During layout, when a view already had focus.
Should not call requestFocus() again which might
change the focused child within it.

Bug 19828044

Change-Id: I97074469d9e4fbcc8f45cd8c738200b7faba00a5
ridLayoutManager.java
ab7dc7c1ce6d12c0dec5f9c4ed3f5c63c5a87589 23-Mar-2015 Kris Giesing <kgiesing@google.com> Merge "Copy the drawable's level to the image view"
f28b8e9ce89cc02f481943dd58c8737d2c4a8430 22-Mar-2015 Dake Gu <dake@google.com> am 3a7aa9cd: GridLayoutManager: fix bug smoothscroller gets interrupted

* commit '3a7aa9cd68bd39f3a843291817dc209d1d9a45aa':
GridLayoutManager: fix bug smoothscroller gets interrupted
29bfd5b51788d32bdc8237747c63443618ae79c4 21-Mar-2015 Dake Gu <dake@google.com> Fix setNumRows gets ignored

setNumRows goes through onMeasure() then onLayout().
Before the onMeasure() gets called, another onLayout()
clears the mForceFullLayout flag without knowing
there is a pending numRows change not handled by onMeasure()
yet. When 2nd onLayout() gets called, it doesn't go to the
non fastlayout pass.

There is no need to set the flag when change num rows,
comparing with grid row number can decide if goes through
fast layout pass.

Bug 19872498

Change-Id: Ia5254a49e24be04665a1e5175355827a5dfa7258
ridLayoutManager.java
162b21598d9f4fd49748b3c7e27501fe1277210d 21-Mar-2015 Christopher Lane <lanechr@google.com> Copy the drawable's level to the image view

Change-Id: Ia98c66b40b64aeab695f77de5352c41027bd29e0
uidedActionsStylist.java
3a7aa9cd68bd39f3a843291817dc209d1d9a45aa 20-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: fix bug smoothscroller gets interrupted

Vertical scroll in Videos app is janky.

During VerticalGridView scroll pass it appends a row and layout
the row, the row layout might request focus on a child, that causes
a onRequestChildFocus() call back into the top level VerticalGridView.
In that case high level verticalGridView should not start another
scrollToView() animation. onRequestChildFocus() is supposed to handle
user's interaction only.

The bug is difficult to test, both RV.smoothScrollBy() and LinearSmoothScroller
uses the same scroll state, calling RV.smoothScrollBy() does not
stop linearSmoothScroller. Added a override class to intercept calls
on RV.smoothScrollBy().

Bug: 19846906

Change-Id: Ica857f443e41f14710b2bf177eafba30403817c7
ridLayoutManager.java
422812233b44ff358e460c0c884b55f87f5d4e8b 20-Mar-2015 Craig Stout <cstout@google.com> am ca342c28: am bf3531cf: am 2590c397: Fix more BackgroundManager glitches.

* commit 'ca342c284db250d65441cc0bf2db72a86e540f95':
Fix more BackgroundManager glitches.
2590c39739945451f80dcf8667709b93293fc8bc 19-Mar-2015 Craig Stout <cstout@google.com> Fix more BackgroundManager glitches.

Must implement getAlpha for background fade in transition.
Must not cache drawable wrappers or they'll be stale when mutate is called.

b/19689219

Change-Id: Id36910e243e205c56b913f57fa3197110819007d
ackgroundHelper.java
db79c2c68f694fbbd821a2e18ef3bd229c52fe62 19-Mar-2015 Kris Giesing <kgiesing@google.com> am aad0e6f6: am 7e69f0b3: am 6ef613ed: Merge "Initial implementation of GuidedStepFragment" into lmp-mr1-ub-dev

* commit 'aad0e6f6005d8be013d4e616ab367af5726027cd':
Initial implementation of GuidedStepFragment
6ef613edd296c9daccceb258f94bad926384f325 19-Mar-2015 Kris Giesing <kgiesing@google.com> Merge "Initial implementation of GuidedStepFragment" into lmp-mr1-ub-dev
1923ffb3864d59dbd690681f208ed2a9516ed31e 19-Mar-2015 Dake Gu <dake@google.com> am 0da5c853: am ecceb29f: am 75388457: GridLayoutManager: Fix ANR

* commit '0da5c853ef7dc933507ab561cff31a217bd55494':
GridLayoutManager: Fix ANR
7538845719cd1e588185ce9ae60320377862ef8d 19-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: Fix ANR

Regression of fixing b/19625410
We are trying to add non-existing focused position view in fast
layout pass and ended in a deadloop.
Switched to a different fix for b/19625410.

Bug: 19823374
Change-Id: I9fd1e985c09f8deffb46285366b5cf97d881c1b9
ridLayoutManager.java
ebd3d9078dbaebd10a9506ca086435eb63e8a2d2 17-Feb-2015 Kris Giesing <kgiesing@google.com> Initial implementation of GuidedStepFragment

b/18935698

Change-Id: I413f04bcac739768f79e22ab6b518399302a0d8b
ragmentAnimationProvider.java
uidanceStylist.java
uidedAction.java
uidedActionsStylist.java
307001a6b0cbb2f48cf4e27c22dd585aaecd0117 13-Mar-2015 Craig Stout <cstout@google.com> am 6d690623: am 828ccfbe: am 223fd8dd: Merge "Fix NPE when RowPresenter is shared between fragments." into lmp-mr1-ub-dev

* commit '6d6906238addf396af0df3c26976baa5b45d82fd':
Fix NPE when RowPresenter is shared between fragments.
3a5038bd0fefa5628a31a21422bf2126c53472a9 12-Mar-2015 Craig Stout <cstout@google.com> Fix NPE when RowPresenter is shared between fragments.

View clicked and selected listeners are now members of ViewHolder,
not RowPresenter.

b/19709636

Change-Id: Iabfe09b721ec97de863c4387ed72339494ddbb70
etailsOverviewRowPresenter.java
istRowPresenter.java
laybackControlsRowPresenter.java
owPresenter.java
8ac2f1a2bf07e47f97c5ae8a9bb037d7219ba1f9 13-Mar-2015 Craig Stout <cstout@google.com> am baa2b276: am 652dcc51: am 3b099f5a: Merge "Internal speech recognizer fixes." into lmp-mr1-ub-dev

* commit 'baa2b276ab4cf12a92e3743a9c28a8d5f57ae1c0':
Internal speech recognizer fixes.
9475c273add480a260ed60914b363a3f847e1a03 12-Mar-2015 Craig Stout <cstout@google.com> Merge commit '1fcb45fa'

Change-Id: Ia1f09b8ba8bc49256d01e8447af71b72b4904ef7
7c8283f6542b1045377e88566d363b4c2c83088b 11-Mar-2015 Craig Stout <cstout@google.com> Internal speech recognizer fixes.

- when SearchFragment pauses or SearchBar is detached, stop recognition
to release audio focus
- when audio focus is stolen, abort speech recognition

b/18194568

Change-Id: I31963f27886c909df25f0fb29a5f728697e8462f
earchBar.java
4a47cf77fc7dd08e08461a14623bf2a08402793d 10-Mar-2015 Craig Stout <cstout@google.com> am 279806c5: am 513307a1: am d87d4cf6: Merge "Fix list row layout without dimming on pre-L." into lmp-mr1-ub-dev

* commit '279806c5731e808549dfbbbbf803daa77b8e9c13':
Fix list row layout without dimming on pre-L.
256599eb902ae2fa7a7b2f6c0e441aed321bedf2 10-Mar-2015 Craig Stout <cstout@google.com> Merge "Broaden support for title/branding." into lmp-mr1-ub-dev
7d56c6667a9bfa435f1d1aca379ce3f79b1ba5d5 10-Mar-2015 Dake Gu <dake@google.com> am 9c8615c9: am 73da96ca: am b24d303c: Merge "Fix missing dispatchChildSelected() for staggered grid" into lmp-mr1-ub-dev

* commit '9c8615c975b9fa6312258593f7117ae3dbc73c5f':
Fix missing dispatchChildSelected() for staggered grid
e7246ef136ed686d8caf339d4d1fd8e37b499c6a 24-Feb-2015 Craig Stout <cstout@google.com> Broaden support for title/branding.

Unhide TitleView and BrowseFrameLayout.
Refactored branding fragment apis into base class BrandedFragment.
Browse, details, vertical grid are now BrandedFragments.
Create TitleHelper for devs managing TitleViews without BrandedFragment.
Ensure moving toward 'end' from TitleView passes focus correctly.

b/16029942

Change-Id: I5f48e404694997b359cbed579735544e79f6319b
rowseFrameLayout.java
itleHelper.java
itleView.java
d87d4cf661b8defe9606bd5977007f04a56aca2f 09-Mar-2015 Craig Stout <cstout@google.com> Merge "Fix list row layout without dimming on pre-L." into lmp-mr1-ub-dev
5870e4aca782a55d0e8f7650f06aec86080b2f88 09-Mar-2015 Craig Stout <cstout@google.com> Fix list row layout without dimming on pre-L.

b/19548299

Change-Id: I2efaa59d6ba09df1744b58d81dc6f12d9bb40ed2
istRowPresenter.java
66d16b9b565471fdba2380a06b7c72a2aaca8284 09-Mar-2015 Dake Gu <dake@google.com> am bc3017f9: am 3e26a66d: am 9c564753: GridLayoutManager: fix fastRelayout() not focus to added child

* commit 'bc3017f94408c27f8049a8c6d49308d9c7af79f6':
GridLayoutManager: fix fastRelayout() not focus to added child
70acb0c19be3831a2080e4f902324de16bfbf62e 04-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate support library with @ColorInt, @CallSuper, etc

Change-Id: Ifa25a628f89a07d3903cd71eb1c3639297fdf722
etailsOverviewRowPresenter.java
mageCardView.java
laybackControlsPresenter.java
laybackControlsRowPresenter.java
owContainerView.java
earchOrbView.java
hadowOverlayContainer.java
f80ef0d6b0b6403f3cd94e7197bc4a39d285280a 07-Mar-2015 Dake Gu <dake@google.com> Fix missing dispatchChildSelected() for staggered grid

This bug does not happen to single row grid where we
change mFocusPosition before createItem.

For staggered grid, when scroll up to item 1: we first
create item1, then consumePendingMovesAfterLayout() changes
mFocusPosition to 1; the event is not fired in createItem
and it's not fired in smoothscroller onStop() if mPendingMoves
is 0.

Bug 19620864

Change-Id: If90fa1b11f7ba689015ecd5462482b83254f345b
ridLayoutManager.java
9c56475370d1df940252ff1360b92de50022fff6 06-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: fix fastRelayout() not focus to added child

When items are added to empty GridLayoutManager, it triggers the
fastRelayout pass which does not set focus position to 0.

Bug 19625410

Change-Id: I2ce11abde2162bb7fd28fd1fa6343b9d9b6b32f1
ridLayoutManager.java
8c5d3b45f6afa838e64e4cf011a385c191d557c6 04-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: fix crash and support scroll delta.

Fix crash of setSelectedPosition.
Add scroll delta that applied to setSelectedPosition.
Moved updateFirstVisibleOffset into StaggeredGrid class,
the offset is now calculated when inserting first visible item,
because the offset is needed when we append next visible item.
Fixed a loop variable bug in updateFirstVisibleOffset.

Added test cases

Bug 19272838
Bug 19593908

Change-Id: Ibb6f2e115e9e4af6a2b18a48a921e6766cd0c0a6
aseGridView.java
ridLayoutManager.java
taggeredGrid.java
taggeredGridDefault.java
5c13a7806aa6c44e9711beb98797d06f3b2f0259 03-Mar-2015 Dake Gu <dake@google.com> GridLayoutManager: fix focus lost in fast layout

In fast layout, if there is delta, we unapplied delta first, which
may cause the detached focus child move outside visible area and it's
not added back at end of fast layout. And another rare case is
that child layout changes causing focused child being pushed outside
visible area.

Bug 19573463

Change-Id: Ib096bf68f57c32ce8d8ecd13621e0ab35719949e
ridLayoutManager.java
6b22c4c875d7a540e705b2b6b65bf52c7a89299a 28-Feb-2015 Dake Gu <dake@google.com> Dont scroll to non-focusable items in onLayoutChildren

Added test cases

Bug 19283027

Change-Id: I1de48881dfc4117a42a7e74722f3cc4607f25a51
ridLayoutManager.java
8246c8b6b8eca846f2bcdc1d850702e9c392b055 28-Feb-2015 Craig Stout <cstout@google.com> Optimize pre-21 shadows.

Use a non overlapping view to prevent graphics layers.

b/19005177

Change-Id: Ia85e6eb4f9c673c0bf9dacfda75c382779ec1f30
onOverlappingView.java
6f692d5788fc7a388b253de91f1516d490b3de81 27-Feb-2015 Dake Gu <dake@google.com> Merge "Revert "Revert "Remove deprecated OnItemSelectedListener and OnItemClickedListener""" into lmp-mr1-ub-dev
198c338762838d44c49fe3c4768f7d7b0f4fe755 27-Feb-2015 John Butterfield <butterfield@google.com> Merge "Better Focus dimming support and some minor code cleanup." into lmp-mr1-ub-dev
41ad8b4ffe5adbc5c8568d359786a67a4937964d 25-Feb-2015 John Butterfield <butterfield@google.com> Better Focus dimming support and some minor code cleanup.

Added ListRowPresenter and VerticalGridPresenter constructor arguments for useFocusDimmer.
Added a missing interface in VerticalGridPresenter to be more consistent with ListRowPresenter.
Added some missing documentation to VerticalGridPresenter.

b/18639835

Change-Id: Icbb5754ca349668594b7c1e2e4ab45b5467ed120
istRowPresenter.java
erticalGridPresenter.java
8df88a1ead9ea62456fc3bbda41657ccf61d5721 26-Feb-2015 Dake Gu <dake@google.com> Revert "Revert "Remove deprecated OnItemSelectedListener and OnItemClickedListener""

This reverts commit ee73a5bfd4d2460a93a9afb9d1bfce10ff875300.

Change-Id: If6b926c093a8254dca02d4ccac4bfaefca85bc81
etailsOverviewRowPresenter.java
istRowPresenter.java
nItemClickedListener.java
nItemSelectedListener.java
laybackControlsRowPresenter.java
owPresenter.java
erticalGridPresenter.java
ee73a5bfd4d2460a93a9afb9d1bfce10ff875300 26-Feb-2015 Chris Banes <chrisbanes@google.com> Revert "Remove deprecated OnItemSelectedListener and OnItemClickedListener"

Fix's all the builds.

This reverts commit 628f94f0d3293372bc23bea1411e687dfe508753.

Change-Id: I17e677c513da0ea36f50b1ab5b73e927d73f0598
etailsOverviewRowPresenter.java
istRowPresenter.java
nItemClickedListener.java
nItemSelectedListener.java
laybackControlsRowPresenter.java
owPresenter.java
erticalGridPresenter.java
628f94f0d3293372bc23bea1411e687dfe508753 26-Feb-2015 Dake Gu <dake@google.com> Remove deprecated OnItemSelectedListener and OnItemClickedListener

Bug 19514090

Change-Id: I690674d506202bc5513b5fb4cc0eaf3bcddb04f5
etailsOverviewRowPresenter.java
istRowPresenter.java
nItemClickedListener.java
nItemSelectedListener.java
laybackControlsRowPresenter.java
owPresenter.java
erticalGridPresenter.java
5d3875ca7ca9294a00f9da0a92ad9055adeb9703 24-Feb-2015 Craig Stout <cstout@google.com> Fixes and test for playback controls wrap_content.

b/18803384

Change-Id: I2513530a072c3fb491b3643dd4bf97139cedc830
laybackControlsPresenter.java
laybackControlsRowPresenter.java
764e09c1353fa987144a3acecbe94a091f6229a6 23-Feb-2015 Craig Stout <cstout@google.com> Fix cut off title.

Playback controls row supports wrap_content of description if no image
is present.
Details title will be constrained to one line in order to keep subtitle
visible.

b/18803384

Change-Id: I252b937ee7f31b6ea8607eb2c870d9e9c16cd2e0
bstractDetailsDescriptionPresenter.java
laybackControlsRowPresenter.java
6834e168743e839d4df1bc49ba625cfbb74e1045 23-Feb-2015 Dake Gu <dake@google.com> Merge "Do not scroll to non-focusable item" into lmp-mr1-ub-dev
77b17ebed6d1f8488b150b25e2b6754971480cae 10-Feb-2015 Dake Gu <dake@google.com> Do not scroll to non-focusable item

Refactoring to use same PendingMoveSmoothScroller for both
staggered case and non-staggered case (RowsFragment vertical).
The problem of position based linearsmoothscroller is that
it calculates target position before the view is created;
so we may scroll to a target position that is not focusable.
Now using PendingMovementSmoothScroller, added a callback
consumePendingMovementBeforeLayout() where we skip the view
that's not focusable.

Allow dispatchChildSelected() during scroll pass, so we can append
an item with selected state without running another layout pass if
we apply select status after laid out it. This requires a change
in StagggeredGrid to make data structure consistent before
dispatchChildSelected() call. To avoid excessive dispatchChildSelected,
we postpone dispatchChildSelected() if a PendingMoveSmoothScroller is
still running. We only dispatchChildSelected() event on the final target.

Fixed a problem of unbind RowView does not apply animator end value.

Added TestCases

Bug: 19283027

Change-Id: I5cab61420514b5d0141387aa13a18d623b38536f
ridLayoutManager.java
taggeredGrid.java
d6fe6c880b70f80ea9b202679d31c54fe534fab0 20-Feb-2015 Dake Gu <dake@google.com> Merge "GridLayoutManager: recalculate scrollMinMax properly" into lmp-mr1-ub-dev
46443cb5b092f1d9156342645088eead9da026f6 13-Feb-2015 Dake Gu <dake@google.com> Allow app runs without theme/style.

1. Dont directly refer theme attribute in layout xml, this
causes attribute not found error if style is not specified.
In particular, fixed couple places layout defines "paddingTop" using
theme attribute.

2. specify "wrap_content" in layout xml for list row, so it
will work without style. fixed a bug that getDimensionPixelSize()
does not work for "wrap_content" in layout, using
getLayoutDimension() instead.

3. specify "clipPadding=false" in layout xml, so it wont
clip to padding when style is missing.

4. Add protection that brandColor is missing

5. Add protection where playback icon is missing in style.

Change-Id: I6641d57a6c5eff8cdf945d716d391ab13a86c299
etailsOverviewRowPresenter.java
orizontalGridView.java
laybackControlsRow.java
laybackControlsRowPresenter.java
erticalGridView.java
f9eda43e5076035aba504a315d1797d2d918d12a 20-Feb-2015 Dake Gu <dake@google.com> GridLayoutManager: recalculate scrollMinMax properly

We need invalidate scroll max when last item is invisible.

Bug: 17472458

Change-Id: I4876ff83e24e91485d73e1eb84d527a8139e82f4
ridLayoutManager.java
a5a55ee6d23db9cd9fdf6407b75a7f88633c7656 19-Feb-2015 Craig Stout <cstout@google.com> Merge "Revamp support for keyevent handling." into lmp-mr1-ub-dev
60bb6af2e336072921f5d3c3861e86b3cc6241b3 04-Feb-2015 Craig Stout <cstout@google.com> Revamp support for keyevent handling.

Now any RowPresenter.ViewHolder can handle keyevents.
Fixes playback controls issues when ff/rw are triggered via keyevent.
Also add support for KEYCODE_MEDIA_PLAY and KEYCODE_MEDIA_PAUSE.

b/18933835

Change-Id: I6e4c568524dda538ea7082c8097b481a2e59dff0
ction.java
aseGridView.java
etailsOverviewRow.java
etailsOverviewRowPresenter.java
istRowPresenter.java
laybackControlsRow.java
laybackControlsRowPresenter.java
laybackControlsRowView.java
owPresenter.java
cb04695965b44b6ff633a773426df286d3bfaad9 11-Feb-2015 John Butterfield <butterfield@google.com> Generate item selected events while navigating in the fastlane.
If the application wishes to ignore these, they can use BrowseFragment.isShowingHeaders().

This means leanback will no longer pass null for item selected events when browsing in the fastlane.

Change-Id: I183df8a1f395e795c40f2291d0fe88fe9c0a9779
istRowPresenter.java
owPresenter.java
03810f183a56ca3a8c1850e4ee47c89e7ea9a0cf 11-Feb-2015 butterfield@google.com <butterfield@google.com> Merge "Minor code refactor for readability." into lmp-mr1-ub-dev
3173fdc69a928880a271036570c235f874b86f65 11-Feb-2015 butterfield@google.com <butterfield@google.com> Minor code refactor for readability.

Change-Id: Ic1d4d28e288db56dff001c5ae440cec6ec9f4869
istRowPresenter.java
cb959eeab2e5c791704063c021e21b831689b1e3 11-Feb-2015 Dake Gu <dake@google.com> RowPresenter: Fix ClassCastException

Bug: 19350938
Change-Id: I5c5671905a7aef0c3245738efbbd0cb6f1346f35
owPresenter.java
9e0a5a45e54dab959e171b1c82f5f07a82c7d0fc 30-Jan-2015 Dake Gu <dake@google.com> Save viewstate in onViewRecycled()

Detach and attach can happen a lot in layout.
Saving states when detached is not necessary.

We only need save state when view is unbound from data
(in onViewRecycled).

Bug: 19202006
Change-Id: Ied07a123eaca41b42e828b6fda0003e4e4e0ee8b
aseGridView.java
ridLayoutManager.java
d586ba8825b418d9589436725bfdead30f0dc075 28-Jan-2015 Dake Gu <dake@google.com> Reduce memory consumption of DPAD scroll multiple column grid

Created a special SmoothScroller to handle onFocusSearchFailed
for multiple column cases. It remembers the pending movements caused
in onFocusSearchFailed and consume the pending DPAD movements when
a view is laid out in the direction. The change avoids appending
or prepending excessive views on the scroll direction which is not
within screen bounds.

Add a onLaidOut() listener for VerticalGridFragment to check if
we hit the first row. If the grid is three columns.
Previously (before introducing the special SmoothScroller) we always
prepend one row of items before fire onSelected event, so when we fire
onSelected(1), item0 is already in the tree and havePreviousViewInSameRow()
returns false. Using the special SmoothScroller, onSelected is fired at
the time a view is created. Checking hasPreviousViewInSameRow() at the
time item1 is selected will return true because item0 has not been
created yet. So VerticalGridFragment should also listen to when
item0 is added to hierarchy.

Applied a MAX_PENDING_MOVES to avoid overscroll too much.

Issue: 19150678

Change-Id: I7cf0093a4bee652f60c5f2004b799ee7c3f87fc8
aseGridView.java
ridLayoutManager.java
nChildLaidOutListener.java
71fddded48048acfa744ac352166770c91a1c2b1 03-Feb-2015 Dake Gu <dake@google.com> Refactoring: don't use AdapterListener in presenters

Embedding presenter core logic in AdapterListenr is improper.
Move the logic into overridable methods ItemBridgeAdapter.onXXXX().
This can allow high level fragment or app to use adapter listener.

Change-Id: I933e1965f27ec2c856c2f647c8876ae72df26f07
etailsOverviewRowPresenter.java
temBridgeAdapter.java
istRowPresenter.java
erticalGridPresenter.java
b682c5a20aa0a383ea2b3e7d639e51b3e7771bcd 02-Feb-2015 Craig Stout <cstout@google.com> Playback controls focus fixes.

b/18518261

Change-Id: Id4319ced4d18f3c16c94255e9d7e6772f74971b0
laybackControlsRowView.java
ad9af35ec6a808136478daf7bd57d564ac517e0e 03-Feb-2015 Craig Stout <cstout@google.com> Support for null headers.

By default the header is GONE on the row and has a min size in the fastlane.

b/19144511

Change-Id: Ic40009e69e86d964a9556e8175530c2ab5396881
owHeaderPresenter.java
owPresenter.java
89fac6fa5d32123cc79d1d4127a4a7bcf86c498a 29-Jan-2015 Dake Gu <dake@google.com> StaggeredGridDefault: Fix inconsistent algorithm results

appendVisibleItemsWithoutCache() uses inconsistent judgements to
determin whether to fill item on next row. When filling first item
on a row, it does not use margin; when filling next item on a row,
it uses margin.

This may cause different layout results in two situations: itemN and
itemN+1 are filled in one pass or two passes (if itemN hits uplimit
in first pass).

The CL make it consistent that it does not take margin into consideration
in deciding whether to fill second item on next row.

This bug is easier to reproduce after adding LinearSmoothScroller support
for DPAD navigating a multiple row Grid. Previously appendOneColumn
is used to handle focusSearchFailed, where it always fills one column
so that itemN and itemN+1 are guaranteed to be filled in single pass.

Added test case.

Bug: 19196818
Change-Id: I9e829bff62feb9ab651bb81bf41638f799bf3a5d
taggeredGridDefault.java
fc8f0f06c93c224d86b85c8b9f7ae737968fd797 28-Jan-2015 Dake Gu <dake@google.com> Fix NPE in DetailsOverviewRowPresenter onUnbind

Bug: 18869799
Change-Id: I2a80f325657d0a8b687b0b64079b5cf669e4b18d
etailsOverviewRowPresenter.java
0a7fea13214fd2b33d0bd4f42b070d7b83bc2124 27-Jan-2015 Dake Gu <dake@google.com> am 4b3edb53: Don\'t rebind to a new view in notifyItemChanged

* commit '4b3edb53b158518329719439db18b0cbd38f27e9':
Don't rebind to a new view in notifyItemChanged
4b3edb53b158518329719439db18b0cbd38f27e9 27-Jan-2015 Dake Gu <dake@google.com> Don't rebind to a new view in notifyItemChanged

Disable item change animation by default for leanback.
This is a regression in lmp-mr1 caused by RecyclerView
turning on item change animation by default.

Bug: 18779939
Change-Id: I4fba38965a8a7a2613769619b6b0b17203c3a1ca
aseGridView.java
d825ff3727407a154a35e20b3a9adc79e57879b9 21-Jan-2015 Dake Gu <dake@google.com> DetailsOverViewRow: allow update Actions, Image, Main item individually

Add setActionsAdapter() and getActionsAdapter(), deprecats addAction().

Supporting changing ImageDrawable and Main item.

Bug: 18869799
Change-Id: I2550469c0d7b3eee38a2e45eefe31ab919979d65
rrayObjectAdapter.java
etailsOverviewRow.java
etailsOverviewRowPresenter.java
338a4977f836f112336c6312b307c9f97aa8d96c 23-Jan-2015 Dake Gu <dake@google.com> am 473fa246: Fix SparseArrayObjectAdapter.clear()

* commit '473fa246e0b44f88b3e052ad8738ae77f14cef89':
Fix SparseArrayObjectAdapter.clear()
473fa246e0b44f88b3e052ad8738ae77f14cef89 22-Jan-2015 Dake Gu <dake@google.com> Fix SparseArrayObjectAdapter.clear()

Issue: 19111955

Change-Id: I967ade2e5aed86ceef395e404d93fa9702426979
parseArrayObjectAdapter.java
575dc8a5a5c023aee0c0ec297a7d357685cf49e9 21-Jan-2015 Craig Stout <cstout@google.com> Add xsmall focus scale.

b/19051315

Change-Id: I39066b672b1454ff6c6ea7ee4748d7f731728ed4
ocusHighlight.java
ocusHighlightHelper.java
istRowPresenter.java
6380fa3bbd59f866a42db565327ae4b25fabdf31 21-Jan-2015 Craig Stout <cstout@google.com> Merge "Make internal methods package-private." into lmp-mr1-ub-dev
b17fd9f977350717ba91e1d23a7296b69c02aa25 21-Jan-2015 Craig Stout <cstout@google.com> Make internal methods package-private.

b/19070072

Change-Id: Iff5a6a2ad74b55de012810d12e0c24bb74a342d6
laybackControlsRow.java
b3b295890fd53727a7a40262f86dceedf68c7123 17-Jan-2015 Dake Gu <dake@google.com> Add 4 policies of how RowPresenter change activated status of row view.

Bug: 18469244

Change-Id: I9cca86d9b39b387b6f18b3dd62dce98867d8d36d
istRowPresenter.java
owPresenter.java
85df3117f0fcd0aa10d7bd45194dab97e22112f2 14-Jan-2015 Dake Gu <dake@google.com> Fixed three bugs causing redundant remove and append

1. When checking overlimit, should take margin into consideration.

2. Fixed a bug in findRowMax, should only use edge of last item in that row.

3. appendItems should check overlimit before add item when oneColumnMode is
false, both withcache and withoutcache.

Also added test case for move items

Bug: 19017080

Change-Id: I6594c9158b186449739eb284c4607df7803e2049
rid.java
ridLayoutManager.java
taggeredGrid.java
taggeredGridDefault.java
3a23ad69eef2b92be38f9704e064600066b7dfe9 13-Jan-2015 Dake Gu <dake@google.com> Fix lost selection of browse row

Workaround problem of getAdapterPosition() returns -1 in onChildDetached()
in layout pass (created b/18960075)

Issue: 18984910
Change-Id: I3906daf6d68b492c6aefe1007eb8c795da45c5f5
ridLayoutManager.java
3e534fdedcd360d1dd5bcc51661d93f71e57b31e 10-Jan-2015 Dake Gu <dake@google.com> Fix wrong grid layout caused by not initialized offset.

When we append non-cached items to grid, the first visible item
created has a offset of 0. Then we prepend items with cache, which
will put the first prepended item at the same location of current
first visible item.

Bug 18963829

Change-Id: I174c995ff05acc8492c938bb67a7d4b993629272
taggeredGrid.java
taggeredGridDefault.java
6e96b9d46e7af6bedf6213ecc2ba0ad7b8050778 18-Dec-2014 Dake Gu <dake@google.com> Refactoring grid algorithm

The current interface between GridLayoutManager and StaggeredGrid is
too complicated: GridLayoutManager updates rows min/max edge and Grid
is responsible for fill items according to row min/max edge.

This CL moved most of the grid code into Grid class family and make
interface between GridLayoutManager and Grid much simpler.
GridLayoutManager no longer updates row min/max.

Refactoring made it possible to write efficient Grid class for single
row or non staggered grid. A base Grid class is abstracted out.
StaggeredGrid implemented it using a complicated data strurcture (a
CircularArray) to cache stagger layout result. A single row Grid will
cost less memory allocations: a TODO in the near future.

fastRelayout() was rewriten slightly differently, it will relayout
(using detachFromParent and attachToParent) next children once detects
child size change, previously we push children away on the same row
which might cause a bad alignment at end.

Regular layout now starts with detachAndScrapAttachedViews(), this
is lighter than removeAndRecycleAllViews() which may lose some views
due to cache limit.

Prepend/append during scroll now also detects if child size changed,
then invalidate cached staggered result before/after the child.

Improvement during adapter notifyChange or structure change, now we
no longer discard grid information in a non-fast relayout case. We
still keeps the same cached staggered result, until we really find
size of a child has changed then we invalidate part of the cache.

Tested with BrowseFragment/HorizontalGridTestActivity/
VerticalGridActivity/BrowseAnimationActivity and with rtl=true/false.

Issue: 18946733

Change-Id: Ia0cfa34ad8d09c124dbffe51680a89f177bfef31
aseGridView.java
rid.java
ridLayoutManager.java
taggeredGrid.java
taggeredGridDefault.java
iewsStateBundle.java
3a0a87a8628a608a1ef94f4387d0730a55d78fab 14-Jan-2015 Craig Stout <cstout@google.com> Merge "Add systrace events." into lmp-mr1-ub-dev
dda08cebca092380021dc6277bb32c0e4da16fec 19-Dec-2014 Craig Stout <cstout@google.com> Add systrace events.

Change-Id: Ic90e8cfa26df4e74d68248e878cdba552e13597e
ridLayoutManager.java
433391b15bd5ff711ada5894427e90f52186ea76 09-Dec-2014 Craig Stout <cstout@google.com> Fix details description maxlines.

b/17660063

Change-Id: I198899925370d0ba6845b2c9081790108939d39f
(cherry picked from commit 7e5c3e0a514e017659fe28ced24bc7f102ee421f)
bstractDetailsDescriptionPresenter.java
100e37bdec64de77f82ea19e88e74a0fd842b119 13-Jan-2015 Craig Stout <cstout@google.com> Merge "Handle child layouts due to child selection." into lmp-mr1-dev
697886fa2541e4e1223396d38329451e9e83d08b 13-Jan-2015 Craig Stout <cstout@google.com> Merge "Fix browse fragment smooth scrolling." into lmp-mr1-dev
83472d580eec480f87e29a27ca546d1848ed99f6 13-Jan-2015 Craig Stout <cstout@google.com> Merge "Allow customized recycled pool size." into lmp-mr1-dev
fe9b510d4adbf39eeb335c8e37f37a2ec9fd3456 13-Jan-2015 Craig Stout <cstout@google.com> Merge "Fix scroll controller initialization." into lmp-mr1-dev
597f620c2503bb18aabf0b6fe4c0c84ab7b42cba 08-Jan-2015 Craig Stout <cstout@google.com> Handle child layouts due to child selection.

b/18840332

Change-Id: Id70b6ea3c21e00be8529cc4ba59aafc1b67b10ab
ridLayoutManager.java
f185bcb93b28f5e81b88405445157a2b53a2d1c7 22-Dec-2014 Craig Stout <cstout@google.com> Fix browse fragment smooth scrolling.

In most cases (During layout and when smooth scrolling) we shouldn't add
items until they have scrolled into the window.

On focus search fail we should add items immediately; however the modified
methods are not part of that code flow.

b/18742856

Change-Id: I83bbc583a7809e65ed930353aa804bd95b362eee
(cherry picked from commit e3cbb083dad7a70b26f542b7bb5d7b67a8c8621e)
ridLayoutManager.java
bb370eee93bfe84a6e14be0e8476f48c32e2dcb0 30-Dec-2014 Craig Stout <cstout@google.com> Allow customized recycled pool size.

b/18742856

Change-Id: If914653d255c3c3c23492a4e044bd640f070917c
(cherry picked from commit 9e352dac7be9457d2cae3c6accb8ee910399c5ca)
istRowPresenter.java
3f23b01f1e22f971e2105557137927822e7419f1 19-Dec-2014 Craig Stout <cstout@google.com> Fix scroll controller initialization.

b/18742856

Change-Id: I00429638e1ce1e2e9fc7b7d5aa7b474c9945f155
(cherry picked from commit 2ced342a1b5cf07415825f7f5bae26f012b3832e)
ridLayoutManager.java
07a94289970bb0badbd427b40eca97131638874d 19-Dec-2014 Craig Stout <cstout@google.com> Improve view recycling.

Don't start fade in until view is attached, otherwise views bound during
the leanback measure phase aren't recycled.

Don't start animation immediately when attached because the framework will
double count the child having transient state.

b/18742856

Change-Id: I21a0bde9a501454d1bbe244c49b2fd3fbdeaa120
(cherry picked from commit 89589687d8aafcfdc11d9760205e9d0b16505201)
mageCardView.java
5a40b451b2d0fd1c746ea8e22c56d0988c40b860 13-Dec-2014 Kris Giesing <kgiesing@google.com> Merge "Change ResizingTextView so that it defaults to leaving line spacing alone" into lmp-mr1-dev
dc5b25a4083e1d00716fa9f70d26712453fdbeab 12-Dec-2014 Kris Giesing <kgiesing@google.com> Change ResizingTextView so that it defaults to leaving line spacing alone

b/18736147

Change-Id: Iea32924cd77b3683f1b7c83b3a0a39afa5ca04c4
esizingTextView.java
ceb323a31b16a5ee227c7e68f147b86bf7bfa639 11-Dec-2014 Dake Gu <dake@google.com> Fix GridLayoutManager initial append/prepend logic

Bug 18718926

Change-Id: I2658f3363a8258b03be4d3286d0f44ca2f55e2fa
ridLayoutManager.java
f032181dec150eadd94cdc936c6e18d83443d9c7 11-Dec-2014 Dake Gu <dake@google.com> add RTL javadoc for window alignment

Bug: 18631342

Change-Id: I8bad796a2e3ea5af1e5661e523a6a769cb181a02
aseGridView.java
e0e66a21916f94ebbced0d1ffe3dc652c9c7a15e 10-Dec-2014 Kris Giesing <kgiesing@google.com> Fix various RTL issues related to multi-row grid views

Also fix some RTL issues related to grid views that do not wrap content

b/18631342

Change-Id: Ibc52057375c24409dacd7af3fb1e487d022b9ff8
ridLayoutManager.java
taggeredGrid.java
taggeredGridDefault.java
indowAlignment.java
28f46ad88c0f297a77cf5dba2d286c0a9a0d6824 09-Dec-2014 Kris Giesing <kgiesing@google.com> Merge "Pass an appropriate default style up the constructor chain" into lmp-mr1-dev
e36b890d49e33f38eada22a0d9f84974bda2ddb0 09-Dec-2014 Craig Stout <cstout@google.com> Merge "Reset scroll when all items removed." into lmp-mr1-dev
4a6588a5160206fc7063e5a140a405dfd84f0cc9 08-Dec-2014 Craig Stout <cstout@google.com> Reset scroll when all items removed.

b/17575336

Change-Id: Ie5038b6893051a3a83e999bbcd8b64c170880083
ridLayoutManager.java
afb8ae27a2d6f7d7088a39b9eb4a43369df91270 08-Dec-2014 Kris Giesing <kgiesing@google.com> Pass an appropriate default style up the constructor chain

Bug: 18117832
Change-Id: I30f9a18ebe2e50dc1db03692f0743474b23183d1
esizingTextView.java
7fa663ffa812ebc8cb2bb492eecc40485b145eba 04-Dec-2014 Kris Giesing <kgiesing@google.com> Add ResizingTextView to leanback library.

ResizingTextView is a class that adjusts text size automatically in response
to certain trigger conditions, such as text that wraps over multiple lines.

For now this class is only used in DetailsFragment, and is hidden from
javadocs. The API will be revisited before making it public.

Bug: 18117832
Change-Id: Ic8679e370acb48f8dcda6c1e05b23229e8f5739f
esizingTextView.java
7db64bb839e5589b38322f9f7456cb928ffc2c1c 05-Dec-2014 Dake Gu <dake@google.com> Fix end alignment of grid

And simplify and take out reverse handling from WindowAlignment.

Bug: 17953835

Change-Id: Ieebed8c1f7b4f5664462f0db210865b60cecd3e9
ridLayoutManager.java
indowAlignment.java
b455339a4d442068dd312fb93c0544106810dfad 04-Dec-2014 Dake Gu <dake@google.com> Prevent NPE in Presenter.cancelAnimationsRecursive

Bug: 18456704
Change-Id: I66f7827800aaabc9faa9d62486f8c32e88403b14
resenter.java
56c76a9fceeb2a516e4bc82bb8b31bbcec6528fc 04-Dec-2014 Craig Stout <cstout@google.com> Merge "Fixes to support improved external recognizer overlay." into lmp-mr1-dev
490691bd414dbb2093dc6cb56ae63ae9b04e70e3 04-Dec-2014 Craig Stout <cstout@google.com> Fixes to support improved external recognizer overlay.

b/17611324

Change-Id: I449fcfdd1ec408e86e6305d4a6fc185af77a4902
earchBar.java
2f1ca5d5a26ed0320b7f670a9e4a3a03287afb61 12-Nov-2014 Craig Stout <cstout@google.com> Remove deprecated api.

Removal part 2/2.

b/17455376

Change-Id: Ibc29f2b0e66565586780ba02475157506e23b571
eaderItem.java
e2047098f696c81f6435cdd588a62d8ab5829c7d 24-Nov-2014 Craig Stout <cstout@google.com> Fix SearchFragment auto start of voice recognition.

Also fixes back navigation for single activity multi fragment apps.

b/18488044
b/18333293

Change-Id: I2a1649a7ef2feaa14c89dc0545ba37df5e80f53e
earchBar.java
936867a6a063492207bd3cd68a1aa870dd5c9da5 30-Nov-2014 Craig Stout <cstout@google.com> Fix in app search text box redlines.

b/17611324

Change-Id: I622bc8f755f107cc832d871013050468e3b9a87b
earchBar.java
8f51aa01152a33d489471bc7c667b39cc2062706 26-Nov-2014 Dake Gu <dake@google.com> am 9036a735: am 02582d90: Merge "Leanback: fix crashes of setScrollEnabled on empty list" into lmp-dev

* commit '9036a735b00ebcaada5981ff607a598439e52662':
Leanback: fix crashes of setScrollEnabled on empty list
02582d90a07220d14ae199fa208f0ba30280afd2 26-Nov-2014 Dake Gu <dake@google.com> Merge "Leanback: fix crashes of setScrollEnabled on empty list" into lmp-dev
7a0c98633e247d9eb4bdb081a4ef4a5103f04f73 21-Nov-2014 Kris Giesing <kgiesing@google.com> Merge "Update details overview and action presenter for RTL support" into lmp-mr1-dev
d633c87b6565c6068a5c5beb5a1ef91a493acea8 21-Nov-2014 Craig Stout <cstout@google.com> DO NOT MERGE Fix crash when focus requested on a child that was removed.

This can happen when all views are removed.
This a regression triggered by a cherry-picked of recyclerView change ag/582987

b/18474947

Change-Id: I1b9c4b82488a893ba7e668cdc79e41a03d7c61a2
(cherry picked from commit 9b68e453d30984d524dcf25fdc2e645ae853ac33)
ridLayoutManager.java
475d474909f8e7ed27caae527997d74bf4f8a307 21-Nov-2014 Craig Stout <cstout@google.com> Merge "Fix crash when focus requested on a child that was removed." into lmp-mr1-dev
9b68e453d30984d524dcf25fdc2e645ae853ac33 21-Nov-2014 Craig Stout <cstout@google.com> Fix crash when focus requested on a child that was removed.

This can happen when all views are removed.

b/18474947

Change-Id: I1b9c4b82488a893ba7e668cdc79e41a03d7c61a2
ridLayoutManager.java
4e602840ed6741b44a536826799625ad0be4b3c6 21-Nov-2014 Kris Giesing <kgiesing@google.com> Update details overview and action presenter for RTL support

Bug: 18020272
Change-Id: I39c2fc4d7a049af8c16a01e12bd6d885ca546b2d
ctionPresenterSelector.java
etailsOverviewRowPresenter.java
8e3566285de4ac771d6188f62fe947e23d371a3d 19-Nov-2014 Kris Giesing <kgiesing@google.com> Changes to support RTL layouts

Bug: 18020272
Change-Id: I3e07b5f3784303b0b50dccc72d9d5ab140ea158f
ctionPresenterSelector.java
aseGridView.java
ridLayoutManager.java
orizontalHoverCardSwitcher.java
caleFrameLayout.java
indowAlignment.java
b008e4b45faf7c1ece57e48a3517520d65e3b8ca 20-Nov-2014 Dake Gu <dake@google.com> Leanback: fix crashes of setScrollEnabled on empty list

b/18449655

Change-Id: I362433c679f46eb5565d12251db0c24421e3fb55
ridLayoutManager.java
ad16ef7c021371b7ae385ab049f76d0aa6f5c988 18-Nov-2014 Dake Gu <dake@google.com> Merge "Leanback: Support delayed details entrance transition" into lmp-mr1-dev
3f0f3eb255bde49549a77c0b5d252decaa2a0202 13-Nov-2014 Dake Gu <dake@google.com> Leanback: Support delayed details entrance transition

Added a BaseFragment and move shared entrance transition code in.

b/17628884

Change-Id: Ibfe78116a0822925dbd25dbfde38e9b1c8e6c488
istRowPresenter.java
owPresenter.java
38fd20857fac70b00fadd3186915647b63858e8e 18-Nov-2014 Craig Stout <cstout@google.com> Merge "Called details/description presenter view attached/detached." into lmp-mr1-dev
447860fd5c105dd0ccd227237ac5f18fdc4c26dc 18-Nov-2014 Craig Stout <cstout@google.com> Stop orb color animation when fragment is paused.

b/17789226

Change-Id: I2a467ba0f0673e3248b7738e6381adc6dd5fd95b
itleView.java
26d11212c4a66b075807888caacac5ee7fc10dc1 17-Nov-2014 Craig Stout <cstout@google.com> Called details/description presenter view attached/detached.

b/17664696

Change-Id: Ie58113b70ce92b82085d62a548cc9e9db13280df
etailsOverviewRowPresenter.java
laybackControlsRowPresenter.java
e62056d592c183d6975ffe96cf3ec8dace0e0f3a 13-Nov-2014 Craig Stout <cstout@google.com> Merge "Deprecate unused api for image uri." into lmp-mr1-dev
43afed9e93ab5b510440412b35c6b39e4ecffb7a 12-Nov-2014 Dake Gu <dake@google.com> Merge "Leanback: do not use clipChildren=false for ScaleFrameLayout" into lmp-mr1-dev
30f578068f9972cdd69fedaaa66821c8e9a38a5e 12-Nov-2014 Craig Stout <cstout@google.com> Deprecate unused api for image uri.

Removal part 1/2.
Add new constructors to be used instead.

b/17455376

Change-Id: Id3ef402f484d95bef218ffcf2afa7f64e0bd52e5
eaderItem.java
6a0a9a6f8fd8ab428d81732875d6245777556b5f 12-Nov-2014 Craig Stout <cstout@google.com> Merge "Helper classes for managing standard playback control actions." into lmp-mr1-dev
eb66dab544c4c1eabe4d469b7cea348d4b01e664 30-Oct-2014 Craig Stout <cstout@google.com> Helper classes for managing standard playback control actions.

b/18077079

Change-Id: Id299ee35cf44ef987cea8a2d8718df4837de1abc
rrayObjectAdapter.java
ontrolButtonPresenterSelector.java
laybackControlsRow.java
parseArrayObjectAdapter.java
3595aa0cbdaa8e754365ca94a0b9eb8fc52b9796 11-Nov-2014 Dake Gu <dake@google.com> Leanback: do not use clipChildren=false for ScaleFrameLayout

Activity transition uses getGlobalVisibleRect() to decide whether
to run a window Return transition on a View, this function will
ignore child outside ancestors bounds even clipChildren=false.

Changed the way we scale the view so that we don't need
use clipChildren=false any more. Side benefit: this CL also takes
out the need of flipping clipChildren flag in header transition;
clipChildren=true is also better performance-wise.

b/18292516

Change-Id: Ie5018ae5c0e5e1df9e0f92e2435da767c7b8b3c5
caleFrameLayout.java
ad0f156d72636100caac697aef7118c0522861c0 30-Oct-2014 Craig Stout <cstout@google.com> DO NOT MERGE Fixes for playback overlay controls.

b/18078409

Change-Id: Iaa5e3c8c9da835ba722569755e8faee966b0aa83
ontrolBarPresenter.java
laybackControlsRowPresenter.java
42f8a879beb54fd181c588b78554367d947ec48b 20-Sep-2014 Dake Gu <dake@google.com> DO NOT MERGE Leanback: Finish implements overreach feature

GridLayoutManager Overreach feature is not quite right yet, a diff of
alignoffset * (1 - 1/scale) needs to be applied.

And we may need overreach for views other than gridlayoutmanager.

Move all the functions into a ScaleFrameLayout,
so that it can scale any type of view, not just gridlayoutmanager.

b/17914987

Change-Id: I99e0711041a2115b3ed1bce29e7a021b2a2132bd
aseGridView.java
ridLayoutManager.java
caleFrameLayout.java
f1c65f3168c64d82d61783284ba6fb6ad6cae922 09-Oct-2014 Dake Gu <dake@google.com> DO NOT MERGE Set transitionName for rebind after transition

After transitionEnd, people may rebind row to view, where
we may re-create the view (even though the view should be
in recycle pool unless app calls notifyChange() which invalidate
all the recycle pool). So we should always setTransitionName()
on the view for a back transition. Meanwhile we should clear
transitionName on existing view when rebind to a new view.

Added logs.

b/17918639

Change-Id: I204cf847114e5d379e6671e44a5d37c5c9ec5ebf
etailsOverviewSharedElementHelper.java
2c016cea6309ccf11b1625259c8b810143cdef88 07-Nov-2014 Tim Kilbourn <tkilbourn@google.com> DO NOT MERGE Add logging.

Needed for a later cherrypick; originally came from a change that was
not able to be cherrypicked.

Change-Id: Ic7676121af682ea0ecec8d4386e465b18c625f9b
etailsOverviewSharedElementHelper.java
c04ca1b14c5bf9ecac80fc53d3f28a5a7fdd4e77 07-Nov-2014 Dake Gu <dake@google.com> Leanback: add Browse and Details enter and return transition

b/17628884

Change-Id: I5ab571563b75cfac6eaff662c4263aba0a6fa055
istRowPresenter.java
owPresenter.java
571796b3ae0c5e15d9324a61745506b5ba47682c 28-Oct-2014 Dake Gu <dake@google.com> DO NOT MERGE GridLayoutManager: Fix crash in onMeasure

mFocusPosition is not in range in onMeasure() which
is executed before onLayout()

b/18153129

Change-Id: I0fc94caca64e8ccf0ab439b9fd44eca500fb6bd1
ridLayoutManager.java
76b50416ae52b6c80af7a8661b949c19ddad6bf7 14-Oct-2014 Dake Gu <dake@google.com> DO NOT MERGE Add script to generate v4 fragment code.

To provide v4 version fragment which is required by lots
of apps. To avoid generate two versions of resource file,
move shared widget class into widget package.

Outreach clipToChildren should be set on parent of VerticalGridView,
parent will be different for v4 case and none-v4 case.

b/17930984

Change-Id: Ica8cbd7195b481cd0831386b51cfff4955feda6b
rowseFrameLayout.java
rowseRowsFrameLayout.java
d1911befd5509ac5ba188559eab193291bedb4ed 17-Sep-2014 Dake Gu <dake@google.com> DO NOT MERGE GridLayoutManager: fix scrolling glitches caused by interference of transition

disable scroll of animation initiated before transition started and restore the
scroll animation when transition is done.
Disable focus out in scrolling.

Bug 17551262 Wrong item position in row
Bug 17549016 unexpected horizontal scrolling is running after we go from content to fast lane

Change-Id: I2d7acbafad415436ad7200b17ad31e2ac0e6a6d8
ridLayoutManager.java
5dac2c723e1d50da356170a6f372dcbab1a7d83c 30-Oct-2014 Craig Stout <cstout@google.com> Fixes for playback overlay controls.

b/18078409

Change-Id: Iaa5e3c8c9da835ba722569755e8faee966b0aa83
ontrolBarPresenter.java
laybackControlsRowPresenter.java
1f000f84b9f8db8778b941a6a1bf60f3d349545d 20-Sep-2014 Dake Gu <dake@google.com> Leanback: Finish implements overreach feature

GridLayoutManager Overreach feature is not quite right yet, a diff of
alignoffset * (1 - 1/scale) needs to be applied.

And we may need overreach for views other than gridlayoutmanager.

Move all the functions into a ScaleFrameLayout,
so that it can scale any type of view, not just gridlayoutmanager.

b/17914987

Change-Id: I28d073b39eba9c0d24093274b2f5a524e3381aa9
aseGridView.java
ridLayoutManager.java
caleFrameLayout.java
ef9d4aa4eb25e5a0e6ec3ff7c406ced131726ff2 30-Oct-2014 Nick Chalko <nchalko@google.com> Fix spelling error in onViewDetachedFromWindow javadoc.

Change-Id: Ib52d054094275c4a79235ef47ceedc56f683d54a
resenter.java
80d061649db1d8e5c69f400fef4d61e2fde9dd3b 29-Oct-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: fix scrolling glitches caused by interference of transition" into lmp-mr1-dev
99881f0d15df96179f93eee2d624b338d327571c 09-Oct-2014 Dake Gu <dake@google.com> Set transitionName for rebind after transition

After transitionEnd, people may rebind row to view, where
we may re-create the view (even though the view should be
in recycle pool unless app calls notifyChange() which invalidate
all the recycle pool). So we should always setTransitionName()
on the view for a back transition. Meanwhile we should clear
transitionName on existing view when rebind to a new view.

Added logs.

b/17918639

Change-Id: I7ae0d39175c2162500bcfcdc87e9219408f2ded1
etailsOverviewSharedElementHelper.java
9a934fa3710ecb3fb2eb67e33a611563a144186d 28-Oct-2014 Dake Gu <dake@google.com> ArrayObjectAdapter: Support replace

also add shortcut to clear/remove avoid fire event not needed.

b/17893479

Change-Id: I5a987f877a3ce593f176c3224f35447048f0c15a
rrayObjectAdapter.java
2986af93ba272bdc69d414bdcf5fcf0901c8ee97 28-Oct-2014 Dake Gu <dake@google.com> GridLayoutManager: Fix crash in onMeasure

mFocusPosition is not in range in onMeasure() which
is executed before onLayout()

b/18153129

Change-Id: Ie156072b284098e671e4b90e0fad574c263a1fdd
ridLayoutManager.java
290ba2dbf37227e931a657bd3c819db68a80480d 27-Oct-2014 Dake Gu <dake@google.com> Merge "Leanback: Add support for imageView scale type transition" into lmp-mr1-dev
5d00775a5d3ce3c1fc06c4de0945d1b8f03aadc4 14-Oct-2014 Dake Gu <dake@google.com> Add script to generate v4 fragment code.

To provide v4 version fragment which is required by lots
of apps. To avoid generate two versions of resource file,
move shared widget class into widget package.

Outreach clipToChildren should be set on parent of VerticalGridView,
parent will be different for v4 case and none-v4 case.

b/17930984

Change-Id: I1c67186d9046ac8fd5b2c45de048a3fae2b79be7
rowseFrameLayout.java
rowseRowsFrameLayout.java
05805862fe972a3e3c0d199b7eb3a80fc5bdd7b6 16-Oct-2014 Craig Stout <cstout@google.com> Fix talkback accessibility by setting playback control labels.

b/17974328

Change-Id: I88bf9d3574e5a9b6f4738bc0e3bed178fc9637fc
ontrolButtonPresenterSelector.java
laybackControlsRow.java
13f6f74d1057d950f838cbadb2b2fc939e412ed8 10-Oct-2014 bulic <bulic@google.com> Merge "Removed click sound effect for search orb" into lmp-dev
2a3ff0424bb423d8719c340f6158873abca99bc0 09-Oct-2014 Tim Kilbourn <tkilbourn@google.com> Merge "Play sound and update orb during onReadyForSpeech." into lmp-dev
9d9f969b5f37b4454b49f74125521c82a8bf88c4 09-Oct-2014 Tim Kilbourn <tkilbourn@google.com> Play sound and update orb during onReadyForSpeech.

Delays the sound until closer to when things are actually ready.

Bug: 17922736
Change-Id: I67a1923d09df4366a0f1d77b871f9afc7e64b0d6
earchBar.java
c4788eac909f51e73e05885314d3ace65d0a2f26 08-Oct-2014 bulic <bulic@google.com> Removed click sound effect for search orb

b/17789838

Change-Id: I0589e4ddc1f61e012d7e44b8c875d57c4be86ebc
earchOrbView.java
9e3b908cd06f14bc7810e744ccb174ee55c972a5 08-Oct-2014 Craig Stout <cstout@google.com> Speech orb fixes.

Scale factor.
Reset mCurrentLevel on start.

Bug: 17610737
Change-Id: I4ea3aab26dd9e56a929384f9b16bb98e074d9823
peechOrbView.java
49bd8747a667ae5f45a132d803cc18a80e963545 07-Oct-2014 Jerome Poichet <jpoichet@google.com> Speech orb improvements

- orb moves more dramatically when receiving volume changes
- no breathing colors while recording

Bug: 17610737

Change-Id: Ib7c415f1f5152d415539f770c0e3eea31277a923
peechOrbView.java
e2bc82a1c02f667901bd96e244afa7dc0232b354 04-Oct-2014 Jerome Poichet <jpoichet@google.com> SpeechRecognizer fixed in framework

Now that SpeechRecognizer calls cancel when being destroyed, no need for
the delayed destroy call. It was actually leaking a service, and could
cause crashes in application using the SearchFragment.

Moved the show/not show listening to correspond when voice is actually
being recorded.

b/17789827 Mic won't open
b/17675621 Music search - runtime restart
b/17851959 In-app voice search should grab audio focus

Change-Id: I34473743a9e42c4b87eccc3ae85cd8f5ade15ca3
earchBar.java
22e46a46e20c53b2e2d23dca792534ee3434c954 04-Oct-2014 Dake Gu <dake@google.com> SearchFragment improvements (2nd try)

1. Expose startRecognition() for calling from Activity.onNewIntent()
(When user clicks mic button in search activity)

2. Do not pass text change event when we are in speech recognition.

3. Autofocus back to speech orb when startRecognition() is called.

4. Make sure internal speech recognizer calls stopRecognition.

5. When SearchFragment calls setSearchQuery(), make sure stopRecoginition.

b/17790589

Change-Id: I55ca97b5b3384b47214a0afac35bd31324e89347
earchBar.java
b7b4d9a241526b79ec39083299f6d7dcf1f2a7eb 06-Oct-2014 Dake Gu <dake@google.com> Merge "Revert "SearchFragment improvments"" into lmp-dev
2eac9924967d79de4a4488eb9bf0fc2950819670 06-Oct-2014 Dake Gu <dake@google.com> Revert "SearchFragment improvments"

This reverts commit edb67b0b59ee6657b2d1adb6b2822858db34e8c8.

Change-Id: If2627e201dd0e7dfcc3359718175e2a7c74b8ac2
earchBar.java
5681c8261b2bc2bb77bf78e1e84c8123553de944 06-Oct-2014 Dake Gu <dake@google.com> Merge "SearchFragment improvments" into lmp-dev
edb67b0b59ee6657b2d1adb6b2822858db34e8c8 04-Oct-2014 Dake Gu <dake@google.com> SearchFragment improvments

1. Expose startRecognition() for calling from Activity.onNewIntent()
(When user clicks mic button in search activity)

2. Do not pass text change event when we are in speech recognition.

3. Autofocus back to speech orb when startRecognition() is called.

b/17790589

Change-Id: I3d3c9ce57f467dc6f1f26d3608b13c7b34a8adce
earchBar.java
a088f574b916685bd0a75ff613ac2009a3bad483 03-Oct-2014 Craig Stout <cstout@google.com> Support for displaying partial results.

b/15492986

Change-Id: I3f75260e26146230d91e2be73d978435c72bfdb7
earchBar.java
earchEditText.java
treamingTextView.java
d5dff7f2ff07d060e052083f1e4d9d01c2b7ee8e 03-Oct-2014 Craig Stout <cstout@google.com> Expose SearchOrbView.enableOrbColorAnimation.

Apps should disable color animation when paused.

b/17788704

Change-Id: I18e703bedcd9980ff08ec303c0ab47ae7a2bb7c0
earchOrbView.java
f52e0718c20bedc86f0b67f6b3660e737d787bd4 27-Sep-2014 Dake Gu <dake@google.com> Support restoring SearchFragment results

1. do not start speech recognition if SearchFragment is
restored from instance state
2. onTextChange() is invoked when restore view hiearchy,
we should change query regardless if it has focus or not.
3. Defer first setAdapter() on RowsFragment until we got some data
from result Adapter. If there are multiple consequent
onChange() events (e.g. add result rows one by one), they are
consolidated into one callback so that first setAdapter() on
RowsFragment will include all of them.
4. Fixed problem that results being cleaned while IME opens up,
it temporary clears the edittext.
5. Fix the wrong fragmentId when we try to find fragment restored
by FragmentManager, so we can restore the selected position!


b/17624232

Change-Id: I22e4192ca5c363b0d9545b412c5be7aec8554832
earchBar.java
e33fac64498a83e1138b0e0aad732ea29e2f8a81 01-Oct-2014 Jerome Poichet <jpoichet@google.com> Prevent NPE

We could get a null for the query, use TextUtil to be safer

b/17759464 Music crashing on mic button in LRX01

Change-Id: I85628827dee811e41d9fe3c8c6f2483bd876fc1e
earchBar.java
b81a2943b9e150c6caca969e62c5375928c4cd1c 30-Sep-2014 Dake Gu <dake@google.com> Leanback: Add support for imageView scale type transition

Copy snapshot code from framework SharedElementCallback.

Read scale type and matrix from snapshot view. Requires a framework change.

b/17703309

Change-Id: I9c0f3c980b4724cbd118e2d6e25aa2750ce47260
etailsOverviewSharedElementHelper.java
7a52e206fb20167f0b7e7a9daa7abb952d5f544d 30-Sep-2014 Dake Gu <dake@google.com> Fix NPE caused by incorrectly calling detachAndScrapViewAt

b/17702252

Change-Id: I48456ba7a970237cb218351f3b184ef680b8c65f
ridLayoutManager.java
7cd2deb3bb7af14abdb5cc9500f3638ce0af2eea 17-Sep-2014 Dake Gu <dake@google.com> GridLayoutManager: fix scrolling glitches caused by interference of transition

disable scroll of animation initiated before transition started and restore the
scroll animation when transition is done.
Disable focus out in scrolling.

Bug 17551262 Wrong item position in row
Bug 17549016 unexpected horizontal scrolling is running after we go from content to fast lane

Change-Id: I4c7d14f1e60b70984745c1ab9f55748d9abcc5aa
ridLayoutManager.java
e7b29b745f6562b43ad79074cf5445a26cd4073c 26-Sep-2014 Dake Gu <dake@google.com> leanback: fix transition shared element

Since we add one more framelayout with background, the shared element should be
the new framelayout.

b/17661532

Change-Id: I19869e648f6caadf774ec7e662a33ad233f0c1c9
etailsOverviewSharedElementHelper.java
db6a0d1b5f4c0353d168fd5b22661246d23aa206 24-Sep-2014 Craig Stout <cstout@google.com> Fix onAdapterChanged.

Don't reset potentially restored state when the old adapter is null.

b/15696646

Change-Id: Ibc311fb62ad87ad35e0a98ed4f95f30aab752544
ridLayoutManager.java
26c145aadca16cba3f294cc93c36edc6e9c98e6a 22-Sep-2014 Craig Stout <cstout@google.com> Fix broken shadow on details overview row.

Also fixes layout issue seen in Play Games.

b/17608823
b/17609089

Change-Id: I97c1aceee0c6e3af5d6dc447003c02ea584d2031
etailsOverviewRowPresenter.java
55f1d8b057b1e273c9c34a1f06c7a2f0c8868a97 19-Sep-2014 Craig Stout <cstout@google.com> Merge "Support select effect on details overview rows." into lmp-dev
d391b19d1bf663ce300b0f4550e6fbaa7e12b0d4 19-Sep-2014 Dake Gu <dake@google.com> Leanback: Add a default timeout for Detail Activity transition.

Avoid deadlock if the details activity never loads content.

b/17576164

Change-Id: Iccd3992f607295fbfa79ed7b1844972c3b709ca4
etailsOverviewRowPresenter.java
etailsOverviewSharedElementHelper.java
09d52d76912e3689cc2b58b7bb3f44b923915fd8 18-Sep-2014 Craig Stout <cstout@google.com> Support select effect on details overview rows.

b/16898456

Change-Id: I7228c35b3cdf07b5863275d47d1648e81bb45911
etailsOverviewRowPresenter.java
16d71295acfe8e8808df57db6747049c121c1512 18-Sep-2014 bulic <bulic@google.com> Fix for installs hanging on launcher

If an item is made invalid by changing its viewtype, we need to detach
and readd the view to ensure a new viewholder is created and bound.

b/17517359

Change-Id: I701b24a57d27c6c3b4569b80959cb2a315a2857c
ridLayoutManager.java
af1b3cf80f8976e00271add905e537bb22cbb61a 16-Sep-2014 Dake Gu <dake@google.com> Merge "Fix performance of hero transition" into lmp-dev
ceb7ab2ddd6e157cd4ade0f14a382c39428163c4 15-Sep-2014 Dake Gu <dake@google.com> Fix performance of hero transition

Use hasOverlappingRendering false for action list
details description frame and ImageCardView.

TODO for transition: Ideally ImageCardView should hasOverlappingRendering
and transition should create hardware layer for fade animation.

b/17499864

Change-Id: I4c4437c7e1ac19051ab939bea2ee0b2119d03090
aseGridView.java
etailsOverviewRowPresenter.java
etailsOverviewSharedElementHelper.java
mageCardView.java
mageCardViewInfo.java
onOverlappingFrameLayout.java
onOverlappingLinearLayout.java
owContainerViewHeaderDock.java
963e336e8839f26c739007242caf7ca4e50e792d 15-Sep-2014 Craig Stout <cstout@google.com> Add recognizer intent helper methods to search fragment.

b/17509582

Change-Id: I4ff3f49cec65149c1b7f4561f322bec864d0bf65
earchBar.java
4c696a0ad561090035960c2f34a058562c7f2aad 15-Sep-2014 Craig Stout <cstout@google.com> Polish speech orb.

Pulse color on focus, add shadow, zoom icon.
Refactored SpeechOrbView to subclass SearchOrbView.

b/17452282

Change-Id: I8dc34da4f24967f4c26dc3ca11b0388dbecf3de8
earchOrbView.java
peechOrbView.java
361955cd7c040bf30330c8e21d9016c747a94473 13-Sep-2014 Craig Stout <cstout@google.com> Add a callback interface for voice input.

Bug: 16320681
Change-Id: I48224a8167435372c722553ba88e4f6961d9c152
earchBar.java
peechRecognitionCallback.java
c7d3c9aa60ae79dbbca7a3bfe63a7e8458d301b5 13-Sep-2014 Dake Gu <dake@google.com> ImageCardView: avoid creating hardware layer in headers transition

For performance.

b/17490677

Change-Id: I74eb24fe190f13b6a26c2aee0fa5948a6f9d0ddc
mageCardViewInfo.java
2320d56e598912d7bd714b0edd9965610a6b49c5 13-Sep-2014 Dake Gu <dake@google.com> Merge "BrowseFragment: no longer use left fading edge" into lmp-dev
eb4947ed0d90c24552d1edc7943763a7e765fc87 13-Sep-2014 Dake Gu <dake@google.com> BrowseFragment: no longer use left fading edge

For performance.

b/17487746

Change-Id: I48e60514e3e058a7223d0d790eecfb37c6db761c
istRowPresenter.java
3659dc62f9e55b1043edb4105c311c8ef997f2ae 13-Sep-2014 Dake Gu <dake@google.com> avoid creating hardware layer for headerView

by declaring hasOverlappingRendering is false on the element with alpha

b/17409091

Change-Id: Idc3ae30a63f794b5db4fa5afc6f94e72eb3e183f
owContainerViewHeaderDock.java
0fff85d7f9dee67ec5116f3cba4e8b3961f805a7 11-Sep-2014 Craig Stout <cstout@google.com> Scale rows when headers are showing.

b/15887467

Change-Id: Ib7a942c7de6f7bdfef08ba8ef8e938abee585358
aseGridView.java
ridLayoutManager.java
a6c18317f09969688b7d329a5b4ce35c8d648e4f 10-Sep-2014 Craig Stout <cstout@google.com> SearchFragment polish.

Fix search bar vertical position.
Fix visibility of hint text.

b/15881642

Change-Id: I423d4f3d8394b9630d651bc41b2aef71827c46e7
earchBar.java
c031fd76061137a1873a1e506c499710b71dc9e3 10-Sep-2014 Craig Stout <cstout@google.com> Merge "Fix focus navigation from search bar down to results." into lmp-dev
a52784195525cdb1f2bb4d8dde1b8b314f480957 10-Sep-2014 Chet Haase <chet@google.com> Remove references to "L"

Issue #16894783 Remove references to L when API is locked down

Change-Id: Icf1215eed34e6fbe3d71a5cec4bf1699c3bc3ff9
oundedRectHelper.java
hadowHelper.java
f6221e91bd3f0f584893baadcb9f8cf5621dce3b 09-Sep-2014 Craig Stout <cstout@google.com> Fix focus navigation from search bar down to results.

b/16189418

Change-Id: Iba103910fd7d80888d2ebc3b876a326f5ab2828d
earchBar.java
9325acc6799fbb0bef84a5ac9b25bfca0701420f 09-Sep-2014 Craig Stout <cstout@google.com> Fix speech orb colors and icon.

b/15599562

Change-Id: I502cc051d1a89ac2a4d71d64128e7a8e3b2b0475
peechOrbView.java
2024f694e8ae778eefb3f6b6cdc245a67975436c 09-Sep-2014 Craig Stout <cstout@google.com> Merge "Fix double layout framework warning." into lmp-dev
d7618ab69ef591dd5342b9481c4954bfc7e9110c 08-Sep-2014 Dake Gu <dake@google.com> Fix fading out children not moving with parent

Don't remove child of listview, switch visiblity instead.
Removed children will fade out at original position but not moving
with parent.

b/17423570

Change-Id: I253bdbadeefb71ced6971d446a17d96d7a96dea3
aseGridView.java
ridLayoutManager.java
b33714d135e006cf3bdba09788c27d4791b8632e 07-Sep-2014 Craig Stout <cstout@google.com> Fix double layout framework warning.

When in layout, invoke the child selected listener before child layout.

b/15446050

Change-Id: I5d123d2586bdb55a410365a38146d1310fbfbe8a
aseGridView.java
ridLayoutManager.java
4d32be88ce98efb2088455135905181d64d89fc6 05-Sep-2014 Craig Stout <cstout@google.com> Merge "Fix context leak." into lmp-dev
6ced181ce948d1ae03c1a8402cf5ca31e2bef170 05-Sep-2014 Craig Stout <cstout@google.com> Fix context leak.

Stop orb animation when detached.

b/17408665

Change-Id: I74e59ce7b9f6ea13d3233b680cbcf4390cba479d
earchOrbView.java
4474506866a0ee006974d9b20b3f9fa9f15b99a1 05-Sep-2014 Dake Gu <dake@google.com> Merge "Leanback: Dim unselected grid item" into lmp-dev
46e7de54775fc37dc51041629c79249e6dae3242 05-Sep-2014 Dake Gu <dake@google.com> Leanback: Dim unselected grid item

Also hide FocusHighlight interface from doc.

b/17388123

Change-Id: I2501e8e501b6ab75570e11356413cf87fdc46d9f
ocusHighlight.java
ocusHighlightHandler.java
ocusHighlightHelper.java
temBridgeAdapter.java
istRowPresenter.java
erticalGridPresenter.java
9306f07b1d66f4974a81f781d29739b30124fff0 29-Aug-2014 George Mount <mount@google.com> API Review: change SharedElementListener to SharedElementCallback

Bug 17289526

Change-Id: I49f8d838207524fbf0ec099021bcf7312c28bd82
etailsOverviewSharedElementHelper.java
5358b0ca6ed795892bd097fdf15d41fb6b1a03d2 03-Sep-2014 Craig Stout <cstout@google.com> Fix memory leak when fast scrolling rows.

If a presenter starts a view property animation, then the parent row view
will have transient state which may cause a row to fail to be recycled
during a fast scroll, because RecyclerView checks transient state and
refuses to recycle a view if it or its children has running view property
animation.

This can cause a memory leak because ObjectAdapters have references to
ItemBridgeAdapters via the registered observer mechanism.

Apps should clear any view property animations in Presenter
onViewDetachedFromWindow, but in case they don't we'll do it for them in
the base class.

b/17013302

Change-Id: Ibdf5998e81dd130128f88f85d88243ec27a70dd5
mageCardView.java
istRowPresenter.java
resenter.java
owPresenter.java
14d54b35a8927e7b116ab8fa6ac621ecfcbe4bb0 29-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: fix selection offset problem

When user calls "setSelection" *before* add items
to the adapter. The mFocusPosition is already set to
the position, then adding more items will incorrectly
add offsets to not yet created item. We should not
apply pending offset in such situtation.

Ideal fix is that: user should add all items to the adapter
*before* set adapter on the view.

b/17331101

Change-Id: Ic07b68874c3742e6d29275a1c5921fa8afc08011
ridLayoutManager.java
37eb0e53ba5363bbe15314c7d19d4b2d6024a5aa 29-Aug-2014 Dake Gu <dake@google.com> Fix Action row does not gets updated

Games has mutliple rows, so row view will be reused
and the ActionList will bind to different adapter.
When changing adapter of ItemBridgeAdapter, also
needs to notify recycler view that something has changed.

b/16897784

Change-Id: I010dd046a2f332ab0f6874bd786d41ef86795bd0
etailsOverviewRowPresenter.java
a37118706af7d79adeb8b3918fb52fad99ece361 28-Aug-2014 Dake Gu <dake@google.com> GridActivity: use large as default scale

b/16687095

Change-Id: Ibb8764100bf537727bf298bf27ec1d30102ef19e
erticalGridPresenter.java
1102fc6fafe721522f2b67f86d89feda87096265 28-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: Multiple fixes to state saving

1. Implemented a LruCache based child states to limit the memory used.
2. When adding/removing child happens, clean up all cache (will lose all offscreen
child view state). This is because we use index as key, which will be changed.
3. Evict item cache when item is changed.
4. Make saveChildren policy API of BaseGridView, only the vertical list
which has nested horizontal list turned on this feature. This is quite
reasonable assumption: only save the nested horizontal list's focus
index but no more deeper children states: less expensive and avoid
potential unknown problems.
5. load children states inline instead of requesting layout, fixed bug
that requestLayout gets eaten by a top level scrolling layoutmanager.

b/17212513

Change-Id: Ic60c7ac216fa265b64646c3072767983eeb02653
aseGridView.java
ridLayoutManager.java
iewsStateBundle.java
b300ce0dfc3ad41fd6fef25833dfe4b14d5261d2 28-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: fix alignment when refreshing new data

b/17309152
b/17307859

Change-Id: I78825aefbeca6302594ac397bfe0acb27df46027
ridLayoutManager.java
81a36a4dd93bf2f14c2eb88ae01464f85ddb0706 27-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: forget child view state when there is a change

b/17212513

Change-Id: I6bd73fab467d109fcdcb1d9664fe6c1a5fdf8acd
ridLayoutManager.java
iewsStateBundle.java
536b1a299d5fa25bf55c3543719b123aaaaafca3 25-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: fix layout from non-first column

Fix problem when layout item from non-first column.

b/16824116

Change-Id: I26a1cd9ab7c7b6309709d9bf57b6b0bc624bcc8f
ridLayoutManager.java
906659fc65e7b8b1bc9f0c7cc3dabf7e64e8b9bf 22-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: support nested onSaveInstance()

This goes beyond just saving selected position, in order to support
dynamic 2D list view (list view of list view), LayoutManager needs
maintain a position/id to View state Bundle mapping for children.
Child view will be saved when they are offscreen and restored when
showing on screen.

b/15702302

Change-Id: Ie48300684945ee3adacc042e73d06a411287e6d1
ridLayoutManager.java
iewsStateBundle.java
c62efa44831b1c60dcbdfd968735e27ac8294439 22-Aug-2014 Craig Stout <cstout@google.com> Add shadow to fastlane.

b/15777980

Change-Id: I2f6a0d42dc711405c920204570d75737ba44475a
etailsOverviewRowPresenter.java
laybackControlsRowPresenter.java
earchOrbView.java
hadowHelper.java
3146269a82645438b55a41c679047e3be36e65df 21-Aug-2014 Craig Stout <cstout@google.com> Ensure list row bottom padding is always sufficient for shadows.

b/17180725

Change-Id: I6199394a88ccabb96242cd21b5f0f31c36ee937c
istRowPresenter.java
cda8867f3c17e94f41d7dcd491e0eb27e6a3953a 21-Aug-2014 Craig Stout <cstout@google.com> Merge "OnItemViewClicked/SelectedListener for details rows and playback controls rows." into lmp-dev
1eb6cc286944b1e2f60decdf6432e5f780092c94 21-Aug-2014 Dake Gu <dake@google.com> Merge "GridLayoutManger: fix setSelectedPosition is aligned to a wrong position." into lmp-dev
e692c096892075c6ac5cf509f118df6b618edecc 21-Aug-2014 Dake Gu <dake@google.com> Merge "onLayoutChildren() should not interrupt SmoothScroll" into lmp-dev
801d8b7bc960a5ae4b0e23af8ac5b8b81f8ad6f3 21-Aug-2014 Dake Gu <dake@google.com> GridLayoutManger: fix setSelectedPosition is aligned to a wrong position.

setSelection calls scrollToView(false), which offset children's location and
switches focused child which incorrectly triggers another not needed scroll
animation. The extra scroll animation causes "over" scroll amount.

Also fixed row not being highlighted if people calls notifyChanged() and
setSelectedPosition(1) consequently, the mSelectedViewHolder is set to the
selected row 1, then an immediate onLayoutChildren() detached and reattach
all rows, which clears the selected state of the row, but
mSelectedViewHolder is still referring row1, and skipped a selected event
fired from onLayoutChildren(). The fix is to clear mSelectedViewHolder
when view holder is detached from parent.

b/16681515

Change-Id: I61a8efde46327853a2ed67af63fa125d5426f907
ridLayoutManager.java
cf992de2d34abb8228dc6cb39fffe97346823a37 20-Aug-2014 Craig Stout <cstout@google.com> OnItemViewClicked/SelectedListener for details rows and playback controls rows.

Addresses the feature request because the row is provided in these callbacks.
Playback controls rows already supported item selection but this change fixes an issue
with ping-pong selection on action adapter updates.
Also add support for multiple details rows.

b/16354712

Change-Id: I0d3ce47d19514937b6d0d7a6eaeb61275c7dac85
ctionPresenterSelector.java
ontrolBarPresenter.java
etailsOverviewRowPresenter.java
laybackControlsRow.java
laybackControlsRowPresenter.java
314e0698cf026f83cb9d7ff13ae31cd913845604 20-Aug-2014 Dake Gu <dake@google.com> onLayoutChildren() should not interrupt SmoothScroll

Avoid align to focused view if it's in smoothscroll.

b/16659420

Change-Id: I294fd3bff21bd78a4335e091e68c6a3982d7f50b
ridLayoutManager.java
8b6327deb6bbacc335b098894cbbbdc1060310f0 20-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: handle padding change properly.

When we change the padding, we are expecting child views
to offset their left/top position. Since fast layout position is
based on scrolloffsetprimary/scrolloffsetsecondary.
Changing the padding should also update the scrolloffsets.

b/17135547
b/16320658

Change-Id: I15d90e7bc96884157a7f509f29aa17630f546e00
ridLayoutManager.java
139d69f76bbc189571db2d3f3da6812af3611cc3 20-Aug-2014 Craig Stout <cstout@google.com> Merge "Fix deprecated docs tag." into lmp-dev
0bc1aae85ac55af50c2debfe711505093fd3626a 20-Aug-2014 Craig Stout <cstout@google.com> Fix deprecated docs tag.

Change-Id: I64c67c8bb70a9780a32ce388f655cdabbf638848
hadowOverlayContainer.java
af9a85fd1ea6701770622bc73a1056a90d554cba 20-Aug-2014 Dake Gu <dake@google.com> Merge "fix bug sharing recycling view between rows" into lmp-dev
53a46b5723708bbb223084ebf3a4fbf6ea4616ae 20-Aug-2014 Dake Gu <dake@google.com> fix bug sharing recycling view between rows

The view's parent is changed from one horizontalgridview to
another.

b/17108202

Change-Id: I92aad74952ef7bcf8a5e626e0c73620c31692054
istRowPresenter.java
erticalGridPresenter.java
14b5ad0db56bbee8966f3f04ea4a0d6cc93ebcf8 19-Aug-2014 Craig Stout <cstout@google.com> Add back two parameter initialize to fix TvSearch build.

Change-Id: Ibf2bbaf1a06aa0e2b8756d5aa9d9c7586d831b29
hadowOverlayContainer.java
ca48c80e6b6d90f6362144950c5f20a8f6839e9d 19-Aug-2014 Brian Carlstrom <bdc@google.com> Fix javadoc breakage from 4f34a05cdf73b68c3b2eb8678f740ab15225126a

Bug: 16687089
Change-Id: Ifb4424f5d9272887bdb0dcc5466a178a26c01c9d
hadowOverlayContainer.java
e30bdac5029bb58b4dc39fe155f58c79ebb41cbe 20-Aug-2014 Tim Kilbourn <tkilbourn@google.com> Merge "Add javadoc for region visibility methods on BaseCardView." into lmp-dev
71545370fce2dc3c104fd5698a58189721101f1e 20-Aug-2014 Tim Kilbourn <tkilbourn@google.com> Add javadoc for region visibility methods on BaseCardView.

Bug: 15575706
Change-Id: Iba71421d0b5f253e4658f8cc52e89f06afe5c21e
aseCardView.java
72bcfa039b9278617c9efb0ebf61c3b92694110b 19-Aug-2014 Dake Gu <dake@google.com> Merge "fix bad alignment after item was removed" into lmp-dev
d2104835a233e64b3b90182913542e58276aeb47 19-Aug-2014 Dake Gu <dake@google.com> fix bad alignment after item was removed

b/16657786

Change-Id: I1a00a035175950d77cbc6d349898071290ce397e
ridLayoutManager.java
4650f15e6a2427dd7cfcfb4d36fba0f7e47fb926 19-Aug-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: Tracking selected position change when adapter changes" into lmp-dev
d182feca369cfefe1cedad624ead716a99cca713 19-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: Tracking selected position change when adapter changes

fixed b/17087493

cleanup and remove unused prelayout code.

Change-Id: Ia2a4adfe73600931a678ec6dcd2c4a6d15dfec99
ridLayoutManager.java
329286648ed7e32712628504b9cf1801a099d2c8 19-Aug-2014 Craig Stout <cstout@google.com> Merge "Add rounded corners to leanback "cards"." into lmp-dev
4f34a05cdf73b68c3b2eb8678f740ab15225126a 15-Aug-2014 Craig Stout <cstout@google.com> Add rounded corners to leanback "cards".

b/16687089

Change-Id: If8997998304c5fd22823f2cf95677be90e35c136
etailsOverviewRowPresenter.java
istRowPresenter.java
laybackControlsRowPresenter.java
oundedRectHelper.java
hadowHelper.java
hadowOverlayContainer.java
erticalGridPresenter.java
dbfb5013ef4647e61d96a31db67071afc9c1c3b8 19-Aug-2014 Dake Gu <dake@google.com> Merge "Use a foreground instead of itemdecoration for default row selection effect" into lmp-dev
210401c0fd2e95b6e08b656b9dca08f4e7eef08e 19-Aug-2014 Craig Stout <cstout@google.com> Merge "Cleanup playback control actions." into lmp-dev
386b06a44a1f46327f045dbb3ae1bebadbcbfed7 18-Aug-2014 Craig Stout <cstout@google.com> Cleanup playback control actions.

b/17112170

Change-Id: I53617e154964851b868be35f045dcbe66191c42e
laybackControlsRow.java
630f82ae5e6b9c500d20ea4db4ce44a604c7e8eb 15-Aug-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: smoother scrolling" into lmp-dev
dafdf6a770fb84c1228f442db64550aae6fc11ae 15-Aug-2014 Dake Gu <dake@google.com> GridLayoutManager: smoother scrolling

Use SmoothScroller when scroll to offscreen items.

b/15546722

Change-Id: I4d8abba9a376771993bc0bcff09d86b340baed69
ridLayoutManager.java
cfad630a58857f3740bcc422ba73258ed786433d 15-Aug-2014 Dake Gu <dake@google.com> Merge "Prevent recyclerview scrolling in transition" into lmp-dev
709bb7083a089e788d84ffa81f2c4f60a1bc8cf2 15-Aug-2014 Dake Gu <dake@google.com> Prevent recyclerview scrolling in transition

Both scrolling animation and ChangeBounds animation will change the card
position and cause card being put at random position.

b/16952270

Change-Id: I628230e32088cc9bb43908f9076a32877c685bd0
aseGridView.java
ridLayoutManager.java
istRowPresenter.java
owPresenter.java
adf55abedd17eb9484d03da4b521209f15724f1f 15-Aug-2014 Craig Stout <cstout@google.com> Fix shadow on playback controls card.

b/16687092

Change-Id: I3c58089993868b880eaa0deb736b0a064e44aab0
laybackControlsRowPresenter.java
hadowHelper.java
b23ee09bf4aee03bc403abf39016c8ca5ecf301c 14-Aug-2014 Dake Gu <dake@google.com> Use a foreground instead of itemdecoration for default row selection effect

Most of time vertical grid view only has ListRow, but in order
to handle possible default row selection effect, it always add
item decoration.

Switch to use a foreground of RowContainerView for the dim effect.

Disable not needed overscroll effect for TV.

b/17044705

Change-Id: Id48b5ff595f6b2efe70599d1255ceba42ca35966
aseGridView.java
istRowPresenter.java
owContainerView.java
owPresenter.java
aa67105babce5fb14e1f39b57d4c84ce634afa62 14-Aug-2014 Craig Stout <cstout@google.com> Fixes for playback controls "more actions".

b/17031274

Change-Id: Icde9524cb5bce1c3f61826bf1cd0d8f224663cb1
ontrolBarPresenter.java
laybackControlsPresenter.java
laybackControlsRowPresenter.java
95400e6d31a1ac09e48cb8944a79b7250484aa4c 09-Aug-2014 Dake Gu <dake@google.com> DetailRow: Dont focus to button during transition

fix No.2 of b/16900335.

This is not stricly following the ux spec because running
the fading animation of parent viewgroup and a background fading
animation at the same time is really slow. The button fading
is started after activity transition is done.

Also clean up and removed ChangeBounds workaround, (reparent) is no longer
used. Moved classes to transition package, it is used by both widget
and app package.

Change-Id: I00463642843b3f3ef9c9845de451712d65745a89
aseGridView.java
etailsOverviewSharedElementHelper.java
db40bbb47b4449fe36875f9eec4471d9864f0b05 13-Aug-2014 Craig Stout <cstout@google.com> Merge "PlaybackOverlayFragment positioning and spacing polish." into lmp-dev
d20507e0f5ac7ad021f42ca87c294787246f0591 13-Aug-2014 Craig Stout <cstout@google.com> PlaybackOverlayFragment positioning and spacing polish.

b/16987129

Change-Id: Ie450ae9c5f493ae6eeb33f454dbe66ce920b97fc
laybackControlsRowPresenter.java
dd0b7f7577a5b82aca264fc428b12e53301b1270 13-Aug-2014 Craig Stout <cstout@google.com> Merge "Playback overlay animation polish." into lmp-dev
836443f4a3b69eb7a88ffeb65a39e11439dee55e 13-Aug-2014 Dake Gu <dake@google.com> add background for transparent image

b/16989401

Change-Id: Iee87604593146e7d27704d8f155f2facb85370e2
etailsOverviewRowPresenter.java
6b2e5b5117f1b8dfafbd81b995bb423ab0297564 12-Aug-2014 Craig Stout <cstout@google.com> Playback overlay animation polish.

b/16980270

Change-Id: I01476bbd239ae6ba850573935a1df1de8bb105db
laybackControlsRowPresenter.java
3e91a20766ee7aea2bd2a8282425b0d61cd44376 11-Aug-2014 Craig Stout <cstout@google.com> Optimize no-fading-edge case.

setWillNotDraw(true) in that case.

b/16952580

Change-Id: I6cbec9e5cfb4789aac2209f39f528999cb9907ed
orizontalGridView.java
f0e485de16a48547b1c6b272cf005d0b80b92e79 10-Aug-2014 Craig Stout <cstout@google.com> Fix action button selection backgrounds.

b/16799117

Change-Id: Iea26e35c63439f199d0300d5ca3f158161f2a09f
orizontalGridView.java
31b1448fe2a88d6bd338c42f19e40ddbf903cee4 08-Aug-2014 Dake Gu <dake@google.com> Merge "Set background on right panel if no margin on imageView." into lmp-dev
ae2614fe4c86c79344dc7dcb07777143b2fbd0d6 07-Aug-2014 Dake Gu <dake@google.com> ImageCardView: add methods for change info area background

b/15704903

Change-Id: I113c7be0b5b425371b536dfe252be21bc9e83aae
mageCardView.java
72a2146f4c3e6dbb84a5f9f92e7ab42d142dab04 08-Aug-2014 Dake Gu <dake@google.com> Set background on right panel if no margin on imageView.

Avoids thin color band on bottom of imageView especially in
transition.

Change-Id: Ieae86089e0cbe8fa36ea9277c90e7cdcf2db6c10
etailsOverviewRowPresenter.java
etailsOverviewSharedElementHelper.java
18c8048f17940359b8bce99cb46d24337bff8997 07-Aug-2014 Dake Gu <dake@google.com> DetailRow: Allow access details ViewHolder from row ViewHolder

Details row's ViewHolder is not intended to be subclassed.
Details Row has three parts: image, actionlist and details.
Instead developer should only replace detailsPresenter.
Leanback lib has a strong restriction so that it can change
the DetailsRowPresenter without breaking app's code. A typical
example is adding transition support to detail row that animates
images, action list and details.

Adding the access to details ViewHolder eliminates needs for
subclassing ViewHolder and put stuffs in. Instead, developer
should put stuffs in details presenter's ViewHolder.

b/14407649

Change-Id: I3b1c9d3fd7f551ad08b01a28a8964874a2025b88
etailsOverviewRowPresenter.java
b0181a77ce38f75a7d218745a330c5d80daacfb6 07-Aug-2014 Dake Gu <dake@google.com> matches part of leanback transition ux design

Change-Id: Id576015f7e36b3a8754e93c87726c635106bc8a5
etailsOverviewSharedElementHelper.java
dcc8de5c9a9a07474c5dac86660f0bbc82eaabce 06-Aug-2014 Dake Gu <dake@google.com> add Ripple click effect for cards

Change-Id: Icfef1c785deba51c4c64f7a3dabd8ea4335a03b0
aseCardView.java
372d07bb41510d91a6a662a1906aceb0ee759481 25-Jul-2014 Craig Stout <cstout@google.com> Add view fading support to PlaybackOverlayFragment.

Includes auto-tickle on input.

Change-Id: I58d1f6d87870d06527b3b80f7fedcdeab1b3cb6e
aseGridView.java
1223c56dd703a4a7725a4abf8c091d68348a2a53 05-Aug-2014 Dake Gu <dake@google.com> Merge "ImageCardView: add method to set drawable without animation" into lmp-dev
4cc255c1c9ce5f3a718970b6e0be2c3ae6abf9ed 31-Jul-2014 Craig Stout <cstout@google.com> Support for item selection in playback controls.

Change-Id: I620626efb69dbee0b1ba3ba87ef8b1a495059fe1
ontrolBar.java
ontrolBarPresenter.java
laybackControlsRowPresenter.java
aa93f6777233b789feb14d95d900b158d0ac4841 31-Jul-2014 Craig Stout <cstout@google.com> Fixed spacing of controls.

Change-Id: I56286e1b48c75c45fe5046a0aee2e2363a25558b
ontrolBar.java
ontrolBarPresenter.java
laybackControlsPresenter.java
ada0432e54a7a69478ef648523a8a66bc82861e9 05-Aug-2014 Craig Stout <cstout@google.com> Merge "PlaybackControlsRow actions improvements." into lmp-dev
19025301f907b7b706bec652304b39761086e39b 26-Jul-2014 Craig Stout <cstout@google.com> PlaybackControlsRow actions improvements.

Add outline and solid states for thumbs actions.
Use new MultiAction where applicable.
Shuffle now supports configurable highlight color.
Repeat icons updated.
Add HighQualityAction and ClosedCaptioningAction.
Uses styles to allow icon overrides for stock actions.

Change-Id: I0db4e4695252f963e6ac171ec12fde1c3358953b
laybackControlsRow.java
502e6531c4ee86b6671cd692bd3e2d0ffd5d65c4 05-Aug-2014 Craig Stout <cstout@google.com> Fix for measure when views have been removed.

b/15919486

Change-Id: Ib85e72d0dbabac985a33aa714f51082af37c3eab
ridLayoutManager.java
e5b67be786d519377ae275ef76f3ad72187183d5 28-Jul-2014 Craig Stout <cstout@google.com> Support for varying margins on current time and total time labels.

Change-Id: I7286c38f345184a47c6dd5ebcbb3ac2961dcc000
laybackControlsPresenter.java
laybackControlsRowPresenter.java
44f004b2612b04510a09a4c1e33f5a109582d669 02-Aug-2014 Craig Stout <cstout@google.com> Fixes to search orb focus animation.

Quick scale up and scale down.

b/15492575

Change-Id: I8379e1ce16110faedec275d5c24b07c1d92c8218
earchOrbView.java
558f7b70035c50045908efca5f4f3d65df685cac 02-Aug-2014 Craig Stout <cstout@google.com> Seach orb scale on focus includes the icon.

b/16324433

Change-Id: I8c0a028ca19eb2c6fcd12380004502142e4f5a14
earchOrbView.java
932feed83c3dbc49c9855a1736afd9d5a3428b8e 04-Aug-2014 Dake Gu <dake@google.com> ImageCardView: add method to set drawable without animation

b/16790928

Change-Id: I4e248c09edd90617bf4d4fba60765ff3e15e960a
mageCardView.java
6e0b2c07dacd32bec0d2745631d4f486d366f91e 31-Jul-2014 Dake Gu <dake@google.com> Merge "fix NPE when postAnimation multiple times" into lmp-dev
f4482e64217e38c0ad8f344da0e90e9e1cf3aa11 31-Jul-2014 Dake Gu <dake@google.com> fix NPE when postAnimation multiple times

Change-Id: I47b25aef0abe0b01616e4a7f8b264470def07787
etailsOverviewSharedElementHelper.java
0e9492360e123589ac8c54e0668901d567f788a6 26-Jul-2014 Craig Stout <cstout@google.com> Default focus goes to the middle control.

Change-Id: I1ffbd32993a796d904e1db1ace2d2ad89f5a8169
ontrolBar.java
058f08d235aa4188df24ed1fe12cd8673dd2f429 25-Jul-2014 Craig Stout <cstout@google.com> Merge "Add support for progress to playback controls." into lmp-dev
6dca725412977bb56b933bdec120e31909233cdb 22-Jul-2014 Craig Stout <cstout@google.com> Add support for progress to playback controls.

Change-Id: I63f0e93c9151cfa4ef4b4ade8ee2b9502771d4e8
laybackControlsPresenter.java
laybackControlsRow.java
laybackControlsRowPresenter.java
7ab1edf2b49f3cdcb9db7a1c60d0dc1e17a9aef7 16-Jul-2014 Craig Stout <cstout@google.com> Add PlaybackOverlayFragment and associated row and presenters.

Progress bar is not functional yet.

Change-Id: I6217385433d7c6621c68de68da93257efebe3c5b
ontrolBarPresenter.java
ontrolButtonPresenterSelector.java
laybackControlsPresenter.java
laybackControlsRow.java
laybackControlsRowPresenter.java
resenter.java
b1456a70fd1200bc6d9574edb030c9cb69c8c790 24-Jul-2014 Craig Stout <cstout@google.com> Merge "Add PlaybackOverlayFragment and associated row and presenters." into lmp-dev
4121f22713bbed467a977ec0d867ef53989ff374 18-Jul-2014 Dake Gu <dake@google.com> Add support for hero transition into detail overview row

b/15024618

Change-Id: Ibaadcd543b6cee9b8085d7c89f24b4cb88004a0c
etailsOverviewRowPresenter.java
etailsOverviewSharedElementHelper.java
f6729841c35fa9db061cdfe71c1aacef613a4e96 19-Jul-2014 Craig Stout <cstout@google.com> Merge "Pass the data object not the row to AbstractDetailsDescriptionPresenter." into lmp-dev
7d1196948811bc5f1b7ec0cdc74340fca60fc8e2 19-Jul-2014 Craig Stout <cstout@google.com> Pass the data object not the row to AbstractDetailsDescriptionPresenter.

This enables use of the description presenter by other rows such as
playback controls.

Change-Id: I306dc0eda76e36782b9074e80b48842d07053a8f
bstractDetailsDescriptionPresenter.java
etailsOverviewRowPresenter.java
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
etailsOverviewRowPresenter.java
152a664517049dab6374d779cdbf2274d4005d0c 17-Jul-2014 Dake Gu <dake@google.com> Merge "DetailsOverviewRowPresenter: Add method to get overview view" into lmp-dev
7728d53c5c50e8ed807e8f4a189e34684de04800 12-Jul-2014 Craig Stout <cstout@google.com> Fix details overview binding when drawable is null.

b/16237144

Change-Id: I5820c296b535aaadc52077711f6e0ca47c58199d
(cherry picked from commit 91bbebf55c09a58325c1836fc9f52fd82bf5fd09)
etailsOverviewRowPresenter.java
b34a2372153298ebdc3e148e1c1f3b3924efab08 15-Jul-2014 Dake Gu <dake@google.com> DetailsOverviewRowPresenter: Add method to get overview view

Use the overview view instead of imageview for activity transition.

Change-Id: If350a536ffc3294635ee9feffc10b78e1abd06f9
etailsOverviewRowPresenter.java
73d17f7cda162797e3d10e47445bf44b2c842170 10-Jul-2014 Jerome Poichet <jpoichet@google.com> Merge "Fix initial focus in SearchBar"
afe1da48b4673f64c67c130237dd485a34a69c1b 10-Jul-2014 Dake Gu <dake@google.com> fix doc build - re-add @deprecated

Change-Id: Ib7c09752ac7e9acb0e55eacd3749d6347c2f3db2
erticalGridPresenter.java
3cbe5c34f9710da1ab935b45f568995b12219ca2 10-Jul-2014 Alan Viverette <alanv@google.com> Remove @deprecated from VerticalGridFragment/Presenter doc

Fixes docs / update-api builds target.

Change-Id: Id4c2d4942070109b627166eb8ae97eafd193f5ee
erticalGridPresenter.java
2680c6a2ed5b2567d9709a5adb419728e062d686 11-Jun-2014 Jerome Poichet <jpoichet@google.com> Fix initial focus in SearchBar

- Turns out I was explicitely requesting focus for the EditText when
attaching to the window
- Start recognition automatically on start

b/15527718 In app search in Play Movies causes keyboard to flash and disappear

Change-Id: I1c746da01e3746dd62317ad2282a794f21a8049c

Conflicts:
v17/leanback/src/android/support/v17/leanback/widget/SearchBar.java
earchBar.java
947dbf076cd019e3c26217fbc7aa21e860d68044 10-Jul-2014 Dake Gu <dake@google.com> Use new listeners in VerticalGridFragment

Change-Id: I77f6a8f90bf2bd9508ec44a047c2aceeddd1b7b0
erticalGridPresenter.java
13fa060612629dc3882f57f5530d4f72f050c12d 09-Jul-2014 Craig Stout <cstout@google.com> Merge "Details row may disallow scaling up of images."
e23ea69ec54eb70d17239ba671fcd75563780553 08-Jul-2014 Craig Stout <cstout@google.com> Details row may disallow scaling up of images.

Margin around image now used in some cases.

b/15762107

Change-Id: I78f12b51cc5a4c550d407a33e8f56c09f687e8da
etailsOverviewRow.java
etailsOverviewRowPresenter.java
9de363b8db05106b03d115c266859fe200d41db7 09-May-2014 Dake Gu <dake@google.com> Preparing for transition

In order to make transition work, user needs
to get current clicked view, added view parameter
in all our listeners and deprecated old version.

add methods to access imageview of cardview.

Change-Id: Ibccfae4bf13c623047475f2147a685b10e44c278
etailsOverviewRowPresenter.java
mageCardView.java
istRowPresenter.java
nItemClickedListener.java
nItemSelectedListener.java
nItemViewClickedListener.java
nItemViewSelectedListener.java
owPresenter.java
f2df33adb72d7a4138d00128bf66751ad77ecaba 28-Jun-2014 Dake Gu <dake@google.com> Merge "Use ViewCompat for postOnAnimation"
49c83b12201dde5b93d4eca3d44478e0c967a2e6 26-Jun-2014 Yigit Boyar <yboyar@google.com> Pass recycler to LayoutManager#onDetach callback

Bug:15736907
Change-Id: I6cd50800ebae0ff10b99665fcda77b0da411065c
ridLayoutManager.java
e3582bec2e51351a3116612ad529d7eb29a82bb7 27-Jun-2014 Dake Gu <dake@google.com> Use ViewCompat for postOnAnimation

Change-Id: Ia1013fc3830258eb6f3a7d4dd9db664597ce18ac
ridLayoutManager.java
3de146291132c3d463941e34f0609a3dd15d6784 27-Jun-2014 Dake Gu <dake@google.com> Fix NPE when detached RecyclerView schedule onLayoutChildren()

b/15911289

Change-Id: I99ef70d585147f7f8d8a9d0923e8e667fb780d19
ridLayoutManager.java
4fdd3589c982860b831c0fad63c0082cb9079f47 24-Jun-2014 Craig Stout <cstout@google.com> Allow developer to specify search orb colors.

b/15774559

Change-Id: Ie8522f55b1dedf81410eaf60980509d1d8756fd5
earchOrbView.java
itleView.java
74ecd2848a6ceaed6a4dcaed4748b4fb688de020 19-Jun-2014 Dake Gu <dake@google.com> VerticalGridFragment: use z-order instead of customized drawing order.

Change-Id: I1a6efa101416b81cf759dd63dd76c3a50ef8cce5
erticalGridPresenter.java
cd3fcab8bbbea194b72422f3977b8488ef2ad207 19-Jun-2014 Dake Gu <dake@google.com> Merge "ListRow: Use Z order instead of customized drawing order"
0fcad32410ad29031630bb9cc2da35d33a4aa906 19-Jun-2014 Dake Gu <dake@google.com> ListRow: Use Z order instead of customized drawing order

This makes much sense that drawing order is swapped when
z values comparison swaps instead of immediately switch
z-order on focus change while new focused view has not
scaled up.

Change-Id: I78b7e4bff29d8ebc0ce128d5783f0c89e29a2bbe
aseGridView.java
istRowPresenter.java
hadowHelper.java
d2fd82409150a29da24eb97009d1fa59ec0a0f07 19-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager clean up code never used

Change-Id: I46660343b16ad5eb6e811175181656f4654080c1
ridLayoutManager.java
72761b833b535ef717ff4241f30b8b79ad9317bf 19-Jun-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager clean up code never used"
ac98cd2905e0bac5ace2d4527048ca5a4a5871ce 19-Jun-2014 Craig Stout <cstout@google.com> Merge "Fix action bar fade right."
819b4e55bcf37847548a55c5dac0dfa8323975f6 19-Jun-2014 Craig Stout <cstout@google.com> Fix action bar fade right.

Must ensure that views have been laid out before checking bounds.

Change-Id: If1ccab473d8b7212f2c36a6b1843c50ffda340d3
etailsOverviewRowPresenter.java
08a42433300b4617bad27bda1214e12ca7854adc 11-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager: Fix WindowAlignment algorithm

The current algorithm makes assumption that if the scrollCenter of a view
is before the middle point of window, we will align the first item to
start edge. This does not work if the first item is too large, e.g. in
Search, the item's center position is after the middle point of window.

The fix is to add more flags for algorithm so if it's first item, it should
always be aligned to start edge of window.

b/15547766

Change-Id: I81f8b68c1739b7df1fa08d94d3a23b6c9e495747
ridLayoutManager.java
indowAlignment.java
69e74bd8956577d9a3414b81ec661fd5fee42e19 16-Jun-2014 Craig Stout <cstout@google.com> Add L-only shadows to search orb and details overview.

b/15676752

Change-Id: I616c31824c741eacfbdbe8526c530c5617012cb3
etailsOverviewRowPresenter.java
earchOrbView.java
hadowHelper.java
80d04d2265fe28800fcbc7e8cc7d6d229a7913d8 12-Jun-2014 Tim Kilbourn <tkilbourn@google.com> Update more leanback javadocs.

Bug: 15149629
Change-Id: Ie98f9ab4a6ab555e06626e692fc2a75d207840e9
etailsOverviewRow.java
etailsOverviewRowPresenter.java
3d5bfaf87ae4e70c8d11abc06dde8256bbafc0c6 12-Jun-2014 Tim Kilbourn <tkilbourn@google.com> Merge "More leanback javadoc updates." into lmp-preview-dev
beeaa973d1b5bd79ee8ae798141231d9a315eba7 12-Jun-2014 Tim Kilbourn <tkilbourn@google.com> More leanback javadoc updates.

Bug: 15149629
Change-Id: I53221f65d79f25e6683af4e5205fecb8e666aed8
ction.java
rrayObjectAdapter.java
ursorObjectAdapter.java
bjectAdapter.java
c22050c807ebd3f67573a8a48155e02bafb8782e 12-Jun-2014 Jerome Poichet <jpoichet@google.com> Merge "Improving overall memory usage" into lmp-preview-dev
c8737e35c611362db621b25656b57be0c2b8a306 12-Jun-2014 Jerome Poichet <jpoichet@google.com> Improving overall memory usage

- Making sure we release SoundPool when done
- Preventing multiple recognizers from being started if pressing voice
repeatedly.

b/14057166 Got a "can't open microphone" error, OOM

Change-Id: I8082036962d2f536cee88677d5398af08af575f4
earchBar.java
961a8f12d1fbeeb86ea066f9f2c693abb2ce50f2 12-Jun-2014 Tim Kilbourn <tkilbourn@google.com> Update leanback javadoc.

Bug: 15149629
Change-Id: Ib3977c497f1fc0fd2a9cc8527347a85e8f1e8d40
aseCardView.java
mageCardView.java
ow.java
owPresenter.java
94920246f7f5a0d4dae794058020cd67c5701056 10-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager: Do not declare predictive layout support.

Because GridLayoutManager hasn't done any predictive layout,
it shouldn't declare support it. Use a different way for
enable/disable itemanimator.

Bug: 15542012
Change-Id: Ieb71f4badb56496c20c043e55043e5e5d1eec1da
aseGridView.java
ridLayoutManager.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
ridLayoutManager.java
fb413100a0ce8c0b68a1c5f6dd9cee5e0f981700 10-Jun-2014 bulic <bulic@google.com> Removed setting of search orb defaults in xml

doing it programatically to avoid forcing users of SearchOrbView to set
their theme to Leanback
b/15515406

Change-Id: I6717449e18ac01121fb43dc67ba6210f17e38c5b
itleView.java
5a59bde085588f95dc067bd1ed64a940f355343c 09-Jun-2014 bulic <bulic@google.com> Fixed titleview/searchorbview crash

-set bright color to be null
-use correct defaults (even if theme is overriden)
b/15515406

Change-Id: Id8077fe50ecc4e1d1e436ffc586bb23a9ac55fe2
earchOrbView.java
itleView.java
56603224aeccbed8b7a1bdb303725fa15b09b820 09-Jun-2014 bulic <bulic@google.com> Merge "Added bright color parameter to search orb" into lmp-preview-dev
decb4e284bb5befddcc3812564dab41049fca303 09-Jun-2014 Jaekyun Seok <jaekyun@google.com> Fix build breakage

Change-Id: I70d2dad01c2cc6da222b7e2e92246e8f3c0bb47b
earchBar.java
a1798f408d3acafffc93cce1b309a54dce52d22d 08-Jun-2014 Jérôme Poichet <jpoichet@google.com> Adding search tones

b/15479577 Tone missing when starting voice search in-app

Change-Id: I53782b0a734d5d6f9cc2fa05b82b6f7f614f054c
earchBar.java
8b55ff20146055bb0c4c5544814fcf530e03649a 06-Jun-2014 bulic <bulic@google.com> Added bright color parameter to search orb

b/15427416

Change-Id: I10c1d03db62b25d28cd573ff7fa7a491648a3ac9
earchOrbView.java
4c94efdb022031d2cbf5e80c8aa3703b01d78f68 08-Jun-2014 Dake Gu <dake@google.com> fix bouncing effect of selected card view

When card animation is enabled, the scale pivot changed dramatically
because card height is changed before/after browse transition without
animation. There is much less bouncing in "card -> card navigation"
because pivotY is animated with card height animation.

The fix is to allow pivotY being at a fixed location regardless info
height. Pivot values also need to be transfered to shadow container
since the actual scaling is done on shadow container.

b/15413508

Change-Id: I9b2ab7e9ef8d961d3a5072bf47f2e68e9b15f3d9
aseCardView.java
hadowOverlayContainer.java
8d610b69ca210524b3d87f42abc07029297609b8 08-Jun-2014 Tim Kilbourn <tkilbourn@google.com> Merge "GridLayoutManager: fix some animation jumpiness" into lmp-preview-dev
78093fbede6ea2d189e5d0ad176466ef140e950c 07-Jun-2014 Tim Kilbourn <tkilbourn@google.com> Merge "BrowseFragment javadoc cleanup." into lmp-preview-dev
40827ad908a3dfaebc496004e2c5690195000a76 06-Jun-2014 Tim Kilbourn <tkilbourn@google.com> BrowseFragment javadoc cleanup.

Bug: 15149629
Change-Id: I7c598d8d27127fd8acd8e93f7557e6cb1037c0b3
ow.java
777317218bacac9d5f0979306608efc217055921 07-Jun-2014 Jerome Poichet <jpoichet@google.com> Merge "Fixing default values" into lmp-preview-dev
033fd1bdda0e33e4f81e323f61ab10840cc649a2 07-Jun-2014 Tim Kilbourn <tkilbourn@google.com> Merge "Details overview image now scales." into lmp-preview-dev
937f910ceb3364a1b84899c2b5f1ff5384f38f84 07-Jun-2014 Jerome Poichet <jpoichet@google.com> Fixing default values

- Fixing the way we retrieve default values to avoid crash when not
setting any attributes
- Adding documentation for the widget, since this is starting to become
a "first" class citizen

b/15473391 Regression SearchOrbView crashes when no attributes are passed

Change-Id: Icbce9e9a452b124968776bdeb00d89752697b76d
earchOrbView.java
6f2623c3520b1fde1e30bce75d4e7cd38bc7c156 07-Jun-2014 Jerome Poichet <jpoichet@google.com> Merge "Fixing SpeechRecognizer leak" into lmp-preview-dev
50ea3557b75826b3f51480715df1973472e345c4 07-Jun-2014 Craig Stout <cstout@google.com> Details overview image now scales.

b/15394334

Change-Id: I1007b9bbcd9e6f649d2589654aebb879294dea27
etailsOverviewRowPresenter.java
66ae15f5fa8b6714fa78e6d3f94fe85af06ddabd 07-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager: fix some animation jumpiness

Looks like a typo that cause secondarySize is not updated in onMeasure()
and later a posted Runnable update the secondarySize.

Also focused item maybe out of bounds if we scroll really fast. So
we should measure every child.

part of b/15413508
b/14885970

Change-Id: I7478ea39f1fb429f483b5f25b69118b66c086c21
ridLayoutManager.java
4fbaf9b54d7f9723f3ec5c320db9cea887eeff7b 07-Jun-2014 Jerome Poichet <jpoichet@google.com> Fixing SpeechRecognizer leak

Since there is no lifecyce on SearchBar, moving the ownership of the
SpeechRecognizer to the SearchFragment.

- Creating a SpeechRecognizer when SearchFragment resumes and pass it to
the SearchBar
- Destroy SpeechRecognizer when SearchFragment pause, and unset it in
the SearchBar
- Ensure recognition has a recognizer before starting and stopping

b/15460657

Change-Id: I95dc3f37b5c4ae7dbd337dcc90d28c6ee17f8f09
earchBar.java
2fb330f7a11a5c87d4ea8b19a97a99f65b81b42e 06-Jun-2014 Alan Viverette <alanv@google.com> DO NOT MERGE Material theme

Change-Id: Idd8fd14c15da11134422511c8b64f8a24cde2f12
earchOrbView.java
ed57770cf2211040bffe0bddd55e7c28fb47a42a 06-Jun-2014 Jerome Poichet <jpoichet@google.com> Setting orb color later in the constructor

Turns out attributes to set the color were called before the animation
parameters were set, so the bright color was computed as being the same.

Moving attributes loading to a later phase in the constructor

b/15467438 Search Orb doesn't color shift when focused

Change-Id: If276015b187fdebe883f3fa83f0fffb5368c65c8
earchOrbView.java
f0e71182c62bba18e9d8098941a29c4f5031ce36 05-Jun-2014 Jerome Poichet <jpoichet@google.com> Adding search orb attributes

Adding color and icon as orb attributes so that McLauncher can customize
the orb as they wish

b/15455246 Add parameters to customize SearchOrbView

Change-Id: If4efc11c6beb17350739dd65e6f1c9e3975858f9
earchOrbView.java
a146b68648170a782838968dae9fe4497a3e80a9 06-Jun-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: fix NPE when adapter changed in scrolling" into lmp-preview-dev
b8f95f79fdba6860887d6826a9447cf15cea6d7d 06-Jun-2014 Jerome Poichet <jpoichet@google.com> Merge "Add API to provide suggestions (aka completions)" into lmp-preview-dev
911b1d9ec87dcaa9b4a5a3d4e13c54f21bf03398 05-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager: fix NPE when adapter changed in scrolling

Seems like when playback activity pops, the adapter was changed
but scrolling task is still going on.

b/15004615

Change-Id: Iea86e0b9b582c3e0e0f3a435aa5092173642672d
ridLayoutManager.java
731066a59e10ddc7bb6c95d0b91b3e0e11e10396 05-Jun-2014 Craig Stout <cstout@google.com> Add TitleView and use it to complete VerticalGridFragment.

b/15432740

Change-Id: I00740c265e76b93b943d402be452c74d889510e4
earchOrbView.java
itleView.java
2a4917392556a63a0d4d3d8ecbc55780e6e5303b 05-Jun-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: fix scroll bug" into lmp-preview-dev
6ef7396cd226efcce83389c5107166c121e25785 05-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager: fix scroll bug

When we try a possible new maxScroll we need try with the newEdge.

b/15449400

Change-Id: Icb111eabb988538923b88f4bd52bb27ec7680929
ridLayoutManager.java
indowAlignment.java
9f7c2a242cf64f9790f28d0a103a0bea0b3640b7 05-Jun-2014 Craig Stout <cstout@google.com> Merge "Fix VerticalGridFragment focus navigation and title transition." into lmp-preview-dev
b04c500ecc9109673d0384e85f62f0485e3f6b4f 05-Jun-2014 Jerome Poichet <jpoichet@google.com> Merge "SearchOrbView shouldn't be invisible itself" into lmp-preview-dev
2ed0e8a36ac111a3661c56f5dbbe74cfe0696eee 05-Jun-2014 Jerome Poichet <jpoichet@google.com> SearchOrbView shouldn't be invisible itself

As McLauncher was trying to use SearchOrbView, it was discovered that
the widget made itself invisible. It really should be invisible by
default in the title bar, not the widget itself.

b/15435741 SearchOrbView widget is invisible by default

Change-Id: Ifbe0dbaa69a282289debf80974195c3b193a5928
earchOrbView.java
e5f2388b8d24876ebbd6daf302487bf452245d50 04-Jun-2014 Jerome Poichet <jpoichet@google.com> Add API to provide suggestions (aka completions)

b/15436910 Add API to SearchFragment to allow passing suggestions to IME

Change-Id: I53850dd74d99f7edb04739436c2b66c5dcae8bd0
earchBar.java
9020c0aec57b4e8994d66b7cd1a89c225e9bfa11 05-Jun-2014 Craig Stout <cstout@google.com> Fix VerticalGridFragment focus navigation and title transition.

b/15432740

Change-Id: I6ac533a88d8ce8b17aa28d3605e688536bfbb8e5
aseGridView.java
ridLayoutManager.java
01d63e7d432a412718d7c8a28b558744a372abcd 05-Jun-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: scroll limit check" into lmp-preview-dev
a9cd123e18f21ada648a8c715989c7b900a5c3e7 04-Jun-2014 Dake Gu <dake@google.com> Merge "dont unbind header text so the view can be fade out in transition." into lmp-preview-dev
f752e9582ac7fc97ae5090e76321343871edb810 04-Jun-2014 Dake Gu <dake@google.com> dont unbind header text so the view can be fade out in transition.

This is because we changed from removeView to recycleView when layout is disabled.
However we still want to use the recycled view during transition.

b/15417457

Change-Id: Ia499176117688e644edfba0030b112ea0a79585c
owHeaderPresenter.java
79b86b227e6794937ec311522b50e727f8eec263 04-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager: scroll limit check

ScrollMin/Max are only updated when we added first/last
view or where fastRelayout may change first/last view position.

It's not necessary to invalidate the first/last view position
in every layout pass since most time they are the same.

however, we should invalidate scrollmin/max when the first/last
is not visible yet but current visible items already grow out
of the scrollmin/max range.

Tested on TV and tablet.

TODO: scrollMin/Max on secondary axis.

b/15414917

Change-Id: I125025a5865df69316dadc612b52b67d8f27a250
ridLayoutManager.java
taggeredGrid.java
indowAlignment.java
45ef49ba4d3b9bd0a4c9764749b3f9faa6c6abd6 04-Jun-2014 Craig Stout <cstout@google.com> Fix child selection listener dispatch.

b/15425688

Change-Id: I6e3e28074f6a4c163f400b5c9e99068154a3d6f8
ridLayoutManager.java
7746dd4ede9dba98bda6519c395f9ed452df8bf0 04-Jun-2014 Craig Stout <cstout@google.com> Merge "Fix text spacing on rebind." into lmp-preview-dev
aea109d1024c5fdd582b328b58eb8b52341d50d3 04-Jun-2014 Craig Stout <cstout@google.com> Fix text spacing on rebind.

b/15399014

Change-Id: I961a8eb5cee365e70fef412d7871890fccd2a6e6
bstractDetailsDescriptionPresenter.java
76c3b90228d8c4afc6d24c683e9c95f41ae619c9 04-Jun-2014 Jerome Poichet <jpoichet@google.com> Removing ununsed imports

Change-Id: Id398857ca752b9ac612d0e596da1cce58e6e3a6f
ctionPresenterSelector.java
ocusHighlightHelper.java
orizontalGridView.java
temBridgeAdapter.java
istRowPresenter.java
istRowView.java
nActionClickedListener.java
earchBar.java
hadowHelper.java
erticalGridView.java
e0a1253fccf626dbc9c0d3aaf03ab903d1485171 04-Jun-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: avoid redundant dispatchChildSelected" into lmp-preview-dev
3543308c80a5a0bc3a2401dc0368a99b754d65c1 04-Jun-2014 Craig Stout <cstout@google.com> Remove more actions view.

b/15409230

Change-Id: Ibfb2e3e08500bf736aa20c490cce0456b596d901
etailsOverviewRowPresenter.java
0d9c25bab934568d041d93281287f831fdd0c169 03-Jun-2014 Dake Gu <dake@google.com> GridLayoutManager: avoid redundant dispatchChildSelected

If it's fastRelayout, we fire dispatchChildSelected only on mFocusPosition
changes, this can avoid mutliple events fired by view size change animation.
If it's not fastRelayout, it can be a structure change, so we
always dispatchChild regardless mFocusPosition changes or not.

In scrollToView triggered not in layout, there is no structure change
so it will dispatchChildSelected only if mFocusPosiiton changes.

b/14807080

Change-Id: I5ac770181542955360c4d0531d5110694db04b89
ridLayoutManager.java
e0fc06a975f22a71c6d106a33feb4859ce8fe191 03-Jun-2014 Jerome Poichet <jpoichet@google.com> Merge "Handling missing RECORD_AUDIO permission." into lmp-preview-dev
66a714e3184c4be0d35dff3e9887f77ce84fa5eb 03-Jun-2014 Craig Stout <cstout@google.com> Merge "Further browse spacing fixes to match redlines." into lmp-preview-dev
4cd4cce277571385f4d1a56d5348578c38368cbe 03-Jun-2014 Craig Stout <cstout@google.com> Further browse spacing fixes to match redlines.

When not expanded, padding is greater for the selected row.

b/15328938

Change-Id: I97f2a40b542372a7f15ff6cfc30d7a23e74eb8a5
istRowPresenter.java
owHeaderPresenter.java
99f1278ee0fffafdba26a48d0482e2a30e8df591 03-Jun-2014 Craig Stout <cstout@google.com> Merge "Fix NPE when measuring with wrap_content and no items." into lmp-preview-dev
10960072d3c1f9c7f42f9ae77adbfb12f9aed138 03-Jun-2014 Jerome Poichet <jpoichet@google.com> Handling missing RECORD_AUDIO permission.

Added documentation on SearchFragment and SearchBar to note the
requirement for the RECORD_AUDIO permission.

Added documentation on SearchFragment and SearchBar listeners to explain
that submit can be called without any call to changed.

Check for RECORD_AUDIO permission, throw IllegalStateException when not
found when loading SearchBar.

b/15350629
b/15326734

Change-Id: I9b55fc76ecb438087d1d389e3555d2652ded68d9
earchBar.java
056561d81012983d2d27b8665c4aeabb427174cb 03-Jun-2014 Tim Kilbourn <tkilbourn@google.com> Set defaults for brand color and search orb color.

Bug: 15162080
Change-Id: I0c184ac1dd8f30744966fe0232c37a263c0bad96
etailsOverviewRowPresenter.java
92a959ab2b3c3c99aabb03cd999ff223763128da 03-Jun-2014 Craig Stout <cstout@google.com> Fix NPE when measuring with wrap_content and no items.

b/15369861

Change-Id: I338e2be5613442900e23ea4e1a590db7cc5f2482
ridLayoutManager.java
e748917a5661b0de79c7082267799f2530badde6 03-Jun-2014 Craig Stout <cstout@google.com> Set all views in a vertical grid to activated.

b/14467535

Change-Id: I9d75c8264a4e2a6b640170b4c382fa258e80ab99
erticalGridPresenter.java
9de682083d3da5b1127969ee1fd7b74561aa9acd 02-Jun-2014 Craig Stout <cstout@google.com> Fix view recycling.

GridLayoutManager must recycle existing views when rebound.
ItemBridgeAdapter must track view types globally.
Increase the max recycle pool size (defaults to 5).

b/15291691

Change-Id: I861da37f39e1a35d1d7bd38579269b814b736234
ridLayoutManager.java
temBridgeAdapter.java
istRowPresenter.java
83118b72d02074ee35f07ad0253579565c16882b 31-May-2014 Craig Stout <cstout@google.com> Fix visibility of "more" actions row view in details overview.

b/15344783

Change-Id: I2d2f74f1d90c1e1c4111671df6a66fb5dc19f987
etailsOverviewRowPresenter.java
37390806e43578a40f1275c3c0497eaa83971697 30-May-2014 Dake Gu <dake@google.com> GridLayoutManager: don't fire selection change event in prelayout.

This is not only duplicated, but also might be wrong with index mangled
by RecyclerView in prelayout pass.

b/15343493

Change-Id: I5960f67dd66c6f55814aadcc904b4bf200392a39
ridLayoutManager.java
853dbb9531de43103829847b1121ad049f930806 30-May-2014 Dake Gu <dake@google.com> Merge "use quantum shadow" into lmp-preview-dev
19312c5f247559a9483d874e62150c49d36aa478 30-May-2014 Dake Gu <dake@google.com> use quantum shadow

b/15186925

Change-Id: Ia4e129ff85566cda496fcb28f279c762980d6da3
hadowHelper.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
ridLayoutManager.java
a5d1266687a2448db606a34cb387b31745d2c035 30-May-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: supports item animation" into lmp-preview-dev
4200ae975bfd7e4dc2e5c2d838c070470fcb3e2a 29-May-2014 Dake Gu <dake@google.com> GridLayoutManager: supports item animation

Remove all GridLayoutManager animation code and use item animation
in RcyclerView.

TODO: there is a regression that hovercard resize animation is not supported
but we dont have a use case for now.

Fixed a NPE in scrollVerticallyBy

b/15079477
b/15004615

Change-Id: I67245bd0c2f6c3265a3b309b5f47e3f0c10ac6b3
aseGridView.java
ridLayoutManager.java
a7ba44025ec38541f429a830763ff799b5e5267e 30-May-2014 Dake Gu <dake@google.com> ArrayObjectAdapter: Add notifyArrayItemRangeChanged() and indexOf()

These are handy methods for user to use ArrayObjectAdapter.

Change-Id: Ib61cca110dbee893d5f53f19ae8be669c683a156
rrayObjectAdapter.java
efea02cbf3b1f69cbff4e98f859a521c95484fac 29-May-2014 Craig Stout <cstout@google.com> Merge "Improvements to browse search orb." into lmp-preview-dev
983ce5a01bb4dbbeb9c752f7ecf98653ea09174f 29-May-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: stop using adapter + smooth scroll support." into lmp-preview-dev
e7d7944fe8400baa17d4bb66069e3e9976615f31 29-May-2014 Dake Gu <dake@google.com> Merge "RecyclerView Cleanup" into lmp-preview-dev
aadb8928f5920c758c1a385bbc8b8b128a60657c 29-May-2014 Craig Stout <cstout@google.com> Improvements to browse search orb.

Now supports color animation.

b/15094070

Change-Id: Id66afa01711bcac4c950f19fda14d9593ff6b539
earchOrbView.java
2ad1027496fefed641f91f3cde2f8c8b468bca0c 22-May-2014 Jérôme Poichet <jpoichet@google.com> DO NOT MERGE Retroactive feedback

Incorporating feedback from ag/470934

Change-Id: I5338c2a9819b9c1c741f4bd97cef9cfef118c0e1
(cherry picked from commit 17ff6d32785b726b67fd3ac18e273651f15f59c0)
earchBar.java
6e0cf9c34636f450f1ada4bf3f53a98c7a3fe9df 27-May-2014 Dake Gu <dake@google.com> GridLayoutManager: stop using adapter + smooth scroll support.

Stop using Adapter, use State. State and Recycler references
will be released after onLayoutChildren() and scrollHorizontallyBy()
finishes.

Switch to use SmoothScroller for scrolling to invisible child.

Change-Id: I8d0e1e93dd226328cc337ab26f113c7c52cfc7c5
ridLayoutManager.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
ridLayoutManager.java
2a2b18cd1bc49aa5f51d2a2ab7272328ee0235f3 28-May-2014 Craig Stout <cstout@google.com> Fix details overview multiline title.

b/15218751

Change-Id: I93b954a96d8856bb73a8ca659fc59946f73cc1ca
bstractDetailsDescriptionPresenter.java
9c0d20dbcdf7afc18f429ad54a2250f82bd85841 24-May-2014 Tim Kilbourn <tkilbourn@google.com> Override correct scrollBy methods in GridLayoutManager.

Change-Id: I394a9267efd720f2b0de0a68d46914d0aa1c26c3
ridLayoutManager.java
8a6b74972056bb2a58b0a7f14d58f098a9d012be 23-May-2014 Tim Kilbourn <tkilbourn@google.com> Merge "Update leanback lib assets." into lmp-preview-dev
f9e105a8516efe06d1bdb8df2d569261c3b11dc6 23-May-2014 Tim Kilbourn <tkilbourn@google.com> Update leanback lib assets.

Some names were updated by UX to prevent possible naming collisions.

Change-Id: I64594c5b4f682c0b916e0485270da129074752e1
peechOrbView.java
268de3d2ea3de1be0725a80bbc79dd7b8b18617e 23-May-2014 Craig Stout <cstout@google.com> Browse redlines improvements.

b/15094070

Change-Id: I842070f69c136eaae33e6c66ff02828c49be3175
owHeaderPresenter.java
4a2e567c6a387fbd6122930155ac22d3f4b05e35 23-May-2014 Craig Stout <cstout@google.com> Merge "DO NOT MERGE Details actions polish." into lmp-preview-dev
2e0c922430f8c285b4325da52d69c09451069c93 22-May-2014 Craig Stout <cstout@google.com> DO NOT MERGE Details actions polish.

Includes fixes for fading edges on HorizontalGridView.

Change-Id: I04086b0d4c6f5047a6255217109cc1d6a15c6330
(cherry picked from commit 1c077500dda9d2e1c67aa0b19de36ded877a58fe)
etailsOverviewRowPresenter.java
orizontalGridView.java
64cb72ad6f931743fcb36aa2249e90aaabfd6a4b 22-May-2014 Craig Stout <cstout@google.com> DO NOT MERGE Fix for item alignment.

Change-Id: I372f6c610ac686dbfeed7b30664d7466a1675cd2
(cherry picked from commit 83964c856041da6788869eda5bcb97fe77016f00)
temAlignment.java
a9b678302ddee2149e5605afd429c74ba5625c24 22-May-2014 Jerome Poichet <jpoichet@google.com> Redlines for in-app search

Adding search box, handling different states UI (voice, text, focused,
unfocused)

b/14993328 | In-App Search: Implement Redlines and Motion

Change-Id: Icdd897e0552e68583781199d634383b02356fade
earchBar.java
peechOrbView.java
b6bccbc28a8ecac1b039afdedb89ba9af6a9908d 22-May-2014 Jerome Poichet <jpoichet@google.com> Merge "Adding voice support in search bar"
ea779163321dca33eddde61749c34eed4833883e 22-May-2014 Craig Stout <cstout@google.com> Merge "More details polish."
7c004076d5289caa0af7b5fb04cf7a3374be56b1 22-May-2014 Craig Stout <cstout@google.com> More details polish.

Change-Id: Ic8faffa8265def25fee1a09634e5ecd07e4cb49d
bstractDetailsDescriptionPresenter.java
ctionPresenterSelector.java
etailsOverviewRowPresenter.java
ocusHighlightHelper.java
25aacd3f5896ec09053739cc731bdbab3a6f2b81 15-May-2014 Jerome Poichet <jpoichet@google.com> Adding voice support in search bar

- Use private IME option to catch when voice key is pressed in IME
- Use private IME option to allow "escape north"
- Add a speech orb/button in search to start recognition
- Animate speech orb when speaking
- Handle switching from voice to IME

Change-Id: I14774ca173a8da94b26f4942e267377a496b838c
earchBar.java
peechOrbView.java
0d9a8f694bd3fedbd758de124f23992b7b8d7ac7 22-May-2014 Jerome Poichet <jpoichet@google.com> Merge "Adding SearchFragment title and badge"
514bdd5473ae7f4da990d6035422d0784c6c344e 16-May-2014 Jerome Poichet <jpoichet@google.com> Adding SearchFragment title and badge

Add getter and setters to set the hint and the icon in the search bar.

Change-Id: I63bc323ef5ce886efe578a58ddca7eb0fc8717b5
earchBar.java
e43e9266c4b7e4902fefb5d2a0cacca90a3d2681 16-May-2014 Dake Gu <dake@google.com> Browse: fix the space between rows in not expanded state

when expanded goes to false, half the vertical space to make
it equal to the horizontal space between cards.

remove the hardcoded 16 pixels due to compensating paddingTop
of horizontal grid view. Instead, introduce a flag
"setItemAlignmentOffsetWithPadding" in ItemAlignment.
So row will align the top of horizontal grid view(R.id.row_content)
plus the top padding of horizontal grid view to a fixed position
vertically.

Fixed some bug of handling optical bounds in ItemAlignment.

Removed duplicated browse margin dimens.

Change-Id: Ic3dcad2935bc7e4b525e6f830603bdce46e73086
aseGridView.java
ridLayoutManager.java
temAlignment.java
istRowPresenter.java
65058322c6009c57c47b73268568a5e259139a2c 17-May-2014 Craig Stout <cstout@google.com> Merge "New details ux spec."
d2c235afaa4119599fd8bfc9bff65c5af9a8fdc1 16-May-2014 Craig Stout <cstout@google.com> New details ux spec.

DetailsOverviewPresenter supports setting a background color and specifying
the layout style, large or small.

Change-Id: Icd16dfd39360d20aae23adc8662fef8e55bca187
bstractDetailsDescriptionPresenter.java
etailsOverviewRowPresenter.java
4510b275c55d9a3dae13af38196d3bc6affd3dfc 16-May-2014 Dake Gu <dake@google.com> fix janky "hide title transition"

don't prune the rows during transition, so they can be slided
out instead of faded out at original position.

b/15017332

Change-Id: Icc6e8b7d7c0b1f10ae2372bcb1b644455f1063d2
aseGridView.java
ridLayoutManager.java
9a1be9a2f40d23a2d08a6ea6cd59735ae9abd0de 16-May-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: fix layout animation"
2a0b55c390f4b75b3ae752b8407bf3da9d18a01e 16-May-2014 Dake Gu <dake@google.com> GridLayoutManager: fix layout animation

Just animate between x/y changes in layout, shouldn't animate
scrolloffset change.

b/14594235

Change-Id: I68e5cc9c53eb2e26ad50f09ff7b4064d05f0c203
ridLayoutManager.java
2cd8c3f3ca891f8b27bbc10ffc044cace0185ac2 16-May-2014 Jerome Poichet <jpoichet@google.com> Let the receiver handle the back key.

Was using onKeyPreIme to detect the back press, but was returning true
as if it was handled by the search bar when really we want the receiver
to handle th back button and allow the IME to be dimissed.

b/14931552 - [Molly]Keyboard stops registering the key clicks, if user taps on the 'back' button once in 'Search Mode'
b/14930596 - [Molly]User needs to tap the 'back' button 3 times to exit search mode

Change-Id: Ia3296dd1c15a3f22619c1e8776d5b9b83a03299a
earchEditText.java
74c29896d6e2a520e00605cceeef64669bab02b3 15-May-2014 Dake Gu <dake@google.com> Quantum browse: remove reparent transition

Change-Id: I4900a583a5989770b3069d3c7984961804461a68
owPresenter.java
42e4e84c1266426e89f7cf6117aae99e3aec4d81 12-May-2014 Dake Gu <dake@google.com> BrowseFragment: headers transition back press support.

Added a default support for "headers transition on back pressed".
Also provided BrowseTransitionListener and startHeadersTransition() for
the rare case if app has its own onBackPressed() handling (e.g. PlayStore).

b/13628758

Change-Id: I8c70171d0353d6b212fec9e9b0e4739b9f0d2138
nItemSelectedListener.java
4cf79b1c4d38a190317961891f9fd052836710fd 14-May-2014 Craig Stout <cstout@google.com> New browse ux with solid color fastlane.

Change-Id: Ide2516e6570c0990dd976b3ac6b759826ec95979
owHeaderPresenter.java
earchOrbView.java
0018dd1964053d44696aee1c564dd0a70b53fc24 09-May-2014 Dake Gu <dake@google.com> fix NPE in Settings app

don't fire child select change when !mLayoutEnabled.

Change-Id: I5fa69e2218a540efa4224d53bc1b0d158567816d
ridLayoutManager.java
2f97594742886d045ca1ce409ebc6e6e780452f6 06-May-2014 Dake Gu <dake@google.com> browse transition

fix bug that ListRowPresenter does not fire row selected event.
adjusted pivotx of header.
add fast lane header sliding transition.
fade row header in-place while moving parent.
Merged transitions into concurrent to make the transition more "tight".

b/14164663

Change-Id: I360118c98950519ed7e9dc3bf67dbe0bfdd45995
aseGridView.java
ridLayoutManager.java
istRowPresenter.java
owContainerView.java
owPresenter.java
dc362d4642900b852df2dd63e98848b6621cbe92 08-May-2014 Dake Gu <dake@google.com> fix fast relayout bug

after pushing items down/up, we should update rows min/max before
appending more items.

b/14651901

Change-Id: I5ec05e30746020c5dece90e7c67220f80eb63aee
ridLayoutManager.java
01ce047bc251d73d24c3ddd60aa280cf9930570b 03-May-2014 Dake Gu <dake@google.com> Make vertical grid fragment item center horizontally

Change-Id: Ide67b518e18b32fe95a1523398a0e0af3c8c9e5f
aseGridView.java
57070ccd71477252474e3c4d35edddbc859c6179 05-May-2014 Craig Stout <cstout@google.com> Merge "Support for bidirectional view layout along primary dimension."
aaeddd3d703a597945778a749fbef2d85532802d 18-Apr-2014 Craig Stout <cstout@google.com> Support for bidirectional view layout along primary dimension.

Layout direction is determined by whether the view was appended or
prepended.

Change-Id: I63aef2f7c7fbb93db9975d210a6f212c0b72ffcd
ridLayoutManager.java
e34cae48707e70442aca13e1b4ab55757292828d 02-May-2014 Dake Gu <dake@google.com> VerticalGridFragment title transition

Change-Id: I4f2d17ffe112e5ea89e5392a519d90e236e1e48d
aseGridView.java
ridLayoutManager.java
c407e646f1f923c3ef3000a3130efb9eefb2d3c0 02-May-2014 Craig Stout <cstout@google.com> Merge "Support for wrap content on the secondary axis."
f272f7533fcb5aba341e9ab2f4ff0421d668a8ca 26-Apr-2014 Craig Stout <cstout@google.com> Support for wrap content on the secondary axis.

Change-Id: I96ca955025c2d5b1857bd29febbcf2d0ac7e825a
ridLayoutManager.java
orizontalGridView.java
istRowPresenter.java
erticalGridView.java
35be60e31fa8bf53b89d13fddc88963f7c7162f7 01-May-2014 Dake Gu <dake@google.com> am 04d87418: am a5f76574: fix doc 2nd try

* commit '04d8741852fe856e47f02d07e4d7bd79bf28b1be':
fix doc 2nd try
a5f765740ef4451374963e6eabd5f587b94ff50e 30-Apr-2014 Dake Gu <dake@google.com> fix doc 2nd try

Change-Id: I95d260726bb1e8d441d515435bc83cb478c20902
ocusHighlightHelper.java
a4560456facaa3dd341a7ab2f372f655d46f7ee6 14-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Add methods to set row heights in ListRowPresenter.

Allows a ListRowPresenter to set the row height on new rows created by
the Presenter. Optionally, an expanded row height can be set, and the
RowPresenter will animate the height changes on expanded state changes.

Change-Id: I59257c1cc9cb4dbcf3447877b14a11295b11e992
istRowPresenter.java
95189b4f74c86737cb7ee13f10d27d567825f1cb 30-Apr-2014 Dake Gu <dake@google.com> am 60523845: am c16a0e4e: fix doc

* commit '6052384514be44daa8d131487a710a5256a68dc6':
fix doc
c16a0e4e812e393f67b0d55a4df5667a967a8e57 30-Apr-2014 Dake Gu <dake@google.com> fix doc

Change-Id: Iec5f0ccbf8cc7392babcf01d70cb29f10c4e2a0e
ocusHighlightHelper.java
fe0cc53f3e75b22b3b855677df650e797132cf12 30-Apr-2014 Dake Gu <dake@google.com> resolved conflicts for merge of 48a48651 to master

Change-Id: I183b1ac777437394d033210a10cd3df561428589
101dde19d1d2150afb02d1bf1d78a1759265c928 30-Apr-2014 Dake Gu <dake@google.com> Merge "Support header changeBounds transtion between fastlane and row" into klp-modular-dev
5e35530da02e69baacb9d26f1dbb45970a5dbb9c 29-Apr-2014 Dake Gu <dake@google.com> am 41d19c3c: am 70c07190: Merge "GridLayoutManager: new method signature" into klp-modular-dev

* commit '41d19c3c2ec81d40ca4ebf35f0a5e71ca3158eb0':
GridLayoutManager: new method signature
2d8ec4a44f2ffcfb83247c5f0e12e45aec7e4174 29-Apr-2014 Dake Gu <dake@google.com> GridLayoutManager: new method signature

Change-Id: I6a1a698eb59c973bd48cbd986805da01773c38d2
ridLayoutManager.java
4df06cbe8f6dd087fc8f1068faa77923cb297365 24-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Activate cards that are off screen.

setActivated() only affects children of recycler view that are on screen,
so previously new views that are attached are not set to activated.

Bug: 14089372
Change-Id: Ife7b954b5793fcf5ff1858481285a7f09e387fe1
istRowPresenter.java
owPresenter.java
3c23ada8bc25a05bbaa8c479a9df72e8172c4349 18-Apr-2014 Dake Gu <dake@google.com> Support header changeBounds transtion between fastlane and row

Now both fastlane and text view above row share the
same RowHeaderPresenter by default, this allows
customized RowHeaderPresenter also being used in fast
lane. Transition handles the transition between
them.

No longer detach/attach fast lane, goes back to the
original hide/show mechanism, also split the transition
work from focusSearch() and performed after focus changed.

Added a Customized changeBounds transtion that support setting
staggered startDelay of fastlane text views.

Change-Id: I688074b850c088c2ff53039d235ba70f88c38da5
aseGridView.java
ocusHighlightHelper.java
ridLayoutManager.java
owContainerView.java
owHeaderPresenter.java
owPresenter.java
b6e24f60743bd2022dd496126f0ff683ff6b3713 18-Apr-2014 Andrew Wilson <anwilson@google.com> Fade in images that are loaded. Allow setting of image dimensions. Allow titles to wrap if no description.

Change-Id: I4287d9bfac10ef5457a9f3ee76c8de0b3375ba5b
mageCardView.java
02e411c2c69d20aab138f1a162a24ea650eff7a1 19-Apr-2014 Dake Gu <dake@google.com> fix header position not synchronized to rows position and fix NPE

for no hovercard case.

Change-Id: Ic21b322158e88f1a42cc99f89fefb92f1e90357c
istRowPresenter.java
26bfc3c42a1e0b0bd08bf2bb1142b371b60aa7d3 05-Apr-2014 Craig Stout <cstout@google.com> Fix adapter update during measure.

Change-Id: Ia42463cdc0f5054c4771a439c6f310dcfaee2ec1
aseGridView.java
ridLayoutManager.java
85886809580d605d44a1f45d8bb80742d6ca987e 17-Apr-2014 Dake Gu <dake@google.com> ShadowOverlayContainer: Fix bug of always stretch to rowHeight

The FrameLayout takes the maximum measured child height as its measured height.
Since overlay/shadow use match_parent, their measured height will be using
full rowHeight. So regardless what wrapped view set, the wrapper will always
take full rowHeight.

Fix is to only use measuredHeight of wrapped view.

Change-Id: I551007090ccdc2f3b4495efb4f0ebb64bd51d658
hadowOverlayContainer.java
79ea84679035f18acc581896ff028a4866361b04 17-Apr-2014 Dake Gu <dake@google.com> BrowseFragment: Fix transition/animation conflicts

Disable vertical scrolling in left/right transition.
Disable left/right transition when vertical scrolling is running.

Change-Id: Ia0a8c8c164f85d9227245673c68b2df2630947ad
aseGridView.java
9240e796bc63422c28f2707840bd99c48573279b 14-Apr-2014 Dake Gu <dake@google.com> more transition support and fading edge support

Use fading edge effect instead of switching clipToPadding, this also
fixes bug of shadow gets clipped by padding.

Let TransitionManager control the browse rows animation, disable
grid view animation during transition, grid view should
re-initialize the start position values when layout animation is
turned on after transition completes.

Made transition customizable from code, adding listeners.

Change-Id: I7904a3731f58af035e207cf61ad7ab174cee231a
ridLayoutManager.java
orizontalGridView.java
istRowPresenter.java
hadowOverlayContainer.java
e273cee299273882f7d6c7e1ce10091cebd4f93b 16-Apr-2014 Jerome Poichet <jpoichet@google.com> Merge "moving the request focus later in lifecyle" into klp-modular-dev
84211f4a1fc6911951d76da5ce2579413f252771 16-Apr-2014 Andrew Wilson <anwilson@google.com> Fix layout of DetailsOverview.

Change-Id: I09bae4bf7482302ed0e8ee77ad2c31e572dcf2fc
bstractDetailsDescriptionPresenter.java
c4b1a043ab39a881b2a05d50e93c35e6f6ebfffb 14-Apr-2014 Dake Gu <dake@google.com> ListRowPresenter: fix ClassCastException

Checked on wrong function so that didn't set wrapper
and later will cast row view to a wrapper widget.

Change-Id: I5d9bb6b0b34cdb7599f9bde7235c457047a5b184
istRowPresenter.java
1e18cea1c29e13f6b10167b9d5a4648be5da9653 14-Apr-2014 Dake Gu <dake@google.com> Merge "Revert "GridLayoutManager: fix bug if current focus is on top of grid view"" into klp-modular-dev
31aa83dc228c115ff48105dd36f25304dd744460 14-Apr-2014 Dake Gu <dake@google.com> Revert "GridLayoutManager: fix bug if current focus is on top of grid view"

This reverts commit bcb7bf9b051050fa44ae270b4ac0ecab5456fe33.

That change caused issue that press DOWN in last item of fast lane will focus
to right side by default focusfinder. We have to revert this issue. To focus
on widget overlaid on top of RowsFragment, user has to override focusSearch()
in a customized widget like BrowseFragment does.

Change-Id: I360df90a3b8d05bba8548c0e0a0bfd58d59988a6
ridLayoutManager.java
cb13a318e577e14461eb008071dddf762847de42 11-Apr-2014 Dake Gu <dake@google.com> RowPresenter refactoring and preparing for Transition support

use a seperate RowContainerView for holding header view instead of insert
directly into view created by RowPresenter. This is an API change that
need fix all subclass of RowPresenter.

renamed some view classes.

Prepare for transition support: add and remove header view in
onRowViewExpanded()

Change-Id: I67fa23db6d2c21fa577d68393aca0746f3012002
rowseRowHeaderView.java
rowseRowHoverCardView.java
rowseRowView.java
etailsOverviewRowPresenter.java
istRowHoverCardView.java
istRowPresenter.java
istRowView.java
owContainerView.java
owHeaderPresenter.java
owHeaderView.java
owPresenter.java
erticalGridPresenter.java
4e2fb08b51c8f14e1fcbc336d55076d975329329 09-Apr-2014 Tim Kilbourn <tkilbourn@google.com> CardView improvements.

Apply default style and some other state change fixes.

Change-Id: Ide067639b668c10ceaf68c6a550b7ff039998991
aseCardView.java
bcb7bf9b051050fa44ae270b4ac0ecab5456fe33 10-Apr-2014 Dake Gu <dake@google.com> GridLayoutManager: fix bug if current focus is on top of grid view

When focused search widget is on top of grid view and inside padding area,
FocusFinder gives gridview a negative score since its top edge
is above top edge of search widget. So nothing happens when
click DOWN from search widget.

BrowseFragment does not have the problem since it has a customized view
overrides focusSearch(), but for user who is using RowsFragment directly, we
should make the default focus search working.

Change-Id: I916d9666076cb977296617075dc0721857d9a04e
ridLayoutManager.java
267ee02d485e13699840b3f8a6f480e0bb4abf0b 09-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Remove deprecated constants in leanback.

All uses have been switched to FocusHighlight so it's safe to remove
these.

Change-Id: Icfe8b906656051421409d4abd2867eecadd18e24
istRowPresenter.java
0d734cb6671b314f84cb4911cd37631177d07fba 09-Apr-2014 Craig Stout <cstout@google.com> Add shadow support to VerticalGridPresenter.

Change-Id: I7c48d650aea011d3da9775e62c34e6617cc41585
erticalGridPresenter.java
f110e403308bae45a8016f462052d8c2dee870cf 09-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Fix sdk docs build.

Change-Id: I06cb6e7b8c972d643c1cec78c7b4c71555cc8254
aseCardView.java
hadowOverlayContainer.java
dfd01bbadc107b6b3b2081ddb0236128c425f380 05-Apr-2014 Dake Gu <dake@google.com> Refactored shadow helper

Added helper class ShadowOverlayContainer can be shared
by RowsFragment and McLauncher.

Change-Id: I8c65d2a2c2a949cc4b251aeeeddf4bfea6f67194
ocusHighlightHelper.java
istRowCardWrapper.java
istRowPresenter.java
pticalBoundsHelper.java
hadowHelper.java
hadowOverlayContainer.java
b55f0880c367c0b7e4132e7d954b60725e01e0b2 05-Apr-2014 Tim Kilbourn <tkilbourn@google.com> BaseCardView and ImageCardView for leanback library.

A BaseCardView defines regions that can be displayed based on view state
changes on the layout. Three regions are defined: main, info, and extra,
and info and extra regions may become visible when the layout becomes
either activated or selected. Info must appear before or at the same
time as extra.

ImageCardView is a widget based on BaseCardView, defining a simple card
widget with a main image, a title, and a content string. Optionally the
card may also contain a small image badge. The text and badge are
contained in the info region, and there is no extra section.

Change-Id: I0cc497a7eaf434da3633ff307ab10d730731bbed
aseCardView.java
ocusHighlightHelper.java
mageCardView.java
afcaf8343b5fd033ce2810552f17dda93ce38047 09-Apr-2014 Dake Gu <dake@google.com> Merge "fix row select/expand state for SearchFragment" into klp-modular-dev
62d5de70439cb859525e45310b5ac4dbbfe420f2 09-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Add deprecated constants back to ListRowPresenter.

They were used by another branch, breaking the build.

Change-Id: I142be80612be5472328ccec061d22f555a343776
istRowPresenter.java
739e3805bf2785e6773aede5e2e1643f537305f9 07-Apr-2014 Craig Stout <cstout@google.com> Add a VerticalGridFragment.

Change-Id: I35476263c52d1fef09036bbe9339c945de2f339c
ocusHighlight.java
ocusHighlightHelper.java
temBridgeAdapter.java
istRowPresenter.java
nItemSelectedListener.java
erticalGridPresenter.java
0075dfe4e812a633be39018e1d6a85e5c6e58de5 05-Apr-2014 Jerome Poichet <jpoichet@google.com> moving the request focus later in lifecyle

Change-Id: I79dc3b64d6e3850e4f6775bf64ed0b853726d4a4
earchBar.java
0946602a3f3815a5f7d46dfc571b3c60483f1ea4 05-Apr-2014 Dake Gu <dake@google.com> fix row select/expand state for SearchFragment

The SearchFragment does regional updates that causes
onBind() again without attach, in onBind() we incorrectly
reset the UI state.

Change-Id: I5382793dfb923314c3b30af711977bf49966a847
owPresenter.java
70c858a5ca5b7ed9862e2edfa43912faecf42f96 05-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Details actions callbacks.

Add a listener to the DetailsOverviewRowPresenter for action callbacks.

Change-Id: Id0e023845f6d30b75f9a30a75d4b4b590df206a3
ction.java
ctionPresenterSelector.java
etailsOverviewRowPresenter.java
nActionClickedListener.java
43040065f16c57e180957a2afc27ecc706977491 05-Apr-2014 Dake Gu <dake@google.com> GridLayoutManager: fix crash of adding then removing end item

incorrectly append items which is in staggeredgrid history
but deleted by adapter.

Change-Id: I5028ba3a04e97a0cdfcf00e140a5abd741f6eb10
ridLayoutManager.java
c6b7931134cc3f4cdde95ebfd90c5dc69f59ef12 04-Apr-2014 Dake Gu <dake@google.com> Merge "fix dark overlay bug" into klp-modular-dev
29246e5ca814f17dcf368eeacd1b44a329592ae0 04-Apr-2014 Dake Gu <dake@google.com> fix dark overlay bug

apply dim in onAttachedToWindow(), onBind() does not cover the
items in bound cache pool of recyclerView.

Change-Id: Iced5fc987e507771ef317a2c56284b817d3f03fd
istRowPresenter.java
e652714f2fcc876de6f168b28dd03bfc22e1cb96 28-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Layout and styling for leanback details fragments.

Presenters for actions
Details descriptions styles

Change-Id: Ieff6e96d1a0131c96c01cdb5b012b6616f84d5ca
ction.java
ctionPresenter.java
ctionPresenterSelector.java
etailsOverviewRowPresenter.java
892181367d658f347d00ea5e091aa31f086b2a20 04-Apr-2014 Dake Gu <dake@google.com> implement a default shadow on browse row card in a non-intrusive way.

Automatically create a wrapper layout that wraps the view created
by Presenter and adding shadows, color overlay.

Change-Id: I34f4c508c01d7d3c1710e455ec0edd600735d278
ocusHighlightHelper.java
temBridgeAdapter.java
istRowCardWrapper.java
istRowPresenter.java
pticalBoundsHelper.java
owPresenter.java
8fac6554640f547c0efd98e67ca2d659172468bb 01-Apr-2014 Dake Gu <dake@google.com> stylize leanback padding etc, fix bug of top clipping.

The main purpose of the CL is to allow developer customize padding of
browse fragment by introducing a "browsePaddingXXX" theme attributes
that applies to different widgets. Fixed bug of top padding clip.

Also make rowsWidth browseRowsMarginStart browseRowsMarginTop
to be customizable if user are use our fragment in non-full screen case.

Change-Id: I2894a8e505d1025ecc637f038b141712115e11cd
rowseRowHeaderView.java
rowseRowView.java
5fb3146be35c38a8fb794c2b8566e35e6c049401 03-Apr-2014 Dake Gu <dake@google.com> Merge "fix undesired horizontal scroll when focus from fastlane to row." into klp-modular-dev
9421aa6ca7de4174ddbe2e10fbb05cb31685ffcc 02-Apr-2014 Dake Gu <dake@google.com> fix undesired horizontal scroll when focus from fastlane to row.

We have code in addFocusables() to avoid focus to views
in padding area. But when we switch from fast lane to
row, addFocusables() is not called, instead hroziontalGridView.requestFocus()
is called, which will by default find the first item in horizontalgridview.
Overrides onRequestFocusInDescendant() so that we only returns items
not overlapping with padding area.

enforce "focus after descendant".

Renamed some internal methods to avoid possible conflicts
if recyclerview add methods later.

Change-Id: I24fd175d7fe48924793f2b12fc8ea146280dcb3b
aseGridView.java
ridLayoutManager.java
e560a9d4e4a73def79923a15ae22109746fa9cbd 03-Apr-2014 Dake Gu <dake@google.com> clean up optical insets

abs() gets wrong optical bounds value for negative diff values.

Change-Id: Iecf4870d115eb5b6f7b00877a8ab477111207719
ridLayoutManager.java
7016761eb6734c4070f6177600acfb52bf021b7c 03-Apr-2014 Craig Stout <cstout@google.com> Fix optical bounds issue.

Change-Id: I2b99264a23641fc6de7c36c5f7fb03f0e800b6c3
ridLayoutManager.java
a5debe12465cc730b394651bed2acf894c60b65b 02-Apr-2014 Craig Stout <cstout@google.com> Revert "fix undesired horizontal scroll when focus from fastlane to row."

This reverts commit 5b1f117209e8a38d6d6b004c3c0d0285acc9b27f.
aseGridView.java
ridLayoutManager.java
c9422fb7ac972aee1f05c5ec0f07c2ec24cc771b 02-Apr-2014 Jerome Poichet <jpoichet@google.com> Showing the right IME action

b/13752423 SearchFragment - SearchResultProvider.onQueryTextSubmit never called

Change-Id: I1bd0957f22d4572963920f04fe35ca766a81dc4d
earchBar.java
03399b772a6e7823d8c8ec1ca1275b06c36a2e9e 02-Apr-2014 Dake Gu <dake@google.com> Merge "fix undesired horizontal scroll when focus from fastlane to row." into klp-modular-dev
9b0aa361de01529a7d6e5a5956548fef51213e9d 02-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Revert page-based scrolling on by default in browse.

Go back to aligned focus for now while we evaluate both.

Change-Id: Ib6cac8f8d294c6761b5c55293e5495746d342efb
rowseRowView.java
5b1f117209e8a38d6d6b004c3c0d0285acc9b27f 02-Apr-2014 Dake Gu <dake@google.com> fix undesired horizontal scroll when focus from fastlane to row.

We have code in addFocusables() to avoid focus to views
in padding area. But when we switch from fast lane to
row, addFocusables() is not called, instead hroziontalGridView.requestFocus()
is called, which will by default find the first item in horizontalgridview.
Overrides onRequestFocus() so that we only returns items
not overlapping with padding area.

remove the descendant focusability code since gridmanager should be always
focusing after descendant.

Renamed some internal methods to avoid possible conflicts
if recyclerview add methods later.

Change-Id: Iefd24a7f2a09341daeebe94736cfd4a5c62cd530
aseGridView.java
ridLayoutManager.java
adc2a01f5701cbcc044754119b572abcf31c7c5f 26-Mar-2014 Dake Gu <dake@google.com> GridLayoutManager: support paged focus scrolling

- FOCUS_SCROLL_ALIGNED this is what we currently have:
keep focused aligned.
- FOCUS_SCROLL_PAGE scroll page by page
- FOCUS_SCROLL_ITEM scroll item by item

Changed default BrowseRowView horizontal scrolling to use
FOCUS_SCROLL_PAGE.

Change-Id: Idc4cc2e7d4833cf9b24c8c9505b03e945667af59
aseGridView.java
rowseRowView.java
ridLayoutManager.java
taggeredGrid.java
62d36d44e03a3dd0632b156615b04563c62e83c1 02-Apr-2014 Dake Gu <dake@google.com> fix NPE when unfocused item is detached from recyclerView in layoutChildren()

Avoids calling view.getParent().getChildViewHolder(view) for detached unfocused
view, the viewHolder is no longer needed by FocusHighlight.

b/13749349

Change-Id: I9fd9d8cd116cc537262f4bcf4401a6bed3404e48
ocusHighlight.java
ocusHighlightHelper.java
temBridgeAdapter.java
ce08db4f13dd7f7a82694b440462d7484cfb7c5b 01-Apr-2014 Dake Gu <dake@google.com> Merge "draw focused item at last" into klp-modular-dev
182f3350d5f3cef04d160c673b6969df28e9439c 01-Apr-2014 Dake Gu <dake@google.com> draw focused item at last

b/13734333

Change-Id: Ib907699aa84be726fdce9076e41ccfb091627767
aseGridView.java
ridLayoutManager.java
5a2782ae17df5331a594fe03d5d89251a8b9f6d4 29-Mar-2014 Dake Gu <dake@google.com> GridLayoutManager: support gravity in secondary direction

allow child view to have a different size in second axis
other than mItemLengthSecondary. Depending on the gravity,
align the child view on secondary direction.

Change-Id: If02dd8c069219bf28791770dc3643956645ed634
aseGridView.java
ridLayoutManager.java
6da6ae33f0909d65fee90602ce5c78d4e1e4856f 01-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Fix docs build.

Forgot to correct the @param after changing a method parameter.

Change-Id: Ia08bb3dc4d2446e6b0c94c7bec5fa6f411dab80d
bstractDetailsDescriptionPresenter.java
f3530d9b4b852ffd8d6200feff810d42aae85a43 01-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Pass the details overview row item to the presenter.

Since the concrete class is going to call getItem() anyway, might as
well save them a step and pass the item directly.

Bug: 13735170
Change-Id: I7c0beb9326e310527e1a9ffb5f5dcfb7fee66cb6
bstractDetailsDescriptionPresenter.java
c7d37856bb5971608f557066873a155df391934d 01-Apr-2014 Tim Kilbourn <tkilbourn@google.com> Fix docs build.

Change-Id: Ibc9a39545ddc2864ca4f4ccf610b42806d5efe4d
etailsOverviewRowPresenter.java
2574f0cfd53bfd4befeea437b5722c17559d8064 31-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Merge "Actions and details overview row for leanback." into klp-modular-dev
24b4b33b534ce1edd8ee1c19daa74078a5dd2a89 31-Mar-2014 Craig Stout <cstout@google.com> Merge "Zoom on focus changes." into klp-modular-dev
a83005b70853ea52c5d98910762344de16b850a8 25-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Actions and details overview row for leanback.

A DetailsOverviewRow contains the row data for presenting the top
details overview in a DetailsFragment.

TODO: presenter and click handlers for actions

Change-Id: I3d1cd24e5dac59c65449d6c9729538845c7b59eb
bstractDetailsDescriptionPresenter.java
ction.java
ctionPresenter.java
rrayObjectAdapter.java
etailsOverviewRow.java
etailsOverviewRowPresenter.java
ocusHighlightHelper.java
3c2998d502e4e2586d0bfc52ff5d1f2725fa9e6d 28-Mar-2014 Jerome Poichet <jpoichet@google.com> Improvement to SearchFragment

new SearchFragment API
better handling of focus
slowly following red lines

Change-Id: Icb56af529f03c9535eba0d9859e71dc49eb99253
earchBar.java
earchEditText.java
b9e89a1544f8cf582f191184fb9b2a4f24e1fa5b 31-Mar-2014 Craig Stout <cstout@google.com> Zoom on focus changes.

Developer may specify one of several predefined zoom factors.

Bug: 13387176
Change-Id: I6ad53f691c95d824ca379a7a50604c65363be7e4
ocusHighlightHelper.java
istRowPresenter.java
db1e9bb04638eb6b0b16e849e433d1c3b6f4296c 27-Mar-2014 Dake Gu <dake@google.com> Fix bug that setClipToPadding() does not update the ViewGroup.

We didn't see this happen because we always cause a layoutChildren()
which does the invalidate().

workaround b/13675947

Change-Id: I6ab5e9106fa403250c1eae9f08204dc6a5e79b1f
istRowPresenter.java
c26ebee190513b93c6f30620dac3bfc9038cb621 21-Mar-2014 Dake Gu <dake@google.com> GridLayoutManager: subclass LayoutParams instead of using Tag

Also make it ready for future customized layout params.

Change-Id: Ic72f03d433c84ba0871117a189b4e2482a3bf69f
ridLayoutManager.java
ridLayoutManagerChildTag.java
temAlignment.java
f23dc9bfc548a35bc0bc326c6f3ddbdc91f9e875 27-Mar-2014 Justin Mattson <jmatt@google.com> Merge "Add APIs to allow observability of property changes" into klp-modular-dev
b3451baf39c3b17972e7826baee90be4b1cd2626 26-Mar-2014 Justin Mattson <jmatt@google.com> Add APIs to allow observability of property changes

Change-Id: I178955edb7d3de7c34f685b8f524b6a0bc71b421
ursorObjectAdapter.java
bjectAdapter.java
7aaa6c6ef8807cc4ea4c4642716d6e30056bc4eb 24-Mar-2014 Dake Gu <dake@google.com> more javadocs about RowPresenter events and animations

renamed "row_list" to "row_content", so it can make sense for non list
row alignment.

Change-Id: I4f0a0d3bdf30049ada1a9bc87ac90900b6be3721
rowseRowView.java
istRowPresenter.java
owPresenter.java
0f03021697a323f7db7b934667ed260accd7b2ca 25-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Merge "Remove deprecated setMargin function." into klp-modular-dev
e2679e4ccab0ce75f701629c22c179165df4f15e 24-Mar-2014 Jerome Poichet <jpoichet@google.com> Search 'affordance' in title of BrowseFragment

Change-Id: Ifc2729489fcff597c8864ae8ac43d611d92e4b7a
earchOrbView.java
f133a97300b8175c68dc75edbdceff8b86b97912 25-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Remove deprecated setMargin function.

Change-Id: Ic803be92e7bed36cb26f2d9ad4c31b8541ab6134
aseGridView.java
cfbb302b7a67d1633b1a68f659ed41aa71702507 25-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Add support for multiple vertical columns.

VerticalGridView now supports multiple columns, just like
HorizontalGridView.

Change-Id: Ibe33c7fe960f04e01c13e9d848f9060ad1c26782
aseGridView.java
rowseRowView.java
orizontalGridView.java
erticalGridView.java
462e3ba37ddd32afb7434ec0a217af335f49b9a6 25-Mar-2014 Dake Gu <dake@google.com> fix IllegalStateException for calling setHasStableIds multiple times

Change-Id: I1e3013c031eb8e8ba4b727e0dbf25703eab5aec9
temBridgeAdapter.java
869c06d6d5dea7cf23f30fb5a1727204a43ac4c3 24-Mar-2014 Andrew Wilson <anwilson@google.com> Merge "Don't close a null cursor." into klp-modular-dev
e14d72261ac77c75ee77bdeb4557b57f87feb242 24-Mar-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: Fix missing margin" into klp-modular-dev
2eaaad9c189f1ae42bf6c382a30ccab455030e54 24-Mar-2014 Andrew Wilson <anwilson@google.com> Don't close a null cursor.

Change-Id: I10b9ef5fb26f0d583e5cce7e6a4cbf9fd24466a8
ursorObjectAdapter.java
85c10faf654848a8aacd1e61760b3e24a1902a83 21-Mar-2014 Jerome Poichet <jpoichet@google.com> SearchFragment and SearchBar in support-leanback

Change-Id: Id958ad47462d9efd2b5b770c0391477190e0d66a
earchBar.java
a8a3b898da49324e83ea32c3f08776a481312166 21-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Rename some leanback lib classes.

RowHeaderFragment -> HeadersFragment
RowContainerFragment -> RowsFragment
BaseListView -> BaseGridView
ListView -> VerticalGridView

Change-Id: Id37cb80a95122247aa33c55e545ece9f526df073
aseGridView.java
aseListView.java
ridLayoutManager.java
orizontalGridView.java
temAlignment.java
istView.java
erticalGridView.java
indowAlignment.java
fa9a61fa061befbbbd49b01ec926a0fe8d61a9a5 21-Mar-2014 Dake Gu <dake@google.com> GridLayoutManager: Fix missing margin

when we layout focus item in first row then layout prev item
in second row, the second row does not have any item yet, we
forget to add margin in this case.

b/13571410

Change-Id: Ied16bc560f55043e063f9d6554e7c4c6749d377d
ridLayoutManager.java
cf94c5fa8ae8edb7e26a623133207415ceeed187 20-Mar-2014 Dake Gu <dake@google.com> add support of row select animation

Row select animation is controlled in RowContainerFragment that
is not recommended to override. Developer can override the default
dim effect either as a subclass of RowPresenter or subclass
of ListRowPresenter. We also provide helper classes:
ColorFilterDimmer and ColorOverlayDimmer that developers might use
for their own dim effect.

Change-Id: I1982aa193ccf04be557187a6338feefbd675710a
ridLayoutManagerChildTag.java
temBridgeAdapter.java
istRowPresenter.java
owHeaderPresenter.java
owPresenter.java
0f1fa0dfa946ddc8afb6af26a4dd1a4d01dca10f 19-Mar-2014 Dake Gu <dake@google.com> final some methods and classes, fix some compile warnings

add some comments

Change-Id: I3868cd11eb6345778ae9c813cb9ea974543bc4ba
rowseRowView.java
lassPresenterSelector.java
ursorObjectAdapter.java
istRowPresenter.java
bjectAdapter.java
resenterSelector.java
inglePresenterSelector.java
522035025d6d9a7b3f0001bbc6724e71e91cae0c 20-Mar-2014 Dake Gu <dake@google.com> Merge "GridLayoutManager: fix ArrayIndexOutOfBoundException in onAddFocusables()" into klp-modular-dev
c1f3bcf2f1deac4603cddfb9548380ba20a5f310 19-Mar-2014 Dake Gu <dake@google.com> GridLayoutManager: fix ArrayIndexOutOfBoundException in onAddFocusables()

Fix the bug when child focusable is false.
b/13547532

Change-Id: I7ec0fce47b04775c2f90853d952783a773b31c62
ridLayoutManager.java
01b7f19dfa3b2ec113f20defacf32d0a548f5beb 20-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Add leanback droiddoc targets.

This provides a quick way to generate docs for just the
android-support-v17-leanback library. In addition, a stubs/api target
makes it easy to track API changes over time.

Fixed up one instance of using a hidden API in a public method.

Change-Id: I191b4b8a8707ac10b15b556cfa56386aa9674aad
orizontalHoverCardSwitcher.java
cfccf53cd27eb7d8e2420d507b4b46cd1c299815 19-Mar-2014 Dake Gu <dake@google.com> Merge "Leanback: add hover card view, stylize hover card layout" into klp-modular-dev
f804d908c317b846899a480031c4dcab616074c4 19-Mar-2014 Dake Gu <dake@google.com> Leanback: add hover card view, stylize hover card layout

remove unused "Theme.Leanback.Light"

Change-Id: Iec871179ce81ea98d311b93528d7b5ffa3d9b416
rowseRowHoverCardView.java
7888eca68714c6a753199b901e4a855d85d64ccb 19-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Fix javadoc for leanback.

Change-Id: I5504062fd2bb967c0d7f0f8d621934ef97946136
inglePresenterSelector.java
13d1515a1edd63f26ad7f3c9c7471d0969900190 19-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Implement ClassPresenterSelector.

Also promote SinglePresenterSelector to a public class.

Change-Id: I1315dded9349503486897035bd89d43dd804286c
lassPresenterSelector.java
bjectAdapter.java
inglePresenterSelector.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
aseListView.java
ridLayoutManager.java
60d34fdccbe92a77e01b2cc63ffcab092a91009f 18-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Fix javadoc so it compiles.

Change-Id: I18b86cf9e731986c60ad1ef991f9df094f02ae6d
aseListView.java
resenter.java
8b068ddbbf22a246eab49ec25a2f7c3abfbdca51 16-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Add a .readme file to be copied into the sdk src.

This allows the project resources to be built by ant/eclipse.
Also moved default source code dir to src instead of java/src.

Change-Id: I9e5002fbbfb96b98be772c1ec6653322d5563b56
rrayObjectAdapter.java
aseListView.java
rowseRowHeaderView.java
rowseRowView.java
lassPresenterSelector.java
ursorObjectAdapter.java
ocusHighlight.java
ocusHighlightHelper.java
ridLayoutManager.java
ridLayoutManagerChildTag.java
eaderItem.java
orizontalGridView.java
orizontalHoverCardSwitcher.java
temAlignment.java
temBridgeAdapter.java
istRow.java
istRowPresenter.java
istView.java
bjectAdapter.java
nChildSelectedListener.java
nItemClickedListener.java
nItemSelectedListener.java
resenter.java
resenterSelector.java
resenterSwitcher.java
ow.java
owHeaderPresenter.java
owPresenter.java
taggeredGrid.java
taggeredGridDefault.java
indowAlignment.java