BrowseFragment.java revision 12d4d450a8057b6d640fbe32fde63667ec2c8e83
1/*
2 * Copyright (C) 2014 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 */
14package com.example.android.leanback;
15
16import android.content.Intent;
17import android.os.Bundle;
18import android.support.v17.leanback.widget.ArrayObjectAdapter;
19import android.support.v17.leanback.widget.HeaderItem;
20import android.support.v17.leanback.widget.ListRow;
21import android.support.v17.leanback.widget.ListRowPresenter;
22import android.support.v17.leanback.widget.OnItemClickedListener;
23import android.support.v17.leanback.widget.Row;
24import android.util.Log;
25
26public class BrowseFragment extends android.support.v17.leanback.app.BrowseFragment {
27    private static final String TAG = "leanback.BrowseFragment";
28
29    private static final int NUM_ROWS = 3;
30    private ArrayObjectAdapter mRowsAdapter;
31
32    @Override
33    public void onCreate(Bundle savedInstanceState) {
34        Log.i(TAG, "onCreate");
35        super.onCreate(savedInstanceState);
36
37        Params p = new Params();
38        p.setBadgeImage(getActivity().getResources().getDrawable(R.drawable.ic_title));
39        p.setTitle("Leanback Sample App");
40        p.setHeadersState(HEADERS_ENABLED);
41        setBrowseParams(p);
42
43        setupRows();
44        setOnItemClickedListener(new ItemClickedListener());
45    }
46
47    private void setupRows() {
48        mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
49
50        for (int i = 0; i < NUM_ROWS; ++i) {
51            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter());
52            listRowAdapter.add("Hello world");
53            listRowAdapter.add("This is a test");
54            HeaderItem header = new HeaderItem(i, "Row " + i, null);
55            mRowsAdapter.add(new ListRow(header, listRowAdapter));
56        }
57
58        setAdapter(mRowsAdapter);
59    }
60
61    private final class ItemClickedListener implements OnItemClickedListener {
62        public void onItemClicked(Object item, Row row) {
63            // TODO: use a fragment transaction instead of launching a new
64            // activity
65            Intent intent = new Intent(getActivity(), DetailsActivity.class);
66            startActivity(intent);
67        }
68    }
69}
70