content: /*
   * Copyright (C) 2015 The Android Open Source Project
   *
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
   * in compliance with the License. You may obtain a copy of the License at
   *
   * http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software distributed under the License
   * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
   * or implied. See the License for the specific language governing permissions and limitations under
   * the License.
   */
  
  package androidx.leanback.leanbackshowcase.app.page;
  
  import android.content.Context;
  import android.graphics.drawable.Drawable;
  import androidx.leanback.leanbackshowcase.R;
  import androidx.leanback.widget.TitleViewAdapter;
  import android.util.AttributeSet;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.widget.RelativeLayout;
  import android.widget.TextView;
  
  /**
   * Custom title view to be used in {@link androidx.leanback.app.BrowseFragment}.
   */
  public class CustomTitleView extends RelativeLayout implements TitleViewAdapter.Provider {
      private final TextView mTitleView;
      private final View mAnalogClockView;
      private final View mSearchOrbView;
  
      private final TitleViewAdapter mTitleViewAdapter = new TitleViewAdapter() {
          @Override
          public View getSearchAffordanceView() {
              return mSearchOrbView;
          }
  
          @Override
          public void setTitle(CharSequence titleText) {
              CustomTitleView.this.setTitle(titleText);
          }
  
          @Override
          public void setBadgeDrawable(Drawable drawable) {
              //CustomTitleView.this.setBadgeDrawable(drawable);
          }
  
          @Override
          public void setOnSearchClickedListener(OnClickListener listener) {
              mSearchOrbView.setOnClickListener(listener);
          }
  
          @Override
          public void updateComponentsVisibility(int flags) {
              /*if ((flags & BRANDING_VIEW_VISIBLE) == BRANDING_VIEW_VISIBLE) {
                  updateBadgeVisibility(true);
              } else {
                  mAnalogClockView.setVisibility(View.GONE);
                  mTitleView.setVisibility(View.GONE);
              }*/
  
              int visibility = (flags & SEARCH_VIEW_VISIBLE) == SEARCH_VIEW_VISIBLE
                      ? View.VISIBLE : View.INVISIBLE;
              mSearchOrbView.setVisibility(visibility);
          }
  
          private void updateBadgeVisibility(boolean visible) {
              if (visible) {
                  mAnalogClockView.setVisibility(View.VISIBLE);
                  mTitleView.setVisibility(View.VISIBLE);
              } else {
                  mAnalogClockView.setVisibility(View.GONE);
                  mTitleView.setVisibility(View.GONE);
              }
          }
      };
  
      public CustomTitleView(Context context) {
          this(context, null);
      }
  
      public CustomTitleView(Context context, AttributeSet attrs) {
          this(context, attrs, 0);
      }
  
      public CustomTitleView(Context context, AttributeSet attrs, int defStyle) {
          super(context, attrs, defStyle);
          View root  = LayoutInflater.from(context).inflate(R.layout.custom_titleview, this);
          mTitleView = root.findViewById(R.id.title_tv);
          mAnalogClockView = root.findViewById(R.id.clock);
          mSearchOrbView = root.findViewById(R.id.search_orb);
      }
  
      public void setTitle(CharSequence title) {
          if (title != null) {
              mTitleView.setText(title);
              mTitleView.setVisibility(View.VISIBLE);
              mAnalogClockView.setVisibility(View.VISIBLE);
          }
      }
  
  
      public void setBadgeDrawable(Drawable drawable) {
          if (drawable != null) {
              mTitleView.setVisibility(View.GONE);
              mAnalogClockView.setVisibility(View.VISIBLE);
          }
      }
  
      @Override
      public TitleViewAdapter getTitleViewAdapter() {
          return mTitleViewAdapter;
      }
  }
  