• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.tv.menu;
18 
19 import android.support.annotation.NonNull;
20 import android.support.annotation.Nullable;
21 
22 import com.android.tv.R;
23 import com.android.tv.data.Channel;
24 
25 /**
26  * A class for the items in channels row.
27  */
28 public class ChannelsRowItem {
29     /** The item ID for guide item */
30     public static final int GUIDE_ITEM_ID = -1;
31     /** The item ID for setup item */
32     public static final int SETUP_ITEM_ID = -2;
33     /** The item ID for DVR item */
34     public static final int DVR_ITEM_ID = -3;
35     /** The item ID for app link item */
36     public static final int APP_LINK_ITEM_ID = -4;
37 
38     /** The item which represents the guide. */
39     public static final ChannelsRowItem GUIDE_ITEM =
40             new ChannelsRowItem(GUIDE_ITEM_ID, R.layout.menu_card_guide);
41     /** The item which represents the setup. */
42     public static final ChannelsRowItem SETUP_ITEM =
43             new ChannelsRowItem(SETUP_ITEM_ID, R.layout.menu_card_setup);
44     /** The item which represents the DVR. */
45     public static final ChannelsRowItem DVR_ITEM =
46             new ChannelsRowItem(DVR_ITEM_ID, R.layout.menu_card_dvr);
47     /** The item which represents the app link. */
48     public static final ChannelsRowItem APP_LINK_ITEM =
49             new ChannelsRowItem(APP_LINK_ITEM_ID, R.layout.menu_card_app_link);
50 
51     private final long mItemId;
52     @NonNull private Channel mChannel;
53     private final int mLayoutId;
54 
ChannelsRowItem(@onNull Channel channel, int layoutId)55     public ChannelsRowItem(@NonNull Channel channel, int layoutId) {
56         this(channel.getId(), layoutId);
57         mChannel = channel;
58     }
59 
ChannelsRowItem(long itemId, int layoutId)60     private ChannelsRowItem(long itemId, int layoutId) {
61         mItemId = itemId;
62         mLayoutId = layoutId;
63     }
64 
65     /**
66      * Returns the channel for this item.
67      */
68     @NonNull
getChannel()69     public Channel getChannel() {
70         return mChannel;
71     }
72 
73     /**
74      * Sets the channel.
75      */
setChannel(@onNull Channel channel)76     public void setChannel(@NonNull Channel channel) {
77         mChannel = channel;
78     }
79 
80     /**
81      * Returns the layout resource ID to represent this item.
82      */
getLayoutId()83     public int getLayoutId() {
84         return mLayoutId;
85     }
86 
87     /**
88      * Returns the unique ID for this item.
89      */
getItemId()90     public long getItemId() {
91         return mItemId;
92     }
93 
94     @Override
toString()95     public String toString() {
96         return "ChannelsRowItem{"
97                 + "itemId=" + mItemId
98                 + ", layoutId=" + mLayoutId
99                 + ", channel=" + mChannel + "}";
100     }
101 }
102