Chromium Code Reviews| 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 ee2bd0bfd7756f312df209ec5a7c7f2112d0362b..1724aa871d614e7821600bc2e0e7f3c25401cc2b 100644 |
| --- a/chrome/browser/android/offline_pages/offline_page_bridge.cc |
| +++ b/chrome/browser/android/offline_pages/offline_page_bridge.cc |
| @@ -54,6 +54,20 @@ void ToJavaOfflinePageList(JNIEnv* env, |
| } |
| } |
| + |
| +ScopedJavaLocalRef<jobject> ToJavaOfflinePageItem( |
|
dewittj
2016/05/16 21:07:46
nit: I think I prefer this as CreateJavaOfflinePag
chili
2016/05/16 23:06:41
I renamed this to 'ToJavaOfflinePageItem' to be co
dewittj
2016/05/17 17:36:02
I guess it is a little different to me, since ToJa
|
| + JNIEnv* env, |
| + const OfflinePageItem& offline_page) { |
| + return Java_OfflinePageBridge_createOfflinePageItem( |
| + env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(), |
| + offline_page.offline_id, |
| + ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(), |
| + ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(), |
| + ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(), |
| + offline_page.file_size, offline_page.creation_time.ToJavaTime(), |
| + offline_page.access_count, offline_page.last_access_time.ToJavaTime()); |
| +} |
| + |
| void CheckPagesExistOfflineCallback( |
| const ScopedJavaGlobalRef<jobject>& j_callback_obj, |
| const OfflinePageModel::CheckPagesExistOfflineResult& offline_pages) { |
| @@ -107,6 +121,20 @@ void DeletePageCallback(const ScopedJavaGlobalRef<jobject>& j_callback_obj, |
| env, j_callback_obj.obj(), static_cast<int>(result)); |
| } |
| +void SingleOfflinePageItemCallback( |
| + const ScopedJavaGlobalRef<jobject>& j_callback_obj, |
| + const OfflinePageModel::SingleOfflinePageItemResult& result) { |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + ScopedJavaGlobalRef<jobject> emptyResult; |
|
dewittj
2016/05/16 21:07:46
should this be ScopedJavaLocalRef?
chili
2016/05/16 23:06:41
Done.
|
| + |
| + if (result) { |
| + Java_SingleOfflinePageItemCallback_onResult( |
|
dewittj
2016/05/16 21:07:46
This code would be simpler if you just rename empt
chili
2016/05/16 23:06:41
I did start with that in a previous iteration. Pe
|
| + env, j_callback_obj.obj(), ToJavaOfflinePageItem(env, *result).obj()); |
| + } else { |
| + Java_SingleOfflinePageItemCallback_onResult( |
| + env, j_callback_obj.obj(), emptyResult.obj()); |
| + } |
| +} |
| } // namespace |
| @@ -263,7 +291,7 @@ ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineId( |
| offline_page_model_->MaybeGetPageByOfflineId(offline_id); |
| if (!offline_page) |
| return ScopedJavaLocalRef<jobject>(); |
| - return CreateOfflinePageItem(env, *offline_page); |
| + return ToJavaOfflinePageItem(env, *offline_page); |
| } |
| ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL( |
| @@ -275,19 +303,22 @@ ScopedJavaLocalRef<jobject> OfflinePageBridge::GetBestPageForOnlineURL( |
| GURL(ConvertJavaStringToUTF8(env, online_url))); |
| if (!offline_page) |
| return ScopedJavaLocalRef<jobject>(); |
| - return CreateOfflinePageItem(env, *offline_page); |
| + return ToJavaOfflinePageItem(env, *offline_page); |
| } |
| -ScopedJavaLocalRef<jobject> OfflinePageBridge::GetPageByOfflineUrl( |
| +void OfflinePageBridge::GetPageByOfflineUrl( |
| JNIEnv* env, |
| const JavaParamRef<jobject>& obj, |
| - const JavaParamRef<jstring>& j_offline_url) { |
| - const OfflinePageItem* offline_page = |
| - offline_page_model_->MaybeGetPageByOfflineURL( |
| - GURL(ConvertJavaStringToUTF8(env, j_offline_url))); |
| - if (!offline_page) |
| - return ScopedJavaLocalRef<jobject>(); |
| - return CreateOfflinePageItem(env, *offline_page); |
| + const JavaParamRef<jstring>& j_offline_url, |
| + const JavaParamRef<jobject>& j_callback_obj) { |
| + DCHECK(j_callback_obj); |
| + |
| + ScopedJavaGlobalRef<jobject> j_callback_ref; |
| + j_callback_ref.Reset(env, j_callback_obj); |
| + |
| + offline_page_model_->GetPageByOfflineURL( |
| + GURL(ConvertJavaStringToUTF8(env, j_offline_url)), |
| + base::Bind(&SingleOfflinePageItemCallback, j_callback_ref)); |
| } |
| void OfflinePageBridge::SavePage( |
| @@ -378,18 +409,6 @@ void OfflinePageBridge::NotifyIfDoneLoading() const { |
| Java_OfflinePageBridge_offlinePageModelLoaded(env, java_ref_.obj()); |
| } |
| -ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateOfflinePageItem( |
| - JNIEnv* env, |
| - const OfflinePageItem& offline_page) const { |
| - return Java_OfflinePageBridge_createOfflinePageItem( |
| - env, ConvertUTF8ToJavaString(env, offline_page.url.spec()).obj(), |
| - offline_page.offline_id, |
| - ConvertUTF8ToJavaString(env, offline_page.client_id.name_space).obj(), |
| - ConvertUTF8ToJavaString(env, offline_page.client_id.id).obj(), |
| - ConvertUTF8ToJavaString(env, offline_page.GetOfflineURL().spec()).obj(), |
| - offline_page.file_size, offline_page.creation_time.ToJavaTime(), |
| - offline_page.access_count, offline_page.last_access_time.ToJavaTime()); |
| -} |
| ScopedJavaLocalRef<jobject> OfflinePageBridge::CreateClientId( |
| JNIEnv* env, |