Index: components/offline_items_collection/core/android/offline_content_aggregator_bridge.cc |
diff --git a/components/offline_items_collection/core/android/offline_content_aggregator_bridge.cc b/components/offline_items_collection/core/android/offline_content_aggregator_bridge.cc |
index 70184f92a2ed6d210c10f9b7567d4995b0b4a756..6088531256a9d000140833927ffaec9916779210 100644 |
--- a/components/offline_items_collection/core/android/offline_content_aggregator_bridge.cc |
+++ b/components/offline_items_collection/core/android/offline_content_aggregator_bridge.cc |
@@ -5,7 +5,9 @@ |
#include "components/offline_items_collection/core/android/offline_content_aggregator_bridge.h" |
#include "base/android/jni_string.h" |
+#include "base/bind.h" |
#include "components/offline_items_collection/core/android/offline_item_bridge.h" |
+#include "components/offline_items_collection/core/android/offline_item_visuals_bridge.h" |
#include "components/offline_items_collection/core/offline_item.h" |
#include "jni/OfflineContentAggregatorBridge_jni.h" |
@@ -14,6 +16,7 @@ using base::android::ConvertJavaStringToUTF8; |
using base::android::ConvertUTF8ToJavaString; |
using base::android::JavaParamRef; |
using base::android::ScopedJavaLocalRef; |
+using base::android::ScopedJavaGlobalRef; |
namespace offline_items_collection { |
namespace android { |
@@ -28,6 +31,16 @@ ContentId CreateContentId(JNIEnv* env, |
ConvertJavaStringToUTF8(env, j_id)); |
} |
+void GetVisualsForItemHelperCallback(ScopedJavaGlobalRef<jobject> j_callback, |
+ const ContentId& id, |
+ const OfflineItemVisuals* visuals) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ Java_OfflineContentAggregatorBridge_onVisualsAvailable( |
+ env, j_callback.obj(), ConvertUTF8ToJavaString(env, id.name_space), |
+ ConvertUTF8ToJavaString(env, id.id), |
+ OfflineItemVisualsBridge::CreateOfflineItemVisuals(env, visuals)); |
+} |
+ |
} // namespace |
// static. |
@@ -133,6 +146,18 @@ ScopedJavaLocalRef<jobject> OfflineContentAggregatorBridge::GetAllItems( |
aggregator_->GetAllItems()); |
} |
+void OfflineContentAggregatorBridge::GetVisualsForItem( |
+ JNIEnv* env, |
+ const JavaParamRef<jobject>& jobj, |
+ const JavaParamRef<jstring>& j_namespace, |
+ const JavaParamRef<jstring>& j_id, |
+ const JavaParamRef<jobject>& j_callback) { |
+ aggregator_->GetVisualsForItem( |
+ CreateContentId(env, j_namespace, j_id), |
+ base::Bind(&GetVisualsForItemHelperCallback, |
+ ScopedJavaGlobalRef<jobject>(env, j_callback))); |
+} |
+ |
void OfflineContentAggregatorBridge::OnItemsAvailable( |
OfflineContentProvider* provider) { |
if (java_ref_.is_null()) |