122eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu/* 222eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * Copyright (C) 2016 The Android Open Source Project 322eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * 422eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 522eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * in compliance with the License. You may obtain a copy of the License at 622eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * 722eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * http://www.apache.org/licenses/LICENSE-2.0 822eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * 922eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * Unless required by applicable law or agreed to in writing, software distributed under the License 1022eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 1122eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * or implied. See the License for the specific language governing permissions and limitations under 1222eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * the License. 1322eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu */ 1422eaa9441bf3a521bfafb160674ff2da421eded8Dake Gupackage android.support.v17.leanback.widget; 1522eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu 1622eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu/** 1722eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * Interface for receiving notification when a row or item becomes selected. The concept of 1822eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * current selection is different than focus. A row or item can be selected without having focus; 1922eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * for example, when a row header view gains focus then the corresponding row view becomes selected. 2022eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu */ 2122eaa9441bf3a521bfafb160674ff2da421eded8Dake Gupublic interface BaseOnItemViewSelectedListener<T> { 2222eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu 2322eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu /** 2422eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * Called when a row or a new item becomes selected. 2522eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * <p> 2622eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * For a non {@link ListRow} case, parameter item may be null. Event is fired when 2722eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * selection changes between rows, regardless if row view has focus or not. 2822eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * <p> 2922eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * For a {@link ListRow} case, parameter item is null if the list row is empty. 3022eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * </p> 3122eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * <p> 3222eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * In the case of a grid, the row parameter is always null. 3322eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * </p> 3422eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * <li> 3522eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * Row has focus: event is fired when focus changes between children of the row. 3622eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * </li> 3722eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * <li> 3822eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * No row has focus: the event is fired with the currently selected row and last 3922eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * focused item in the row. 4022eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * </li> 4122eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * 4222eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * @param itemViewHolder The view holder of the item that is currently selected. 4322eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * @param item The item that is currently selected. 4422eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * @param rowViewHolder The view holder of the row that is currently selected. 4522eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu * @param row The row that is currently selected. 4622eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu */ 4722eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, 4822eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu RowPresenter.ViewHolder rowViewHolder, T row); 4922eaa9441bf3a521bfafb160674ff2da421eded8Dake Gu} 50