| Index: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellToolbar.java
|
| diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellToolbar.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellToolbar.java
|
| deleted file mode 100644
|
| index 55204db225d1f48ca0a5eb8b91b7292e4aba4c2d..0000000000000000000000000000000000000000
|
| --- a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellToolbar.java
|
| +++ /dev/null
|
| @@ -1,308 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -package org.chromium.chrome.shell;
|
| -
|
| -import android.annotation.SuppressLint;
|
| -import android.content.Context;
|
| -import android.content.res.Configuration;
|
| -import android.util.AttributeSet;
|
| -import android.view.KeyEvent;
|
| -import android.view.MotionEvent;
|
| -import android.view.View;
|
| -import android.view.inputmethod.EditorInfo;
|
| -import android.view.inputmethod.InputMethodManager;
|
| -import android.widget.EditText;
|
| -import android.widget.ImageButton;
|
| -import android.widget.LinearLayout;
|
| -import android.widget.TextView;
|
| -import android.widget.TextView.OnEditorActionListener;
|
| -
|
| -import org.chromium.base.CommandLine;
|
| -import org.chromium.chrome.browser.UrlUtilities;
|
| -import org.chromium.chrome.browser.appmenu.AppMenuButtonHelper;
|
| -import org.chromium.chrome.browser.appmenu.AppMenuHandler;
|
| -import org.chromium.chrome.browser.tab.EmptyTabObserver;
|
| -import org.chromium.chrome.browser.tab.Tab;
|
| -import org.chromium.chrome.browser.tab.TabObserver;
|
| -import org.chromium.chrome.browser.widget.ToolbarProgressBar;
|
| -import org.chromium.chrome.shell.omnibox.SuggestionPopup;
|
| -import org.chromium.content.common.ContentSwitches;
|
| -
|
| -/**
|
| - * A Toolbar {@link View} that shows the URL and navigation buttons.
|
| - */
|
| -public class ChromeShellToolbar extends LinearLayout {
|
| -
|
| - private final Runnable mUpdateProgressRunnable = new Runnable() {
|
| - private boolean mIsStarted = false;
|
| -
|
| - @Override
|
| - public void run() {
|
| - mStopReloadButton.setImageResource(
|
| - mLoading ? R.drawable.btn_close : R.drawable.btn_toolbar_reload);
|
| -
|
| - if (mProgress == 100.0f) {
|
| - if (mIsStarted) {
|
| - if (mProgressBar.getProgress() != 1.0f) mProgressBar.setProgress(1.0f);
|
| - mProgressBar.finish(true);
|
| - mIsStarted = false;
|
| - }
|
| - } else {
|
| - if (!mIsStarted) {
|
| - mProgressBar.start();
|
| - mIsStarted = true;
|
| - }
|
| - mProgressBar.setProgress(mProgress / 100.0f);
|
| - }
|
| - }
|
| - };
|
| -
|
| - private EditText mUrlTextView;
|
| - private ToolbarProgressBar mProgressBar;
|
| -
|
| - private ChromeShellTab mTab;
|
| - private final TabObserver mTabObserver;
|
| -
|
| - private AppMenuHandler mMenuHandler;
|
| - private AppMenuButtonHelper mAppMenuButtonHelper;
|
| -
|
| - private TabManager mTabManager;
|
| -
|
| - private SuggestionPopup mSuggestionPopup;
|
| -
|
| - private ImageButton mStopReloadButton;
|
| - private ImageButton mAddButton;
|
| - private int mProgress = 0;
|
| - private boolean mLoading = true;
|
| - private boolean mFocus = false;
|
| -
|
| - /**
|
| - * @param context The Context the view is running in.
|
| - * @param attrs The attributes of the XML tag that is inflating the view.
|
| - */
|
| - public ChromeShellToolbar(Context context, AttributeSet attrs) {
|
| - super(context, attrs);
|
| - // When running performance benchmark, we don't want to observe the tab
|
| - // invalidation which would interfere with browser's processing content
|
| - // frame. See crbug.com/394976.
|
| - if (CommandLine.getInstance().hasSwitch(
|
| - ContentSwitches.RUNNING_PERFORMANCE_BENCHMARK)) {
|
| - mTabObserver = new EmptyTabObserver();
|
| - } else {
|
| - mTabObserver = new TabObserverImpl();
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * The toolbar will visually represent the state of {@code tab}.
|
| - * @param tab The Tab that should be represented.
|
| - */
|
| - public void showTab(ChromeShellTab tab) {
|
| - if (mTab != null) mTab.removeObserver(mTabObserver);
|
| -
|
| - mTab = tab;
|
| -
|
| - if (mTab != null) {
|
| - mTab.addObserver(mTabObserver);
|
| - mUrlTextView.setText(mTab.getWebContents().getUrl());
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Set the TabManager responsible for activating the tab switcher.
|
| - * @param tabManager The active TabManager.
|
| - */
|
| - public void setTabManager(TabManager tabManager) {
|
| - mTabManager = tabManager;
|
| - }
|
| -
|
| - private void onUpdateUrl(String url) {
|
| - mUrlTextView.setText(url);
|
| - }
|
| -
|
| - private void onLoadProgressChanged(int progress) {
|
| - removeCallbacks(mUpdateProgressRunnable);
|
| - mProgress = progress;
|
| - mLoading = progress != 100;
|
| - postOnAnimation(mUpdateProgressRunnable);
|
| - }
|
| -
|
| - /**
|
| - * Closes the suggestion popup.
|
| - */
|
| - public void hideSuggestions() {
|
| - if (mSuggestionPopup != null) mSuggestionPopup.hideSuggestions();
|
| - }
|
| -
|
| - @Override
|
| - protected void onFinishInflate() {
|
| - super.onFinishInflate();
|
| -
|
| - mProgressBar = (ToolbarProgressBar) findViewById(R.id.progress);
|
| - mProgressBar.initializeAnimation();
|
| - initializeUrlField();
|
| - initializeTabSwitcherButton();
|
| - initializeMenuButton();
|
| - initializeStopReloadButton();
|
| - initializeAddButton();
|
| - }
|
| -
|
| - void setMenuHandler(AppMenuHandler menuHandler) {
|
| - mMenuHandler = menuHandler;
|
| - mAppMenuButtonHelper = new AppMenuButtonHelper(mMenuHandler);
|
| - }
|
| -
|
| - private void initializeUrlField() {
|
| - mUrlTextView = (EditText) findViewById(R.id.url);
|
| - mUrlTextView.setOnEditorActionListener(new OnEditorActionListener() {
|
| - @Override
|
| - public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
| - if ((actionId != EditorInfo.IME_ACTION_GO) && (event == null
|
| - || event.getKeyCode() != KeyEvent.KEYCODE_ENTER
|
| - || event.getAction() != KeyEvent.ACTION_DOWN)) {
|
| - return false;
|
| - }
|
| -
|
| - // This will set |mTab| by calling showTab().
|
| - // TODO(aurimas): Factor out initial tab creation to the activity level.
|
| - Tab tab = mTabManager.openUrl(
|
| - UrlUtilities.fixupUrl(mUrlTextView.getText().toString()));
|
| - mUrlTextView.clearFocus();
|
| - setKeyboardVisibilityForUrl(false);
|
| - tab.getView().requestFocus();
|
| - return true;
|
| - }
|
| - });
|
| - mUrlTextView.setOnFocusChangeListener(new OnFocusChangeListener() {
|
| - @Override
|
| - public void onFocusChange(View v, boolean hasFocus) {
|
| - setKeyboardVisibilityForUrl(hasFocus);
|
| - mFocus = hasFocus;
|
| - updateToolbarState();
|
| - if (!hasFocus && mTab != null) {
|
| - mUrlTextView.setText(mTab.getWebContents().getUrl());
|
| - mSuggestionPopup.dismissPopup();
|
| - }
|
| - }
|
| - });
|
| - mUrlTextView.setOnKeyListener(new OnKeyListener() {
|
| - @Override
|
| - public boolean onKey(View v, int keyCode, KeyEvent event) {
|
| - if (keyCode == KeyEvent.KEYCODE_BACK) {
|
| - mUrlTextView.clearFocus();
|
| - if (mTab != null) {
|
| - mTab.getView().requestFocus();
|
| - }
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| - });
|
| -
|
| - mSuggestionPopup = new SuggestionPopup(getContext(), mUrlTextView, this);
|
| - mUrlTextView.addTextChangedListener(mSuggestionPopup);
|
| - }
|
| -
|
| - private void initializeTabSwitcherButton() {
|
| - ImageButton tabSwitcherButton = (ImageButton) findViewById(R.id.tab_switcher);
|
| - tabSwitcherButton.setOnClickListener(new OnClickListener() {
|
| - @Override
|
| - public void onClick(View v) {
|
| - if (mTabManager != null) mTabManager.toggleTabSwitcher();
|
| - }
|
| - });
|
| - }
|
| -
|
| - private void initializeMenuButton() {
|
| - ImageButton menuButton = (ImageButton) findViewById(R.id.menu_button);
|
| - menuButton.setOnClickListener(new OnClickListener() {
|
| - @Override
|
| - public void onClick(View view) {
|
| - if (mMenuHandler != null) mMenuHandler.showAppMenu(view, false);
|
| - }
|
| - });
|
| - menuButton.setOnTouchListener(new OnTouchListener() {
|
| - @SuppressLint("ClickableViewAccessibility")
|
| - @Override
|
| - public boolean onTouch(View view, MotionEvent event) {
|
| - return mAppMenuButtonHelper != null && mAppMenuButtonHelper.onTouch(view, event);
|
| - }
|
| - });
|
| - }
|
| -
|
| - private void initializeStopReloadButton() {
|
| - mStopReloadButton = (ImageButton) findViewById(R.id.stop_reload_button);
|
| - mStopReloadButton.setOnClickListener(new OnClickListener() {
|
| - @Override
|
| - public void onClick(View v) {
|
| - if (mTab == null) return;
|
| - if (mLoading) {
|
| - mTab.getWebContents().stop();
|
| - } else {
|
| - mTab.getWebContents().getNavigationController().reload(true);
|
| - }
|
| - }
|
| - });
|
| - }
|
| -
|
| - private void initializeAddButton() {
|
| - mAddButton = (ImageButton) findViewById(R.id.add_button);
|
| - mAddButton.setOnClickListener(new OnClickListener() {
|
| - @Override
|
| - public void onClick(View v) {
|
| - mTabManager.createNewTab();
|
| - }
|
| - });
|
| - }
|
| -
|
| - /**
|
| - * Shows or hides the add button, the stop/reload button and the URL bar.
|
| - */
|
| - public void updateToolbarState() {
|
| - boolean tabSwitcherState = mTabManager.isTabSwitcherVisible();
|
| - mAddButton.setVisibility(tabSwitcherState ? VISIBLE : GONE);
|
| - mStopReloadButton.setVisibility(tabSwitcherState || mFocus ? GONE : VISIBLE);
|
| - mUrlTextView.setVisibility(tabSwitcherState ? INVISIBLE : VISIBLE);
|
| - }
|
| -
|
| - /**
|
| - * @return Current tab that is shown by ChromeShell.
|
| - */
|
| - public ChromeShellTab getCurrentTab() {
|
| - return mTab;
|
| - }
|
| -
|
| - /**
|
| - * Change the visibility of the software keyboard.
|
| - * @param visible Whether the keyboard should be shown or hidden.
|
| - */
|
| - public void setKeyboardVisibilityForUrl(boolean visible) {
|
| - InputMethodManager imm = (InputMethodManager) getContext().getSystemService(
|
| - Context.INPUT_METHOD_SERVICE);
|
| - if (visible) {
|
| - imm.showSoftInput(mUrlTextView, InputMethodManager.SHOW_IMPLICIT);
|
| - } else {
|
| - imm.hideSoftInputFromWindow(mUrlTextView.getWindowToken(), 0);
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - protected void onConfigurationChanged(Configuration newConfig) {
|
| - super.onConfigurationChanged(newConfig);
|
| - if (mMenuHandler != null) mMenuHandler.hideAppMenu();
|
| - }
|
| -
|
| - private class TabObserverImpl extends EmptyTabObserver {
|
| - @Override
|
| - public void onLoadProgressChanged(Tab tab, int progress) {
|
| - if (tab == mTab) ChromeShellToolbar.this.onLoadProgressChanged(progress);
|
| - }
|
| -
|
| - @Override
|
| - public void onUpdateUrl(Tab tab, String url) {
|
| - if (tab == mTab) ChromeShellToolbar.this.onUpdateUrl(url);
|
| - }
|
| - }
|
| -}
|
|
|