| // CHECKSTYLE:OFF Generated code |
| /* This file is auto-generated from DetailsTestFragment.java. DO NOT MODIFY. */ |
| |
| /* |
| * Copyright (C) 2016 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 android.support.v17.leanback.app; |
| |
| import android.content.res.Resources; |
| import android.os.Bundle; |
| import android.os.Handler; |
| import android.support.v17.leanback.test.R; |
| import android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter; |
| import android.support.v17.leanback.widget.Action; |
| import android.support.v17.leanback.widget.ArrayObjectAdapter; |
| import android.support.v17.leanback.widget.ClassPresenterSelector; |
| import android.support.v17.leanback.widget.DetailsOverviewRow; |
| import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter; |
| import android.support.v17.leanback.widget.HeaderItem; |
| import android.support.v17.leanback.widget.ImageCardView; |
| import android.support.v17.leanback.widget.ListRow; |
| import android.support.v17.leanback.widget.ListRowPresenter; |
| import android.support.v17.leanback.widget.Presenter; |
| import android.support.v17.leanback.widget.SparseArrayObjectAdapter; |
| import android.view.ViewGroup; |
| |
| /** |
| * Base class provides overview row and some related rows. |
| */ |
| public class DetailsTestSupportFragment extends android.support.v17.leanback.app.DetailsSupportFragment { |
| private static final int NUM_ROWS = 3; |
| private ArrayObjectAdapter mRowsAdapter; |
| private PhotoItem mPhotoItem; |
| private final Presenter mCardPresenter = new Presenter() { |
| @Override |
| public ViewHolder onCreateViewHolder(ViewGroup parent) { |
| ImageCardView cardView = new ImageCardView(getActivity()); |
| cardView.setFocusable(true); |
| cardView.setFocusableInTouchMode(true); |
| return new ViewHolder(cardView); |
| } |
| |
| @Override |
| public void onBindViewHolder(ViewHolder viewHolder, Object item) { |
| ImageCardView imageCardView = (ImageCardView) viewHolder.view; |
| imageCardView.setTitleText("Android Tv"); |
| imageCardView.setContentText("Android Tv Production Inc."); |
| imageCardView.setMainImageDimensions(313, 176); |
| } |
| |
| @Override |
| public void onUnbindViewHolder(ViewHolder viewHolder) { |
| } |
| }; |
| |
| private static final int ACTION_RENT = 2; |
| private static final int ACTION_BUY = 3; |
| |
| protected long mTimeToLoadOverviewRow = 1000; |
| protected long mTimeToLoadRelatedRow = 2000; |
| |
| private Action mActionRent; |
| private Action mActionBuy; |
| |
| protected int mMinVerticalOffset = -100; |
| |
| @Override |
| public void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| setTitle("Leanback Sample App"); |
| |
| mActionRent = new Action(ACTION_RENT, "Rent", "$3.99", |
| getResources().getDrawable(R.drawable.ic_action_a)); |
| mActionBuy = new Action(ACTION_BUY, "Buy $9.99"); |
| |
| ClassPresenterSelector ps = new ClassPresenterSelector(); |
| FullWidthDetailsOverviewRowPresenter dorPresenter = |
| new FullWidthDetailsOverviewRowPresenter(new AbstractDetailsDescriptionPresenter() { |
| @Override |
| protected void onBindDescription( |
| AbstractDetailsDescriptionPresenter.ViewHolder vh, Object item) { |
| vh.getTitle().setText("Funny Movie"); |
| vh.getSubtitle().setText("Android TV Production Inc."); |
| vh.getBody().setText("What a great movie!"); |
| } |
| }); |
| |
| ps.addClassPresenter(DetailsOverviewRow.class, dorPresenter); |
| ps.addClassPresenter(ListRow.class, new ListRowPresenter()); |
| mRowsAdapter = new ArrayObjectAdapter(ps); |
| } |
| |
| public void setItem(PhotoItem photoItem) { |
| mPhotoItem = photoItem; |
| mRowsAdapter.clear(); |
| new Handler().postDelayed(new Runnable() { |
| public void run() { |
| if (getActivity() == null) { |
| return; |
| } |
| Resources res = getActivity().getResources(); |
| DetailsOverviewRow dor = new DetailsOverviewRow(mPhotoItem.getTitle()); |
| dor.setImageDrawable(res.getDrawable(mPhotoItem.getImageResourceId())); |
| SparseArrayObjectAdapter adapter = new SparseArrayObjectAdapter(); |
| adapter.set(ACTION_RENT, mActionRent); |
| adapter.set(ACTION_BUY, mActionBuy); |
| dor.setActionsAdapter(adapter); |
| mRowsAdapter.add(0, dor); |
| setSelectedPosition(0, true); |
| } |
| }, mTimeToLoadOverviewRow); |
| |
| |
| new Handler().postDelayed(new Runnable() { |
| public void run() { |
| if (getActivity() == null) { |
| return; |
| } |
| for (int i = 0; i < NUM_ROWS; ++i) { |
| ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(mCardPresenter); |
| listRowAdapter.add(new PhotoItem("Hello world", R.drawable.spiderman)); |
| listRowAdapter.add(new PhotoItem("This is a test", R.drawable.spiderman)); |
| listRowAdapter.add(new PhotoItem("Android TV", R.drawable.spiderman)); |
| listRowAdapter.add(new PhotoItem("Leanback", R.drawable.spiderman)); |
| HeaderItem header = new HeaderItem(i, "Row " + i); |
| mRowsAdapter.add(new ListRow(header, listRowAdapter)); |
| } |
| } |
| }, mTimeToLoadRelatedRow); |
| |
| setAdapter(mRowsAdapter); |
| } |
| |
| } |