GridExampleFragment.java revision 86163d539e1aeb9ae7612def7aaf7dbfc5b88f28
1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 * in compliance with the License. You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the License
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11 * or implied. See the License for the specific language governing permissions and limitations under
12 * the License.
13 */
14
15package android.support.v17.leanback.supportleanbackshowcase;
16
17import android.os.Bundle;
18import android.support.v17.leanback.app.VerticalGridFragment;
19import android.support.v17.leanback.supportleanbackshowcase.cards.models.CardRow;
20import android.support.v17.leanback.supportleanbackshowcase.cards.presenters.CardPresenterSelector;
21import android.support.v17.leanback.widget.ArrayObjectAdapter;
22import android.support.v17.leanback.widget.FocusHighlight;
23import android.support.v17.leanback.widget.PresenterSelector;
24import android.support.v17.leanback.widget.VerticalGridPresenter;
25
26import com.google.gson.Gson;
27
28/**
29 * An example how to use leanback's {@link VerticalGridFragment}.
30 */
31public class GridExample extends VerticalGridFragment {
32
33    private static final String TAG = "GridExample";
34    private static final int COLUMNS = 4;
35    private static final int ZOOM_FACTOR = FocusHighlight.ZOOM_FACTOR_NONE;
36
37    public void onCreate(Bundle savedInstanceState) {
38        super.onCreate(savedInstanceState);
39        setTitle(getString(R.string.grid_example_title));
40        setupRowAdapter();
41    }
42
43    private void setupRowAdapter() {
44        VerticalGridPresenter gridPresenter = new VerticalGridPresenter(ZOOM_FACTOR);
45        gridPresenter.setNumberOfColumns(COLUMNS);
46        setGridPresenter(gridPresenter);
47
48        PresenterSelector cardPresenterSelector = new CardPresenterSelector(getActivity());
49        ArrayObjectAdapter adapter = new ArrayObjectAdapter(cardPresenterSelector);
50        String json = Utils.inputStreamToString(getResources().openRawResource(R.raw.grid_example));
51        CardRow row = new Gson().fromJson(json, CardRow.class);
52        adapter.addAll(0, row.getCards());
53        setAdapter(adapter);
54    }
55
56}
57