Persistent frozen tabs
On Tablet WebViews for frozen tabs are created on demand
On Phone WebViews for frozen tabs are tied to the lifecycle
of the SnapshotTab for nav screen reasons (for now)
Change-Id: I80cb48e748c4dd4b8564426d5e05b92f3eea7a36
diff --git a/src/com/android/browser/NavTabView.java b/src/com/android/browser/NavTabView.java
index f170b0f..daa5013 100644
--- a/src/com/android/browser/NavTabView.java
+++ b/src/com/android/browser/NavTabView.java
@@ -49,7 +49,6 @@
private Drawable mUrlBg;
private float mMediumTextSize;
private float mSmallTextSize;
- private boolean mPaused;
public NavTabView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
@@ -85,20 +84,6 @@
setState(false);
}
- protected void pause() {
- mPaused = true;
- mWebView.onPause();
- }
-
- protected void resume() {
- mPaused = false;
- mWebView.onResume();
- }
-
- protected boolean isPaused() {
- return mPaused;
- }
-
protected boolean isRefresh(View v) {
return v == mRefresh;
}
@@ -128,10 +113,8 @@
private void setState(boolean highlighted) {
if (highlighted) {
setAlpha(1.0f);
- mRefresh.setVisibility(View.VISIBLE);
mFavicon.setVisibility(View.VISIBLE);
- mForward.setVisibility(mWebView.canGoForward()
- ? View.VISIBLE : View.GONE);
+ setupButtons();
mTitleBar.setBackgroundDrawable(mTitleBg);
mClose.setVisibility(View.VISIBLE);
mTitle.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMediumTextSize);
@@ -166,18 +149,27 @@
protected void setWebView(PhoneUi ui, Tab tab) {
mTab = tab;
- BrowserWebView web = (BrowserWebView) tab.getWebView();
- if (web == null) return;
- mWebView = web;
- removeFromParent(mWebView);
- mProxy = new WebProxyView(mContext, mWebView);
- mContainer.addView(mProxy, 0);
- if (mWebView != null) {
- mForward.setVisibility(mWebView.canGoForward()
- ? View.VISIBLE : View.GONE);
- }
mFavicon.setImageDrawable(ui.getFaviconDrawable(tab.getFavicon()));
setTitle();
+ BrowserWebView web = (BrowserWebView) tab.getWebView();
+ if (web != null) {
+ mWebView = web;
+ removeFromParent(mWebView);
+ mProxy = new WebProxyView(mContext, mWebView);
+ mContainer.addView(mProxy, 0);
+ }
+ setupButtons();
+ }
+
+ void setupButtons() {
+ if (mTab.isSnapshot()) {
+ mForward.setVisibility(View.GONE);
+ mRefresh.setVisibility(View.GONE);
+ } else if (mWebView != null) {
+ mForward.setVisibility(mWebView.canGoForward()
+ ? View.VISIBLE : View.GONE);
+ mRefresh.setVisibility(View.VISIBLE);
+ }
}
protected void hideTitle() {