use thumbnails in tab switcher
Change-Id: I0c7bda38c4c12448822f575f6fe0670f87b3eb7b
diff --git a/src/com/android/browser/ActiveTabsPage.java b/src/com/android/browser/ActiveTabsPage.java
index 5e27eab..52d943f 100644
--- a/src/com/android/browser/ActiveTabsPage.java
+++ b/src/com/android/browser/ActiveTabsPage.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.graphics.Bitmap;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
@@ -141,23 +142,30 @@
view = mInflater.inflate(R.layout.tab_view, parent, false);
}
ImageView favicon = (ImageView) view.findViewById(R.id.favicon);
- TextView title = (TextView) view.findViewById(R.id.title);
- TextView url = (TextView) view.findViewById(R.id.url);
+ ImageView thumbnail = (ImageView) view.findViewById(R.id.thumb);
+ TextView title = (TextView) view.findViewById(R.id.label);
Tab tab = getItem(position);
- title.setText(tab.getTitle());
- url.setText(tab.getUrl());
+ String label = tab.getTitle();
+ if (TextUtils.isEmpty(label)) {
+ label = tab.getUrl();
+ }
+ title.setText(label);
+ Bitmap thumbnailBitmap = tab.getScreenshot();
+ if (thumbnailBitmap == null) {
+ thumbnail.setImageResource(R.drawable.browser_thumbnail);
+ } else {
+ thumbnail.setImageBitmap(thumbnailBitmap);
+ }
Bitmap faviconBitmap = tab.getFavicon();
if (tab.isPrivateBrowsingEnabled()) {
favicon.setImageResource(R.drawable.ic_incognito_holo_dark);
- favicon.setBackgroundDrawable(null);
} else {
if (faviconBitmap == null) {
favicon.setImageResource(R.drawable.app_web_browser_sm);
} else {
favicon.setImageBitmap(faviconBitmap);
}
- favicon.setBackgroundResource(R.drawable.bookmark_list_favicon_bg);
}
View close = view.findViewById(R.id.close);
close.setTag(position);
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index dd68e85..9c3c912 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -18,10 +18,12 @@
import android.app.Activity;
import android.content.Context;
+import android.graphics.Bitmap;
import android.graphics.PixelFormat;
import android.os.Handler;
import android.util.Log;
import android.view.ActionMode;
+import android.view.Display;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
@@ -117,6 +119,7 @@
@Override
public void setActiveTab(Tab tab) {
+ captureTab(mActiveTab);
super.setActiveTab(tab);
WebView view = tab.getWebView();
// TabControl.setCurrentTab has been called before this,
@@ -134,6 +137,18 @@
tab.getTopWindow().requestFocus();
}
+ public void captureTab(final Tab tab) {
+ if (tab == null) return;
+ if (tab.getWebView() == null) return;
+
+ Display display = mActivity.getWindowManager().getDefaultDisplay();
+ float height = mActivity.getResources()
+ .getDimension(R.dimen.tab_view_thumbnail_height);
+ Bitmap sshot = Controller.createScreenshot(tab,
+ display.getWidth(), (int) height);
+ tab.setScreenshot(sshot);
+ }
+
@Override
protected void showTitleBar() {
if (canShowTitleBar()) {
@@ -159,6 +174,7 @@
@Override
public void showActiveTabsPage() {
+ captureTab(mActiveTab);
mActiveTabsPage = new ActiveTabsPage(mActivity, mUiController);
mTitleBar.setVisibility(View.GONE);
hideTitleBar();