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