Index: blimp/client/app/android/java/src/org/chromium/blimp/toolbar/Toolbar.java |
diff --git a/blimp/client/app/android/java/src/org/chromium/blimp/toolbar/Toolbar.java b/blimp/client/app/android/java/src/org/chromium/blimp/toolbar/Toolbar.java |
deleted file mode 100644 |
index 93dfaf0365df04a9d3962fa783d03b3b4cc71895..0000000000000000000000000000000000000000 |
--- a/blimp/client/app/android/java/src/org/chromium/blimp/toolbar/Toolbar.java |
+++ /dev/null |
@@ -1,238 +0,0 @@ |
-// Copyright 2015 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.blimp.toolbar; |
- |
-import android.content.Context; |
-import android.graphics.Bitmap; |
-import android.text.TextUtils; |
-import android.util.AttributeSet; |
-import android.view.View; |
-import android.widget.ImageButton; |
-import android.widget.LinearLayout; |
-import android.widget.ProgressBar; |
- |
-import org.chromium.base.annotations.CalledByNative; |
-import org.chromium.base.annotations.JNINamespace; |
-import org.chromium.blimp.R; |
-import org.chromium.blimp.session.BlimpClientSession; |
- |
-/** |
- * A {@link View} that visually represents the Blimp toolbar, which lets users issue navigation |
- * commands and displays relevant navigation UI. |
- */ |
-@JNINamespace("blimp::client") |
-public class Toolbar extends LinearLayout implements UrlBar.UrlBarObserver, View.OnClickListener { |
- /** |
- * Delegate for the Toolbar. |
- */ |
- public interface ToolbarDelegate { |
- /** |
- * Resets the metrics. Used for displaying per navigation metrics. |
- */ |
- public void resetDebugStats(); |
- } |
- |
- private static final String TAG = "Toolbar"; |
- |
- private long mNativeToolbarPtr; |
- |
- private Context mContext; |
- private UrlBar mUrlBar; |
- private ToolbarMenu mToolbarMenu; |
- private ImageButton mReloadButton; |
- private ImageButton mMenuButton; |
- private ProgressBar mProgressBar; |
- private BlimpClientSession mBlimpClientSession; |
- private ToolbarDelegate mDelegate; |
- |
- /** |
- * A URL to load when this object is initialized. This handles the case where there is a URL |
- * to load before native is ready to receive any URL. |
- * */ |
- private String mUrlToLoad; |
- |
- /** |
- * Builds a new {@link Toolbar}. |
- * @param context A {@link Context} instance. |
- * @param attrs An {@link AttributeSet} instance. |
- */ |
- public Toolbar(Context context, AttributeSet attrs) { |
- super(context, attrs); |
- mContext = context; |
- } |
- |
- /** |
- * @return the mToolbarMenu |
- */ |
- public ToolbarMenu getToolbarMenu() { |
- return mToolbarMenu; |
- } |
- |
- /** |
- * To be called when the native library is loaded so that this class can initialize its native |
- * components. |
- * @param blimpClientSession The {@link BlimpClientSession} that contains the content-lite |
- * features required by the native components of the Toolbar. |
- * delegate The delegate for the Toolbar. |
- */ |
- public void initialize(BlimpClientSession blimpClientSession, ToolbarDelegate delegate) { |
- assert mNativeToolbarPtr == 0; |
- |
- mDelegate = delegate; |
- |
- mBlimpClientSession = blimpClientSession; |
- mNativeToolbarPtr = nativeInit(mBlimpClientSession); |
- sendUrlTextInternal(mUrlToLoad); |
- |
- mToolbarMenu = new ToolbarMenu(mContext, this); |
- mBlimpClientSession.addObserver(mToolbarMenu); |
- } |
- |
- /** |
- * To be called when this class should be torn down. This {@link View} should not be used after |
- * this. |
- */ |
- public void destroy() { |
- mBlimpClientSession.removeObserver(mToolbarMenu); |
- if (mNativeToolbarPtr != 0) { |
- nativeDestroy(mNativeToolbarPtr); |
- mNativeToolbarPtr = 0; |
- } |
- } |
- |
- /** |
- * Loads {@code text} as if it had been typed by the user. Useful for specifically loading |
- * startup URLs or testing. |
- * @param text The URL or text to load. |
- */ |
- public void loadUrl(String text) { |
- mUrlBar.setText(text); |
- mDelegate.resetDebugStats(); |
- sendUrlTextInternal(text); |
- } |
- |
- /** |
- * Returns the URL from the URL bar. |
- * @return Current URL |
- */ |
- public String getUrl() { |
- return mUrlBar.getText().toString(); |
- } |
- |
- /** |
- * To be called when the user triggers a back navigation action. |
- * @return Whether or not the back event was consumed. |
- */ |
- public boolean onBackPressed() { |
- if (mNativeToolbarPtr == 0) return false; |
- mDelegate.resetDebugStats(); |
- return nativeOnBackPressed(mNativeToolbarPtr); |
- } |
- |
- /** |
- * To be called when the user triggers a forward navigation action. |
- */ |
- public void onForwardPressed() { |
- if (mNativeToolbarPtr == 0) return; |
- mDelegate.resetDebugStats(); |
- nativeOnForwardPressed(mNativeToolbarPtr); |
- } |
- |
- // View overrides. |
- @Override |
- protected void onFinishInflate() { |
- super.onFinishInflate(); |
- |
- mUrlBar = (UrlBar) findViewById(R.id.toolbar_url_bar); |
- mUrlBar.addUrlBarObserver(this); |
- |
- mReloadButton = (ImageButton) findViewById(R.id.toolbar_reload_btn); |
- mReloadButton.setOnClickListener(this); |
- |
- mMenuButton = (ImageButton) findViewById(R.id.menu_button); |
- mMenuButton.setOnClickListener(new View.OnClickListener() { |
- @Override |
- public void onClick(View v) { |
- mToolbarMenu.showMenu(v); |
- } |
- }); |
- |
- mProgressBar = (ProgressBar) findViewById(R.id.page_load_progress); |
- mProgressBar.setVisibility(View.GONE); |
- } |
- |
- // UrlBar.UrlBarObserver interface. |
- @Override |
- public void onNewTextEntered(String text) { |
- sendUrlTextInternal(text); |
- } |
- |
- // View.OnClickListener interface. |
- @Override |
- public void onClick(View view) { |
- if (mNativeToolbarPtr == 0) return; |
- if (view == mReloadButton) nativeOnReloadPressed(mNativeToolbarPtr); |
- } |
- |
- private void sendUrlTextInternal(String text) { |
- mUrlToLoad = null; |
- if (TextUtils.isEmpty(text)) return; |
- |
- if (mNativeToolbarPtr == 0) { |
- mUrlToLoad = text; |
- return; |
- } |
- |
- nativeOnUrlTextEntered(mNativeToolbarPtr, text); |
- |
- // When triggering a navigation to a new URL, show the progress bar. |
- // TODO(khushalsagar): We need more signals to hide the bar when the load might have failed. |
- // For instance, in the case of a wrong URL right now or if there is no network connection. |
- updateProgressBar(true); |
- } |
- |
- private void updateProgressBar(boolean show) { |
- if (show) { |
- mProgressBar.setVisibility(View.VISIBLE); |
- } else { |
- mProgressBar.setVisibility(View.GONE); |
- } |
- } |
- |
- // Methods that are called by native via JNI. |
- @CalledByNative |
- private void onEngineSentUrl(String url) { |
- if (url != null) mUrlBar.setText(url); |
- mDelegate.resetDebugStats(); |
- } |
- |
- @CalledByNative |
- private void onEngineSentFavicon(Bitmap favicon) { |
- // TODO(dtrainor): Add a UI for the favicon. |
- } |
- |
- @CalledByNative |
- private void onEngineSentTitle(String title) { |
- // TODO(dtrainor): Add a UI for the title. |
- } |
- |
- @CalledByNative |
- private void onEngineSentLoading(boolean loading) { |
- // TODO(dtrainor): Add a UI for the loading state. |
- } |
- |
- @CalledByNative |
- private void onEngineSentPageLoadStatusUpdate(boolean completed) { |
- boolean show = !completed; |
- updateProgressBar(show); |
- } |
- |
- private native long nativeInit(BlimpClientSession blimpClientSession); |
- private native void nativeDestroy(long nativeToolbar); |
- private native void nativeOnUrlTextEntered(long nativeToolbar, String text); |
- private native void nativeOnReloadPressed(long nativeToolbar); |
- private native void nativeOnForwardPressed(long nativeToolbar); |
- private native boolean nativeOnBackPressed(long nativeToolbar); |
-} |