Implement ComboView for Bookmarks, History and SavedPages
- Replaces ComboViewActivity for PhoneUi.
- Lives as part of the BrowserActivity's ViewTree.
- Avoids construction of ComboViewActivity everytime the bookmarks screen is opened.
Change-Id: Ic7042de731a4cc2107a297c9f7d4356bc2c30f2e
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index e935932..c051ec0 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -24,6 +24,9 @@
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.os.Bundle;
import android.os.Message;
import android.util.Log;
import android.view.ActionMode;
@@ -32,8 +35,13 @@
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewStub;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.DecelerateInterpolator;
+import android.webkit.ValueCallback;
+import org.codeaurora.swe.WebView;
+
+import android.widget.FrameLayout;
import android.widget.ImageView;
import com.android.browser.UrlInputView.StateListener;
@@ -50,12 +58,13 @@
private NavScreen mNavScreen;
private AnimScreen mAnimScreen;
- private NavigationBarPhone mNavigationBar;
- private Activity mBrowser;
+ private final NavigationBarPhone mNavigationBar;
+ private final Activity mBrowser;
private boolean mNavScreenRequested = false;
boolean mAnimating;
boolean mShowNav = false;
+ private ComboView mComboView;
/**
@@ -83,11 +92,42 @@
}
@Override
+ public void showComboView(ComboViews startingView, Bundle extras) {
+
+ if (mComboView == null) {
+ mNavScreen.setVisibility(View.GONE);
+ ViewStub stub = (ViewStub) mActivity.getWindow().getDecorView().findViewById(R.id.combo_view_stub);
+ mComboView = (ComboView) stub.inflate();
+ mComboView.setVisibility(View.GONE);
+ mComboView.setupViews(mActivity);
+ }
+
+ Bundle b = new Bundle();
+ b.putString(ComboViewActivity.EXTRA_INITIAL_VIEW, startingView.name());
+ b.putBundle(ComboViewActivity.EXTRA_COMBO_ARGS, extras);
+ Tab t = getActiveTab();
+ if (t != null) {
+ b.putString(ComboViewActivity.EXTRA_CURRENT_URL, t.getUrl());
+ }
+
+ mComboView.showViews(mActivity, b);
+ }
+
+ @Override
+ public void hideComboView() {
+ mComboView.hideViews();
+ }
+
+ @Override
public boolean onBackKey() {
if (showingNavScreen()) {
mNavScreen.close(mUiController.getTabControl().getCurrentPosition());
return true;
}
+ if (showingComboView()) {
+ hideComboView();
+ return true;
+ }
return super.onBackKey();
}
@@ -95,6 +135,10 @@
return mNavScreen != null && mNavScreen.getVisibility() == View.VISIBLE;
}
+ private boolean showingComboView() {
+ return mComboView != null && mComboView.getVisibility() == View.VISIBLE;
+ }
+
@Override
public boolean dispatchKey(int code, KeyEvent event) {
return false;
@@ -119,8 +163,6 @@
}
if (mAnimScreen == null) {
mAnimScreen = new AnimScreen(mActivity);
- // initialize bitmaps
- //mAnimScreen.set(getTitleBar(), getWebView());
}
}
}
@@ -179,6 +221,13 @@
menu.setGroupVisible(R.id.SNAPSHOT_MENU, false);
menu.setGroupVisible(R.id.NAV_MENU, false);
}
+
+ if (showingComboView()) {
+ menu.setGroupVisible(R.id.MAIN_MENU, false);
+ menu.setGroupEnabled(R.id.MAIN_MENU, false);
+ menu.setGroupEnabled(R.id.MAIN_SHORTCUT_MENU, false);
+ }
+
}
@Override
@@ -223,7 +272,12 @@
@Override
public boolean isWebShowing() {
- return super.isWebShowing() && !showingNavScreen();
+ return super.isWebShowing() && !showingNavScreen() && !showingComboView();
+ }
+
+ @Override
+ public boolean isComboViewShowing() {
+ return showingComboView();
}
@Override