• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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      */
HeaderItem(long id, String name)32     public HeaderItem(long id, String name) {
33         mId = id;
34         mName = name;
35     }
36 
37     /**
38      * Create a header item.
39      */
HeaderItem(String name)40     public HeaderItem(String name) {
41         this(NO_ID, name);
42     }
43 
44     /**
45      * Returns a unique identifier for this item.
46      */
getId()47     public final long getId() {
48         return mId;
49     }
50 
51     /**
52      * Returns the name of this header item.
53      */
getName()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      */
getContentDescription()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      */
setContentDescription(CharSequence contentDescription)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      */
setDescription(CharSequence description)79     public void setDescription(CharSequence description) {
80         this.mDescription = description;
81     }
82 
83     /**
84      * Returns the description for the current row.
85      */
getDescription()86     public CharSequence getDescription() {
87         return mDescription;
88     }
89 }
90