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