Add incognito and snapshot icons to tab switcher

 Bug: 5162768

Change-Id: Ie0e1af52d26d236f666c26e2aaccaf4f9f28eb95
diff --git a/res/layout/nav_tab_view.xml b/res/layout/nav_tab_view.xml
index 31df29b..cdfcda7 100644
--- a/res/layout/nav_tab_view.xml
+++ b/res/layout/nav_tab_view.xml
@@ -28,7 +28,7 @@
         android:layout_width="match_parent"
         android:layout_height="48dip"
         android:layout_gravity="center_horizontal"
-        android:paddingLeft="16dip" >
+        android:paddingLeft="8dip" >
         <TextView
             android:id="@+id/title"
             android:layout_width="0dip"
@@ -39,7 +39,8 @@
             android:ellipsize="end"
             android:lines="1"
             android:textAppearance="?android:attr/textAppearanceSmall"
-            android:scrollHorizontally="true" />
+            android:scrollHorizontally="true"
+            android:drawablePadding="8dip" />
         <ImageView
             android:id="@+id/closetab"
             android:src="@drawable/ic_stop_holo_dark"
diff --git a/src/com/android/browser/NavTabView.java b/src/com/android/browser/NavTabView.java
index 07ac164..4eec702 100644
--- a/src/com/android/browser/NavTabView.java
+++ b/src/com/android/browser/NavTabView.java
@@ -90,6 +90,22 @@
             }
             mTitle.setText(txt);
         }
+        if (mTab.isSnapshot()) {
+            setTitleIcon(R.drawable.ic_history_holo_dark);
+        } else if (mTab.isPrivateBrowsingEnabled()) {
+            setTitleIcon(R.drawable.ic_incognito_holo_dark);
+        } else {
+            setTitleIcon(0);
+        }
+    }
+
+    private void setTitleIcon(int id) {
+        if (id == 0) {
+            mTitle.setPadding(mTitle.getCompoundDrawablePadding(), 0, 0, 0);
+        } else {
+            mTitle.setPadding(0, 0, 0, 0);
+        }
+        mTitle.setCompoundDrawablesWithIntrinsicBounds(id, 0, 0, 0);
     }
 
     protected boolean isHighlighted() {
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index c6808e0..abc2467 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -191,10 +191,12 @@
         String mTitle;
         LockIcon mLockIcon;
         Bitmap mFavicon;
-        Boolean mIsBookmarkedSite = false;
+        boolean mIsBookmarkedSite = false;
+        boolean mIncognito = false;
 
         PageState(Context c, boolean incognito) {
-            if (incognito) {
+            mIncognito = incognito;
+            if (mIncognito) {
                 mOriginalUrl = mUrl = "browser:incognito";
                 mTitle = c.getString(R.string.new_incognito_tab);
             } else {
@@ -206,6 +208,7 @@
         }
 
         PageState(Context c, boolean incognito, String url, Bitmap favicon) {
+            mIncognito = incognito;
             mOriginalUrl = mUrl = url;
             mTitle = null;
             if (URLUtil.isHttpsUrl(url)) {
@@ -913,6 +916,7 @@
             // but before a provisional load occurred
             mCurrentState.mLockIcon = LockIcon.LOCK_ICON_UNSECURE;
         }
+        mCurrentState.mIncognito = view.isPrivateBrowsingEnabled();
     }
 
     // Called by DeviceAccountLogin when the Tab needs to have the auto-login UI
@@ -1746,11 +1750,7 @@
      * @return True if private browsing is enabled.
      */
     boolean isPrivateBrowsingEnabled() {
-        WebView webView = getWebView();
-        if (webView == null) {
-            return false;
-        }
-        return webView.isPrivateBrowsingEnabled();
+        return mCurrentState.mIncognito;
     }
 
     /**