Titlebar on phone UI update
introduce new states for titlebar:
normal, highlighted, editing, loading
Change-Id: I8a6f88afc3457a07063aba40ef4d3e5f6c806b8f
diff --git a/src/com/android/browser/TitleBarPhone.java b/src/com/android/browser/TitleBarPhone.java
index 528ea43..f41eca7 100644
--- a/src/com/android/browser/TitleBarPhone.java
+++ b/src/com/android/browser/TitleBarPhone.java
@@ -16,8 +16,6 @@
package com.android.browser;
-import com.android.browser.autocomplete.SuggestedTextController.TextChangeWatcher;
-
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
@@ -29,9 +27,11 @@
import android.view.View.OnFocusChangeListener;
import android.webkit.WebView;
import android.widget.FrameLayout;
-import android.widget.ImageButton;
import android.widget.ImageView;
+import com.android.browser.UrlInputView.StateListener;
+import com.android.browser.autocomplete.SuggestedTextController.TextChangeWatcher;
+
import java.util.List;
/**
@@ -39,16 +39,17 @@
* browser.
*/
public class TitleBarPhone extends TitleBarBase implements OnFocusChangeListener,
- OnClickListener, TextChangeWatcher {
+ OnClickListener, TextChangeWatcher, StateListener {
private Activity mActivity;
private ImageView mStopButton;
private ImageView mVoiceButton;
- private boolean mHasLockIcon;
- private ImageButton mForward;
private Drawable mStopDrawable;
private Drawable mRefreshDrawable;
private View mTabSwitcher;
+ private View mComboIcon;
+ private View mTitleContainer;
+ private Drawable mTextfieldBgDrawable;
public TitleBarPhone(Activity activity, UiController controller, PhoneUi ui,
FrameLayout parent) {
@@ -66,16 +67,18 @@
mStopButton.setOnClickListener(this);
mVoiceButton = (ImageView) findViewById(R.id.voice);
mVoiceButton.setOnClickListener(this);
- mForward = (ImageButton) findViewById(R.id.forward);
- mForward.setOnClickListener(this);
mTabSwitcher = findViewById(R.id.tab_switcher);
mTabSwitcher.setOnClickListener(this);
+ mComboIcon = findViewById(R.id.iconcombo);
+ mTitleContainer = findViewById(R.id.title_bg);
setFocusState(false);
Resources res = context.getResources();
mStopDrawable = res.getDrawable(R.drawable.ic_stop_holo_dark);
mRefreshDrawable = res.getDrawable(R.drawable.ic_refresh_holo_dark);
- setUaSwitcher(mFavicon);
+ mTextfieldBgDrawable = res.getDrawable(R.drawable.textfield_active_holo_dark);
+ setUaSwitcher(mComboIcon);
mUrlInput.setContainer(this);
+ mUrlInput.setStateListener(this);
}
@Override
@@ -99,29 +102,23 @@
}
@Override
- protected void setFocusState(boolean focus) {
- super.setFocusState(focus);
- if (focus) {
- mHasLockIcon = (mLockIcon.getVisibility() == View.VISIBLE);
- mLockIcon.setVisibility(View.GONE);
- mStopButton.setVisibility(View.GONE);
- mVoiceButton.setVisibility(View.VISIBLE);
- } else {
- mLockIcon.setVisibility(mHasLockIcon ? View.VISIBLE : View.GONE);
- mStopButton.setVisibility(View.VISIBLE);
- mVoiceButton.setVisibility(View.GONE);
- }
- }
-
- @Override
void setProgress(int progress) {
super.setProgress(progress);
if (progress == 100) {
+ mStopButton.setVisibility(View.GONE);
mStopButton.setImageDrawable(mRefreshDrawable);
- } else if (mStopButton.getDrawable() != mStopDrawable) {
- mStopButton.setImageDrawable(mStopDrawable);
+ if (!isEditingUrl()) {
+ mComboIcon.setVisibility(View.VISIBLE);
+ }
+ } else {
+ if (mStopButton.getDrawable() != mStopDrawable) {
+ mStopButton.setImageDrawable(mStopDrawable);
+ if (mStopButton.getVisibility() != View.VISIBLE) {
+ mComboIcon.setVisibility(View.GONE);
+ mStopButton.setVisibility(View.VISIBLE);
+ }
+ }
}
- updateNavigationState();
}
/**
@@ -138,7 +135,6 @@
mUrlInput.setText(title);
}
mUrlInput.setSelection(0);
- updateNavigationState();
}
}
@@ -160,16 +156,12 @@
} else {
WebView web = mBaseUi.getWebView();
if (web != null) {
+ stopEditingUrl();
web.reload();
}
}
} else if (v == mVoiceButton) {
mUiController.startVoiceSearch();
- } else if (v == mForward) {
- WebView web = mBaseUi.getWebView();
- if (web != null) {
- web.goForward();
- }
} else if (v == mTabSwitcher) {
mBaseUi.onMenuKey();
} else {
@@ -177,10 +169,30 @@
}
}
- private void updateNavigationState() {
- WebView web = mBaseUi.getWebView();
- if (web != null) {
- mForward.setVisibility(web.canGoForward() ? View.VISIBLE : View.GONE);
+ @Override
+ public void onStateChanged(int state) {
+ switch(state) {
+ case StateListener.STATE_NORMAL:
+ mComboIcon.setVisibility(View.VISIBLE);
+ mStopButton.setVisibility(View.GONE);
+ setSearchMode(false);
+ mTabSwitcher.setVisibility(View.VISIBLE);
+ mTitleContainer.setBackgroundDrawable(null);
+ break;
+ case StateListener.STATE_HIGHLIGHTED:
+ mComboIcon.setVisibility(View.GONE);
+ mStopButton.setVisibility(View.VISIBLE);
+ setSearchMode(true);
+ mTabSwitcher.setVisibility(View.GONE);
+ mTitleContainer.setBackgroundDrawable(mTextfieldBgDrawable);
+ break;
+ case StateListener.STATE_EDITED:
+ mComboIcon.setVisibility(View.GONE);
+ mStopButton.setVisibility(View.GONE);
+ setSearchMode(false);
+ mTabSwitcher.setVisibility(View.GONE);
+ mTitleContainer.setBackgroundDrawable(mTextfieldBgDrawable);
+ break;
}
}