Fix crash when viewing pages offline on Tablets

Fixed multiple issues with Snapshot tabs on
tablets.
diff --git a/res/layout-sw600dp/snapshot_item.xml b/res/layout-sw600dp/snapshot_item.xml
index 41b465b..c3ce866 100644
--- a/res/layout-sw600dp/snapshot_item.xml
+++ b/res/layout-sw600dp/snapshot_item.xml
@@ -28,7 +28,7 @@
         android:cropToPadding="true"
         android:background="@drawable/border_thumb_bookmarks_widget_holo" />
     <TextView
-        android:id="@+id/title"
+        android:id="@+id/date"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignBottom="@id/thumb"
@@ -37,41 +37,31 @@
         android:background="@drawable/overlay_url_bookmark_widget_holo"
         android:singleLine="true"
         android:ellipsize="end"
-        android:textSize="12sp"
+        android:textSize="14sp"
         android:typeface="sans"
-        android:textColor="@android:color/white"
+        android:textColor="#AAAAAA"
         android:paddingStart="6dip"
         android:paddingEnd="2dip"
         android:gravity="center_vertical" />
+    <TextView android:id="@+id/title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/thumb"
+        android:layout_alignStart="@+id/thumb"
+        android:layout_alignEnd="@+id/thumb"
+        android:layout_marginTop="6dip"
+        android:paddingStart="8dip"
+        android:gravity="center_vertical"
+        android:typeface="sans"
+        android:textAppearance="@style/BookmarkText"
+        android:lines="2" />
     <ImageView
         android:id="@+id/divider"
         android:src="?android:attr/dividerVertical"
         android:layout_width="wrap_content"
-        android:layout_height="24dip"
-        android:layout_below="@+id/thumb"
-        android:layout_alignStart="@+id/thumb"
-        android:scaleType="fitXY"
-        android:layout_marginTop="6dip" />
-    <TextView android:id="@+id/date"
-        android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_toEndOf="@id/divider"
-        android:layout_alignTop="@id/divider"
-        android:layout_alignBottom="@id/divider"
-        android:paddingStart="8dip"
-        android:gravity="center_vertical"
-        android:typeface="sans"
-        android:textSize="14sp"
-        android:textColor="#AAAAAA" />
-    <TextView android:id="@+id/size"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_alignTop="@id/divider"
-        android:layout_alignBottom="@id/divider"
-        android:layout_alignEnd="@+id/thumb"
-        android:paddingEnd="2dip"
-        android:gravity="center_vertical"
-        android:typeface="sans"
-        android:textSize="14sp"
-        android:textColor="#AAAAAA" />
+        android:layout_alignStart="@+id/title"
+        android:layout_alignTop="@+id/title"
+        android:layout_alignBottom="@+id/title"
+        android:scaleType="fitXY" />
 </RelativeLayout>
diff --git a/res/layout-sw600dp/title_bar_snapshot.xml b/res/layout-sw600dp/title_bar_snapshot.xml
index 434b2f1..8c8189a 100644
--- a/res/layout-sw600dp/title_bar_snapshot.xml
+++ b/res/layout-sw600dp/title_bar_snapshot.xml
@@ -18,37 +18,53 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:background="@android:color/white"
     android:orientation="horizontal" >
     <ImageView
-        android:id="@+id/date_icon"
+        android:id="@+id/reader_icon"
+        android:src="@drawable/ic_deco_reader_mode_normal"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:visibility="gone"
+        android:paddingEnd="16dip"
+        android:paddingStart="16dip" />
+    <ImageView
+        android:id="@+id/snapshot_icon"
         android:src="@drawable/ic_suggest_history_normal"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
-        android:paddingStart="16dip" />
-    <TextView
-        android:id="@+id/date"
-        android:layout_width="wrap_content"
-        android:layout_height="match_parent"
         android:paddingStart="8dip"
-        android:singleLine="true"
-        android:gravity="center_vertical"
-        android:textAppearance="?android:attr/textAppearanceMedium" />
-    <TextView
-        android:id="@+id/title"
+        android:paddingEnd="8dip"/>
+    <ImageView
+        android:id="@+id/favicon"
+        android:layout_width="52dip"
+        android:layout_height="match_parent"
+        android:paddingStart="16dip"
+        android:paddingEnd="16dip"
+        android:scaleType="fitCenter" />
+    <FrameLayout
+        android:id="@+id/toggle_container"
         android:layout_width="0dip"
         android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:paddingStart="16dip"
-        android:singleLine="true"
-        android:gravity="center_vertical"
-        android:textAppearance="?android:attr/textAppearanceMedium" />
+        android:layout_weight="1">
+        <TextView
+            android:id="@+id/title"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:singleLine="true"
+            android:gravity="center_vertical"
+            android:textAppearance="?android:attr/textAppearanceMedium" />
+        <TextView
+            android:id="@+id/date"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:singleLine="true"
+            android:gravity="center_vertical"
+            android:textAppearance="?android:attr/textAppearanceMedium" />
+    </FrameLayout>
 
     <ImageButton
-        android:id="@+id/all_btn"
-        style="@style/NavButton"
-        android:layout_width="wrap_content"
-        android:contentDescription="@string/accessibility_button_bookmarks"
-        android:paddingEnd="16dip"
-        android:scaleType="center"
-        android:src="@drawable/ic_deco_bookmarks_normal" />
+        android:id="@+id/more"
+        style="@style/OverflowButton" />
+
 </com.android.browser.SnapshotBar>
\ No newline at end of file
diff --git a/src/com/android/browser/BrowserSnapshotPage.java b/src/com/android/browser/BrowserSnapshotPage.java
index afa0269..c01691f 100644
--- a/src/com/android/browser/BrowserSnapshotPage.java
+++ b/src/com/android/browser/BrowserSnapshotPage.java
@@ -303,11 +303,6 @@
             }
             TextView title = (TextView) view.findViewById(R.id.title);
             title.setText(cursor.getString(SNAPSHOT_TITLE));
-            TextView size = (TextView) view.findViewById(R.id.size);
-            if (size != null) {
-                int stateLen = cursor.getInt(SNAPSHOT_VIEWSTATE_SIZE);
-                size.setText(String.format("%.2fMB", stateLen / 1024f / 1024f));
-            }
             long timestamp = cursor.getLong(SNAPSHOT_DATE_CREATED);
             TextView date = (TextView) view.findViewById(R.id.date);
             DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT);
diff --git a/src/com/android/browser/SnapshotBar.java b/src/com/android/browser/SnapshotBar.java
index cdaf3ef..eeb300b 100644
--- a/src/com/android/browser/SnapshotBar.java
+++ b/src/com/android/browser/SnapshotBar.java
@@ -82,6 +82,8 @@
                 new Observable.Observer() {
                     @Override
                     public void onChange(Object... params) {
+                        if (mTabText == null)
+                            return;
                         if ((Integer) params[0] > 9) {
                             mTabText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mTabSwitcherCompressedTextSize);
                         } else {
@@ -133,7 +135,7 @@
             resetAnimation();
         }
 
-        if (mTabSwitcherInitialTextSize == 0) {
+        if (mTabSwitcherInitialTextSize == 0 && mTabText != null) {
             mTabSwitcherInitialTextSize = mTabText.getTextSize();
             mTabSwitcherCompressedTextSize = (float) (mTabSwitcherInitialTextSize / 1.2);
         }
@@ -203,6 +205,9 @@
             if (navBar instanceof NavigationBarPhone) {
                 ((NavigationBarPhone)navBar).showMenu(mOverflowMenu);
             }
+            else if (navBar instanceof  NavigationBarTablet) {
+                ((NavigationBarTablet)navBar).showMenu(mOverflowMenu);
+            }
         } else if (mToggleContainer == v && !mIsAnimating) {
             mIsAnimating = true;
             showDate();
@@ -250,13 +255,13 @@
     }
 
     public void setReadericonVisibility(int visibility) {
-        if (mReadericon.getVisibility() != visibility) {
+        if (mReadericon != null && mReadericon.getVisibility() != visibility) {
             mReadericon.setVisibility(visibility);
         }
     }
 
     public void setFaviconVisibility(int visibility) {
-        if (mFavicon.getVisibility() != visibility) {
+        if (mFavicon != null && mFavicon.getVisibility() != visibility) {
             mFavicon.setVisibility(visibility);
         }
     }
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java
index e446145..378557e 100644
--- a/src/com/android/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -290,7 +290,8 @@
         public void setActivated(boolean selected) {
             mSelected = selected;
             mClose.setVisibility(mSelected ? View.VISIBLE : View.GONE);
-            mFaviconView.setVisibility(mSelected ? View.GONE : View.VISIBLE);
+            mFaviconView.setVisibility((mSelected || mTab.isSnapshot()) ?
+                    View.GONE : View.VISIBLE);
             mTitle.setTextAppearance(mActivity, mSelected ?
                     R.style.TabTitleSelected : R.style.TabTitleUnselected);
             setHorizontalFadingEdgeEnabled(!mSelected);