blob: 8d42f782978546c62f617ce442dc84f390edd219 [file] [log] [blame]
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package com.example.android.leanback;
import java.util.*;
import android.content.Intent;
import android.os.Bundle;
import android.support.v17.leanback.widget.ArrayObjectAdapter;
import android.support.v17.leanback.widget.OnItemClickedListener;
import android.support.v17.leanback.widget.OnItemSelectedListener;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.VerticalGridPresenter;
import android.util.Log;
/*
* VerticalGridFragment shows a grid of videos
*/
public class VerticalGridFragment extends android.support.v17.leanback.app.VerticalGridFragment {
private static final String TAG = "VerticalGridFragment";
private static final int NUM_COLUMNS = 5;
private ArrayObjectAdapter mAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate");
super.onCreate(savedInstanceState);
setTitle(getString(R.string.vertical_grid_title));
setupFragment();
}
private void setupFragment() {
VerticalGridPresenter gridPresenter = new VerticalGridPresenter();
gridPresenter.setNumberOfColumns(NUM_COLUMNS);
setGridPresenter(gridPresenter);
mAdapter = new ArrayObjectAdapter(new CardPresenter());
long seed = System.nanoTime();
HashMap<String, List<Movie>> movies = VideoProvider.getMovieList();
for (Map.Entry<String, List<Movie>> entry : movies.entrySet())
{
List<Movie> list = entry.getValue();
Collections.shuffle(list, new Random(seed));
for (int j = 0; j < list.size(); j++) {
mAdapter.add(list.get(j));
}
}
setAdapter(mAdapter);
setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(Object item, Row row) {
}
});
setOnItemClickedListener(new OnItemClickedListener() {
@Override
public void onItemClicked(Object item, Row row) {
if (item instanceof Movie) {
Movie movie = (Movie) item;
Intent intent = new Intent(getActivity(), DetailsActivity.class);
intent.putExtra(getString(R.string.movie), movie);
startActivity(intent);
}
}
});
}
}