• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2015 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 
15 package android.support.v17.leanback.supportleanbackshowcase.app.page;
16 
17 import android.content.Context;
18 import android.graphics.drawable.Drawable;
19 import android.support.v17.leanback.supportleanbackshowcase.R;
20 import android.support.v17.leanback.widget.TitleViewAdapter;
21 import android.util.AttributeSet;
22 import android.view.LayoutInflater;
23 import android.view.View;
24 import android.widget.ImageView;
25 import android.widget.RelativeLayout;
26 import android.widget.TextView;
27 
28 /**
29  * Custom title view to be used in {@link android.support.v17.leanback.app.BrowseFragment}.
30  */
31 public class CustomTitleView extends RelativeLayout implements TitleViewAdapter.Provider {
32     private final TextView mTitleView;
33     private final ImageView mBadgeView;
34 
35     private final TitleViewAdapter mTitleViewAdapter = new TitleViewAdapter() {
36         @Override
37         public View getSearchAffordanceView() {
38             return null;
39         }
40 
41         @Override
42         public void setTitle(CharSequence titleText) {
43             CustomTitleView.this.setTitle(titleText);
44         }
45 
46         @Override
47         public void setBadgeDrawable(Drawable drawable) {
48             CustomTitleView.this.setBadgeDrawable(drawable);
49         }
50     };
51 
CustomTitleView(Context context)52     public CustomTitleView(Context context) {
53         this(context, null);
54     }
55 
CustomTitleView(Context context, AttributeSet attrs)56     public CustomTitleView(Context context, AttributeSet attrs) {
57         this(context, attrs, 0);
58     }
59 
CustomTitleView(Context context, AttributeSet attrs, int defStyle)60     public CustomTitleView(Context context, AttributeSet attrs, int defStyle) {
61         super(context, attrs, defStyle);
62         View root  = LayoutInflater.from(context).inflate(R.layout.custom_titleview, this);
63         mTitleView = (TextView) root.findViewById(R.id.title_tv);
64         mBadgeView = (ImageView)root.findViewById(R.id.title_badge_iv);
65     }
66 
setTitle(CharSequence title)67     public void setTitle(CharSequence title) {
68         if (title != null) {
69             mTitleView.setText(title);
70             mTitleView.setVisibility(View.VISIBLE);
71             mBadgeView.setVisibility(View.GONE);
72         }
73     }
74 
75 
setBadgeDrawable(Drawable drawable)76     public void setBadgeDrawable(Drawable drawable) {
77         if (drawable != null) {
78             mTitleView.setVisibility(View.GONE);
79             mBadgeView.setImageDrawable(drawable);
80             mBadgeView.setVisibility(View.VISIBLE);
81         }
82     }
83 
84     @Override
getTitleViewAdapter()85     public TitleViewAdapter getTitleViewAdapter() {
86         return mTitleViewAdapter;
87     }
88 }
89