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