History log of /frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
905bcd294a7351749c60382eab03aa0c679e08bb 13-Apr-2017 Alan Viverette <alanv@google.com> Un-suppress NewApi lint where applicable

Reduces scope where NewApi must be retained. Updates media compat
code to use BuildCompat directly rather than checking SDK_INT
against 26 (which is not a real SDK_INT on any devices yet).

Test: ./gradlew lint
Change-Id: I052641ae0540605559ad68132ef0470bc8dc3f22
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
abc73958d264e1eed7fd401a18be1d9ede8304eb 06-Mar-2017 Aurimas Liutikas <aurimas@google.com> A pass at fixing unchecked javac warnings.

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

Test: ./gradlew assemble still works
Change-Id: If1350e896948c7e27c212cf7b1a94f08b9131193
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
f37579e64940bfdd642cc315f6347d60b5addd69 15-Feb-2017 Dake Gu <dake@google.com> cleanup life cycle issue of PlaybackGlue in PlaybackFragment.

onDetachedFromHost should be called in onDestroy. A PlaybackGlue
should survive onDestroyView for the case setRetainInstance(true).
When configuration change, we should not need recreate PlaybackGlue.
Add a VideoFragmentTest.

Refactoring Tests to use SingleFragmentTestBase and remove
lots of redundant test Activity classes and layout files.

Changed test mp4 to be h264 Baseline profile so it can play
on API 19.

Bug: 35364233
Test: added VideoFragmentTest VideoSupportFragmentTest

Change-Id: I93bd8cbf449ac0fea4b6b76d10dc611c538283e8
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
3961cea270f51c29433a7eb21ec5f8c9ca7bd7d7 13-Feb-2017 Dake Gu <dake@google.com> MeidaPlayerGlue: Fix unable to play music, ...

... Playback state loss problem in Activity.onStop, and
leaking in enableProgressUpdate.

1. MediaPlayerGlue enableProgressUpdate() does not remove
previous Runnable, causing a leak.

2. MediaPlayerGlue.setMediaSource() does not call
prepareMediaForPlaying() and the prepare is relying on
SurfaceCreated being called. So it fails to play music.

3. onSurfaceDestroy/onSurfaceCreate should not reset player
which causing state loss in activity onStop().

Test: MediaPlayerGlueTest
Bug: 35318285 35246768 35319588

Change-Id: I254630c47199b813c13904787795ee8d4d896bd4
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
2452cde3b8d7cbe62f6eb2fbcbcf9a02448d6891 13-Jan-2017 Dake Gu <dake@google.com> Switch from getActivity() to getContext()

In case we host the fragment outside activity.

Bug: 34276716
Test: leanback unit tests and SupportLeanbackDemo app

Change-Id: Ic8e16c038a8590c3359533d00b41f80dca917092
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
5bcc058bb1aed2e88b38009e83084554cf2cd86b 29-Dec-2016 Dake Gu <dake@google.com> DetailsFragment: fix regression of missing title View

When title view and VideoFragment both exist, title view becomes
display only. When there is no VideoFragment, user can focus
to title view and do search, that is backward compatible with
behavior in 25.0.0

Bug: 33839988
Test: SupportLeanbackDemos DetailsFragmentTest

Change-Id: I52156993914a427d52b658ea10cd815632ca4fe3
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
95ac470f2bbea06114a64906d95c0da7d9412db0 29-Nov-2016 Dake Gu <dake@google.com> API review: move PlaybackGlue classes into media package

Move PlaybackGlue, PlaybackControlGlue to new media package.
Move inner class PlaybackGlueHost to top level.

keep/deprecate old class PlaybackControlGlue, and make it
extends from the new media.PlaybackControlGlue class.

Renamed HostLifeCycleCallback to HostCallback.

Refactoring method name of media.PlaybackControlGlue:
createControlsRowAndPresenter -> onCreateControlsRowAndPresenter
createPrimaryActions -> onCreatePrimaryActions
added onCreateSecondaryActions.
The old methods still exist the app.PlaybackControlGlue.

Lots of javadocs.

Bug: 33002776
Test: PlaybackOverlayFragmentTest, SupportLeanbackDemos

Change-Id: Ic8fa29dd2191222977f663773d3cde038345109a
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
180dc4030628425a8081fe058bdc1d529c505ae8 26-Sep-2016 susnata <susnata@google.com> Revert "Revert "Refactoring DetailsBackgroundParallaxHelper.""

This reverts commit 6eebd92660979650cbde3b9d303099cff3015a23.

Test: DetailsFragmentTest, DetailsParallaxManagerTest
Change-Id: I86a3ef75b862a60f7dcef037e7d4eebcaa488785
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
60f531e3d9667db9afe091f5a7979410eb7a0b48 07-Dec-2015 Dake Gu <dake@google.com> leanback: Expose some APIs

Bug 26027075

Change-Id: I2ab5c0683f1e00e4dd06b702787e3358cf64c105
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
60751b437df43b5c6b72dd3fc9f4c341a707c8d4 21-Aug-2015 Dake Gu <dake@google.com> Details entrance transition does not slide in rows...

unless used with shared element transition.

Details fragment calls rowsFragment.onTransitionStart() which disables
layout of vertical grid view. Result is that details row view never
gets a chance added to vertical grid view. Until we call
startEntranceTransition(), after entrance transition finishes,
onTransitionEnd() it will reenable the layout.

Upon reenable the layout, sharedelement transition helper will
bind row to view and start a delayed activity transition and slide
rows in. That's why the rows only slide-in with shared element
transition.

The fix is quite straightforward using same logic of BrowseFragment/
VerticalGridFragment.

Bug 23397234

Change-Id: I79e92e3f435abe97e30fcac2ddebce1a2a05e6e4
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
6813fd3b732156a921a57cf18ee27040a8c5c99f 18-Aug-2015 Johan Gardell <gardell@google.com> Transition from expanded READ MORE on Play Movies new DetailsActivity

The requestFocus call removed in this CL
caused the returning transition to
break when returning from our expanded
read more-view to the new DetailsActivity
on Play Movies.

Bug: 23134332
Change-Id: I65c125cfc29142566ea3f55d43879f5bb8801c5f
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
8df88a1ead9ea62456fc3bbda41657ccf61d5721 26-Feb-2015 Dake Gu <dake@google.com> Revert "Revert "Remove deprecated OnItemSelectedListener and OnItemClickedListener""

This reverts commit ee73a5bfd4d2460a93a9afb9d1bfce10ff875300.

Change-Id: If6b926c093a8254dca02d4ccac4bfaefca85bc81
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
628f94f0d3293372bc23bea1411e687dfe508753 26-Feb-2015 Dake Gu <dake@google.com> Remove deprecated OnItemSelectedListener and OnItemClickedListener

Bug 19514090

Change-Id: I690674d506202bc5513b5fb4cc0eaf3bcddb04f5
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
76b3441abcfcf1291d865fd4a204c103b637027c 20-Feb-2015 Dake Gu <dake@google.com> DetailsFragment: setOnItemViewSelectedListener after view created

b/18926118

Change-Id: Ib19acae979827ada2624f49daa774907eadcd8c5
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
d1adbdcb44a48e142d28a93189c57edfe62d93ce 07-Aug-2014 Craig Stout <cstout@google.com> PlaybackOverlayFragment fade animation improvements.

Change-Id: I7d8d35e3afed3b6d5633a235ec397dfc405bfe64
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
dc9b5676ab337317154fa7702033ae174617525b 10-Jul-2014 Dake Gu <dake@google.com> new listeners for DetailsFragment and SearchFragment

Change-Id: I127be8199e6ab37629da7e17ea6b378ab432d5d6
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
76c3b90228d8c4afc6d24c683e9c95f41ae619c9 04-Jun-2014 Jerome Poichet <jpoichet@google.com> Removing ununsed imports

Change-Id: Id398857ca752b9ac612d0e596da1cce58e6e3a6f
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
6c3b0b3d19683ea8c4069ec761f14dc2c7b8c5dc 16-Apr-2014 Craig Stout <cstout@google.com> Fix browse and details child fragment re-creation.

Bug: 14088678

Change-Id: I2d52074632d169fc23b44aa675bd7d12590774d2
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
1caf420879768ae8aebe8c27546707a28f3bb659 08-Apr-2014 Craig Stout <cstout@google.com> Fix details fragment initialization.

Change-Id: I8ebb57beea8bbdfbf6fe844e00b5a52f043385ac
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.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
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
b70539172cdeb5672ed7128f69383d1fc1458ccb 28-Mar-2014 Dake Gu <dake@google.com> Fix fragment restore crash.

The nested fragment can be initialized by fragmentmanager in
restore case.
Tested with a touch screen device rotate.

Change-Id: I6c85a1bc8604196cfa6eeeb49694a9eeef6aee9a
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java
c3047aae5913bf0f79ed65e2d4b6b74ca38d53de 21-Mar-2014 Tim Kilbourn <tkilbourn@google.com> Initial DetailsFragment for leanback apps.

This first version is just a simplified browse fragment. Future CLs
will include some details-specific functionality.

Change-Id: I79e978789160d157b57e246473eed7c96e9bcb6b
/frameworks/support/v17/leanback/src/android/support/v17/leanback/app/DetailsFragment.java