| 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 1ec52a9e26e8878cfbff4c506d4ba34e5e7791a9..41a74dae994067c082d2aa599271076a4b94c78a 100644
|
| --- a/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| +++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc
|
| @@ -94,7 +94,7 @@ void CheckPagesExistOfflineCallback(
|
| j_result_array);
|
| }
|
|
|
| -void GetAllPagesCallback(
|
| +void MultipleOfflinePageItemCallback(
|
| const ScopedJavaGlobalRef<jobject>& j_result_obj,
|
| const ScopedJavaGlobalRef<jobject>& j_callback_obj,
|
| const OfflinePageModel::MultipleOfflinePageItemResult& result) {
|
| @@ -332,35 +332,75 @@ void OfflinePageBridge::GetAllPages(
|
| ScopedJavaGlobalRef<jobject> j_callback_ref;
|
| j_callback_ref.Reset(env, j_callback_obj);
|
|
|
| - offline_page_model_->GetAllPages(
|
| - base::Bind(&GetAllPagesCallback, j_result_ref, j_callback_ref));
|
| + offline_page_model_->GetAllPages(base::Bind(&MultipleOfflinePageItemCallback,
|
| + j_result_ref, j_callback_ref));
|
| }
|
|
|
| -ScopedJavaLocalRef<jlongArray> OfflinePageBridge::GetOfflineIdsForClientId(
|
| +void OfflinePageBridge::GetPageByOfflineId(
|
| JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
| - const JavaParamRef<jstring>& j_namespace,
|
| - const JavaParamRef<jstring>& j_client_id) {
|
| - DCHECK(offline_page_model_->is_loaded());
|
| - offline_pages::ClientId client_id;
|
| - client_id.name_space = ConvertJavaStringToUTF8(env, j_namespace);
|
| - client_id.id = ConvertJavaStringToUTF8(env, j_client_id);
|
| + jlong offline_id,
|
| + const JavaParamRef<jobject>& j_callback_obj) {
|
| + ScopedJavaGlobalRef<jobject> j_callback_ref;
|
| + j_callback_ref.Reset(env, j_callback_obj);
|
| + offline_page_model_->GetPageByOfflineId(
|
| + offline_id, base::Bind(&SingleOfflinePageItemCallback, j_callback_ref));
|
| +}
|
|
|
| - std::vector<int64_t> results =
|
| - offline_page_model_->MaybeGetOfflineIdsForClientId(client_id);
|
| +std::vector<ClientId> getClientIdsFromObjectArrays(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobjectArray>& j_namespaces_array,
|
| + const JavaParamRef<jobjectArray>& j_ids_array) {
|
| + std::vector<std::string> name_spaces;
|
| + std::vector<std::string> ids;
|
| + base::android::AppendJavaStringArrayToStringVector(
|
| + env, j_namespaces_array.obj(), &name_spaces);
|
| + base::android::AppendJavaStringArrayToStringVector(env, j_ids_array.obj(),
|
| + &ids);
|
| + DCHECK_EQ(name_spaces.size(), ids.size());
|
| + std::vector<ClientId> client_ids;
|
| +
|
| + for (size_t i = 0; i < name_spaces.size(); i++) {
|
| + offline_pages::ClientId client_id;
|
| + client_id.name_space = name_spaces[i];
|
| + client_id.id = ids[i];
|
| + client_ids.emplace_back(client_id);
|
| + }
|
|
|
| - return base::android::ToJavaLongArray(env, results);
|
| + return client_ids;
|
| }
|
|
|
| -ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId(
|
| +void OfflinePageBridge::DeletePagesByClientId(
|
| JNIEnv* env,
|
| const JavaParamRef<jobject>& obj,
|
| - jlong offline_id) {
|
| - const OfflinePageItem* offline_page =
|
| - offline_page_model_->MaybeGetPageByOfflineId(offline_id);
|
| - if (!offline_page)
|
| - return ScopedJavaLocalRef<jobject>();
|
| - return ToJavaOfflinePageItem(env, *offline_page);
|
| + const JavaParamRef<jobjectArray>& j_namespaces_array,
|
| + const JavaParamRef<jobjectArray>& j_ids_array,
|
| + const JavaParamRef<jobject>& j_callback_obj) {
|
| + ScopedJavaGlobalRef<jobject> j_callback_ref;
|
| + j_callback_ref.Reset(env, j_callback_obj);
|
| + std::vector<ClientId> client_ids =
|
| + getClientIdsFromObjectArrays(env, j_namespaces_array, j_ids_array);
|
| + offline_page_model_->DeletePagesByClientIds(
|
| + client_ids, base::Bind(&DeletePageCallback, j_callback_ref));
|
| +}
|
| +
|
| +void OfflinePageBridge::GetPagesByClientId(
|
| + JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj,
|
| + const JavaParamRef<jobject>& j_result_obj,
|
| + const JavaParamRef<jobjectArray>& j_namespaces_array,
|
| + const JavaParamRef<jobjectArray>& j_ids_array,
|
| + const JavaParamRef<jobject>& j_callback_obj) {
|
| + ScopedJavaGlobalRef<jobject> j_result_ref;
|
| + j_result_ref.Reset(env, j_result_obj);
|
| +
|
| + ScopedJavaGlobalRef<jobject> j_callback_ref;
|
| + j_callback_ref.Reset(env, j_callback_obj);
|
| + std::vector<ClientId> client_ids =
|
| + getClientIdsFromObjectArrays(env, j_namespaces_array, j_ids_array);
|
| + offline_page_model_->GetPagesByClientIds(
|
| + client_ids, base::Bind(&MultipleOfflinePageItemCallback, j_result_ref,
|
| + j_callback_ref));
|
| }
|
|
|
| void OfflinePageBridge::SelectPageForOnlineUrl(
|
| @@ -433,24 +473,6 @@ void OfflinePageBridge::SavePageLater(JNIEnv* env,
|
| RequestCoordinator::RequestAvailability::ENABLED_FOR_OFFLINER);
|
| }
|
|
|
| -void OfflinePageBridge::DeletePages(
|
| - JNIEnv* env,
|
| - const JavaParamRef<jobject>& obj,
|
| - const JavaParamRef<jobject>& j_callback_obj,
|
| - const JavaParamRef<jlongArray>& offline_ids_array) {
|
| - DCHECK(j_callback_obj);
|
| -
|
| - ScopedJavaGlobalRef<jobject> j_callback_ref;
|
| - j_callback_ref.Reset(env, j_callback_obj);
|
| -
|
| - std::vector<int64_t> offline_ids;
|
| - base::android::JavaLongArrayToInt64Vector(env, offline_ids_array,
|
| - &offline_ids);
|
| -
|
| - offline_page_model_->DeletePagesByOfflineId(
|
| - offline_ids, base::Bind(&DeletePageCallback, j_callback_ref));
|
| -}
|
| -
|
| ScopedJavaLocalRef<jstring> OfflinePageBridge::GetOfflinePageHeaderForReload(
|
| JNIEnv* env,
|
| const base::android::JavaParamRef<jobject>& obj,
|
|
|