VerticalGridSupportFragment.java revision b7087e036a48f5a3db28d02ff7f9b97fbbc46c4f
1/* This file is auto-generated from VerticalGridFragment. DO NOT MODIFY. */ 2 3/* 4 * Copyright (C) 2014 The Android Open Source Project 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 7 * in compliance with the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software distributed under the License 12 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 13 * or implied. See the License for the specific language governing permissions and limitations under 14 * the License. 15 */ 16package com.example.android.leanback; 17 18import android.content.Context; 19import android.content.Intent; 20import android.os.Bundle; 21import android.os.Handler; 22import android.support.v17.leanback.widget.ArrayObjectAdapter; 23import android.support.v17.leanback.widget.OnItemViewClickedListener; 24import android.support.v17.leanback.widget.OnItemViewSelectedListener; 25import android.support.v17.leanback.widget.Presenter; 26import android.support.v17.leanback.widget.Row; 27import android.support.v17.leanback.widget.RowPresenter; 28import android.support.v17.leanback.widget.VerticalGridPresenter; 29import android.support.v4.content.res.ResourcesCompat; 30import android.util.Log; 31import android.view.View; 32 33public class VerticalGridSupportFragment extends android.support.v17.leanback.app.VerticalGridSupportFragment { 34 private static final String TAG = "leanback.VerticalGridSupportFragment"; 35 36 private static final int NUM_COLUMNS = 3; 37 private static final int NUM_ITEMS = 50; 38 private static final int HEIGHT = 200; 39 private static final boolean TEST_ENTRANCE_TRANSITION = true; 40 41 private static class Adapter extends ArrayObjectAdapter { 42 public Adapter(StringPresenter presenter) { 43 super(presenter); 44 } 45 public void callNotifyChanged() { 46 super.notifyChanged(); 47 } 48 } 49 private Adapter mAdapter; 50 51 @Override 52 public void onCreate(Bundle savedInstanceState) { 53 Log.i(TAG, "onCreate"); 54 super.onCreate(savedInstanceState); 55 56 final Context context = getActivity(); 57 setBadgeDrawable(ResourcesCompat.getDrawable(context.getResources(), 58 R.drawable.ic_title, context.getTheme())); 59 setTitle("Leanback Vertical Grid Demo"); 60 61 setupFragment(); 62 if (TEST_ENTRANCE_TRANSITION) { 63 // don't run entrance transition if fragment is restored. 64 if (savedInstanceState == null) { 65 prepareEntranceTransition(); 66 } 67 } 68 // simulates in a real world use case data being loaded two seconds later 69 new Handler().postDelayed(new Runnable() { 70 public void run() { 71 loadData(); 72 startEntranceTransition(); 73 } 74 }, 2000); 75 } 76 77 private void loadData() { 78 for (int i = 0; i < NUM_ITEMS; i++) { 79 mAdapter.add(Integer.toString(i)); 80 } 81 } 82 83 private void setupFragment() { 84 VerticalGridPresenter gridPresenter = new VerticalGridPresenter(); 85 gridPresenter.setNumberOfColumns(NUM_COLUMNS); 86 setGridPresenter(gridPresenter); 87 88 mAdapter = new Adapter(new StringPresenter()); 89 setAdapter(mAdapter); 90 91 setOnItemViewSelectedListener(new OnItemViewSelectedListener() { 92 @Override 93 public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, 94 RowPresenter.ViewHolder rowViewHolder, Row row) { 95 Log.i(TAG, "onItemSelected: " + item + " row " + row); 96 } 97 }); 98 99 setOnItemViewClickedListener(new OnItemViewClickedListener() { 100 @Override 101 public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item, 102 RowPresenter.ViewHolder rowViewHolder, Row row) { 103 Log.i(TAG, "onItemClicked: " + item + " row " + row); 104 mAdapter.callNotifyChanged(); 105 } 106 }); 107 setOnSearchClickedListener(new View.OnClickListener() { 108 @Override 109 public void onClick(View view) { 110 Intent intent = new Intent(getActivity(), SearchSupportActivity.class); 111 startActivity(intent); 112 } 113 }); 114 } 115} 116