/* 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);
}
if (data != null) {
b.setFavicon(BitmapFactory.decodeByteArray(data, 0, data.length));
} else {
- b.setFavicon(null);
+ b.setFavicon(CombinedBookmarkHistoryActivity.getIconListenerSet()
+ .getFavicon(url));
}
}
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;
}
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
@Override
protected void onDestroy() {
super.onDestroy();
- CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
+ CombinedBookmarkHistoryActivity.getIconListenerSet()
.removeListener(mIconReceiver);
}
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;
}
}
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;
}
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);
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;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdapter = new MyAdapter();
- CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
+ CombinedBookmarkHistoryActivity.getIconListenerSet()
.addListener(mIconReceiver);
setListAdapter(mAdapter);
ListView list = getListView();
@Override
protected void onDestroy() {
super.onDestroy();
- CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
+ CombinedBookmarkHistoryActivity.getIconListenerSet()
.removeListener(mIconReceiver);
}
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,
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;
}