1816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/* 2816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Copyright (C) 2015 The Android Open Source Project 3816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 4816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License"); 5816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * you may not use this file except in compliance with the License. 6816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * You may obtain a copy of the License at 7816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 8816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * http://www.apache.org/licenses/LICENSE-2.0 9816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * 10816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * Unless required by applicable law or agreed to in writing, software 11816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS, 12816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * See the License for the specific language governing permissions and 14816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko * limitations under the License. 15816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */ 16816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 17816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopackage com.android.tv.menu; 18816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 19816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport android.content.Context; 20816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport com.android.tv.R; 21816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkoimport com.android.tv.menu.ItemListRowView.ItemListAdapter; 22816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 23816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko/** 2495961816a768da387f0b5523cf4363ace2044089Nick Chalko * A menu item which is used to represents the list of the items. A list will be displayed by a 2595961816a768da387f0b5523cf4363ace2044089Nick Chalko * HorizontalGridView with cards, so an adapter for the GridView is necessary. 26816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko */ 27816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko@SuppressWarnings("rawtypes") 28816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalkopublic class ItemListRow extends MenuRow { 29816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko private ItemListAdapter mAdapter; 30816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 3195961816a768da387f0b5523cf4363ace2044089Nick Chalko public ItemListRow( 3295961816a768da387f0b5523cf4363ace2044089Nick Chalko Context context, 3395961816a768da387f0b5523cf4363ace2044089Nick Chalko Menu menu, 3495961816a768da387f0b5523cf4363ace2044089Nick Chalko int titleResId, 3595961816a768da387f0b5523cf4363ace2044089Nick Chalko int itemHeightResId, 36816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko ItemListAdapter adapter) { 3707b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko this(context, menu, context.getString(titleResId), itemHeightResId, adapter); 38816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 39816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 4095961816a768da387f0b5523cf4363ace2044089Nick Chalko public ItemListRow( 4195961816a768da387f0b5523cf4363ace2044089Nick Chalko Context context, 4295961816a768da387f0b5523cf4363ace2044089Nick Chalko Menu menu, 4395961816a768da387f0b5523cf4363ace2044089Nick Chalko String title, 4495961816a768da387f0b5523cf4363ace2044089Nick Chalko int itemHeightResId, 45816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko ItemListAdapter adapter) { 4607b043dc3db83d6d20f0e8513b946830ab00e37bNick Chalko super(context, menu, title, itemHeightResId); 47816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mAdapter = adapter; 48816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 49816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 5095961816a768da387f0b5523cf4363ace2044089Nick Chalko /** Returns the adapter. */ 51816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public ItemListAdapter<?> getAdapter() { 52816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko return mAdapter; 53816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 54816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 55816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public void setAdapter(ItemListAdapter<?> adapter) { 56816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mAdapter = adapter; 57816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 58816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 59816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko @Override 60816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public void update() { 61816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko mAdapter.update(); 62816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 63816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 64816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko @Override 65816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public boolean isVisible() { 66816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko return mAdapter.getItemCount() > 0; 67816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 68816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 69816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko @Override 70816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public int getLayoutResId() { 71816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko return R.layout.item_list; 72816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 73816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko 74816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko @Override 75816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko public String getId() { 76816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko return this.getClass().getName(); 77816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko } 78816a4be1a0f34f6a48877c8afd3dbbca19eac435Nick Chalko} 79