summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/browser')
-rw-r--r--src/com/android/browser/BrowserBookmarksAdapter.java15
-rw-r--r--src/com/android/browser/BrowserHistoryPage.java15
-rw-r--r--src/com/android/browser/CombinedBookmarkHistoryActivity.java8
-rw-r--r--src/com/android/browser/MostVisitedActivity.java19
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;
}