NewDetailsSupportFragment.java revision 3649f8fb98e56cbdde7e9c5806312372b20a4d23
1cc671dd3caac1d0cbf3f6999ab063c9ff1f297b2Dake Gu// CHECKSTYLE:OFF Generated code
271e7e67f320b23feac784b629db17b3bcce08722Dake Gu/* This file is auto-generated from NewDetailsFragment.java.  DO NOT MODIFY. */
371e7e67f320b23feac784b629db17b3bcce08722Dake Gu
471e7e67f320b23feac784b629db17b3bcce08722Dake Gu/*
571e7e67f320b23feac784b629db17b3bcce08722Dake Gu * Copyright (C) 2014 The Android Open Source Project
671e7e67f320b23feac784b629db17b3bcce08722Dake Gu *
771e7e67f320b23feac784b629db17b3bcce08722Dake Gu * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
871e7e67f320b23feac784b629db17b3bcce08722Dake Gu * in compliance with the License. You may obtain a copy of the License at
971e7e67f320b23feac784b629db17b3bcce08722Dake Gu *
1071e7e67f320b23feac784b629db17b3bcce08722Dake Gu * http://www.apache.org/licenses/LICENSE-2.0
1171e7e67f320b23feac784b629db17b3bcce08722Dake Gu *
1271e7e67f320b23feac784b629db17b3bcce08722Dake Gu * Unless required by applicable law or agreed to in writing, software distributed under the License
1371e7e67f320b23feac784b629db17b3bcce08722Dake Gu * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
1471e7e67f320b23feac784b629db17b3bcce08722Dake Gu * or implied. See the License for the specific language governing permissions and limitations under
1571e7e67f320b23feac784b629db17b3bcce08722Dake Gu * the License.
1671e7e67f320b23feac784b629db17b3bcce08722Dake Gu */
1771e7e67f320b23feac784b629db17b3bcce08722Dake Gupackage com.example.android.leanback;
1871e7e67f320b23feac784b629db17b3bcce08722Dake Gu
19b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Guimport android.content.Context;
2071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.content.Intent;
21935b033edfd9d03129fce6a5b7a1d3a327b74f91susnataimport android.graphics.Bitmap;
224c78d0f4beb89792eb955aa4fae85a730966e6a4Dake Guimport android.os.Build;
2371e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Bundle;
2471e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Handler;
25e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport android.support.v17.leanback.app.DetailsSupportFragmentBackgroundController;
2695ac470f2bbea06114a64906d95c0da7d9412db0Dake Guimport android.support.v17.leanback.media.MediaPlayerGlue;
2771e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Action;
2871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ArrayObjectAdapter;
2971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ClassPresenterSelector;
3071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.DetailsOverviewRow;
3171e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter;
3271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.FullWidthDetailsOverviewSharedElementHelper;
3371e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.HeaderItem;
3471e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ImageCardView;
3571e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRow;
3671e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.ListRowPresenter;
3771e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.OnActionClickedListener;
3871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.OnItemViewClickedListener;
3971e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.OnItemViewSelectedListener;
4071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Presenter;
4171e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.Row;
4271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.RowPresenter;
4371e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.support.v17.leanback.widget.SparseArrayObjectAdapter;
443778c4eaa62895085d33965ee391c8b21783cffaDake Guimport android.support.v4.app.ActivityOptionsCompat;
45b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Guimport android.support.v4.content.res.ResourcesCompat;
4671e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.util.Log;
47181c8847d5a1169e26755ed690131333b7fff7e9Dake Guimport android.view.LayoutInflater;
4871e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.view.View;
49181c8847d5a1169e26755ed690131333b7fff7e9Dake Guimport android.view.ViewGroup;
5071e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.widget.Toast;
5171e7e67f320b23feac784b629db17b3bcce08722Dake Gu
5271e7e67f320b23feac784b629db17b3bcce08722Dake Gupublic class NewDetailsSupportFragment extends android.support.v17.leanback.app.DetailsSupportFragment {
5371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final String TAG = "leanback.DetailsSupportFragment";
5471e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final String ITEM = "item";
5571e7e67f320b23feac784b629db17b3bcce08722Dake Gu
5671e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int NUM_ROWS = 3;
5771e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private ArrayObjectAdapter mRowsAdapter;
5871e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private PhotoItem mPhotoItem;
5971e7e67f320b23feac784b629db17b3bcce08722Dake Gu    final CardPresenter cardPresenter = new CardPresenter();
6071e7e67f320b23feac784b629db17b3bcce08722Dake Gu
6171e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int ACTION_PLAY = 1;
6271e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int ACTION_RENT = 2;
6371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int ACTION_BUY = 3;
6471e7e67f320b23feac784b629db17b3bcce08722Dake Gu
6571e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private boolean TEST_OVERVIEW_ROW_ON_SECOND;
6671e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private boolean TEST_SHARED_ELEMENT_TRANSITION;
6771e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private boolean TEST_ENTRANCE_TRANSITION;
685bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu    private boolean TEST_BACKGROUND_PLAYER;
6971e7e67f320b23feac784b629db17b3bcce08722Dake Gu
7071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final long TIME_TO_LOAD_OVERVIEW_ROW_MS = 1000;
7171e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final long TIME_TO_LOAD_RELATED_ROWS_MS = 2000;
7271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
7371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private Action mActionPlay;
7471e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private Action mActionRent;
7571e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private Action mActionBuy;
7671e7e67f320b23feac784b629db17b3bcce08722Dake Gu
7771e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private FullWidthDetailsOverviewSharedElementHelper mHelper;
78e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    private BackgroundHelper mBackgroundHelper; // used to download bitmap async.
79e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    private final DetailsSupportFragmentBackgroundController mDetailsBackground =
80e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            new DetailsSupportFragmentBackgroundController(this);
8171e7e67f320b23feac784b629db17b3bcce08722Dake Gu
8271e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private void initializeTest() {
834c78d0f4beb89792eb955aa4fae85a730966e6a4Dake Gu        TEST_SHARED_ELEMENT_TRANSITION = Build.VERSION.SDK_INT >= 21
844c78d0f4beb89792eb955aa4fae85a730966e6a4Dake Gu                && null != getActivity().getWindow().getSharedElementEnterTransition();
8571e7e67f320b23feac784b629db17b3bcce08722Dake Gu        TEST_OVERVIEW_ROW_ON_SECOND = !TEST_SHARED_ELEMENT_TRANSITION;
86e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        TEST_ENTRANCE_TRANSITION = false;
8771e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
8871e7e67f320b23feac784b629db17b3bcce08722Dake Gu
8971e7e67f320b23feac784b629db17b3bcce08722Dake Gu    @Override
9071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    public void onCreate(Bundle savedInstanceState) {
9171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        Log.i(TAG, "onCreate");
9271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        super.onCreate(savedInstanceState);
9371e7e67f320b23feac784b629db17b3bcce08722Dake Gu        initializeTest();
9471e7e67f320b23feac784b629db17b3bcce08722Dake Gu
95181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu        mBackgroundHelper = new BackgroundHelper(getActivity());
96e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        mDetailsBackground.enableParallax();
975bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        if (TEST_BACKGROUND_PLAYER) {
98e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            MediaPlayerGlue mediaPlayerGlue = new MediaPlayerGlue(getActivity());
99e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            mDetailsBackground.setupVideoPlayback(mediaPlayerGlue);
1005bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu
101e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            mediaPlayerGlue.setMode(MediaPlayerGlue.REPEAT_ALL);
102e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            mediaPlayerGlue.setArtist("A Googleer");
103e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            mediaPlayerGlue.setTitle("Diving with Sharks");
104e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            mediaPlayerGlue.setVideoUrl("http://techslides.com/demos/sample-videos/small.mp4");
1055bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        }
106181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu
107b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu        final Context context = getActivity();
108b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu        setBadgeDrawable(ResourcesCompat.getDrawable(context.getResources(), R.drawable.ic_title,
109b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                context.getTheme()));
11071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setTitle("Leanback Sample App");
1115bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        if (!TEST_BACKGROUND_PLAYER) {
1125bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu            setOnSearchClickedListener(new View.OnClickListener() {
1135bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu                @Override
1145bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu                public void onClick(View view) {
1155bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu                    Intent intent = new Intent(getActivity(), SearchSupportActivity.class);
1165bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu                    startActivity(intent);
1175bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu                }
1185bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu            });
1195bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        }
12071e7e67f320b23feac784b629db17b3bcce08722Dake Gu
12171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mActionPlay = new Action(ACTION_PLAY, "Play");
122b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu        mActionRent = new Action(ACTION_RENT, "Rent", "$3.99", ResourcesCompat.getDrawable(
123b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                context.getResources(), R.drawable.ic_action_a, context.getTheme()));
12471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mActionBuy = new Action(ACTION_BUY, "Buy $9.99");
12571e7e67f320b23feac784b629db17b3bcce08722Dake Gu
12671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        ClassPresenterSelector ps = new ClassPresenterSelector();
12771e7e67f320b23feac784b629db17b3bcce08722Dake Gu        FullWidthDetailsOverviewRowPresenter dorPresenter =
12871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                new FullWidthDetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
12971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        dorPresenter.setOnActionClickedListener(new OnActionClickedListener() {
13071e7e67f320b23feac784b629db17b3bcce08722Dake Gu            @Override
13171e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void onActionClicked(Action action) {
132b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                final Context context = getActivity();
133b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                Toast.makeText(context, action.toString(), Toast.LENGTH_SHORT).show();
13471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                int indexOfOverviewRow = TEST_OVERVIEW_ROW_ON_SECOND ? 1 : 0;
13571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                DetailsOverviewRow dor = (DetailsOverviewRow) mRowsAdapter.get(indexOfOverviewRow);
13671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                if (action.getId() == ACTION_BUY) {
13771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    // on the UI thread, we can modify actions adapter directly
13871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
13971e7e67f320b23feac784b629db17b3bcce08722Dake Gu                            dor.getActionsAdapter();
14071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    actions.set(ACTION_PLAY, mActionPlay);
14171e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    actions.clear(ACTION_RENT);
14271e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    actions.clear(ACTION_BUY);
14371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    dor.setItem(mPhotoItem.getTitle() + "(Owned)");
144b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                    dor.setImageDrawable(ResourcesCompat.getDrawable(context.getResources(),
145b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                            R.drawable.details_img_16x9, context.getTheme()));
14671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                } else if (action.getId() == ACTION_RENT) {
14771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    // on the UI thread, we can modify actions adapter directly
14871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    SparseArrayObjectAdapter actions = (SparseArrayObjectAdapter)
14971e7e67f320b23feac784b629db17b3bcce08722Dake Gu                            dor.getActionsAdapter();
15071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    actions.set(ACTION_PLAY, mActionPlay);
15171e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    actions.clear(ACTION_RENT);
15271e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    dor.setItem(mPhotoItem.getTitle() + "(Rented)");
15371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                } else if (action.getId() == ACTION_PLAY) {
154b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                    Intent intent = new Intent(context, PlaybackOverlaySupportActivity.class);
15571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    getActivity().startActivity(intent);
15671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                }
15771e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
15871e7e67f320b23feac784b629db17b3bcce08722Dake Gu        });
15971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        if (TEST_OVERVIEW_ROW_ON_SECOND) {
16071e7e67f320b23feac784b629db17b3bcce08722Dake Gu            dorPresenter.setInitialState(FullWidthDetailsOverviewRowPresenter.STATE_SMALL);
16171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
16271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
16371e7e67f320b23feac784b629db17b3bcce08722Dake Gu        ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter);
16471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        ps.addClassPresenter(ListRow.class, new ListRowPresenter());
16571e7e67f320b23feac784b629db17b3bcce08722Dake Gu
16671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mRowsAdapter = new ArrayObjectAdapter(ps);
1675bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        updateAdapter();
16871e7e67f320b23feac784b629db17b3bcce08722Dake Gu
16971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setOnItemViewClickedListener(new OnItemViewClickedListener() {
17071e7e67f320b23feac784b629db17b3bcce08722Dake Gu            @Override
17171e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
1724702556bfd15c9819a7b2af759aee0f719cd631fsusnata                                      RowPresenter.ViewHolder rowViewHolder, Row row) {
17371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                Log.i(TAG, "onItemClicked: " + item + " row " + row);
1744702556bfd15c9819a7b2af759aee0f719cd631fsusnata                if (item instanceof PhotoItem) {
17571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    Intent intent = new Intent(getActivity(), DetailsSupportActivity.class);
17671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    intent.putExtra(DetailsSupportActivity.EXTRA_ITEM, (PhotoItem) item);
17771e7e67f320b23feac784b629db17b3bcce08722Dake Gu
17871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
17971e7e67f320b23feac784b629db17b3bcce08722Dake Gu                            getActivity(),
1804702556bfd15c9819a7b2af759aee0f719cd631fsusnata                            ((ImageCardView) itemViewHolder.view).getMainImageView(),
18171e7e67f320b23feac784b629db17b3bcce08722Dake Gu                            DetailsSupportActivity.SHARED_ELEMENT_NAME).toBundle();
18271e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    getActivity().startActivity(intent, bundle);
18371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                }
18471e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
18571e7e67f320b23feac784b629db17b3bcce08722Dake Gu        });
18671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
18771e7e67f320b23feac784b629db17b3bcce08722Dake Gu            @Override
18871e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
1894702556bfd15c9819a7b2af759aee0f719cd631fsusnata                                       RowPresenter.ViewHolder rowViewHolder, Row row) {
19071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                Log.i(TAG, "onItemSelected: " + item + " row " + row);
19171e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
19271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        });
19371e7e67f320b23feac784b629db17b3bcce08722Dake Gu
19471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        if (TEST_SHARED_ELEMENT_TRANSITION) {
19571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            mHelper = new FullWidthDetailsOverviewSharedElementHelper();
19671e7e67f320b23feac784b629db17b3bcce08722Dake Gu            mHelper.setSharedElementEnterTransition(getActivity(),
19771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    DetailsSupportActivity.SHARED_ELEMENT_NAME);
19871e7e67f320b23feac784b629db17b3bcce08722Dake Gu            dorPresenter.setListener(mHelper);
19971e7e67f320b23feac784b629db17b3bcce08722Dake Gu            dorPresenter.setParticipatingEntranceTransition(false);
20071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        } else {
20171e7e67f320b23feac784b629db17b3bcce08722Dake Gu            dorPresenter.setParticipatingEntranceTransition(true);
20271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
20371e7e67f320b23feac784b629db17b3bcce08722Dake Gu        if (TEST_ENTRANCE_TRANSITION) {
20471e7e67f320b23feac784b629db17b3bcce08722Dake Gu            // don't run entrance transition if Activity is restored.
20571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            if (savedInstanceState == null) {
20671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                prepareEntranceTransition();
20771e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
20871e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
20971e7e67f320b23feac784b629db17b3bcce08722Dake Gu
21071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
21171e7e67f320b23feac784b629db17b3bcce08722Dake Gu
212181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu    @Override
213181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu    public View onCreateView(LayoutInflater inflater, ViewGroup container,
214181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu                             Bundle savedInstanceState) {
215181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu        View view = super.onCreateView(inflater, container, savedInstanceState);
216181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu        return view;
217181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu    }
218181c8847d5a1169e26755ed690131333b7fff7e9Dake Gu
2195bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu    public void setBackgroundVideo(boolean backgroundVideo) {
2205bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        TEST_BACKGROUND_PLAYER = backgroundVideo;
2215bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu    }
2225bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu
22371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    public void setItem(PhotoItem photoItem) {
22471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mPhotoItem = photoItem;
2255bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        updateAdapter();
2265bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu    }
22771e7e67f320b23feac784b629db17b3bcce08722Dake Gu
2285bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu    void updateAdapter() {
2295bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        if (mRowsAdapter == null) {
2305bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu            return;
2315bcc058bb1aed2e88b38009e83084554cf2cd86bDake Gu        }
23271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mRowsAdapter.clear();
23371e7e67f320b23feac784b629db17b3bcce08722Dake Gu        new Handler().postDelayed(new Runnable() {
234e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas            @Override
23571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void run() {
2363649f8fb98e56cbdde7e9c5806312372b20a4d23Chulwoo Lee                final Context context = getActivity();
2373649f8fb98e56cbdde7e9c5806312372b20a4d23Chulwoo Lee                if (context == null) {
2383649f8fb98e56cbdde7e9c5806312372b20a4d23Chulwoo Lee                    return;
2393649f8fb98e56cbdde7e9c5806312372b20a4d23Chulwoo Lee                }
24071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                if (TEST_OVERVIEW_ROW_ON_SECOND) {
24171e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
24271e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
24371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
24471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
24571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
24671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    HeaderItem header = new HeaderItem(0, "Search Result");
24771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    mRowsAdapter.add(0, new ListRow(header, listRowAdapter));
24871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                }
24971e7e67f320b23feac784b629db17b3bcce08722Dake Gu
25071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle());
251b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                dor.setImageDrawable(ResourcesCompat.getDrawable(context.getResources(),
252b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                        mPhotoItem.getImageResourceId(), context.getTheme()));
25371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter();
25471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                adapter.set(ACTION_RENT, mActionRent);
25571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                adapter.set(ACTION_BUY, mActionBuy);
25671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                dor.setActionsAdapter(adapter);
25771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                int indexOfOverviewRow = TEST_OVERVIEW_ROW_ON_SECOND ? 1 : 0;
25871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                mRowsAdapter.add(indexOfOverviewRow, dor);
25971e7e67f320b23feac784b629db17b3bcce08722Dake Gu                setSelectedPosition(0, true);
26071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                if (TEST_SHARED_ELEMENT_TRANSITION) {
26171e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    if (mHelper != null && !mHelper.getAutoStartSharedElementTransition()) {
26271e7e67f320b23feac784b629db17b3bcce08722Dake Gu                        mHelper.startPostponedEnterTransition();
26371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    }
26471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                }
26571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
26671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }, TIME_TO_LOAD_OVERVIEW_ROW_MS);
26771e7e67f320b23feac784b629db17b3bcce08722Dake Gu
26871e7e67f320b23feac784b629db17b3bcce08722Dake Gu        new Handler().postDelayed(new Runnable() {
269e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas            @Override
27071e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void run() {
2713649f8fb98e56cbdde7e9c5806312372b20a4d23Chulwoo Lee                if (getActivity() == null) {
2723649f8fb98e56cbdde7e9c5806312372b20a4d23Chulwoo Lee                    return;
2733649f8fb98e56cbdde7e9c5806312372b20a4d23Chulwoo Lee                }
27471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                for (int i = 0; i < NUM_ROWS; ++i) {
27571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
27671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("Hello world", R.drawable.gallery_photo_1));
27771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("This is a test", R.drawable.gallery_photo_2));
27871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("Android TV", R.drawable.gallery_photo_3));
27971e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    listRowAdapter.add(new PhotoItem("Leanback", R.drawable.gallery_photo_4));
28071e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    HeaderItem header = new HeaderItem(i, "Row " + i);
28171e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    mRowsAdapter.add(new ListRow(header, listRowAdapter));
28271e7e67f320b23feac784b629db17b3bcce08722Dake Gu                }
28371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                if (TEST_ENTRANCE_TRANSITION) {
28471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    startEntranceTransition();
28571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                }
28671e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
28771e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }, TIME_TO_LOAD_RELATED_ROWS_MS);
28871e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setAdapter(mRowsAdapter);
28971e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
29071e7e67f320b23feac784b629db17b3bcce08722Dake Gu
291935b033edfd9d03129fce6a5b7a1d3a327b74f91susnata    @Override
2924702556bfd15c9819a7b2af759aee0f719cd631fsusnata    public void onStart() {
2934702556bfd15c9819a7b2af759aee0f719cd631fsusnata        super.onStart();
2944702556bfd15c9819a7b2af759aee0f719cd631fsusnata
2950908efd712e79f77e0cf9307bd5c32753c855561Dake Gu        // Restore background drawable in onStart():
2960908efd712e79f77e0cf9307bd5c32753c855561Dake Gu        mBackgroundHelper.loadBitmap(R.drawable.spiderman,
2970908efd712e79f77e0cf9307bd5c32753c855561Dake Gu                new BackgroundHelper.BitmapLoadCallback() {
2980908efd712e79f77e0cf9307bd5c32753c855561Dake Gu                @Override
2990908efd712e79f77e0cf9307bd5c32753c855561Dake Gu                public void onBitmapLoaded(Bitmap bitmap) {
300e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu                    mDetailsBackground.setCoverBitmap(bitmap);
3010908efd712e79f77e0cf9307bd5c32753c855561Dake Gu                }
3020908efd712e79f77e0cf9307bd5c32753c855561Dake Gu            });
303935b033edfd9d03129fce6a5b7a1d3a327b74f91susnata    }
304180dc4030628425a8081fe058bdc1d529c505ae8susnata
3054702556bfd15c9819a7b2af759aee0f719cd631fsusnata    @Override
3064702556bfd15c9819a7b2af759aee0f719cd631fsusnata    public void onStop() {
307e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        mDetailsBackground.setCoverBitmap(null);
3084702556bfd15c9819a7b2af759aee0f719cd631fsusnata        super.onStop();
309180dc4030628425a8081fe058bdc1d529c505ae8susnata    }
31071e7e67f320b23feac784b629db17b3bcce08722Dake Gu}
311