summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Tab.java
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2011-08-09 16:00:35 -0700
committerJohn Reck <jreck@google.com>2011-08-09 16:17:21 -0700
commit8ee633fd62f94cd66c85c2904232d7c9e204cc9c (patch)
treee451ff70a2367befb1282180d924fa140b8bc2fc /src/com/android/browser/Tab.java
parent37d9f2f4c540131453b692d6cb17468637dcef9e (diff)
downloadpackages_apps_Browser-8ee633fd62f94cd66c85c2904232d7c9e204cc9c.zip
packages_apps_Browser-8ee633fd62f94cd66c85c2904232d7c9e204cc9c.tar.gz
packages_apps_Browser-8ee633fd62f94cd66c85c2904232d7c9e204cc9c.tar.bz2
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
Diffstat (limited to 'src/com/android/browser/Tab.java')
-rw-r--r--src/com/android/browser/Tab.java30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 39bf49c..9e4894f 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -68,6 +68,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
+import com.android.browser.TabControl.OnThumbnailUpdatedListener;
import com.android.browser.homepages.HomeProvider;
import com.android.browser.provider.BrowserProvider2.Thumbnails;
import com.android.browser.provider.SnapshotProvider.Snapshots;
@@ -97,7 +98,7 @@ class Tab implements PictureListener {
private static final String CONSOLE_LOGTAG = "browser";
private static final int MSG_CAPTURE = 42;
- private static final int CAPTURE_DELAY = 500;
+ private static final int CAPTURE_DELAY = 100;
private static Bitmap sDefaultFavicon;
@@ -1498,6 +1499,7 @@ class Tab implements PictureListener {
mWebViewController.onSetWebView(this, w);
if (mMainView != null) {
+ mMainView.setPictureListener(null);
if (w != null) {
syncCurrentState(w, null);
} else {
@@ -1516,7 +1518,10 @@ class Tab implements PictureListener {
// switched to another tab while waiting for the download to start.
mMainView.setDownloadListener(mDownloadListener);
mMainView.setWebBackForwardListClient(mWebBackForwardListClient);
- mMainView.setPictureListener(this);
+ TabControl tc = mWebViewController.getTabControl();
+ if (tc != null && tc.getOnThumbnailUpdatedListener() != null) {
+ mMainView.setPictureListener(this);
+ }
if (mSavedState != null) {
mMainView.restoreState(mSavedState);
mSavedState = null;
@@ -1670,6 +1675,9 @@ class Tab implements PictureListener {
}
void putInForeground() {
+ if (mInForeground) {
+ return;
+ }
mInForeground = true;
resume();
Activity activity = mWebViewController.getActivity();
@@ -1685,6 +1693,9 @@ class Tab implements PictureListener {
}
void putInBackground() {
+ if (!mInForeground) {
+ return;
+ }
mInForeground = false;
pause();
mMainView.setOnCreateContextMenuListener(null);
@@ -2024,9 +2035,22 @@ class Tab implements PictureListener {
c.translate(-left, -top);
float scale = mCaptureWidth / (float) mMainView.getWidth();
c.scale(scale, scale, left, top);
- mMainView.draw(c);
+ if (mMainView instanceof BrowserWebView) {
+ ((BrowserWebView)mMainView).drawContent(c);
+ } else {
+ mMainView.draw(c);
+ }
c.setBitmap(null);
+ mHandler.removeMessages(MSG_CAPTURE);
persistThumbnail();
+ TabControl tc = mWebViewController.getTabControl();
+ if (tc != null) {
+ OnThumbnailUpdatedListener updateListener
+ = tc.getOnThumbnailUpdatedListener();
+ if (updateListener != null) {
+ updateListener.onThumbnailUpdated(this);
+ }
+ }
}
@Override