Support BOOKMARK_TYPE
Bug: 6332869
Bug: 5494697
Bookmark type also gives us an easy way to localize Other Bookmarks
Change-Id: Iab208da0cb1b2af5d256990cdc4ab5c11821523b
diff --git a/src/com/android/browser/BookmarksLoader.java b/src/com/android/browser/BookmarksLoader.java
index bc06497..80d4255 100644
--- a/src/com/android/browser/BookmarksLoader.java
+++ b/src/com/android/browser/BookmarksLoader.java
@@ -34,7 +34,7 @@
public static final int COLUMN_INDEX_TOUCH_ICON = 5;
public static final int COLUMN_INDEX_IS_FOLDER = 6;
public static final int COLUMN_INDEX_PARENT = 8;
- public static final int COLUMN_INDEX_SERVER_UNIQUE = 9;
+ public static final int COLUMN_INDEX_TYPE = 9;
public static final String[] PROJECTION = new String[] {
Bookmarks._ID, // 0
@@ -46,7 +46,7 @@
Bookmarks.IS_FOLDER, // 6
Bookmarks.POSITION, // 7
Bookmarks.PARENT, // 8
- ChromeSyncColumns.SERVER_UNIQUE, // 9
+ Bookmarks.TYPE, // 9
};
String mAccountType;
diff --git a/src/com/android/browser/BrowserBookmarksAdapter.java b/src/com/android/browser/BrowserBookmarksAdapter.java
index 2fd880c..fcc3f27 100644
--- a/src/com/android/browser/BrowserBookmarksAdapter.java
+++ b/src/com/android/browser/BrowserBookmarksAdapter.java
@@ -20,6 +20,7 @@
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.provider.BrowserContract.Bookmarks;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -52,6 +53,15 @@
}
}
+ CharSequence getTitle(Cursor cursor, Context context) {
+ int type = cursor.getInt(BookmarksLoader.COLUMN_INDEX_TYPE);
+ switch (type) {
+ case Bookmarks.BOOKMARK_TYPE_OTHER_FOLDER:
+ return context.getText(R.string.other_bookmarks);
+ }
+ return cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE);
+ }
+
void bindGridView(View view, Context context, Cursor cursor) {
// We need to set this to handle rotation and other configuration change
// events. If the padding didn't change, this is a no op.
@@ -62,7 +72,7 @@
ImageView thumb = (ImageView) view.findViewById(R.id.thumb);
TextView tv = (TextView) view.findViewById(R.id.label);
- tv.setText(cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE));
+ tv.setText(getTitle(cursor, context));
if (cursor.getInt(BookmarksLoader.COLUMN_INDEX_IS_FOLDER) != 0) {
// folder
thumb.setImageResource(R.drawable.thumb_bookmark_widget_folder_holo);
@@ -89,7 +99,7 @@
ImageView favicon = (ImageView) view.findViewById(R.id.favicon);
TextView tv = (TextView) view.findViewById(R.id.label);
- tv.setText(cursor.getString(BookmarksLoader.COLUMN_INDEX_TITLE));
+ tv.setText(getTitle(cursor, context));
if (cursor.getInt(BookmarksLoader.COLUMN_INDEX_IS_FOLDER) != 0) {
// folder
favicon.setImageResource(R.drawable.ic_folder_holo_dark);
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index da60fda..2c8a27a 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -37,7 +37,6 @@
import android.os.Bundle;
import android.provider.BrowserContract;
import android.provider.BrowserContract.Accounts;
-import android.provider.BrowserContract.ChromeSyncColumns;
import android.view.ActionMode;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
@@ -285,8 +284,9 @@
}
boolean canEdit(Cursor c) {
- String unique = c.getString(BookmarksLoader.COLUMN_INDEX_SERVER_UNIQUE);
- return !ChromeSyncColumns.FOLDER_NAME_OTHER_BOOKMARKS.equals(unique);
+ int type = c.getInt(BookmarksLoader.COLUMN_INDEX_TYPE);
+ return type == BrowserContract.Bookmarks.BOOKMARK_TYPE_BOOKMARK
+ || type == BrowserContract.Bookmarks.BOOKMARK_TYPE_FOLDER;
}
private void populateBookmarkItem(Cursor cursor, BookmarkItem item, boolean isFolder) {
diff --git a/src/com/android/browser/provider/BrowserProvider2.java b/src/com/android/browser/provider/BrowserProvider2.java
index 6121abc..a66c333 100644
--- a/src/com/android/browser/provider/BrowserProvider2.java
+++ b/src/com/android/browser/provider/BrowserProvider2.java
@@ -284,6 +284,17 @@
" FROM " + TABLE_BOOKMARKS + " A WHERE " +
"A." + Bookmarks._ID + "=" + TABLE_BOOKMARKS + "." + Bookmarks.INSERT_AFTER +
") AS " + Bookmarks.INSERT_AFTER_SOURCE_ID);
+ map.put(Bookmarks.TYPE, "CASE "
+ + " WHEN " + Bookmarks.IS_FOLDER + "=0 THEN "
+ + Bookmarks.BOOKMARK_TYPE_BOOKMARK
+ + " WHEN " + ChromeSyncColumns.SERVER_UNIQUE + "='"
+ + ChromeSyncColumns.FOLDER_NAME_BOOKMARKS_BAR + "' THEN "
+ + Bookmarks.BOOKMARK_TYPE_BOOKMARK_BAR_FOLDER
+ + " WHEN " + ChromeSyncColumns.SERVER_UNIQUE + "='"
+ + ChromeSyncColumns.FOLDER_NAME_OTHER_BOOKMARKS + "' THEN "
+ + Bookmarks.BOOKMARK_TYPE_OTHER_FOLDER
+ + " ELSE " + Bookmarks.BOOKMARK_TYPE_FOLDER
+ + " END AS " + Bookmarks.TYPE);
// Other bookmarks
OTHER_BOOKMARKS_PROJECTION_MAP.putAll(BOOKMARKS_PROJECTION_MAP);