summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java19
-rw-r--r--chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java48
-rw-r--r--chrome/browser/android/bookmarks/bookmarks_bridge.cc65
-rw-r--r--chrome/browser/android/bookmarks/bookmarks_bridge.h3
4 files changed, 45 insertions, 90 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
index 479ec7c..b31f597 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
@@ -225,7 +225,7 @@ public class BookmarksBridge {
}
/**
- * @return The top level folder's parents, which are root node, mobile node, and other node.
+ * @return The top level folder's parents.
*/
public List<BookmarkId> getTopLevelFolderParentIDs() {
assert mIsNativeBookmarkModelLoaded;
@@ -238,9 +238,7 @@ public class BookmarksBridge {
* @param getSpecial Whether special top folders should be returned.
* @param getNormal Whether normal top folders should be returned.
* @return The top level folders. Note that special folders come first and normal top folders
- * will be in the alphabetical order. Special top folders are managed bookmark and
- * partner bookmark. Normal top folders are desktop permanent folder, and the
- * sub-folders of mobile permanent folder and others permanent folder.
+ * will be in the alphabetical order.
*/
public List<BookmarkId> getTopLevelFolderIDs(boolean getSpecial, boolean getNormal) {
assert mIsNativeBookmarkModelLoaded;
@@ -250,17 +248,6 @@ public class BookmarksBridge {
}
/**
- * @return The uncategorized bookmark IDs. They are direct descendant bookmarks of mobile and
- * other folders.
- */
- public List<BookmarkId> getUncategorizedBookmarkIDs() {
- assert mIsNativeBookmarkModelLoaded;
- List<BookmarkId> result = new ArrayList<BookmarkId>();
- nativeGetUncategorizedBookmarkIDs(mNativeBookmarksBridge, result);
- return result;
- }
-
- /**
* Populates folderList with BookmarkIds of folders users can move bookmarks
* to and all folders have corresponding depth value in depthList. Folders
* having depths of 0 will be shown as top-layered folders. These include
@@ -702,8 +689,6 @@ public class BookmarksBridge {
List<BookmarkId> bookmarksList);
private native void nativeGetTopLevelFolderIDs(long nativeBookmarksBridge, boolean getSpecial,
boolean getNormal, List<BookmarkId> bookmarksList);
- private native void nativeGetUncategorizedBookmarkIDs(long nativeBookmarksBridge,
- List<BookmarkId> bookmarksList);
private native void nativeGetAllFoldersWithDepths(long nativeBookmarksBridge,
List<BookmarkId> folderList, List<Integer> depthList);
private native BookmarkId nativeGetMobileFolderId(long nativeBookmarksBridge);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java
index bc050c0..90e3a9f 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/BookmarksBridgeTest.java
@@ -103,14 +103,16 @@ public class BookmarksBridgeTest extends ChromeShellTestBase {
// Map folders to depths as expected results
HashMap<BookmarkId, Integer> idToDepth = new HashMap<BookmarkId, Integer>();
- idToDepth.put(folderA, 0);
- idToDepth.put(folderAA, 1);
- idToDepth.put(folderAAA, 2);
- idToDepth.put(folderAAAA, 3);
+ idToDepth.put(mMobileNode, 0);
+ idToDepth.put(folderA, 1);
+ idToDepth.put(folderAA, 2);
+ idToDepth.put(folderAAA, 3);
+ idToDepth.put(folderAAAA, 4);
idToDepth.put(mDesktopNode, 0);
idToDepth.put(folderB, 1);
idToDepth.put(folderBA, 2);
- idToDepth.put(folderC, 0);
+ idToDepth.put(mOtherNode, 0);
+ idToDepth.put(folderC, 1);
List<BookmarkId> folderList = new ArrayList<BookmarkId>();
List<Integer> depthList = new ArrayList<Integer>();
@@ -141,44 +143,54 @@ public class BookmarksBridgeTest extends ChromeShellTestBase {
List<Integer> depthList = new ArrayList<Integer>();
mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderA));
+ idToDepth.put(mMobileNode, 0);
idToDepth.put(mDesktopNode, 0);
idToDepth.put(folderB, 1);
idToDepth.put(folderBA, 2);
- idToDepth.put(folderC, 0);
+ idToDepth.put(mOtherNode, 0);
+ idToDepth.put(folderC, 1);
verifyFolderDepths(folderList, depthList, idToDepth);
mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderB));
- idToDepth.put(folderA, 0);
- idToDepth.put(folderAA, 1);
- idToDepth.put(folderAAA, 2);
+ idToDepth.put(mMobileNode, 0);
+ idToDepth.put(folderA, 1);
+ idToDepth.put(folderAA, 2);
+ idToDepth.put(folderAAA, 3);
idToDepth.put(mDesktopNode, 0);
- idToDepth.put(folderC, 0);
+ idToDepth.put(mOtherNode, 0);
+ idToDepth.put(folderC, 1);
verifyFolderDepths(folderList, depthList, idToDepth);
mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderC));
- idToDepth.put(folderA, 0);
- idToDepth.put(folderAA, 1);
- idToDepth.put(folderAAA, 2);
+ idToDepth.put(mMobileNode, 0);
+ idToDepth.put(folderA, 1);
+ idToDepth.put(folderAA, 2);
+ idToDepth.put(folderAAA, 3);
idToDepth.put(mDesktopNode, 0);
idToDepth.put(folderB, 1);
idToDepth.put(folderBA, 2);
+ idToDepth.put(mOtherNode, 0);
verifyFolderDepths(folderList, depthList, idToDepth);
mBookmarksBridge.getMoveDestinations(folderList, depthList, Arrays.asList(folderBA));
- idToDepth.put(folderA, 0);
- idToDepth.put(folderAA, 1);
- idToDepth.put(folderAAA, 2);
+ idToDepth.put(mMobileNode, 0);
+ idToDepth.put(folderA, 1);
+ idToDepth.put(folderAA, 2);
+ idToDepth.put(folderAAA, 3);
idToDepth.put(mDesktopNode, 0);
idToDepth.put(folderB, 1);
- idToDepth.put(folderC, 0);
+ idToDepth.put(mOtherNode, 0);
+ idToDepth.put(folderC, 1);
verifyFolderDepths(folderList, depthList, idToDepth);
mBookmarksBridge.getMoveDestinations(folderList, depthList,
Arrays.asList(folderAA, folderC));
- idToDepth.put(folderA, 0);
+ idToDepth.put(mMobileNode, 0);
+ idToDepth.put(folderA, 1);
idToDepth.put(mDesktopNode, 0);
idToDepth.put(folderB, 1);
idToDepth.put(folderBA, 2);
+ idToDepth.put(mOtherNode, 0);
verifyFolderDepths(folderList, depthList, idToDepth);
}
diff --git a/chrome/browser/android/bookmarks/bookmarks_bridge.cc b/chrome/browser/android/bookmarks/bookmarks_bridge.cc
index 128caa9..5dbf6dd 100644
--- a/chrome/browser/android/bookmarks/bookmarks_bridge.cc
+++ b/chrome/browser/android/bookmarks/bookmarks_bridge.cc
@@ -210,12 +210,6 @@ void BookmarksBridge::GetTopLevelFolderParentIDs(JNIEnv* env,
Java_BookmarksBridge_addToBookmarkIdList(
env, j_result_obj, bookmark_model_->root_node()->id(),
GetBookmarkType(bookmark_model_->root_node()));
- Java_BookmarksBridge_addToBookmarkIdList(
- env, j_result_obj, bookmark_model_->mobile_node()->id(),
- GetBookmarkType(bookmark_model_->mobile_node()));
- Java_BookmarksBridge_addToBookmarkIdList(
- env, j_result_obj, bookmark_model_->other_node()->id(),
- GetBookmarkType(bookmark_model_->other_node()));
}
void BookmarksBridge::GetTopLevelFolderIDs(JNIEnv* env,
@@ -241,8 +235,6 @@ void BookmarksBridge::GetTopLevelFolderIDs(JNIEnv* env,
if (get_normal) {
DCHECK_EQ(bookmark_model_->root_node()->child_count(), 4);
- top_level_folders.push_back(bookmark_model_->bookmark_bar_node());
-
const BookmarkNode* mobile_node = bookmark_model_->mobile_node();
for (int i = 0; i < mobile_node->child_count(); ++i) {
const BookmarkNode* node = mobile_node->GetChild(i);
@@ -251,6 +243,15 @@ void BookmarksBridge::GetTopLevelFolderIDs(JNIEnv* env,
}
}
+ const BookmarkNode* bookmark_bar_node =
+ bookmark_model_->bookmark_bar_node();
+ for (int i = 0; i < bookmark_bar_node->child_count(); ++i) {
+ const BookmarkNode* node = bookmark_bar_node->GetChild(i);
+ if (node->is_folder()) {
+ top_level_folders.push_back(node);
+ }
+ }
+
const BookmarkNode* other_node = bookmark_model_->other_node();
for (int i = 0; i < other_node->child_count(); ++i) {
const BookmarkNode* node = other_node->GetChild(i);
@@ -274,64 +275,24 @@ void BookmarksBridge::GetTopLevelFolderIDs(JNIEnv* env,
}
}
-void BookmarksBridge::GetUncategorizedBookmarkIDs(JNIEnv* env,
- jobject obj,
- jobject j_result_obj) {
- const BookmarkNode* mobile_node = bookmark_model_->mobile_node();
- for (int i = 0; i < mobile_node->child_count(); ++i) {
- const BookmarkNode* node = mobile_node->GetChild(i);
- if (!node->is_folder()) {
- Java_BookmarksBridge_addToBookmarkIdList(env,
- j_result_obj,
- node->id(),
- GetBookmarkType(node));
- }
- }
-
- const BookmarkNode* other_node = bookmark_model_->other_node();
- for (int i = 0; i < other_node->child_count(); ++i) {
- const BookmarkNode* node = other_node->GetChild(i);
- if (!node->is_folder()) {
- Java_BookmarksBridge_addToBookmarkIdList(env,
- j_result_obj,
- node->id(),
- GetBookmarkType(node));
- }
- }
-}
-
void BookmarksBridge::GetAllFoldersWithDepths(JNIEnv* env,
jobject obj,
jobject j_folders_obj,
jobject j_depths_obj) {
DCHECK(IsLoaded());
- const BookmarkNode* desktop = bookmark_model_->bookmark_bar_node();
- const BookmarkNode* mobile = bookmark_model_->mobile_node();
- const BookmarkNode* other = bookmark_model_->other_node();
-
scoped_ptr<icu::Collator> collator = GetICUCollator();
// Vector to temporarily contain all child bookmarks at same level for sorting
std::vector<const BookmarkNode*> bookmarkList;
+
// Stack for Depth-First Search of bookmark model. It stores nodes and their
// heights.
std::stack<std::pair<const BookmarkNode*, int> > stk;
- for (int i = 0; i < mobile->child_count(); ++i) {
- const BookmarkNode* child = mobile->GetChild(i);
- if (child->is_folder() && client_->CanBeEditedByUser(child))
- bookmarkList.push_back(child);
- }
- for (int i = 0; i < other->child_count(); ++i) {
- const BookmarkNode* child = other->GetChild(i);
- if (child->is_folder() && client_->CanBeEditedByUser(child))
- bookmarkList.push_back(child);
- }
- bookmarkList.push_back(desktop);
- std::stable_sort(bookmarkList.begin(),
- bookmarkList.end(),
- BookmarkTitleComparer(this, collator.get()));
+ bookmarkList.push_back(bookmark_model_->mobile_node());
+ bookmarkList.push_back(bookmark_model_->bookmark_bar_node());
+ bookmarkList.push_back(bookmark_model_->other_node());
// Push all sorted top folders in stack and give them depth of 0.
// Note the order to push folders to stack should be opposite to the order in
diff --git a/chrome/browser/android/bookmarks/bookmarks_bridge.h b/chrome/browser/android/bookmarks/bookmarks_bridge.h
index 273bf51..cb182cf 100644
--- a/chrome/browser/android/bookmarks/bookmarks_bridge.h
+++ b/chrome/browser/android/bookmarks/bookmarks_bridge.h
@@ -57,9 +57,6 @@ class BookmarksBridge : public bookmarks::BaseBookmarkModelObserver,
jboolean get_normal,
jobject j_result_obj);
- void GetUncategorizedBookmarkIDs(JNIEnv* env,
- jobject obj,
- jobject j_result_obj);
void GetAllFoldersWithDepths(JNIEnv* env,
jobject obj,
jobject j_folders_obj,