Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3573)

Unified Diff: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellToolbar.java

Issue 1314413004: Cast ChromeShell into the fiery pit of Mount Doom. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698