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

Unified Diff: blimp/client/app/android/java/src/org/chromium/blimp/toolbar/Toolbar.java

Issue 1842403003: Added Version Info page to toolbar menu (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@toolbar_menu
Patch Set: Addressed review comments Created 4 years, 8 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: 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
index bf5aa7a188f61f8d6360a02460e7468d1e51eff8..a6c188e7b07cd2f2f347ee155b73d929e70ac590 100644
--- 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
@@ -24,15 +24,20 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.blimp.R;
import org.chromium.blimp.session.BlimpClientSession;
+import org.chromium.blimp.session.EngineInfo;
+import org.chromium.blimp.settings.AboutBlimpPreferences;
+import org.chromium.blimp.settings.Preferences;
/**
* 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 {
+public class Toolbar extends LinearLayout implements UrlBar.UrlBarObserver, View.OnClickListener,
+ BlimpClientSession.ConnectionObserver {
+ private static final String TAG = "Toolbar";
private static final int ID_OPEN_IN_CHROME = 0;
+ private static final int ID_VERSION_INFO = 1;
private long mNativeToolbarPtr;
@@ -43,6 +48,8 @@ public class Toolbar extends LinearLayout implements UrlBar.UrlBarObserver,
private ListPopupWindow mPopupMenu;
private ProgressBar mProgressBar;
+ private EngineInfo mEngineInfo;
+
/**
* 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.
@@ -186,7 +193,8 @@ public class Toolbar extends LinearLayout implements UrlBar.UrlBarObserver,
private void initializeMenu(View anchorView) {
mPopupMenu = new ListPopupWindow(mContext);
mPopupMenu.setAdapter(new ArrayAdapter<String>(mContext, R.layout.toolbar_popup_item,
- new String[] {mContext.getString(R.string.open_in_chrome)}));
+ new String[] {mContext.getString(R.string.open_in_chrome),
+ mContext.getString(R.string.version_info)}));
mPopupMenu.setAnchorView(anchorView);
mPopupMenu.setWidth(getResources().getDimensionPixelSize(R.dimen.toolbar_popup_item_width));
mPopupMenu.setVerticalOffset(-anchorView.getHeight());
@@ -196,6 +204,8 @@ public class Toolbar extends LinearLayout implements UrlBar.UrlBarObserver,
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (position == ID_OPEN_IN_CHROME) {
openInChrome();
+ } else if (position == ID_VERSION_INFO) {
+ showVersionInfo();
}
mPopupMenu.dismiss();
}
@@ -215,6 +225,36 @@ public class Toolbar extends LinearLayout implements UrlBar.UrlBarObserver,
}
}
+ private void showVersionInfo() {
+ Intent intent = new Intent();
+ intent.setClass(mContext, Preferences.class);
+ intent.putExtra(AboutBlimpPreferences.EXTRA_ASSIGNER_URL, mEngineInfo.assignerUrl);
+ intent.putExtra(AboutBlimpPreferences.EXTRA_ENGINE_IP, mEngineInfo.ipAddress);
+ intent.putExtra(AboutBlimpPreferences.EXTRA_ENGINE_VERSION, mEngineInfo.engineVersion);
+ mContext.startActivity(intent);
+ }
+
+ // BlimpClientSession.ConnectionObserver interface.
+ @Override
+ public void onAssignmentReceived(
+ int result, int suggestedMessageResourceId, EngineInfo engineInfo) {
+ mEngineInfo = engineInfo;
+ }
+
+ @Override
+ public void onConnected() {
+ if (mEngineInfo == null) return;
+
+ mEngineInfo.setConnected(true);
+ }
+
+ @Override
+ public void onDisconnected(String reason) {
+ if (mEngineInfo == null) return;
+
+ mEngineInfo.setConnected(false);
+ }
+
// Methods that are called by native via JNI.
@CalledByNative
private void onEngineSentUrl(String url) {

Powered by Google App Engine
This is Rietveld 408576698