13454409cf332f945482f471c9ee61aa70ccc26d3susnata/* 23454409cf332f945482f471c9ee61aa70ccc26d3susnata * Copyright (C) 2015 The Android Open Source Project 33454409cf332f945482f471c9ee61aa70ccc26d3susnata * 43454409cf332f945482f471c9ee61aa70ccc26d3susnata * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 53454409cf332f945482f471c9ee61aa70ccc26d3susnata * in compliance with the License. You may obtain a copy of the License at 63454409cf332f945482f471c9ee61aa70ccc26d3susnata * 73454409cf332f945482f471c9ee61aa70ccc26d3susnata * http://www.apache.org/licenses/LICENSE-2.0 83454409cf332f945482f471c9ee61aa70ccc26d3susnata * 93454409cf332f945482f471c9ee61aa70ccc26d3susnata * Unless required by applicable law or agreed to in writing, software distributed under the License 103454409cf332f945482f471c9ee61aa70ccc26d3susnata * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 113454409cf332f945482f471c9ee61aa70ccc26d3susnata * or implied. See the License for the specific language governing permissions and limitations under 123454409cf332f945482f471c9ee61aa70ccc26d3susnata * the License. 133454409cf332f945482f471c9ee61aa70ccc26d3susnata */ 143454409cf332f945482f471c9ee61aa70ccc26d3susnata 153384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnatapackage android.support.v17.leanback.supportleanbackshowcase.app.page; 163384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 173384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.content.Context; 183384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.graphics.drawable.Drawable; 193384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.support.v17.leanback.supportleanbackshowcase.R; 203384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.support.v17.leanback.widget.TitleViewAdapter; 213384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.util.AttributeSet; 223384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.view.LayoutInflater; 233384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.view.View; 243384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.widget.ImageView; 253384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.widget.RelativeLayout; 263384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnataimport android.widget.TextView; 273384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 283384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata/** 293384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata * Custom title view to be used in {@link android.support.v17.leanback.app.BrowseFragment}. 303384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata */ 313384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnatapublic class CustomTitleView extends RelativeLayout implements TitleViewAdapter.Provider { 323384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata private final TextView mTitleView; 333384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata private final ImageView mBadgeView; 343384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 353384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata private final TitleViewAdapter mTitleViewAdapter = new TitleViewAdapter() { 363384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata @Override 373384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public View getSearchAffordanceView() { 383384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata return null; 393384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 403384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 413384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata @Override 423384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public void setTitle(CharSequence titleText) { 433384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata CustomTitleView.this.setTitle(titleText); 443384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 453384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 463384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata @Override 473384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public void setBadgeDrawable(Drawable drawable) { 483384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata CustomTitleView.this.setBadgeDrawable(drawable); 493384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 503384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata }; 513384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 523384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public CustomTitleView(Context context) { 533384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata this(context, null); 543384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 553384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 563384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public CustomTitleView(Context context, AttributeSet attrs) { 573384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata this(context, attrs, 0); 583384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 593384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 603384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public CustomTitleView(Context context, AttributeSet attrs, int defStyle) { 613384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata super(context, attrs, defStyle); 623384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata View root = LayoutInflater.from(context).inflate(R.layout.custom_titleview, this); 633384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mTitleView = (TextView) root.findViewById(R.id.title_tv); 643384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mBadgeView = (ImageView)root.findViewById(R.id.title_badge_iv); 653384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 663384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 673384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public void setTitle(CharSequence title) { 683384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata if (title != null) { 693384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mTitleView.setText(title); 703384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mTitleView.setVisibility(View.VISIBLE); 713384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mBadgeView.setVisibility(View.GONE); 723384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 733384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 743384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 753384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 763384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public void setBadgeDrawable(Drawable drawable) { 773384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata if (drawable != null) { 783384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mTitleView.setVisibility(View.GONE); 793384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mBadgeView.setImageDrawable(drawable); 803384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata mBadgeView.setVisibility(View.VISIBLE); 813384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 823384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 833384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata 843384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata @Override 853384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata public TitleViewAdapter getTitleViewAdapter() { 863384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata return mTitleViewAdapter; 873384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata } 883384d7a6d41f6d69ed1f90f9701e09bbf3b01ec2susnata} 89