| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/offline_pages/evaluation/offline_page_evaluatio
n_bridge.h" | 5 #include "chrome/browser/android/offline_pages/evaluation/offline_page_evaluatio
n_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/callback_android.h" | 7 #include "base/android/callback_android.h" |
| 8 #include "base/android/jni_android.h" | 8 #include "base/android/jni_android.h" |
| 9 #include "base/android/jni_array.h" | 9 #include "base/android/jni_array.h" |
| 10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 JNIEnv* env, | 205 JNIEnv* env, |
| 206 content::BrowserContext* browser_context, | 206 content::BrowserContext* browser_context, |
| 207 OfflinePageModel* offline_page_model, | 207 OfflinePageModel* offline_page_model, |
| 208 RequestCoordinator* request_coordinator) | 208 RequestCoordinator* request_coordinator) |
| 209 : browser_context_(browser_context), | 209 : browser_context_(browser_context), |
| 210 offline_page_model_(offline_page_model), | 210 offline_page_model_(offline_page_model), |
| 211 request_coordinator_(request_coordinator) { | 211 request_coordinator_(request_coordinator) { |
| 212 java_ref_.Reset(Java_OfflinePageEvaluationBridge_create( | 212 java_ref_.Reset(Java_OfflinePageEvaluationBridge_create( |
| 213 env, reinterpret_cast<jlong>(this))); | 213 env, reinterpret_cast<jlong>(this))); |
| 214 | 214 |
| 215 NotifyIfDoneLoading(); | |
| 216 offline_page_model_->AddObserver(this); | 215 offline_page_model_->AddObserver(this); |
| 217 request_coordinator_->AddObserver(this); | 216 request_coordinator_->AddObserver(this); |
| 218 offline_page_model_->GetLogger()->SetClient(this); | 217 offline_page_model_->GetLogger()->SetClient(this); |
| 219 request_coordinator_->GetLogger()->SetClient(this); | 218 request_coordinator_->GetLogger()->SetClient(this); |
| 220 } | 219 } |
| 221 | 220 |
| 222 OfflinePageEvaluationBridge::~OfflinePageEvaluationBridge() { | 221 OfflinePageEvaluationBridge::~OfflinePageEvaluationBridge() { |
| 223 JNIEnv* env = base::android::AttachCurrentThread(); | 222 JNIEnv* env = base::android::AttachCurrentThread(); |
| 224 Java_OfflinePageEvaluationBridge_offlinePageEvaluationBridgeDestroyed( | 223 Java_OfflinePageEvaluationBridge_offlinePageEvaluationBridgeDestroyed( |
| 225 env, java_ref_); | 224 env, java_ref_); |
| 226 } | 225 } |
| 227 | 226 |
| 228 // Implement OfflinePageModel::Observer | 227 // Implement OfflinePageModel::Observer |
| 229 void OfflinePageEvaluationBridge::OfflinePageModelLoaded( | |
| 230 OfflinePageModel* model) { | |
| 231 DCHECK_EQ(offline_page_model_, model); | |
| 232 NotifyIfDoneLoading(); | |
| 233 } | |
| 234 | |
| 235 void OfflinePageEvaluationBridge::OfflinePageAdded( | 228 void OfflinePageEvaluationBridge::OfflinePageAdded( |
| 236 OfflinePageModel* model, | 229 OfflinePageModel* model, |
| 237 const OfflinePageItem& added_page) {} | 230 const OfflinePageItem& added_page) {} |
| 238 | 231 |
| 239 void OfflinePageEvaluationBridge::OfflinePageDeleted( | 232 void OfflinePageEvaluationBridge::OfflinePageDeleted( |
| 240 int64_t offline_id, | 233 int64_t offline_id, |
| 241 const ClientId& client_id) {} | 234 const ClientId& client_id) {} |
| 242 | 235 |
| 243 // Implement RequestCoordinator::Observer | 236 // Implement RequestCoordinator::Observer |
| 244 void OfflinePageEvaluationBridge::OnAdded(const SavePageRequest& request) { | 237 void OfflinePageEvaluationBridge::OnAdded(const SavePageRequest& request) { |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 const JavaParamRef<jobject>& obj, | 323 const JavaParamRef<jobject>& obj, |
| 331 const JavaParamRef<jlongArray>& j_request_ids, | 324 const JavaParamRef<jlongArray>& j_request_ids, |
| 332 const JavaParamRef<jobject>& j_callback_obj) { | 325 const JavaParamRef<jobject>& j_callback_obj) { |
| 333 std::vector<int64_t> request_ids; | 326 std::vector<int64_t> request_ids; |
| 334 base::android::JavaLongArrayToInt64Vector(env, j_request_ids, &request_ids); | 327 base::android::JavaLongArrayToInt64Vector(env, j_request_ids, &request_ids); |
| 335 ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj); | 328 ScopedJavaGlobalRef<jobject> j_callback_ref(j_callback_obj); |
| 336 request_coordinator_->RemoveRequests( | 329 request_coordinator_->RemoveRequests( |
| 337 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref)); | 330 request_ids, base::Bind(&OnRemoveRequestsDone, j_callback_ref)); |
| 338 } | 331 } |
| 339 | 332 |
| 340 void OfflinePageEvaluationBridge::NotifyIfDoneLoading() const { | |
| 341 if (!offline_page_model_->is_loaded()) | |
| 342 return; | |
| 343 JNIEnv* env = base::android::AttachCurrentThread(); | |
| 344 Java_OfflinePageEvaluationBridge_offlinePageModelLoaded(env, java_ref_); | |
| 345 } | |
| 346 | |
| 347 } // namespace android | 333 } // namespace android |
| 348 } // namespace offline_pages | 334 } // namespace offline_pages |
| OLD | NEW |