1b86a6c2c71514e0cb693597a955e224811b90f96Dake Gu// CHECKSTYLE:OFF Generated code 2b86a6c2c71514e0cb693597a955e224811b90f96Dake Gu/* This file is auto-generated from VerticalGridSupportFragment.java. DO NOT MODIFY. */ 3b86a6c2c71514e0cb693597a955e224811b90f96Dake Gu 4739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout/* 5739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Copyright (C) 2014 The Android Open Source Project 6739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * 7739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 8739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * in compliance with the License. You may obtain a copy of the License at 9739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * 10739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * http://www.apache.org/licenses/LICENSE-2.0 11739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * 12739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Unless required by applicable law or agreed to in writing, software distributed under the License 13739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 14739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * or implied. See the License for the specific language governing permissions and limitations under 15739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * the License. 16739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout */ 17ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.leanback.app; 18739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 192452cde3b8d7cbe62f6eb2fbcbcf9a02448d6891Dake Guimport android.os.Bundle; 208619e0ef7062b6a714f22af993e4b440fae7ef08Aurimas Liutikasimport android.util.Log; 218619e0ef7062b6a714f22af993e4b440fae7ef08Aurimas Liutikasimport android.view.LayoutInflater; 228619e0ef7062b6a714f22af993e4b440fae7ef08Aurimas Liutikasimport android.view.View; 238619e0ef7062b6a714f22af993e4b440fae7ef08Aurimas Liutikasimport android.view.ViewGroup; 248619e0ef7062b6a714f22af993e4b440fae7ef08Aurimas Liutikas 25ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.R; 26ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.transition.TransitionHelper; 27ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.util.StateMachine.State; 28ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.BrowseFrameLayout; 29ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.ObjectAdapter; 30ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.OnChildLaidOutListener; 31ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.OnItemViewClickedListener; 32ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.OnItemViewSelectedListener; 33ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.Presenter; 34ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.Row; 35ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.RowPresenter; 36ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.VerticalGridPresenter; 37739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 38739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout/** 394c0f3062b5edd9750351068f46e5270bb220091dTim Kilbourn * A fragment for creating leanback vertical grids. 40739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * 414c0f3062b5edd9750351068f46e5270bb220091dTim Kilbourn * <p>Renders a vertical grid of objects given a {@link VerticalGridPresenter} and 42739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * an {@link ObjectAdapter}. 439870cf8fc2cbe52e761b850f58d5ac26db26a4c8Dake Gu * @deprecated use {@link VerticalGridSupportFragment} 44739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout */ 459870cf8fc2cbe52e761b850f58d5ac26db26a4c8Dake Gu@Deprecated 46786ba352397f44022617411936515fc9eb28d23fDake Gupublic class VerticalGridFragment extends BaseFragment { 4760e00f895b6f4dd25f181f377adf98e0715be4b6Dake Gu static final String TAG = "VerticalGF"; 48f8a82a95a1a962ec05536f7196fcee0f1384a497Jake Wharton static final boolean DEBUG = false; 49739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 50739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout private ObjectAdapter mAdapter; 51739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout private VerticalGridPresenter mGridPresenter; 5299ec8b0cb375f7e5577ea3ec9f09e6ff7a95de0dAurimas Liutikas VerticalGridPresenter.ViewHolder mGridViewHolder; 5399ec8b0cb375f7e5577ea3ec9f09e6ff7a95de0dAurimas Liutikas OnItemViewSelectedListener mOnItemViewSelectedListener; 54947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu private OnItemViewClickedListener mOnItemViewClickedListener; 55786ba352397f44022617411936515fc9eb28d23fDake Gu private Object mSceneAfterEntranceTransition; 56739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout private int mSelectedPosition = -1; 57739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 58dfb60d0af5d49da05c584d74245c616263f26b65Craig Stout /** 5989097f67f988ebba714a95e10369665280db0c27Dake Gu * State to setEntranceTransitionState(false) 6089097f67f988ebba714a95e10369665280db0c27Dake Gu */ 6189097f67f988ebba714a95e10369665280db0c27Dake Gu final State STATE_SET_ENTRANCE_START_STATE = new State("SET_ENTRANCE_START_STATE") { 6289097f67f988ebba714a95e10369665280db0c27Dake Gu @Override 6389097f67f988ebba714a95e10369665280db0c27Dake Gu public void run() { 6489097f67f988ebba714a95e10369665280db0c27Dake Gu setEntranceTransitionState(false); 6589097f67f988ebba714a95e10369665280db0c27Dake Gu } 6689097f67f988ebba714a95e10369665280db0c27Dake Gu }; 6789097f67f988ebba714a95e10369665280db0c27Dake Gu 6889097f67f988ebba714a95e10369665280db0c27Dake Gu @Override 6989097f67f988ebba714a95e10369665280db0c27Dake Gu void createStateMachineStates() { 7089097f67f988ebba714a95e10369665280db0c27Dake Gu super.createStateMachineStates(); 7189097f67f988ebba714a95e10369665280db0c27Dake Gu mStateMachine.addState(STATE_SET_ENTRANCE_START_STATE); 7289097f67f988ebba714a95e10369665280db0c27Dake Gu } 7389097f67f988ebba714a95e10369665280db0c27Dake Gu 7489097f67f988ebba714a95e10369665280db0c27Dake Gu @Override 7589097f67f988ebba714a95e10369665280db0c27Dake Gu void createStateMachineTransitions() { 7689097f67f988ebba714a95e10369665280db0c27Dake Gu super.createStateMachineTransitions(); 7789097f67f988ebba714a95e10369665280db0c27Dake Gu mStateMachine.addTransition(STATE_ENTRANCE_ON_PREPARED, 7889097f67f988ebba714a95e10369665280db0c27Dake Gu STATE_SET_ENTRANCE_START_STATE, EVT_ON_CREATEVIEW); 7989097f67f988ebba714a95e10369665280db0c27Dake Gu } 8089097f67f988ebba714a95e10369665280db0c27Dake Gu 8189097f67f988ebba714a95e10369665280db0c27Dake Gu /** 82dfb60d0af5d49da05c584d74245c616263f26b65Craig Stout * Sets the grid presenter. 83739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout */ 84739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public void setGridPresenter(VerticalGridPresenter gridPresenter) { 85739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout if (gridPresenter == null) { 86739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout throw new IllegalArgumentException("Grid presenter may not be null"); 87739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 88739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mGridPresenter = gridPresenter; 89d586ba8825b418d9589436725bfdead30f0dc075Dake Gu mGridPresenter.setOnItemViewSelectedListener(mViewSelectedListener); 90947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu if (mOnItemViewClickedListener != null) { 91947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu mGridPresenter.setOnItemViewClickedListener(mOnItemViewClickedListener); 92947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu } 93739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 94739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 95739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout /** 96739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Returns the grid presenter. 97739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout */ 98739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public VerticalGridPresenter getGridPresenter() { 99739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout return mGridPresenter; 100739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 101739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 102739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout /** 103739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Sets the object adapter for the fragment. 104739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout */ 105739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public void setAdapter(ObjectAdapter adapter) { 106739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mAdapter = adapter; 107739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout updateAdapter(); 108739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 109739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 110739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout /** 111739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Returns the object adapter. 112739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout */ 113739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public ObjectAdapter getAdapter() { 114739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout return mAdapter; 115739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 116739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 117d586ba8825b418d9589436725bfdead30f0dc075Dake Gu final private OnItemViewSelectedListener mViewSelectedListener = 118947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu new OnItemViewSelectedListener() { 119e34cae48707e70442aca13e1b4ab55757292828dDake Gu @Override 120947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, 121947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu RowPresenter.ViewHolder rowViewHolder, Row row) { 122e34cae48707e70442aca13e1b4ab55757292828dDake Gu int position = mGridViewHolder.getGridView().getSelectedPosition(); 123d586ba8825b418d9589436725bfdead30f0dc075Dake Gu if (DEBUG) Log.v(TAG, "grid selected position " + position); 124d586ba8825b418d9589436725bfdead30f0dc075Dake Gu gridOnItemSelected(position); 125947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu if (mOnItemViewSelectedListener != null) { 126947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu mOnItemViewSelectedListener.onItemSelected(itemViewHolder, item, 127947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu rowViewHolder, row); 128947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu } 129e34cae48707e70442aca13e1b4ab55757292828dDake Gu } 130e34cae48707e70442aca13e1b4ab55757292828dDake Gu }; 131e34cae48707e70442aca13e1b4ab55757292828dDake Gu 132d586ba8825b418d9589436725bfdead30f0dc075Dake Gu final private OnChildLaidOutListener mChildLaidOutListener = 133d586ba8825b418d9589436725bfdead30f0dc075Dake Gu new OnChildLaidOutListener() { 134d586ba8825b418d9589436725bfdead30f0dc075Dake Gu @Override 135d586ba8825b418d9589436725bfdead30f0dc075Dake Gu public void onChildLaidOut(ViewGroup parent, View view, int position, long id) { 136d586ba8825b418d9589436725bfdead30f0dc075Dake Gu if (position == 0) { 137d586ba8825b418d9589436725bfdead30f0dc075Dake Gu showOrHideTitle(); 138d586ba8825b418d9589436725bfdead30f0dc075Dake Gu } 139d586ba8825b418d9589436725bfdead30f0dc075Dake Gu } 140d586ba8825b418d9589436725bfdead30f0dc075Dake Gu }; 141d586ba8825b418d9589436725bfdead30f0dc075Dake Gu 142739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout /** 143739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Sets an item selection listener. 144947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu */ 145947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu public void setOnItemViewSelectedListener(OnItemViewSelectedListener listener) { 146947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu mOnItemViewSelectedListener = listener; 147947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu } 148947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu 14999ec8b0cb375f7e5577ea3ec9f09e6ff7a95de0dAurimas Liutikas void gridOnItemSelected(int position) { 150e34cae48707e70442aca13e1b4ab55757292828dDake Gu if (position != mSelectedPosition) { 151e34cae48707e70442aca13e1b4ab55757292828dDake Gu mSelectedPosition = position; 152d586ba8825b418d9589436725bfdead30f0dc075Dake Gu showOrHideTitle(); 153d586ba8825b418d9589436725bfdead30f0dc075Dake Gu } 154d586ba8825b418d9589436725bfdead30f0dc075Dake Gu } 155d586ba8825b418d9589436725bfdead30f0dc075Dake Gu 15699ec8b0cb375f7e5577ea3ec9f09e6ff7a95de0dAurimas Liutikas void showOrHideTitle() { 157d586ba8825b418d9589436725bfdead30f0dc075Dake Gu if (mGridViewHolder.getGridView().findViewHolderForAdapterPosition(mSelectedPosition) 158d586ba8825b418d9589436725bfdead30f0dc075Dake Gu == null) { 159d586ba8825b418d9589436725bfdead30f0dc075Dake Gu return; 160d586ba8825b418d9589436725bfdead30f0dc075Dake Gu } 161d586ba8825b418d9589436725bfdead30f0dc075Dake Gu if (!mGridViewHolder.getGridView().hasPreviousViewInSameRow(mSelectedPosition)) { 162e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout showTitle(true); 163e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout } else { 164e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout showTitle(false); 165e34cae48707e70442aca13e1b4ab55757292828dDake Gu } 166e34cae48707e70442aca13e1b4ab55757292828dDake Gu } 167739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 168739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout /** 169739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Sets an item clicked listener. 170947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu */ 171947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu public void setOnItemViewClickedListener(OnItemViewClickedListener listener) { 172947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu mOnItemViewClickedListener = listener; 173947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu if (mGridPresenter != null) { 174947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu mGridPresenter.setOnItemViewClickedListener(mOnItemViewClickedListener); 175947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu } 176947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu } 177947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu 178947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu /** 179947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu * Returns the item clicked listener. 180947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu */ 181947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu public OnItemViewClickedListener getOnItemViewClickedListener() { 182947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu return mOnItemViewClickedListener; 183947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu } 184947dbf076cd019e3c26217fbc7aa21e860d68044Dake Gu 185739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout @Override 186739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public View onCreateView(LayoutInflater inflater, ViewGroup container, 187739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout Bundle savedInstanceState) { 188e34cae48707e70442aca13e1b4ab55757292828dDake Gu ViewGroup root = (ViewGroup) inflater.inflate(R.layout.lb_vertical_grid_fragment, 189e34cae48707e70442aca13e1b4ab55757292828dDake Gu container, false); 190a373804d10f93a9488adc35cf6ce44dce09b3778Dake Gu ViewGroup gridFrame = (ViewGroup) root.findViewById(R.id.grid_frame); 191a373804d10f93a9488adc35cf6ce44dce09b3778Dake Gu installTitleView(inflater, gridFrame, savedInstanceState); 192684f4a94f6f55b2abc5ed2677dfdfc9501dd6407susnata getProgressBarManager().setRootView(root); 1939020c0aec57b4e8994d66b7cd1a89c225e9bfa11Craig Stout 19489097f67f988ebba714a95e10369665280db0c27Dake Gu ViewGroup gridDock = (ViewGroup) root.findViewById(R.id.browse_grid_dock); 195739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mGridViewHolder = mGridPresenter.onCreateViewHolder(gridDock); 196739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout gridDock.addView(mGridViewHolder.view); 197d586ba8825b418d9589436725bfdead30f0dc075Dake Gu mGridViewHolder.getGridView().setOnChildLaidOutListener(mChildLaidOutListener); 198739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 1998403619efebe94666c0615c3fc85080a303acf80Dake Gu mSceneAfterEntranceTransition = TransitionHelper.createScene(gridDock, new Runnable() { 200786ba352397f44022617411936515fc9eb28d23fDake Gu @Override 201786ba352397f44022617411936515fc9eb28d23fDake Gu public void run() { 202786ba352397f44022617411936515fc9eb28d23fDake Gu setEntranceTransitionState(true); 203786ba352397f44022617411936515fc9eb28d23fDake Gu } 204786ba352397f44022617411936515fc9eb28d23fDake Gu }); 205786ba352397f44022617411936515fc9eb28d23fDake Gu 206739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout updateAdapter(); 20789097f67f988ebba714a95e10369665280db0c27Dake Gu return root; 208739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 209739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 210e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout private void setupFocusSearchListener() { 211e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout BrowseFrameLayout browseFrameLayout = (BrowseFrameLayout) getView().findViewById( 212e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout R.id.grid_frame); 213e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout browseFrameLayout.setOnFocusSearchListener(getTitleHelper().getOnFocusSearchListener()); 214e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout } 215e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout 216739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout @Override 217739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public void onStart() { 218739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout super.onStart(); 219e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout setupFocusSearchListener(); 220739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 221739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 222739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout @Override 223739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public void onDestroyView() { 224739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout super.onDestroyView(); 225739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mGridViewHolder = null; 226739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 227739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 228739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout /** 229739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout * Sets the selected item position. 230739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout */ 231739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout public void setSelectedPosition(int position) { 232739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mSelectedPosition = position; 233739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout if(mGridViewHolder != null && mGridViewHolder.getGridView().getAdapter() != null) { 234739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mGridViewHolder.getGridView().setSelectedPositionSmooth(position); 235739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 236739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 237739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout 238739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout private void updateAdapter() { 239739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout if (mGridViewHolder != null) { 240739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mGridPresenter.onBindViewHolder(mGridViewHolder, mAdapter); 241739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout if (mSelectedPosition != -1) { 242739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout mGridViewHolder.getGridView().setSelectedPosition(mSelectedPosition); 243739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 244739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 245739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout } 246786ba352397f44022617411936515fc9eb28d23fDake Gu 247786ba352397f44022617411936515fc9eb28d23fDake Gu @Override 248786ba352397f44022617411936515fc9eb28d23fDake Gu protected Object createEntranceTransition() { 249b86a6c2c71514e0cb693597a955e224811b90f96Dake Gu return TransitionHelper.loadTransition(FragmentUtil.getContext(VerticalGridFragment.this), 250786ba352397f44022617411936515fc9eb28d23fDake Gu R.transition.lb_vertical_grid_entrance_transition); 251786ba352397f44022617411936515fc9eb28d23fDake Gu } 252786ba352397f44022617411936515fc9eb28d23fDake Gu 253786ba352397f44022617411936515fc9eb28d23fDake Gu @Override 254786ba352397f44022617411936515fc9eb28d23fDake Gu protected void runEntranceTransition(Object entranceTransition) { 2558403619efebe94666c0615c3fc85080a303acf80Dake Gu TransitionHelper.runTransition(mSceneAfterEntranceTransition, entranceTransition); 256786ba352397f44022617411936515fc9eb28d23fDake Gu } 257786ba352397f44022617411936515fc9eb28d23fDake Gu 258786ba352397f44022617411936515fc9eb28d23fDake Gu void setEntranceTransitionState(boolean afterTransition) { 259786ba352397f44022617411936515fc9eb28d23fDake Gu mGridPresenter.setEntranceTransitionState(mGridViewHolder, afterTransition); 260786ba352397f44022617411936515fc9eb28d23fDake Gu } 261739e3805bf2785e6773aede5e2e1643f537305f9Craig Stout} 262