diff options
Diffstat (limited to 'src/com/android/browser')
4 files changed, 41 insertions, 16 deletions
diff --git a/src/com/android/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java index a7fa19c34..e2c09cfb8 100644 --- a/src/com/android/browser/BrowserBookmarksAdapter.java +++ b/src/com/android/browser/BrowserBookmarksAdapter.java @@ -383,11 +383,17 @@ class BrowserBookmarksAdapter extends BaseAdapter { /* package */ void populateBookmarkItem(BookmarkItem b, int position) { mCursor.moveToPosition(position - mExtraOffset); - b.setUrl(mCursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX)); + String url = mCursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX); + b.setUrl(url); b.setName(mCursor.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX)); byte[] data = mCursor.getBlob(Browser.HISTORY_PROJECTION_FAVICON_INDEX); - Bitmap bitmap = (null == data) ? null : - BitmapFactory.decodeByteArray(data, 0, data.length); + Bitmap bitmap = null; + if (data == null) { + bitmap = CombinedBookmarkHistoryActivity.getIconListenerSet() + .getFavicon(url); + } else { + bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); + } b.setFavicon(bitmap); } @@ -544,7 +550,8 @@ class BrowserBookmarksAdapter extends BaseAdapter { if (data != null) { b.setFavicon(BitmapFactory.decodeByteArray(data, 0, data.length)); } else { - b.setFavicon(null); + b.setFavicon(CombinedBookmarkHistoryActivity.getIconListenerSet() + .getFavicon(url)); } } diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java index c130a7933..d364c9c00 100644 --- a/src/com/android/browser/BrowserHistoryPage.java +++ b/src/com/android/browser/BrowserHistoryPage.java @@ -25,6 +25,7 @@ import android.database.ContentObserver; import android.database.Cursor; import android.database.DataSetObserver; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.ServiceManager; @@ -131,7 +132,7 @@ public class BrowserHistoryPage extends ExpandableListActivity { } mDisableNewWindow = getIntent().getBooleanExtra("disable_new_window", false); - CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver()) + CombinedBookmarkHistoryActivity.getIconListenerSet() .addListener(mIconReceiver); // initialize the result to canceled, so that if the user just presses @@ -142,7 +143,7 @@ public class BrowserHistoryPage extends ExpandableListActivity { @Override protected void onDestroy() { super.onDestroy(); - CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver()) + CombinedBookmarkHistoryActivity.getIconListenerSet() .removeListener(mIconReceiver); } @@ -424,8 +425,14 @@ public class BrowserHistoryPage extends ExpandableListActivity { item.setName(mCursor.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX)); String url = mCursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX); item.setUrl(url); - item.setFavicon(CombinedBookmarkHistoryActivity.getIconListenerSet( - getContentResolver()).getFavicon(url)); + byte[] data = mCursor.getBlob(Browser.HISTORY_PROJECTION_FAVICON_INDEX); + if (data != null) { + item.setFavicon(BitmapFactory.decodeByteArray(data, 0, + data.length)); + } else { + item.setFavicon(CombinedBookmarkHistoryActivity + .getIconListenerSet().getFavicon(url)); + } item.setIsBookmark(1 == mCursor.getInt(Browser.HISTORY_PROJECTION_BOOKMARK_INDEX)); return item; diff --git a/src/com/android/browser/CombinedBookmarkHistoryActivity.java b/src/com/android/browser/CombinedBookmarkHistoryActivity.java index 816731a87..25bc0e2e7 100644 --- a/src/com/android/browser/CombinedBookmarkHistoryActivity.java +++ b/src/com/android/browser/CombinedBookmarkHistoryActivity.java @@ -67,10 +67,9 @@ public class CombinedBookmarkHistoryActivity extends TabActivity } } private static IconListenerSet sIconListenerSet; - static IconListenerSet getIconListenerSet(ContentResolver cr) { + static IconListenerSet getIconListenerSet() { if (null == sIconListenerSet) { sIconListenerSet = new IconListenerSet(); - Browser.requestAllIcons(cr, null, sIconListenerSet); } return sIconListenerSet; } @@ -84,7 +83,10 @@ public class CombinedBookmarkHistoryActivity extends TabActivity Bundle extras = getIntent().getExtras(); - getIconListenerSet(getContentResolver()); + getIconListenerSet(); + // Do this every time we create a new activity so that we get the + // newest icons. + Browser.requestAllIcons(getContentResolver(), null, sIconListenerSet); Intent bookmarksIntent = new Intent(this, BrowserBookmarksPage.class); bookmarksIntent.putExtras(extras); diff --git a/src/com/android/browser/MostVisitedActivity.java b/src/com/android/browser/MostVisitedActivity.java index 65cb89ff6..d03c7a3ad 100644 --- a/src/com/android/browser/MostVisitedActivity.java +++ b/src/com/android/browser/MostVisitedActivity.java @@ -23,6 +23,7 @@ import android.database.ContentObserver; import android.database.Cursor; import android.database.DataSetObserver; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.provider.Browser; @@ -50,7 +51,7 @@ public class MostVisitedActivity extends ListActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAdapter = new MyAdapter(); - CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver()) + CombinedBookmarkHistoryActivity.getIconListenerSet() .addListener(mIconReceiver); setListAdapter(mAdapter); ListView list = getListView(); @@ -63,7 +64,7 @@ public class MostVisitedActivity extends ListActivity { @Override protected void onDestroy() { super.onDestroy(); - CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver()) + CombinedBookmarkHistoryActivity.getIconListenerSet() .removeListener(mIconReceiver); } @@ -97,13 +98,15 @@ public class MostVisitedActivity extends ListActivity { private static final int mUrlIndex = 0; private static final int mTitleIndex = 1; private static final int mBookmarkIndex = 2; + private static final int mFaviconIndex = 3; MyAdapter() { mObservers = new Vector<DataSetObserver>(); String[] projection = new String[] { Browser.BookmarkColumns.URL, Browser.BookmarkColumns.TITLE, - Browser.BookmarkColumns.BOOKMARK }; + Browser.BookmarkColumns.BOOKMARK, + Browser.BookmarkColumns.FAVICON }; String whereClause = Browser.BookmarkColumns.VISITS + " != 0"; String orderBy = Browser.BookmarkColumns.VISITS + " DESC"; mCursor = managedQuery(Browser.BOOKMARKS_URI, projection, @@ -145,8 +148,14 @@ public class MostVisitedActivity extends ListActivity { item.setName(mCursor.getString(mTitleIndex)); String url = mCursor.getString(mUrlIndex); item.setUrl(url); - item.setFavicon(CombinedBookmarkHistoryActivity.getIconListenerSet( - getContentResolver()).getFavicon(url)); + byte[] data = mCursor.getBlob(mFaviconIndex); + if (data != null) { + item.setFavicon(BitmapFactory.decodeByteArray(data, 0, + data.length)); + } else { + item.setFavicon(CombinedBookmarkHistoryActivity + .getIconListenerSet().getFavicon(url)); + } item.setIsBookmark(1 == mCursor.getInt(mBookmarkIndex)); return item; } |
