Fix getItemId()
Bug: 6446119
Change-Id: If8c13c9f2cb9b93c6f3575f12111059aeeacd5cb
diff --git a/src/com/android/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java
index 93cf5d9..afc28ba 100644
--- a/src/com/android/browser/BrowserBookmarksAdapter.java
+++ b/src/com/android/browser/BrowserBookmarksAdapter.java
@@ -49,6 +49,11 @@
}
@Override
+ protected long getItemId(Cursor c) {
+ return c.getLong(BookmarksLoader.COLUMN_INDEX_ID);
+ }
+
+ @Override
public View newView(Context context, ViewGroup parent) {
return mInflater.inflate(R.layout.bookmark_thumbnail, parent, false);
}
diff --git a/src/com/android/browser/util/ThreadedCursorAdapter.java b/src/com/android/browser/util/ThreadedCursorAdapter.java
index b70ca36..72a07ea 100644
--- a/src/com/android/browser/util/ThreadedCursorAdapter.java
+++ b/src/com/android/browser/util/ThreadedCursorAdapter.java
@@ -137,7 +137,9 @@
@Override
public long getItemId(int position) {
- return position;
+ synchronized (mCursorLock) {
+ return getItemId(getItem(position));
+ }
}
private void loadRowObject(int position, LoadContainer container) {
@@ -207,4 +209,5 @@
public abstract void bindView(View view, T object);
public abstract T getRowObject(Cursor c, T recycleObject);
public abstract T getLoadingObject();
+ protected abstract long getItemId(Cursor c);
}
\ No newline at end of file
diff --git a/src/com/android/browser/view/BookmarkExpandableView.java b/src/com/android/browser/view/BookmarkExpandableView.java
index 095bb7b..7badaf5 100644
--- a/src/com/android/browser/view/BookmarkExpandableView.java
+++ b/src/com/android/browser/view/BookmarkExpandableView.java
@@ -228,7 +228,7 @@
|| mAdapter.mChildren.get(groupPosition).getCount() <= childPosition) {
return;
}
- long id = (Long) v.getTag(R.id.child_id);
+ long id = mAdapter.mChildren.get(groupPosition).getItemId(childPosition);
if (mOnChildClickListener != null) {
mOnChildClickListener.onChildClick(BookmarkExpandableView.this,
v, groupPosition, childPosition, id);
@@ -331,7 +331,6 @@
View v = childAdapter.getView(realChildPosition, cv, row);
v.setTag(R.id.group_position, groupPosition);
v.setTag(R.id.child_position, realChildPosition);
- v.setTag(R.id.child_id, childAdapter.getItemId(realChildPosition));
v.setOnClickListener(mChildClickListener);
v.setLongClickable(mLongClickable);
if (cv == null) {