diff --git a/android/src/com/google/zxing/client/android/share/BookmarkAdapter.java b/android/src/com/google/zxing/client/android/share/BookmarkAdapter.java index 76a2d7efc..44b674754 100644 --- a/android/src/com/google/zxing/client/android/share/BookmarkAdapter.java +++ b/android/src/com/google/zxing/client/android/share/BookmarkAdapter.java @@ -70,11 +70,13 @@ final class BookmarkAdapter extends BaseAdapter { layout = (LinearLayout) factory.inflate(R.layout.bookmark_picker_list_item, viewGroup, false); } - cursor.moveToPosition(index); - String title = cursor.getString(BookmarkPickerActivity.TITLE_COLUMN); - ((TextView) layout.findViewById(R.id.bookmark_title)).setText(title); - String url = cursor.getString(BookmarkPickerActivity.URL_COLUMN); - ((TextView) layout.findViewById(R.id.bookmark_url)).setText(url); + if (!cursor.isClosed()) { + cursor.moveToPosition(index); + String title = cursor.getString(BookmarkPickerActivity.TITLE_COLUMN); + ((TextView) layout.findViewById(R.id.bookmark_title)).setText(title); + String url = cursor.getString(BookmarkPickerActivity.URL_COLUMN); + ((TextView) layout.findViewById(R.id.bookmark_url)).setText(url); + } // Otherwise... just don't update as the object is shutting down return layout; } } diff --git a/android/src/com/google/zxing/client/android/share/BookmarkPickerActivity.java b/android/src/com/google/zxing/client/android/share/BookmarkPickerActivity.java index 17733223b..56a28c393 100644 --- a/android/src/com/google/zxing/client/android/share/BookmarkPickerActivity.java +++ b/android/src/com/google/zxing/client/android/share/BookmarkPickerActivity.java @@ -65,7 +65,7 @@ public final class BookmarkPickerActivity extends ListActivity { @Override protected void onListItemClick(ListView l, View view, int position, long id) { - if (cursor.moveToPosition(position)) { + if (!cursor.isClosed() && cursor.moveToPosition(position)) { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.putExtra(Browser.BookmarkColumns.TITLE, cursor.getString(TITLE_COLUMN)); diff --git a/core/src/com/google/zxing/client/result/VCardResultParser.java b/core/src/com/google/zxing/client/result/VCardResultParser.java index 8f52b4f1d..a0ee1259a 100644 --- a/core/src/com/google/zxing/client/result/VCardResultParser.java +++ b/core/src/com/google/zxing/client/result/VCardResultParser.java @@ -314,7 +314,7 @@ public final class VCardResultParser extends ResultParser { int start = 0; int end; int componentIndex = 0; - while ((end = name.indexOf(';', start)) > 0) { + while (componentIndex < components.length - 1 && (end = name.indexOf(';', start)) > 0) { components[componentIndex] = name.substring(start, end); componentIndex++; start = end + 1;