NavigationBar code cleanup

- Unified code for phone and tablet UI
- Chagned Favicon to use Tiles
- Updates to Tile class

Change-Id: Iecb699a3e5eb848db149705a9142f8f199f02c04
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index c6c88cd..ce482d9 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -15,18 +15,10 @@
  */
 package com.android.browser;
 
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Configuration;
 import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.drawable.Drawable;
-import android.os.Bundle;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageButton;
@@ -34,33 +26,17 @@
 
 import com.android.browser.UI.ComboViews;
 import com.android.browser.UrlInputView.StateListener;
-import com.android.browser.preferences.SiteSpecificPreferencesFragment;
-
-import org.codeaurora.swe.WebRefiner;
-import org.codeaurora.swe.WebView;
-
-import java.io.ByteArrayOutputStream;
 
 public class NavigationBarTablet extends NavigationBarBase implements StateListener {
 
-    private Drawable mStopDrawable;
-    private Drawable mReloadDrawable;
-    private String mStopDescription;
-    private String mRefreshDescription;
-
     private View mUrlContainer;
     private ImageButton mBackButton;
     private ImageButton mForwardButton;
     private ImageView mStar;
-    private ImageView mUrlIcon;
     private ImageView mSearchButton;
-    private ImageView mStopButton;
     private View mAllButton;
-    private View mClearButton;
-    private View mVoiceButton;
     private View mNavButtons;
     private boolean mHideNavButtons;
-    private Drawable mFaviconDrawable;
 
     public NavigationBarTablet(Context context) {
         super(context);
@@ -78,41 +54,26 @@
     }
 
     private void init(Context context) {
-        Resources resources = context.getResources();
-        mStopDrawable = resources.getDrawable(R.drawable.ic_action_stop);
-        mReloadDrawable = resources.getDrawable(R.drawable.ic_action_reload);
-        mStopDescription = resources.getString(R.string.accessibility_button_stop);
-        mRefreshDescription = resources.getString(R.string.accessibility_button_refresh);
-        mHideNavButtons = resources.getBoolean(R.bool.hide_nav_buttons);
+        mHideNavButtons = getResources().getBoolean(R.bool.hide_nav_buttons);
     }
 
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
         mAllButton = findViewById(R.id.all_btn);
-        // TODO: Change enabled states based on whether you can go
-        // back/forward.  Probably should be done inside onPageStarted.
         mNavButtons = findViewById(R.id.navbuttons);
         mBackButton = (ImageButton) findViewById(R.id.back);
         mForwardButton = (ImageButton) findViewById(R.id.forward);
-        mUrlIcon = (ImageView) findViewById(R.id.url_icon);
         mStar = (ImageView) findViewById(R.id.star);
-        mStopButton = (ImageView) findViewById(R.id.stop);
         mSearchButton = (ImageView) findViewById(R.id.search);
-        mClearButton = findViewById(R.id.clear);
-        mVoiceButton = findViewById(R.id.voice);
         mUrlContainer = findViewById(R.id.urlbar_focused);
         mBackButton.setOnClickListener(this);
         mForwardButton.setOnClickListener(this);
         mStar.setOnClickListener(this);
         mAllButton.setOnClickListener(this);
-        mStopButton.setOnClickListener(this);
         mSearchButton.setOnClickListener(this);
-        mClearButton.setOnClickListener(this);
-        mVoiceButton.setOnClickListener(this);
         mUrlInput.setContainer(mUrlContainer);
         mUrlInput.setStateListener(this);
-        mUrlIcon.setOnClickListener(this);
     }
 
     public void onConfigurationChanged(Configuration config) {
@@ -121,14 +82,9 @@
         mHideNavButtons = res.getBoolean(R.bool.hide_nav_buttons);
         if (mUrlInput.hasFocus()) {
             if (mHideNavButtons && (mNavButtons.getVisibility() == View.VISIBLE)) {
-                int aw = mNavButtons.getMeasuredWidth();
-                mNavButtons.setVisibility(View.GONE);
-                mNavButtons.setAlpha(0f);
-                mNavButtons.setTranslationX(-aw);
+                hideNavButtons();
             } else if (!mHideNavButtons && (mNavButtons.getVisibility() == View.GONE)) {
-                mNavButtons.setVisibility(View.VISIBLE);
-                mNavButtons.setAlpha(1f);
-                mNavButtons.setTranslationX(0);
+                showNavButtons();
             }
         }
     }
@@ -144,7 +100,6 @@
             mBackButton.setEnabled(tab.canGoBack());
             mForwardButton.setEnabled(tab.canGoForward());
         }
-        updateUrlIcon();
     }
 
     @Override
@@ -173,47 +128,11 @@
             mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
         } else if (mSearchButton == v) {
             mBaseUi.editUrl(true, true);
-        } else if (mStopButton == v) {
-            stopOrRefresh();
-        } else if (mClearButton == v) {
-            clearOrClose();
-        } else if (mVoiceButton == v) {
-            mUiController.startVoiceRecognizer();
-        } else if (mUrlIcon == v) {
-            showSiteSpecificSettings();
         } else {
             super.onClick(v);
         }
     }
 
-    private void clearOrClose() {
-        if (TextUtils.isEmpty(mUrlInput.getText())) {
-            // close
-            mUrlInput.clearFocus();
-        } else {
-            // clear
-            mUrlInput.setText("");
-        }
-    }
-
-    @Override
-    public void setFavicon(Bitmap icon) {
-        super.setFavicon(icon);
-        mFaviconDrawable = mBaseUi.getFaviconDrawable(icon);
-        updateUrlIcon();
-    }
-
-    void updateUrlIcon() {
-        if (mUrlInput.hasFocus()) {
-            mUrlIcon.setImageResource(R.drawable.ic_action_search_normal);
-        } else {
-            if (mFaviconDrawable == null) {
-                mFaviconDrawable = mBaseUi.getFaviconDrawable(null);
-            }
-            mUrlIcon.setImageDrawable(mFaviconDrawable);
-        }
-    }
-
     @Override
     protected void setFocusState(boolean focus) {
         super.setFocusState(focus);
@@ -223,85 +142,26 @@
             }
             mSearchButton.setVisibility(View.GONE);
             mStar.setVisibility(View.GONE);
-            mUrlIcon.setImageResource(R.drawable.ic_action_search_normal);
         } else {
             if (mHideNavButtons) {
                 showNavButtons();
             }
             showHideStar(mUiController.getCurrentTab());
             mSearchButton.setVisibility(View.VISIBLE);
-            updateUrlIcon();
         }
     }
 
-    private void stopOrRefresh() {
-        if (mUiController == null) return;
-        if (mTitleBar.isInLoad()) {
-            mUiController.stopLoading();
-        } else {
-            if (mUiController.getCurrentTopWebView() != null) {
-                Tab currTab = mUiController.getTabControl().getCurrentTab();
-                mUiController.getCurrentTopWebView().reload();
-            }
-        }
-    }
-
-    @Override
-    public void onProgressStarted() {
-        mStopButton.setImageDrawable(mStopDrawable);
-        mStopButton.setContentDescription(mStopDescription);
-    }
-
-    @Override
-    public void onProgressStopped() {
-        mStopButton.setImageDrawable(mReloadDrawable);
-        mStopButton.setContentDescription(mRefreshDescription);
-    }
-
-    private AnimatorSet mAnimation;
-
     private void hideNavButtons() {
-        if (mBaseUi.blockFocusAnimations()) {
-            mNavButtons.setVisibility(View.GONE);
-            return;
-        }
-        int awidth = mNavButtons.getMeasuredWidth();
-        Animator anim1 = ObjectAnimator.ofFloat(mNavButtons, View.TRANSLATION_X, 0, - awidth);
-        Animator anim2 = ObjectAnimator.ofInt(mUrlContainer, "left", mUrlContainer.getLeft(),
-                mUrlContainer.getPaddingLeft());
-        Animator anim3 = ObjectAnimator.ofFloat(mNavButtons, View.ALPHA, 1f, 0f);
-        mAnimation = new AnimatorSet();
-        mAnimation.playTogether(anim1, anim2, anim3);
-        mAnimation.addListener(new AnimatorListenerAdapter() {
-            @Override
-            public void onAnimationEnd(Animator animation) {
-                mNavButtons.setVisibility(View.GONE);
-                mAnimation = null;
-            }
-        });
-        mAnimation.setDuration(150);
-        mAnimation.start();
+        int aw = mNavButtons.getMeasuredWidth();
+        mNavButtons.setVisibility(View.GONE);
+        mNavButtons.setAlpha(0f);
+        mNavButtons.setTranslationX(-aw);
     }
 
     private void showNavButtons() {
-        if (mAnimation != null) {
-            mAnimation.cancel();
-        }
         mNavButtons.setVisibility(View.VISIBLE);
+        mNavButtons.setAlpha(1f);
         mNavButtons.setTranslationX(0);
-        if (!mBaseUi.blockFocusAnimations()) {
-            int awidth = mNavButtons.getMeasuredWidth();
-            Animator anim1 = ObjectAnimator.ofFloat(mNavButtons,
-                    View.TRANSLATION_X, -awidth, 0);
-            Animator anim2 = ObjectAnimator.ofInt(mUrlContainer, "left", 0,
-                    awidth);
-            Animator anim3 = ObjectAnimator.ofFloat(mNavButtons, View.ALPHA,
-                    0f, 1f);
-            AnimatorSet combo = new AnimatorSet();
-            combo.playTogether(anim1, anim2, anim3);
-            combo.setDuration(150);
-            combo.start();
-        }
     }
 
     private void showHideStar(Tab tab) {
@@ -315,25 +175,4 @@
             mStar.setVisibility(starVisibility);
         }
     }
-
-    @Override
-    public void onStateChanged(int state) {
-        super.onStateChanged(state);
-        mVoiceButton.setVisibility(View.GONE);
-        switch(state) {
-        case STATE_NORMAL:
-            mClearButton.setVisibility(View.GONE);
-            break;
-        case STATE_HIGHLIGHTED:
-            mClearButton.setVisibility(View.GONE);
-            if ((mUiController != null) && mUiController.supportsVoice()) {
-                mVoiceButton.setVisibility(View.VISIBLE);
-            }
-            break;
-        case STATE_EDITED:
-            mClearButton.setVisibility(View.VISIBLE);
-            break;
-        }
-    }
-
 }