private String mCurrentPage;
private String mCurrentTitle;
+ private Bitmap mCurrentThumbnail;
private Cursor mCursor;
private int mCount;
private BrowserBookmarksPage mBookmarksPage;
* appropriately after a search.
*/
public BrowserBookmarksAdapter(BrowserBookmarksPage b, String curPage,
- String curTitle, boolean createShortcut, boolean mostVisited) {
+ String curTitle, Bitmap curThumbnail, boolean createShortcut,
+ boolean mostVisited) {
mNeedsOffset = !(createShortcut || mostVisited);
mMostVisited = mostVisited;
mExtraOffset = mNeedsOffset ? 1 : 0;
mCurrentPage = b.getResources().getString(R.string.current_page)
+ curPage;
mCurrentTitle = curTitle;
+ mCurrentThumbnail = curThumbnail;
mContentResolver = b.getContentResolver();
mViewMode = BookmarkViewMode.LIST;
getString(Browser.HISTORY_PROJECTION_URL_INDEX))) {
values.put(Browser.BookmarkColumns.URL, url);
}
+
+ if (map.getBoolean("invalidateThumbnail") == true) {
+ values.put(Browser.BookmarkColumns.THUMBNAIL, new byte[0]);
+ }
if (values.size() > 0
&& mContentResolver.update(Browser.BOOKMARKS_URI, values,
"_id = " + id, null) != -1) {
}
mCursor.moveToPosition(position- mExtraOffset);
String url = mCursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX);
- Bookmarks.removeFromBookmarks(null, mContentResolver, url);
+ String title = mCursor.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX);
+ Bookmarks.removeFromBookmarks(null, mContentResolver, url, title);
refreshList();
}
* Update the bookmark's favicon. This is a convenience method for updating
* a bookmark favicon for the originalUrl and url of the passed in WebView.
* @param cr The ContentResolver to use.
- * @param WebView The WebView containing the url to update.
+ * @param originalUrl The original url before any redirects.
+ * @param url The current url.
* @param favicon The favicon bitmap to write to the db.
*/
/* package */ static void updateBookmarkFavicon(ContentResolver cr,
- WebView view, Bitmap favicon) {
- if (view != null) {
- updateBookmarkFavicon(cr, view.getOriginalUrl(), view.getUrl(),
- favicon);
- }
- }
-
- private static void updateBookmarkFavicon(ContentResolver cr,
String originalUrl, String url, Bitmap favicon) {
final Cursor c = queryBookmarksForUrl(cr, originalUrl, url, true);
if (c == null) {
originalUrlNoQuery, urlNoQuery, originalUrl, url };
String where = BookmarkColumns.URL + " == ? OR "
+ BookmarkColumns.URL + " == ? OR "
- + BookmarkColumns.URL + " GLOB ? || '*' OR "
- + BookmarkColumns.URL + " GLOB ? || '*'";
+ + BookmarkColumns.URL + " LIKE ? || '%' OR "
+ + BookmarkColumns.URL + " LIKE ? || '%'";
if (onlyBookmarks) {
where = "(" + where + ") AND " + BookmarkColumns.BOOKMARK + " == 1";
}
/* 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);
}
// This is to create a bookmark for the current page.
holder.setVisibility(View.VISIBLE);
tv.setText(mCurrentTitle);
- // FIXME: Want to show the screenshot of the current page
- thumb.setImageResource(R.drawable.blank);
+
+ if (mCurrentThumbnail != null) {
+ thumb.setImageBitmap(mCurrentThumbnail);
+ } else {
+ thumb.setImageResource(
+ R.drawable.browser_thumbnail);
+ }
return convertView;
}
holder.setVisibility(View.GONE);
mCursor.moveToPosition(position - mExtraOffset);
tv.setText(mCursor.getString(
Browser.HISTORY_PROJECTION_TITLE_INDEX));
- byte[] data = mCursor.getBlob(
- Browser.HISTORY_PROJECTION_THUMBNAIL_INDEX);
- if (data == null) {
- thumb.setImageResource(R.drawable.ic_launcher_shortcut_browser_bookmark);
+ Bitmap thumbnail = getBitmap(Browser.HISTORY_PROJECTION_THUMBNAIL_INDEX, position);
+ if (thumbnail == null) {
+ thumb.setImageResource(R.drawable.browser_thumbnail);
} else {
- thumb.setImageBitmap(
- BitmapFactory.decodeByteArray(data, 0, data.length));
+ thumb.setImageBitmap(thumbnail);
}
return convertView;
private void bind(BookmarkItem b, int position) {
mCursor.moveToPosition(position- mExtraOffset);
- String title = mCursor.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX);
- if (title.length() > BrowserSettings.MAX_TEXTVIEW_LEN) {
- title = title.substring(0, BrowserSettings.MAX_TEXTVIEW_LEN);
- }
- b.setName(title);
+ b.setName(mCursor.getString(Browser.HISTORY_PROJECTION_TITLE_INDEX));
String url = mCursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX);
- if (url.length() > BrowserSettings.MAX_TEXTVIEW_LEN) {
- url = url.substring(0, BrowserSettings.MAX_TEXTVIEW_LEN);
- }
b.setUrl(url);
byte[] data = mCursor.getBlob(Browser.HISTORY_PROJECTION_FAVICON_INDEX);
if (data != null) {
b.setFavicon(BitmapFactory.decodeByteArray(data, 0, data.length));
} else {
- b.setFavicon(null);
+ b.setFavicon(CombinedBookmarkHistoryActivity.getIconListenerSet()
+ .getFavicon(url));
}
}