| /* |
| * Copyright (C) 2011 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 com.android.browser; |
| |
| import android.content.Context; |
| import android.graphics.Bitmap; |
| import android.util.AttributeSet; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup; |
| import android.webkit.WebView; |
| import android.widget.ImageView; |
| import android.widget.LinearLayout; |
| import android.widget.TextView; |
| |
| public class NavTabView extends LinearLayout { |
| |
| private ViewGroup mContent; |
| private Tab mTab; |
| private ImageView mClose; |
| private TextView mTitle; |
| private View mTitleBar; |
| ImageView mImage; |
| private OnClickListener mClickListener; |
| private boolean mHighlighted; |
| |
| public NavTabView(Context context, AttributeSet attrs, int defStyle) { |
| super(context, attrs, defStyle); |
| init(); |
| } |
| |
| public NavTabView(Context context, AttributeSet attrs) { |
| super(context, attrs); |
| init(); |
| } |
| |
| public NavTabView(Context context) { |
| super(context); |
| init(); |
| } |
| |
| private void init() { |
| LayoutInflater.from(mContext).inflate(R.layout.nav_tab_view, this); |
| mContent = (ViewGroup) findViewById(R.id.main); |
| mClose = (ImageView) findViewById(R.id.closetab); |
| mTitle = (TextView) findViewById(R.id.title); |
| mTitleBar = findViewById(R.id.titlebar); |
| mImage = (ImageView) findViewById(R.id.tab_view); |
| } |
| |
| protected boolean isClose(View v) { |
| return v == mClose; |
| } |
| |
| protected boolean isTitle(View v) { |
| return v == mTitleBar; |
| } |
| |
| protected boolean isWebView(View v) { |
| return v == mImage; |
| } |
| |
| private void setTitle() { |
| if (mTab == null) return; |
| if (mHighlighted) { |
| mTitle.setText(mTab.getUrl()); |
| } else { |
| String txt = mTab.getTitle(); |
| if (txt == null) { |
| txt = mTab.getUrl(); |
| } |
| mTitle.setText(txt); |
| } |
| if (mTab.isSnapshot()) { |
| setTitleIcon(R.drawable.ic_history_holo_dark); |
| } else if (mTab.isPrivateBrowsingEnabled()) { |
| setTitleIcon(R.drawable.ic_incognito_holo_dark); |
| } else { |
| setTitleIcon(0); |
| } |
| } |
| |
| private void setTitleIcon(int id) { |
| if (id == 0) { |
| mTitle.setPadding(mTitle.getCompoundDrawablePadding(), 0, 0, 0); |
| } else { |
| mTitle.setPadding(0, 0, 0, 0); |
| } |
| mTitle.setCompoundDrawablesWithIntrinsicBounds(id, 0, 0, 0); |
| } |
| |
| protected boolean isHighlighted() { |
| return mHighlighted; |
| } |
| |
| protected void setWebView(Tab tab) { |
| mTab = tab; |
| setTitle(); |
| Bitmap image = tab.getScreenshot(); |
| if (image != null) { |
| mImage.setImageBitmap(image); |
| if (tab != null) { |
| mImage.setContentDescription(tab.getTitle()); |
| } |
| } |
| } |
| |
| @Override |
| public void setOnClickListener(OnClickListener listener) { |
| mClickListener = listener; |
| mTitleBar.setOnClickListener(mClickListener); |
| mClose.setOnClickListener(mClickListener); |
| if (mImage != null) { |
| mImage.setOnClickListener(mClickListener); |
| } |
| } |
| |
| } |