Chromium Code Reviews| 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 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 96 | 96 |
| 97 void OfflinePageBridge::OfflinePageModelChanged(OfflinePageModel* model) { | 97 void OfflinePageBridge::OfflinePageModelChanged(OfflinePageModel* model) { |
| 98 DCHECK_EQ(offline_page_model_, model); | 98 DCHECK_EQ(offline_page_model_, model); |
| 99 JNIEnv* env = base::android::AttachCurrentThread(); | 99 JNIEnv* env = base::android::AttachCurrentThread(); |
| 100 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); | 100 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
| 101 if (obj.is_null()) | 101 if (obj.is_null()) |
| 102 return; | 102 return; |
| 103 Java_OfflinePageBridge_offlinePageModelChanged(env, obj.obj()); | 103 Java_OfflinePageBridge_offlinePageModelChanged(env, obj.obj()); |
| 104 } | 104 } |
| 105 | 105 |
| 106 void OfflinePageBridge::OfflinePageDeleted(int64 bookmark_id) { | |
| 107 if (!offline_page_model_->is_loaded()) | |
|
jianli
2015/10/20 21:56:48
Is this likely?
fgorski
2015/10/21 20:01:33
Good catch.
| |
| 108 return; | |
| 109 JNIEnv* env = base::android::AttachCurrentThread(); | |
| 110 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); | |
| 111 if (obj.is_null()) | |
| 112 return; | |
| 113 Java_OfflinePageBridge_offlinePageDeleted(env, obj.obj(), bookmark_id); | |
| 114 } | |
| 115 | |
| 106 void OfflinePageBridge::GetAllPages(JNIEnv* env, | 116 void OfflinePageBridge::GetAllPages(JNIEnv* env, |
| 107 jobject obj, | 117 jobject obj, |
| 108 jobject j_result_obj) { | 118 jobject j_result_obj) { |
| 109 DCHECK(offline_page_model_->is_loaded()); | 119 DCHECK(offline_page_model_->is_loaded()); |
| 110 DCHECK(j_result_obj); | 120 DCHECK(j_result_obj); |
| 111 const std::vector<OfflinePageItem>& offline_pages = | 121 const std::vector<OfflinePageItem>& offline_pages = |
| 112 offline_page_model_->GetAllPages(); | 122 offline_page_model_->GetAllPages(); |
| 113 ToJavaOfflinePageList(env, j_result_obj, offline_pages); | 123 ToJavaOfflinePageList(env, j_result_obj, offline_pages); |
| 114 } | 124 } |
| 115 | 125 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 194 | 204 |
| 195 std::vector<int64> bookmark_ids; | 205 std::vector<int64> bookmark_ids; |
| 196 base::android::JavaLongArrayToInt64Vector(env, bookmark_ids_array, | 206 base::android::JavaLongArrayToInt64Vector(env, bookmark_ids_array, |
| 197 &bookmark_ids); | 207 &bookmark_ids); |
| 198 | 208 |
| 199 offline_page_model_->DeletePagesByBookmarkId( | 209 offline_page_model_->DeletePagesByBookmarkId( |
| 200 bookmark_ids, | 210 bookmark_ids, |
| 201 base::Bind(&DeletePageCallback, j_callback_ref)); | 211 base::Bind(&DeletePageCallback, j_callback_ref)); |
| 202 } | 212 } |
| 203 | 213 |
| 214 void OfflinePageBridge::CheckMetadataConsistency(JNIEnv* env, jobject obj) { | |
| 215 offline_page_model_->CheckForExternalFileDeletion(); | |
| 216 } | |
| 217 | |
| 204 void OfflinePageBridge::NotifyIfDoneLoading() const { | 218 void OfflinePageBridge::NotifyIfDoneLoading() const { |
| 205 if (!offline_page_model_->is_loaded()) | 219 if (!offline_page_model_->is_loaded()) |
| 206 return; | 220 return; |
| 207 JNIEnv* env = base::android::AttachCurrentThread(); | 221 JNIEnv* env = base::android::AttachCurrentThread(); |
| 208 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); | 222 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
| 209 if (obj.is_null()) | 223 if (obj.is_null()) |
| 210 return; | 224 return; |
| 211 Java_OfflinePageBridge_offlinePageModelLoaded(env, obj.obj()); | 225 Java_OfflinePageBridge_offlinePageModelLoaded(env, obj.obj()); |
| 212 } | 226 } |
| 213 | 227 |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 240 return reinterpret_cast<jlong>(new OfflinePageBridge( | 254 return reinterpret_cast<jlong>(new OfflinePageBridge( |
| 241 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); | 255 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); |
| 242 } | 256 } |
| 243 | 257 |
| 244 bool RegisterOfflinePageBridge(JNIEnv* env) { | 258 bool RegisterOfflinePageBridge(JNIEnv* env) { |
| 245 return RegisterNativesImpl(env); | 259 return RegisterNativesImpl(env); |
| 246 } | 260 } |
| 247 | 261 |
| 248 } // namespace android | 262 } // namespace android |
| 249 } // namespace offline_pages | 263 } // namespace offline_pages |
| OLD | NEW |