Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7296)

Unified Diff: chrome/browser/android/offline_pages/evaluation/offline_page_evaluation_bridge.cc

Issue 2480203002: ui: Cleanup class/struct forward declarations (Closed)
Patch Set: Sync CL to position 430550 Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/offline_pages/evaluation/offline_page_evaluation_bridge.cc
diff --git a/chrome/browser/android/offline_pages/evaluation/offline_page_evaluation_bridge.cc b/chrome/browser/android/offline_pages/evaluation/offline_page_evaluation_bridge.cc
index 66b371f74f8ba6a4648ebd69971600d71d60de13..1d138ad90a24d5c4101be3e94e50a174f957f34d 100644
--- a/chrome/browser/android/offline_pages/evaluation/offline_page_evaluation_bridge.cc
+++ b/chrome/browser/android/offline_pages/evaluation/offline_page_evaluation_bridge.cc
@@ -6,6 +6,7 @@
#include "base/android/callback_android.h"
#include "base/android/jni_android.h"
+#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
#include "base/memory/ptr_util.h"
#include "base/sequenced_task_runner.h"
@@ -79,6 +80,25 @@ ScopedJavaLocalRef<jobject> ToJavaSavePageRequest(
ConvertUTF8ToJavaString(env, request.client_id().id));
}
+ScopedJavaLocalRef<jobjectArray> CreateJavaSavePageRequests(
+ JNIEnv* env,
+ std::vector<std::unique_ptr<SavePageRequest>> requests) {
+ ScopedJavaLocalRef<jclass> save_page_request_clazz = base::android::GetClass(
+ env, "org/chromium/chrome/browser/offlinepages/SavePageRequest");
+ jobjectArray joa = env->NewObjectArray(
+ requests.size(), save_page_request_clazz.obj(), nullptr);
+ base::android::CheckException(env);
+
+ for (size_t i = 0; i < requests.size(); i++) {
+ SavePageRequest request = *(requests[i]);
+ ScopedJavaLocalRef<jobject> j_save_page_request =
+ ToJavaSavePageRequest(env, request);
+ env->SetObjectArrayElement(joa, i, j_save_page_request.obj());
+ }
+
+ return ScopedJavaLocalRef<jobjectArray>(env, joa);
+}
+
void GetAllPagesCallback(
const ScopedJavaGlobalRef<jobject>& j_result_obj,
const ScopedJavaGlobalRef<jobject>& j_callback_obj,
@@ -93,6 +113,21 @@ void OnPushRequestsDone(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
base::android::RunCallbackAndroid(j_callback_obj, result);
}
+void OnGetAllRequestsDone(
+ const ScopedJavaGlobalRef<jobject>& j_callback_obj,
+ std::vector<std::unique_ptr<SavePageRequest>> all_requests) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+
+ ScopedJavaLocalRef<jobjectArray> j_result_obj =
+ CreateJavaSavePageRequests(env, std::move(all_requests));
+ base::android::RunCallbackAndroid(j_callback_obj, j_result_obj);
+}
+
+void OnRemoveRequestsDone(const ScopedJavaGlobalRef<jobject>& j_callback_obj,
+ const MultipleItemStatuses& removed_request_results) {
+ base::android::RunCallbackAndroid(j_callback_obj,
+ int(removed_request_results.size()));
+}
} // namespace
static ScopedJavaLocalRef<jobject> GetBridgeForProfile(
@@ -281,6 +316,27 @@ void OfflinePageEvaluationBridge::SavePageLater(
RequestCoordinator::RequestAvailability::ENABLED_FOR_OFFLINER);
}
+void OfflinePageEvaluationBridge::GetRequestsInQueue(
+ JNIEnv* env,
+ const JavaParamRef<jobject>& obj,
+ const JavaParamRef<jobject>& j_callback_obj) {
+ ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj);
+ request_coordinator_->GetAllRequests(
+ base::Bind(&OnGetAllRequestsDone, j_callback_ref));
+}
+
+void OfflinePageEvaluationBridge::RemoveRequestsFromQueue(
+ JNIEnv* env,
+ const JavaParamRef<jobject>& obj,
+ const JavaParamRef<jlongArray>& j_request_ids,
+ const JavaParamRef<jobject>& j_callback_obj) {
+ std::vector<int64_t> request_ids;
+ base::android::JavaLongArrayToInt64Vector(env, j_request_ids, &request_ids);
+ ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj);
+ request_coordinator_->RemoveRequests(
+ request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref));
+}
+
void OfflinePageEvaluationBridge::NotifyIfDoneLoading() const {
if (!offline_page_model_->is_loaded())
return;

Powered by Google App Engine
This is Rietveld 408576698