| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/offline_page_bridge.h" | 5 #include "chrome/browser/android/offline_pages/offline_page_bridge.h" |
| 6 | 6 |
| 7 #include "base/android/jni_array.h" | 7 #include "base/android/jni_array.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 void OfflinePageBridge::Destroy(JNIEnv*, jobject) { | 87 void OfflinePageBridge::Destroy(JNIEnv*, jobject) { |
| 88 offline_page_model_->RemoveObserver(this); | 88 offline_page_model_->RemoveObserver(this); |
| 89 delete this; | 89 delete this; |
| 90 } | 90 } |
| 91 | 91 |
| 92 void OfflinePageBridge::OfflinePageModelLoaded(OfflinePageModel* model) { | 92 void OfflinePageBridge::OfflinePageModelLoaded(OfflinePageModel* model) { |
| 93 DCHECK_EQ(offline_page_model_, model); | 93 DCHECK_EQ(offline_page_model_, model); |
| 94 NotifyIfDoneLoading(); | 94 NotifyIfDoneLoading(); |
| 95 } | 95 } |
| 96 | 96 |
| 97 void OfflinePageBridge::OfflinePageDeleted(int64 bookmark_id) { |
| 98 if (!offline_page_model_->is_loaded()) |
| 99 return; |
| 100 JNIEnv* env = base::android::AttachCurrentThread(); |
| 101 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
| 102 if (obj.is_null()) |
| 103 return; |
| 104 Java_OfflinePageBridge_offlinePageDeleted(env, obj.obj(), bookmark_id); |
| 105 } |
| 106 |
| 97 void OfflinePageBridge::GetAllPages(JNIEnv* env, | 107 void OfflinePageBridge::GetAllPages(JNIEnv* env, |
| 98 jobject obj, | 108 jobject obj, |
| 99 jobject j_result_obj) { | 109 jobject j_result_obj) { |
| 100 DCHECK(offline_page_model_->is_loaded()); | 110 DCHECK(offline_page_model_->is_loaded()); |
| 101 DCHECK(j_result_obj); | 111 DCHECK(j_result_obj); |
| 102 const std::vector<OfflinePageItem>& offline_pages = | 112 const std::vector<OfflinePageItem>& offline_pages = |
| 103 offline_page_model_->GetAllPages(); | 113 offline_page_model_->GetAllPages(); |
| 104 ToJavaOfflinePageList(env, j_result_obj, offline_pages); | 114 ToJavaOfflinePageList(env, j_result_obj, offline_pages); |
| 105 } | 115 } |
| 106 | 116 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 | 195 |
| 186 std::vector<int64> bookmark_ids; | 196 std::vector<int64> bookmark_ids; |
| 187 base::android::JavaLongArrayToInt64Vector(env, bookmark_ids_array, | 197 base::android::JavaLongArrayToInt64Vector(env, bookmark_ids_array, |
| 188 &bookmark_ids); | 198 &bookmark_ids); |
| 189 | 199 |
| 190 offline_page_model_->DeletePagesByBookmarkId( | 200 offline_page_model_->DeletePagesByBookmarkId( |
| 191 bookmark_ids, | 201 bookmark_ids, |
| 192 base::Bind(&DeletePageCallback, j_callback_ref)); | 202 base::Bind(&DeletePageCallback, j_callback_ref)); |
| 193 } | 203 } |
| 194 | 204 |
| 205 void OfflinePageBridge::CheckMetadataConsistency(JNIEnv* env, jobject obj) { |
| 206 offline_page_model_->CheckForExternalFileDeletion(); |
| 207 } |
| 208 |
| 195 void OfflinePageBridge::NotifyIfDoneLoading() const { | 209 void OfflinePageBridge::NotifyIfDoneLoading() const { |
| 196 if (!offline_page_model_->is_loaded()) | 210 if (!offline_page_model_->is_loaded()) |
| 197 return; | 211 return; |
| 198 JNIEnv* env = base::android::AttachCurrentThread(); | 212 JNIEnv* env = base::android::AttachCurrentThread(); |
| 199 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); | 213 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
| 200 if (obj.is_null()) | 214 if (obj.is_null()) |
| 201 return; | 215 return; |
| 202 Java_OfflinePageBridge_offlinePageModelLoaded(env, obj.obj()); | 216 Java_OfflinePageBridge_offlinePageModelLoaded(env, obj.obj()); |
| 203 } | 217 } |
| 204 | 218 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 231 return reinterpret_cast<jlong>(new OfflinePageBridge( | 245 return reinterpret_cast<jlong>(new OfflinePageBridge( |
| 232 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); | 246 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); |
| 233 } | 247 } |
| 234 | 248 |
| 235 bool RegisterOfflinePageBridge(JNIEnv* env) { | 249 bool RegisterOfflinePageBridge(JNIEnv* env) { |
| 236 return RegisterNativesImpl(env); | 250 return RegisterNativesImpl(env); |
| 237 } | 251 } |
| 238 | 252 |
| 239 } // namespace android | 253 } // namespace android |
| 240 } // namespace offline_pages | 254 } // namespace offline_pages |
| OLD | NEW |