Snapshot title bar

 Bug: 4982126

Change-Id: I67931d39e3a3ce535b38197ebeee1651241d1a60
diff --git a/src/com/android/browser/SnapshotTab.java b/src/com/android/browser/SnapshotTab.java
index f0abf58..e57502f 100644
--- a/src/com/android/browser/SnapshotTab.java
+++ b/src/com/android/browser/SnapshotTab.java
@@ -28,6 +28,7 @@
 import com.android.browser.provider.SnapshotProvider.Snapshots;
 
 import java.io.ByteArrayInputStream;
+import java.util.Map;
 import java.util.zip.GZIPInputStream;
 
 
@@ -38,19 +39,16 @@
     private long mSnapshotId;
     private LoadData mLoadTask;
     private WebViewFactory mWebViewFactory;
-    // TODO: Support non-persistent webview's on phone
-    private boolean mPersistentWebview;
     private int mBackgroundColor;
+    private long mDateCreated;
+    private boolean mIsLive;
 
     public SnapshotTab(WebViewController wvcontroller, long snapshotId) {
         super(wvcontroller, null);
         mSnapshotId = snapshotId;
         mWebViewFactory = mWebViewController.getWebViewFactory();
-        mPersistentWebview = !BrowserActivity.isTablet(wvcontroller.getActivity());
-        if (mPersistentWebview) {
-            WebView web = mWebViewFactory.createWebView(false);
-            setWebView(web);
-        }
+        WebView web = mWebViewFactory.createWebView(false);
+        setWebView(web);
         loadData();
     }
 
@@ -71,9 +69,6 @@
     void putInBackground() {
         if (getWebView() == null) return;
         super.putInBackground();
-        if (!mPersistentWebview) {
-            super.destroy();
-        }
     }
 
     void loadData() {
@@ -90,7 +85,7 @@
 
     @Override
     public boolean isSnapshot() {
-        return true;
+        return !mIsLive;
     }
 
     public long getSnapshotId() {
@@ -107,6 +102,40 @@
         return false;
     }
 
+    public long getDateCreated() {
+        return mDateCreated;
+    }
+
+    @Override
+    public void loadUrl(String url, Map<String, String> headers) {
+        if (!mIsLive) {
+            mIsLive = true;
+            getWebView().clearViewState();
+        }
+        super.loadUrl(url, headers);
+    }
+
+    @Override
+    public boolean canGoBack() {
+        return super.canGoBack() || mIsLive;
+    }
+
+    @Override
+    public boolean canGoForward() {
+        return mIsLive && super.canGoForward();
+    }
+
+    @Override
+    public void goBack() {
+        if (super.canGoBack()) {
+            super.goBack();
+        } else {
+            mIsLive = false;
+            getWebView().stopLoading();
+            loadData();
+        }
+    }
+
     static class LoadData extends AsyncTask<Void, Void, Cursor> {
 
         static final String[] PROJECTION = new String[] {
@@ -116,6 +145,7 @@
             Snapshots.FAVICON, // 3
             Snapshots.VIEWSTATE, // 4
             Snapshots.BACKGROUND, // 5
+            Snapshots.DATE_CREATED, // 6
         };
 
         private SnapshotTab mTab;
@@ -156,6 +186,7 @@
                         }
                     }
                     mTab.mBackgroundColor = result.getInt(5);
+                    mTab.mDateCreated = result.getLong(6);
                     mTab.mWebViewController.onPageFinished(mTab);
                 }
             } finally {