16193c12a1897723c87b41f4e304a8cd04deef2dcDake Gu/* This file is auto-generated from VerticalGridFragment.java.  DO NOT MODIFY. */
26193c12a1897723c87b41f4e304a8cd04deef2dcDake Gu
361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu/*
461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Copyright (C) 2014 The Android Open Source Project
561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu *
661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * in compliance with the License. You may obtain a copy of the License at
861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu *
961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * http://www.apache.org/licenses/LICENSE-2.0
1061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu *
1161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * Unless required by applicable law or agreed to in writing, software distributed under the License
1261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
1361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * or implied. See the License for the specific language governing permissions and limitations under
1461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * the License.
1561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */
1661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gupackage android.support.v17.leanback.app;
1761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
1861905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.R;
198403619efebe94666c0615c3fc85080a303acf80Dake Guimport android.support.v17.leanback.transition.TransitionHelper;
2061905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.BrowseFrameLayout;
21d586ba8825b418d9589436725bfdead30f0dc075Dake Guimport android.support.v17.leanback.widget.OnChildLaidOutListener;
2261905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.OnItemViewClickedListener;
2361905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.OnItemViewSelectedListener;
2461905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.Presenter;
2561905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.Row;
2661905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.RowPresenter;
2761905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.VerticalGridPresenter;
2861905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.support.v17.leanback.widget.ObjectAdapter;
2961905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.os.Bundle;
3061905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.util.Log;
3161905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.view.LayoutInflater;
3261905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.view.View;
3361905b0b52c50018dcaebcd79699c39b8f28d622Dake Guimport android.view.ViewGroup;
3461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
3561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu/**
3661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * A fragment for creating leanback vertical grids.
3761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu *
3861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * <p>Renders a vertical grid of objects given a {@link VerticalGridPresenter} and
3961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu * an {@link ObjectAdapter}.
4061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu */
41786ba352397f44022617411936515fc9eb28d23fDake Gupublic class VerticalGridSupportFragment extends BaseSupportFragment {
4261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private static final String TAG = "VerticalGridSupportFragment";
4361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private static boolean DEBUG = false;
4461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
4561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private ObjectAdapter mAdapter;
4661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private VerticalGridPresenter mGridPresenter;
4761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private VerticalGridPresenter.ViewHolder mGridViewHolder;
4861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private OnItemViewSelectedListener mOnItemViewSelectedListener;
4961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private OnItemViewClickedListener mOnItemViewClickedListener;
50786ba352397f44022617411936515fc9eb28d23fDake Gu    private Object mSceneAfterEntranceTransition;
5161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private int mSelectedPosition = -1;
5261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
5361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
5461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Sets the grid presenter.
5561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
5661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void setGridPresenter(VerticalGridPresenter gridPresenter) {
5761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        if (gridPresenter == null) {
5861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            throw new IllegalArgumentException("Grid presenter may not be null");
5961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        }
6061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        mGridPresenter = gridPresenter;
61d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        mGridPresenter.setOnItemViewSelectedListener(mViewSelectedListener);
6261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        if (mOnItemViewClickedListener != null) {
6361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            mGridPresenter.setOnItemViewClickedListener(mOnItemViewClickedListener);
6461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        }
6561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
6661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
6761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
6861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Returns the grid presenter.
6961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
7061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public VerticalGridPresenter getGridPresenter() {
7161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        return mGridPresenter;
7261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
7361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
7461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
7561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Sets the object adapter for the fragment.
7661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
7761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void setAdapter(ObjectAdapter adapter) {
7861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        mAdapter = adapter;
7961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        updateAdapter();
8061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
8161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
8261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
8361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Returns the object adapter.
8461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
8561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public ObjectAdapter getAdapter() {
8661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        return mAdapter;
8761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
8861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
89d586ba8825b418d9589436725bfdead30f0dc075Dake Gu    final private OnItemViewSelectedListener mViewSelectedListener =
9061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            new OnItemViewSelectedListener() {
9161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        @Override
9261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
9361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu                RowPresenter.ViewHolder rowViewHolder, Row row) {
9461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            int position = mGridViewHolder.getGridView().getSelectedPosition();
95d586ba8825b418d9589436725bfdead30f0dc075Dake Gu            if (DEBUG) Log.v(TAG, "grid selected position " + position);
96d586ba8825b418d9589436725bfdead30f0dc075Dake Gu            gridOnItemSelected(position);
9761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            if (mOnItemViewSelectedListener != null) {
9861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu                mOnItemViewSelectedListener.onItemSelected(itemViewHolder, item,
9961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu                        rowViewHolder, row);
10061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            }
10161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        }
10261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    };
10361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
104d586ba8825b418d9589436725bfdead30f0dc075Dake Gu    final private OnChildLaidOutListener mChildLaidOutListener =
105d586ba8825b418d9589436725bfdead30f0dc075Dake Gu            new OnChildLaidOutListener() {
106d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        @Override
107d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        public void onChildLaidOut(ViewGroup parent, View view, int position, long id) {
108d586ba8825b418d9589436725bfdead30f0dc075Dake Gu            if (position == 0) {
109d586ba8825b418d9589436725bfdead30f0dc075Dake Gu                showOrHideTitle();
110d586ba8825b418d9589436725bfdead30f0dc075Dake Gu            }
111d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        }
112d586ba8825b418d9589436725bfdead30f0dc075Dake Gu    };
113d586ba8825b418d9589436725bfdead30f0dc075Dake Gu
11461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
11561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Sets an item selection listener.
11661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
11761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void setOnItemViewSelectedListener(OnItemViewSelectedListener listener) {
11861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        mOnItemViewSelectedListener = listener;
11961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
12061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
121d586ba8825b418d9589436725bfdead30f0dc075Dake Gu    private void gridOnItemSelected(int position) {
12261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        if (position != mSelectedPosition) {
12361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            mSelectedPosition = position;
124d586ba8825b418d9589436725bfdead30f0dc075Dake Gu            showOrHideTitle();
125d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        }
126d586ba8825b418d9589436725bfdead30f0dc075Dake Gu    }
127d586ba8825b418d9589436725bfdead30f0dc075Dake Gu
128d586ba8825b418d9589436725bfdead30f0dc075Dake Gu    private void showOrHideTitle() {
129d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        if (mGridViewHolder.getGridView().findViewHolderForAdapterPosition(mSelectedPosition)
130d586ba8825b418d9589436725bfdead30f0dc075Dake Gu                == null) {
131d586ba8825b418d9589436725bfdead30f0dc075Dake Gu            return;
132d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        }
133d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        if (!mGridViewHolder.getGridView().hasPreviousViewInSameRow(mSelectedPosition)) {
134e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout            showTitle(true);
135e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout        } else {
136e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout            showTitle(false);
13761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        }
13861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
13961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
14061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
14161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Sets an item clicked listener.
14261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
14361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void setOnItemViewClickedListener(OnItemViewClickedListener listener) {
14461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        mOnItemViewClickedListener = listener;
14561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        if (mGridPresenter != null) {
14661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            mGridPresenter.setOnItemViewClickedListener(mOnItemViewClickedListener);
14761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        }
14861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
14961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
15061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
15161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Returns the item clicked listener.
15261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
15361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public OnItemViewClickedListener getOnItemViewClickedListener() {
15461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        return mOnItemViewClickedListener;
15561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
15661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
15761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    @Override
15861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public View onCreateView(LayoutInflater inflater, ViewGroup container,
15961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            Bundle savedInstanceState) {
16061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        ViewGroup root = (ViewGroup) inflater.inflate(R.layout.lb_vertical_grid_fragment,
16161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu                container, false);
162a373804d10f93a9488adc35cf6ce44dce09b3778Dake Gu        ViewGroup gridFrame = (ViewGroup) root.findViewById(R.id.grid_frame);
163a373804d10f93a9488adc35cf6ce44dce09b3778Dake Gu        installTitleView(inflater, gridFrame, savedInstanceState);
164684f4a94f6f55b2abc5ed2677dfdfc9501dd6407susnata        getProgressBarManager().setRootView(root);
16561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        return root;
16661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
16761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
16861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    @Override
16961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void onViewCreated(View view, Bundle savedInstanceState) {
170e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout        super.onViewCreated(view, savedInstanceState);
17161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        ViewGroup gridDock = (ViewGroup) view.findViewById(R.id.browse_grid_dock);
17261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        mGridViewHolder = mGridPresenter.onCreateViewHolder(gridDock);
17361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        gridDock.addView(mGridViewHolder.view);
174d586ba8825b418d9589436725bfdead30f0dc075Dake Gu        mGridViewHolder.getGridView().setOnChildLaidOutListener(mChildLaidOutListener);
17561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
1768403619efebe94666c0615c3fc85080a303acf80Dake Gu        mSceneAfterEntranceTransition = TransitionHelper.createScene(gridDock, new Runnable() {
177786ba352397f44022617411936515fc9eb28d23fDake Gu            @Override
178786ba352397f44022617411936515fc9eb28d23fDake Gu            public void run() {
179786ba352397f44022617411936515fc9eb28d23fDake Gu                setEntranceTransitionState(true);
180786ba352397f44022617411936515fc9eb28d23fDake Gu            }
181786ba352397f44022617411936515fc9eb28d23fDake Gu        });
182786ba352397f44022617411936515fc9eb28d23fDake Gu
18361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        updateAdapter();
18461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
18561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
186e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout    private void setupFocusSearchListener() {
187e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout        BrowseFrameLayout browseFrameLayout = (BrowseFrameLayout) getView().findViewById(
188e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout                R.id.grid_frame);
189e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout        browseFrameLayout.setOnFocusSearchListener(getTitleHelper().getOnFocusSearchListener());
190e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout    }
191e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout
19261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    @Override
19361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void onStart() {
19461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        super.onStart();
195e7246ef136ed686d8caf339d4d1fd8e37b499c6aCraig Stout        setupFocusSearchListener();
196786ba352397f44022617411936515fc9eb28d23fDake Gu        if (isEntranceTransitionEnabled()) {
197786ba352397f44022617411936515fc9eb28d23fDake Gu            setEntranceTransitionState(false);
198786ba352397f44022617411936515fc9eb28d23fDake Gu        }
19961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
20061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
20161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    @Override
20261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void onDestroyView() {
20361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        super.onDestroyView();
20461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        mGridViewHolder = null;
20561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
20661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
20761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    /**
20861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     * Sets the selected item position.
20961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu     */
21061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    public void setSelectedPosition(int position) {
21161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        mSelectedPosition = position;
21261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        if(mGridViewHolder != null && mGridViewHolder.getGridView().getAdapter() != null) {
21361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            mGridViewHolder.getGridView().setSelectedPositionSmooth(position);
21461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        }
21561905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
21661905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu
21761905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    private void updateAdapter() {
21861905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        if (mGridViewHolder != null) {
21961905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            mGridPresenter.onBindViewHolder(mGridViewHolder, mAdapter);
22061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            if (mSelectedPosition != -1) {
22161905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu                mGridViewHolder.getGridView().setSelectedPosition(mSelectedPosition);
22261905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu            }
22361905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu        }
22461905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu    }
225786ba352397f44022617411936515fc9eb28d23fDake Gu
226786ba352397f44022617411936515fc9eb28d23fDake Gu    @Override
227786ba352397f44022617411936515fc9eb28d23fDake Gu    protected Object createEntranceTransition() {
2288403619efebe94666c0615c3fc85080a303acf80Dake Gu        return TransitionHelper.loadTransition(getActivity(),
229786ba352397f44022617411936515fc9eb28d23fDake Gu                R.transition.lb_vertical_grid_entrance_transition);
230786ba352397f44022617411936515fc9eb28d23fDake Gu    }
231786ba352397f44022617411936515fc9eb28d23fDake Gu
232786ba352397f44022617411936515fc9eb28d23fDake Gu    @Override
233786ba352397f44022617411936515fc9eb28d23fDake Gu    protected void runEntranceTransition(Object entranceTransition) {
2348403619efebe94666c0615c3fc85080a303acf80Dake Gu        TransitionHelper.runTransition(mSceneAfterEntranceTransition, entranceTransition);
235786ba352397f44022617411936515fc9eb28d23fDake Gu    }
236786ba352397f44022617411936515fc9eb28d23fDake Gu
237786ba352397f44022617411936515fc9eb28d23fDake Gu    void setEntranceTransitionState(boolean afterTransition) {
238786ba352397f44022617411936515fc9eb28d23fDake Gu        mGridPresenter.setEntranceTransitionState(mGridViewHolder, afterTransition);
239786ba352397f44022617411936515fc9eb28d23fDake Gu    }
24061905b0b52c50018dcaebcd79699c39b8f28d622Dake Gu}
241