158b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell/* 258b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * Copyright (C) 2016 The Android Open Source Project 358b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * 458b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * Licensed under the Apache License, Version 2.0 (the "License"); 558b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * you may not use this file except in compliance with the License. 658b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * You may obtain a copy of the License at 758b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * 858b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * http://www.apache.org/licenses/LICENSE-2.0 958b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * 1058b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * Unless required by applicable law or agreed to in writing, software 1158b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * distributed under the License is distributed on an "AS IS" BASIS, 1258b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1358b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * See the License for the specific language governing permissions and 1458b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell * limitations under the License 1558b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell */ 1658b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 1758b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellpackage com.google.android.leanbackjank.presenter; 1858b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 1958b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellimport android.content.res.Resources; 2058b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellimport android.graphics.Color; 2158b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellimport android.view.Gravity; 2258b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellimport android.view.ViewGroup; 2358b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellimport android.widget.TextView; 2458b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.core.content.res.ResourcesCompat; 26def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.leanback.widget.Presenter; 27def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas 2858b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellimport com.google.android.leanbackjank.R; 2958b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 3058b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassellpublic class GridItemPresenter extends Presenter { 3158b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 3258b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell @Override 3358b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell public ViewHolder onCreateViewHolder(ViewGroup parent) { 3458b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell TextView view = new TextView(parent.getContext()); 3558b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 3658b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell Resources res = parent.getResources(); 3758b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell int width = res.getDimensionPixelSize(R.dimen.grid_item_width); 3858b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell int height = res.getDimensionPixelSize(R.dimen.grid_item_height); 3958b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 4058b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell view.setLayoutParams(new ViewGroup.LayoutParams(width, height)); 4158b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell view.setFocusable(true); 4258b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell view.setFocusableInTouchMode(true); 43a3eaac19490539262eff7832eff880566c57cafcAurimas Liutikas view.setBackgroundColor( 44a3eaac19490539262eff7832eff880566c57cafcAurimas Liutikas ResourcesCompat.getColor(parent.getResources(), R.color.jank_yellow, null)); 4558b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell view.setTextColor(Color.WHITE); 4658b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell view.setGravity(Gravity.CENTER); 4758b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell return new ViewHolder(view); 4858b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell } 4958b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 5058b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell @Override 5158b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell public void onBindViewHolder(ViewHolder viewHolder, Object item) { 5258b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell ((TextView) viewHolder.view).setText((String) item); 5358b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell } 5458b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell 5558b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell @Override 5658b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell public void onUnbindViewHolder(ViewHolder viewHolder) { 5758b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell } 5858b7bbb83053e664ada2e1ace49f8960dfecdbfdBryan Cassell} 59