Reduce capture frequency

 Bug: 5142655
 Only capture while the navscreen is visible
 Fix Tab.capture to never capture the title bar
 Fix navscreen not responding to updated thumbnails

Change-Id: Id48ad32bb131c398c7d1ce4243e92f04cd421ade
diff --git a/src/com/android/browser/TabControl.java b/src/com/android/browser/TabControl.java
index b708841..38a46a8 100644
--- a/src/com/android/browser/TabControl.java
+++ b/src/com/android/browser/TabControl.java
@@ -36,6 +36,10 @@
     private static final String POSITIONS = "positions";
     private static final String CURRENT = "current";
 
+    public static interface OnThumbnailUpdatedListener {
+        void onThumbnailUpdated(Tab t);
+    }
+
     // Maximum number of tabs.
     private int mMaxTabs;
     // Private array of WebViews that are used as tabs.
@@ -48,6 +52,7 @@
     private final Controller mController;
 
     private final File mThumbnailDir;
+    private OnThumbnailUpdatedListener mOnThumbnailUpdatedListener;
 
     /**
      * Construct a new TabControl object
@@ -675,4 +680,18 @@
         return true;
     }
 
+    public void setOnThumbnailUpdatedListener(OnThumbnailUpdatedListener listener) {
+        mOnThumbnailUpdatedListener = listener;
+        for (Tab t : mTabs) {
+            WebView web = t.getWebView();
+            if (web != null) {
+                web.setPictureListener(listener != null ? t : null);
+            }
+        }
+    }
+
+    public OnThumbnailUpdatedListener getOnThumbnailUpdatedListener() {
+        return mOnThumbnailUpdatedListener;
+    }
+
 }