Home | History | Annotate | Download | only in widget
      1 /*
      2  * Copyright (C) 2014 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 androidx.leanback.widget;
     15 
     16 import static androidx.leanback.widget.ObjectAdapter.NO_ID;
     17 
     18 /**
     19  * A header item describes the metadata of a {@link Row}, such as a category
     20  * of media items.  May be subclassed to add more information.
     21  */
     22 public class HeaderItem {
     23 
     24     private final long mId;
     25     private final String mName;
     26     private CharSequence mDescription;
     27     private CharSequence mContentDescription;
     28 
     29     /**
     30      * Create a header item.  All fields are optional.
     31      */
     32     public HeaderItem(long id, String name) {
     33         mId = id;
     34         mName = name;
     35     }
     36 
     37     /**
     38      * Create a header item.
     39      */
     40     public HeaderItem(String name) {
     41         this(NO_ID, name);
     42     }
     43 
     44     /**
     45      * Returns a unique identifier for this item.
     46      */
     47     public final long getId() {
     48         return mId;
     49     }
     50 
     51     /**
     52      * Returns the name of this header item.
     53      */
     54     public final String getName() {
     55         return mName;
     56     }
     57 
     58     /**
     59      * Returns optional content description for the HeaderItem.  When it is null, {@link #getName()}
     60      * should be used for the content description.
     61      * @return Content description for the HeaderItem.
     62      */
     63     public CharSequence getContentDescription() {
     64         return mContentDescription;
     65     }
     66 
     67     /**
     68      * Sets optional content description for the HeaderItem.
     69      * @param contentDescription Content description sets on the HeaderItem.
     70      */
     71     public void setContentDescription(CharSequence contentDescription) {
     72         mContentDescription = contentDescription;
     73     }
     74 
     75     /**
     76      * Sets the description for the current header item. This will be visible when
     77      * the row receives focus.
     78      */
     79     public void setDescription(CharSequence description) {
     80         this.mDescription = description;
     81     }
     82 
     83     /**
     84      * Returns the description for the current row.
     85      */
     86     public CharSequence getDescription() {
     87         return mDescription;
     88     }
     89 }
     90