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/NavScreen.java b/src/com/android/browser/NavScreen.java
index face39e..0190c1b 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -38,9 +38,12 @@
import android.widget.TextView;
import com.android.browser.NavTabGallery.OnRemoveListener;
+import com.android.browser.TabControl.OnThumbnailUpdatedListener;
+
+import java.util.HashMap;
public class NavScreen extends RelativeLayout
- implements OnClickListener, OnMenuItemClickListener {
+ implements OnClickListener, OnMenuItemClickListener, OnThumbnailUpdatedListener {
UiController mUiController;
PhoneUi mUi;
@@ -62,6 +65,7 @@
TabAdapter mAdapter;
int mOrientation;
boolean mNeedsMenu;
+ HashMap<Tab, View> mTabViews;
public NavScreen(Activity activity, UiController ctl, PhoneUi ui) {
super(activity);
@@ -119,7 +123,9 @@
mNewTab.setOnClickListener(this);
mMore.setOnClickListener(this);
mScroller = (NavTabGallery) findViewById(R.id.scroller);
- mAdapter = new TabAdapter(mContext, mUiController.getTabControl());
+ TabControl tc = mUiController.getTabControl();
+ mTabViews = new HashMap<Tab, View>(tc.getTabCount());
+ mAdapter = new TabAdapter(mContext, tc);
mScroller.setAdapter(mAdapter);
mScroller.setOrientation(mOrientation == Configuration.ORIENTATION_LANDSCAPE
? LinearLayout.HORIZONTAL : LinearLayout.VERTICAL);
@@ -239,6 +245,7 @@
final NavTabView tabview = new NavTabView(mActivity);
final Tab tab = getItem(position);
tabview.setWebView(mUi, tab);
+ mTabViews.put(tab, tabview.mImage);
tabview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@@ -262,4 +269,13 @@
}
+ @Override
+ public void onThumbnailUpdated(Tab t) {
+ View v = mTabViews.get(t);
+ if (v != null) {
+ v.invalidate();
+ mScroller.invalidate();
+ }
+ }
+
}