| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/android/bookmarks/bookmarks_bridge.h" | 5 #include "chrome/browser/android/bookmarks/bookmarks_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/jni_string.h" | 7 #include "base/android/jni_string.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "chrome/browser/bookmarks/bookmark_model.h" | 9 #include "chrome/browser/bookmarks/bookmark_model.h" |
| 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 jobject j_callback_obj, | 95 jobject j_callback_obj, |
| 96 jobject j_result_obj) { | 96 jobject j_result_obj) { |
| 97 DCHECK(IsLoaded()); | 97 DCHECK(IsLoaded()); |
| 98 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); | 98 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); |
| 99 int type = Java_BookmarkId_getType(env, j_folder_id_obj); | 99 int type = Java_BookmarkId_getType(env, j_folder_id_obj); |
| 100 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); | 100 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); |
| 101 | 101 |
| 102 if (!folder->is_folder() || !IsReachable(folder)) | 102 if (!folder->is_folder() || !IsReachable(folder)) |
| 103 return; | 103 return; |
| 104 | 104 |
| 105 // Recreate the java bookmarkId object due to fallback. |
| 106 ScopedJavaLocalRef<jobject> folder_id_obj = |
| 107 Java_BookmarksBridge_createBookmarkId( |
| 108 env, folder->id(), GetBookmarkType(folder)); |
| 109 j_folder_id_obj = folder_id_obj.obj(); |
| 110 |
| 105 // If this is the Mobile bookmarks folder then add the "Managed bookmarks" | 111 // If this is the Mobile bookmarks folder then add the "Managed bookmarks" |
| 106 // folder first, so that it's the first entry. | 112 // folder first, so that it's the first entry. |
| 107 if (folder == bookmark_model_->mobile_node() && | 113 if (folder == bookmark_model_->mobile_node() && |
| 108 managed_bookmarks_shim_->HasManagedBookmarks()) { | 114 managed_bookmarks_shim_->HasManagedBookmarks()) { |
| 109 ExtractBookmarkNodeInformation( | 115 ExtractBookmarkNodeInformation( |
| 110 managed_bookmarks_shim_->GetManagedBookmarksRoot(), | 116 managed_bookmarks_shim_->GetManagedBookmarksRoot(), |
| 111 j_result_obj); | 117 j_result_obj); |
| 112 } | 118 } |
| 113 // Get the folder contents | 119 // Get the folder contents |
| 114 for (int i = 0; i < folder->child_count(); ++i) { | 120 for (int i = 0; i < folder->child_count(); ++i) { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 133 jobject j_callback_obj, | 139 jobject j_callback_obj, |
| 134 jobject j_result_obj) { | 140 jobject j_result_obj) { |
| 135 DCHECK(IsLoaded()); | 141 DCHECK(IsLoaded()); |
| 136 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); | 142 long folder_id = Java_BookmarkId_getId(env, j_folder_id_obj); |
| 137 int type = Java_BookmarkId_getType(env, j_folder_id_obj); | 143 int type = Java_BookmarkId_getType(env, j_folder_id_obj); |
| 138 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); | 144 const BookmarkNode* folder = GetFolderWithFallback(folder_id, type); |
| 139 | 145 |
| 140 if (!folder->is_folder() || !IsReachable(folder)) | 146 if (!folder->is_folder() || !IsReachable(folder)) |
| 141 return; | 147 return; |
| 142 | 148 |
| 149 // Recreate the java bookmarkId object due to fallback. |
| 150 ScopedJavaLocalRef<jobject> folder_id_obj = |
| 151 Java_BookmarksBridge_createBookmarkId( |
| 152 env, folder->id(), GetBookmarkType(folder)); |
| 153 j_folder_id_obj = folder_id_obj.obj(); |
| 154 |
| 143 // Get the folder heirarchy | 155 // Get the folder heirarchy |
| 144 const BookmarkNode* node = folder; | 156 const BookmarkNode* node = folder; |
| 145 while (node) { | 157 while (node) { |
| 146 ExtractBookmarkNodeInformation(node, j_result_obj); | 158 ExtractBookmarkNodeInformation(node, j_result_obj); |
| 147 node = GetParentNode(node); | 159 node = GetParentNode(node); |
| 148 } | 160 } |
| 149 | 161 |
| 150 Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable( | 162 Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable( |
| 151 env, j_callback_obj, j_folder_id_obj, j_result_obj); | 163 env, j_callback_obj, j_folder_id_obj, j_result_obj); |
| 152 } | 164 } |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 408 BookmarkModelChanged(); | 420 BookmarkModelChanged(); |
| 409 } | 421 } |
| 410 | 422 |
| 411 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { | 423 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { |
| 412 NotifyIfDoneLoading(); | 424 NotifyIfDoneLoading(); |
| 413 } | 425 } |
| 414 | 426 |
| 415 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { | 427 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { |
| 416 partner_bookmarks_shim_ = NULL; | 428 partner_bookmarks_shim_ = NULL; |
| 417 } | 429 } |
| OLD | NEW |