1cc671dd3caac1d0cbf3f6999ab063c9ff1f297b2Dake Gu// CHECKSTYLE:OFF Generated code
2cc671dd3caac1d0cbf3f6999ab063c9ff1f297b2Dake Gu/* This file is auto-generated from VerticalGridFragment.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;
2171e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Bundle;
2271e7e67f320b23feac784b629db17b3bcce08722Dake Guimport android.os.Handler;
23def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport android.util.Log;
24def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport android.view.View;
25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.core.content.res.ResourcesCompat;
27ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.ArrayObjectAdapter;
28ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.OnItemViewClickedListener;
29ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.OnItemViewSelectedListener;
30ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.Presenter;
31ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.Row;
32ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.RowPresenter;
33ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.widget.VerticalGridPresenter;
3471e7e67f320b23feac784b629db17b3bcce08722Dake Gu
35ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspublic class VerticalGridSupportFragment extends androidx.leanback.app.VerticalGridSupportFragment {
3671e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final String TAG = "leanback.VerticalGridSupportFragment";
3771e7e67f320b23feac784b629db17b3bcce08722Dake Gu
3871e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int NUM_COLUMNS = 3;
3971e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int NUM_ITEMS = 50;
4071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final int HEIGHT = 200;
4171e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static final boolean TEST_ENTRANCE_TRANSITION = true;
4271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
4371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private static class Adapter extends ArrayObjectAdapter {
4471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        public Adapter(StringPresenter presenter) {
4571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            super(presenter);
4671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
4771e7e67f320b23feac784b629db17b3bcce08722Dake Gu        public void callNotifyChanged() {
4871e7e67f320b23feac784b629db17b3bcce08722Dake Gu            super.notifyChanged();
4971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
5071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
5171e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private Adapter mAdapter;
5271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
5371e7e67f320b23feac784b629db17b3bcce08722Dake Gu    @Override
5471e7e67f320b23feac784b629db17b3bcce08722Dake Gu    public void onCreate(Bundle savedInstanceState) {
5571e7e67f320b23feac784b629db17b3bcce08722Dake Gu        Log.i(TAG, "onCreate");
5671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        super.onCreate(savedInstanceState);
5771e7e67f320b23feac784b629db17b3bcce08722Dake Gu
58b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu        final Context context = getActivity();
59b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu        setBadgeDrawable(ResourcesCompat.getDrawable(context.getResources(),
60b7087e036a48f5a3db28d02ff7f9b97fbbc46c4fDake Gu                R.drawable.ic_title, context.getTheme()));
6171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setTitle("Leanback Vertical Grid Demo");
6271e7e67f320b23feac784b629db17b3bcce08722Dake Gu
6371e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setupFragment();
6471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        if (TEST_ENTRANCE_TRANSITION) {
6571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            // don't run entrance transition if fragment is restored.
6671e7e67f320b23feac784b629db17b3bcce08722Dake Gu            if (savedInstanceState == null) {
6771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                prepareEntranceTransition();
6871e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
6971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
7071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        // simulates in a real world use case  data being loaded two seconds later
7171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        new Handler().postDelayed(new Runnable() {
72e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas            @Override
7371e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void run() {
7471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                loadData();
7571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                startEntranceTransition();
7671e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
7771e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }, 2000);
7871e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
7971e7e67f320b23feac784b629db17b3bcce08722Dake Gu
8071e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private void loadData() {
8171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        for (int i = 0; i < NUM_ITEMS; i++) {
8271e7e67f320b23feac784b629db17b3bcce08722Dake Gu            mAdapter.add(Integer.toString(i));
8371e7e67f320b23feac784b629db17b3bcce08722Dake Gu        }
8471e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
8571e7e67f320b23feac784b629db17b3bcce08722Dake Gu
8671e7e67f320b23feac784b629db17b3bcce08722Dake Gu    private void setupFragment() {
8771e7e67f320b23feac784b629db17b3bcce08722Dake Gu        VerticalGridPresenter gridPresenter = new VerticalGridPresenter();
8871e7e67f320b23feac784b629db17b3bcce08722Dake Gu        gridPresenter.setNumberOfColumns(NUM_COLUMNS);
8971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setGridPresenter(gridPresenter);
9071e7e67f320b23feac784b629db17b3bcce08722Dake Gu
9171e7e67f320b23feac784b629db17b3bcce08722Dake Gu        mAdapter = new Adapter(new StringPresenter());
9271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setAdapter(mAdapter);
9371e7e67f320b23feac784b629db17b3bcce08722Dake Gu
9471e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
9571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            @Override
9671e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
9771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    RowPresenter.ViewHolder rowViewHolder, Row row) {
9871e7e67f320b23feac784b629db17b3bcce08722Dake Gu                Log.i(TAG, "onItemSelected: " + item + " row " + row);
9971e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
10071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        });
10171e7e67f320b23feac784b629db17b3bcce08722Dake Gu
10271e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setOnItemViewClickedListener(new OnItemViewClickedListener() {
10371e7e67f320b23feac784b629db17b3bcce08722Dake Gu            @Override
10471e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
10571e7e67f320b23feac784b629db17b3bcce08722Dake Gu                    RowPresenter.ViewHolder rowViewHolder, Row row) {
10671e7e67f320b23feac784b629db17b3bcce08722Dake Gu                Log.i(TAG, "onItemClicked: " + item + " row " + row);
10771e7e67f320b23feac784b629db17b3bcce08722Dake Gu                mAdapter.callNotifyChanged();
10871e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
10971e7e67f320b23feac784b629db17b3bcce08722Dake Gu        });
11071e7e67f320b23feac784b629db17b3bcce08722Dake Gu        setOnSearchClickedListener(new View.OnClickListener() {
11171e7e67f320b23feac784b629db17b3bcce08722Dake Gu            @Override
11271e7e67f320b23feac784b629db17b3bcce08722Dake Gu            public void onClick(View view) {
11371e7e67f320b23feac784b629db17b3bcce08722Dake Gu                Intent intent = new Intent(getActivity(), SearchSupportActivity.class);
11471e7e67f320b23feac784b629db17b3bcce08722Dake Gu                startActivity(intent);
11571e7e67f320b23feac784b629db17b3bcce08722Dake Gu            }
11671e7e67f320b23feac784b629db17b3bcce08722Dake Gu        });
11771e7e67f320b23feac784b629db17b3bcce08722Dake Gu    }
11871e7e67f320b23feac784b629db17b3bcce08722Dake Gu}
119