From 9907efcdb03d1e038b3923d6c58f907b1fda4c5e Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Wed, 28 Oct 2009 13:22:46 +0000 Subject: [PATCH] When displaying a bookmark item, only truncate the Strings that we display in the ListView rather than the ones used to index into the bookmarks database. This caused a crash when bookmarks had titles longer than the text view limit. Fix for b/2219781 Change-Id: I4ea3cdfbaedce0dea6bd69f560aae9aea71ed7c1 --- src/com/android/browser/BookmarkItem.java | 24 ++++++++++++++++++++-- .../android/browser/BrowserBookmarksAdapter.java | 9 +------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/com/android/browser/BookmarkItem.java b/src/com/android/browser/BookmarkItem.java index a70dd4f..fbb362e 100644 --- a/src/com/android/browser/BookmarkItem.java +++ b/src/com/android/browser/BookmarkItem.java @@ -33,6 +33,7 @@ class BookmarkItem extends LinearLayout { protected TextView mUrlText; protected ImageView mImageView; protected String mUrl; + protected String mTitle; /** * Instantiate a bookmark item, including a default favicon. @@ -65,7 +66,7 @@ class BookmarkItem extends LinearLayout { * Return the name assigned to this bookmark item. */ /* package */ String getName() { - return mTextView.getText().toString(); + return mTitle; } /** @@ -99,6 +100,16 @@ class BookmarkItem extends LinearLayout { * @param name The new name for the bookmark item. */ /* package */ void setName(String name) { + if (name == null) { + return; + } + + mTitle = name; + + if (name.length() > BrowserSettings.MAX_TEXTVIEW_LEN) { + name = name.substring(0, BrowserSettings.MAX_TEXTVIEW_LEN); + } + mTextView.setText(name); } @@ -107,7 +118,16 @@ class BookmarkItem extends LinearLayout { * @param url The new url for the bookmark item. */ /* package */ void setUrl(String url) { - mUrlText.setText(url); + if (url == null) { + return; + } + mUrl = url; + + if (url.length() > BrowserSettings.MAX_TEXTVIEW_LEN) { + url = url.substring(0, BrowserSettings.MAX_TEXTVIEW_LEN); + } + + mUrlText.setText(url); } } diff --git a/src/com/android/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java index dd56d2f..d1fdf07 100644 --- a/src/com/android/browser/BrowserBookmarksAdapter.java +++ b/src/com/android/browser/BrowserBookmarksAdapter.java @@ -540,15 +540,8 @@ class BrowserBookmarksAdapter extends BaseAdapter { 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) { -- 2.11.0