| Index: chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| diff --git a/chrome/browser/android/offline_pages/offline_page_bridge.cc b/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| index 27c315f7fc6789bc6f56f77b086a77f8017fec12..83be29d04ebe1e8260a7e86057559f13ed44ddf6 100644
|
| --- a/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| +++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/android/offline_pages/offline_page_bridge.h"
|
|
|
| +#include "base/android/jni_array.h"
|
| #include "base/android/jni_string.h"
|
| #include "base/files/file_path.h"
|
| #include "base/strings/string_util.h"
|
| @@ -54,6 +55,19 @@ void DeletePageCallback(ScopedJavaGlobalRef<jobject>* j_callback_obj,
|
| env, j_callback_ptr->obj(), static_cast<int>(result));
|
| }
|
|
|
| +void ToJavaOfflinePageList(JNIEnv* env,
|
| + jobject j_result_obj,
|
| + const std::vector<OfflinePageItem>& offline_pages) {
|
| + for (const OfflinePageItem& offline_page : offline_pages) {
|
| + Java_OfflinePageBridge_createOfflinePageAndAddToList(
|
| + env, j_result_obj,
|
| + ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
|
| + offline_page.bookmark_id,
|
| + ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
|
| + offline_page.file_size);
|
| + }
|
| +}
|
| +
|
| } // namespace
|
|
|
| static jboolean IsOfflinePagesEnabled(JNIEnv* env, jclass clazz) {
|
| @@ -88,15 +102,17 @@ void OfflinePageBridge::GetAllPages(JNIEnv* env,
|
| DCHECK(j_result_obj);
|
| const std::vector<OfflinePageItem>& offline_pages =
|
| offline_page_model_->GetAllPages();
|
| + ToJavaOfflinePageList(env, j_result_obj, offline_pages);
|
| +}
|
|
|
| - for (const OfflinePageItem& offline_page : offline_pages) {
|
| - Java_OfflinePageBridge_createOfflinePageAndAddToList(
|
| - env, j_result_obj,
|
| - ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(),
|
| - offline_page.bookmark_id,
|
| - ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(),
|
| - offline_page.file_size);
|
| - }
|
| +void OfflinePageBridge::GetPagesToCleanUp(JNIEnv* env,
|
| + jobject obj,
|
| + jobject j_result_obj) {
|
| + DCHECK(offline_page_model_->is_loaded());
|
| + DCHECK(j_result_obj);
|
| + const std::vector<OfflinePageItem>& offline_pages =
|
| + offline_page_model_->GetPagesToCleanUp();
|
| + ToJavaOfflinePageList(env, j_result_obj, offline_pages);
|
| }
|
|
|
| ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByBookmarkId(
|
| @@ -153,6 +169,25 @@ void OfflinePageBridge::DeletePage(JNIEnv* env,
|
| &DeletePageCallback, j_callback_obj_ptr.release()));
|
| }
|
|
|
| +void OfflinePageBridge::DeletePages(JNIEnv* env,
|
| + jobject obj,
|
| + jobject j_callback_obj,
|
| + jlongArray bookmark_ids_array) {
|
| + DCHECK(j_callback_obj);
|
| +
|
| + scoped_ptr<ScopedJavaGlobalRef<jobject>> j_callback_obj_ptr(
|
| + new ScopedJavaGlobalRef<jobject>());
|
| + j_callback_obj_ptr->Reset(env, j_callback_obj);
|
| +
|
| + std::vector<jlong> bookmark_ids;
|
| + base::android::JavaLongArrayToLongVector(env, bookmark_ids_array,
|
| + &bookmark_ids);
|
| +
|
| + offline_page_model_->DeletePagesByBookmarkId(
|
| + bookmark_ids,
|
| + base::Bind(&DeletePageCallback, j_callback_obj_ptr.release()));
|
| +}
|
| +
|
| void OfflinePageBridge::NotifyIfDoneLoading() const {
|
| if (!offline_page_model_->is_loaded())
|
| return;
|
|
|