1 /* 2 * Copyright (C) 2016 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 */ 14 package android.support.v17.leanback.widget; 15 16 /** 17 * Interface for receiving notification when a row or item becomes selected. The concept of 18 * current selection is different than focus. A row or item can be selected without having focus; 19 * for example, when a row header view gains focus then the corresponding row view becomes selected. 20 */ 21 public interface BaseOnItemViewSelectedListener<T> { 22 23 /** 24 * Called when a row or a new item becomes selected. 25 * <p> 26 * For a non {@link ListRow} case, parameter item may be null. Event is fired when 27 * selection changes between rows, regardless if row view has focus or not. 28 * <p> 29 * For a {@link ListRow} case, parameter item is null if the list row is empty. 30 * </p> 31 * <p> 32 * In the case of a grid, the row parameter is always null. 33 * </p> 34 * <li> 35 * Row has focus: event is fired when focus changes between children of the row. 36 * </li> 37 * <li> 38 * No row has focus: the event is fired with the currently selected row and last 39 * focused item in the row. 40 * </li> 41 * 42 * @param itemViewHolder The view holder of the item that is currently selected. 43 * @param item The item that is currently selected. 44 * @param rowViewHolder The view holder of the row that is currently selected. 45 * @param row The row that is currently selected. 46 */ onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, T row)47 public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, 48 RowPresenter.ViewHolder rowViewHolder, T row); 49 } 50