Index: chrome/browser/android/physical_web/physical_web_data_source_android.cc |
diff --git a/chrome/browser/android/physical_web/physical_web_data_source_android.cc b/chrome/browser/android/physical_web/physical_web_data_source_android.cc |
index 362cd2e04e4b2d9cca409017c8a48b2b7d8b7c67..cb917d7534cac9fd7f36f8536668a9a5d1d1490a 100644 |
--- a/chrome/browser/android/physical_web/physical_web_data_source_android.cc |
+++ b/chrome/browser/android/physical_web/physical_web_data_source_android.cc |
@@ -19,7 +19,8 @@ using base::android::JavaParamRef; |
using base::android::ScopedJavaLocalRef; |
PhysicalWebCollection::PhysicalWebCollection() |
- : metadata_list_(base::MakeUnique<base::ListValue>()), |
+ : dictionary_value_list_(base::MakeUnique<base::ListValue>()), |
+ metadata_list_(base::MakeUnique<physical_web::MetadataList>()), |
accessed_once_(false) {} |
PhysicalWebCollection::~PhysicalWebCollection() {} |
@@ -29,37 +30,56 @@ void PhysicalWebCollection::AppendMetadataItem( |
const JavaParamRef<jobject>& obj, |
const JavaParamRef<jstring>& j_request_url, |
jdouble distance_estimate, |
- jint scan_timestamp, |
+ jlong scan_timestamp, |
const JavaParamRef<jstring>& j_site_url, |
const JavaParamRef<jstring>& j_icon_url, |
const JavaParamRef<jstring>& j_title, |
const JavaParamRef<jstring>& j_description, |
const JavaParamRef<jstring>& j_group_id) { |
- auto metadata_item = new base::DictionaryValue(); |
- metadata_item->SetString(physical_web::kScannedUrlKey, |
+ auto dictionary_value = new base::DictionaryValue(); |
mattreynolds
2016/12/07 19:55:31
This should be:
auto dictionary_value = base::Mak
cco3
2016/12/08 23:52:50
Done.
|
+ dictionary_value->SetString(physical_web::kScannedUrlKey, |
ConvertJavaStringToUTF8(j_request_url)); |
- metadata_item->SetDouble(physical_web::kDistanceEstimateKey, |
+ dictionary_value->SetDouble(physical_web::kDistanceEstimateKey, |
distance_estimate); |
- metadata_item->SetInteger(physical_web::kScanTimestampKey, scan_timestamp); |
- metadata_item->SetString(physical_web::kResolvedUrlKey, |
+ dictionary_value->SetInteger(physical_web::kScanTimestampKey, scan_timestamp); |
vitaliii
2016/12/07 10:14:04
Probably add a comment that this does not work and
cco3
2016/12/08 23:52:50
Done.
|
+ dictionary_value->SetString(physical_web::kResolvedUrlKey, |
ConvertJavaStringToUTF8(j_site_url)); |
- metadata_item->SetString(physical_web::kIconUrlKey, |
+ dictionary_value->SetString(physical_web::kIconUrlKey, |
ConvertJavaStringToUTF8(j_icon_url)); |
- metadata_item->SetString(physical_web::kTitleKey, |
+ dictionary_value->SetString(physical_web::kTitleKey, |
ConvertJavaStringToUTF8(j_title)); |
- metadata_item->SetString(physical_web::kDescriptionKey, |
+ dictionary_value->SetString(physical_web::kDescriptionKey, |
ConvertJavaStringToUTF8(j_description)); |
- metadata_item->SetString(physical_web::kGroupIdKey, |
+ dictionary_value->SetString(physical_web::kGroupIdKey, |
ConvertJavaStringToUTF8(j_group_id)); |
- metadata_list_->Append(std::move(metadata_item)); |
+ dictionary_value_list_->Append(std::move(dictionary_value)); |
+ |
+ physical_web::Metadata metadata_item; |
+ metadata_item.scanned_url = ConvertJavaStringToUTF8(j_request_url); |
+ metadata_item.resolved_url = ConvertJavaStringToUTF8(j_site_url); |
+ metadata_item.icon_url = ConvertJavaStringToUTF8(j_icon_url); |
+ metadata_item.title = ConvertJavaStringToUTF8(j_title); |
+ metadata_item.description = ConvertJavaStringToUTF8(j_description); |
+ metadata_item.group_id = ConvertJavaStringToUTF8(j_group_id); |
+ metadata_item.distance_estimate = distance_estimate; |
+ metadata_item.scan_timestamp = scan_timestamp; |
+ metadata_list_->push_back(std::move(metadata_item)); |
} |
-std::unique_ptr<base::ListValue> PhysicalWebCollection::GetMetadataList() { |
+std::unique_ptr<physical_web::MetadataList> |
+ PhysicalWebCollection::GetMetadataList() { |
DCHECK(!accessed_once_); |
accessed_once_ = true; |
return std::move(metadata_list_); |
} |
+std::unique_ptr<base::ListValue> |
+ PhysicalWebCollection::GetMetadataListValue() { |
+ DCHECK(!accessed_once_); |
+ accessed_once_ = true; |
+ return std::move(dictionary_value_list_); |
+} |
+ |
PhysicalWebDataSourceAndroid::PhysicalWebDataSourceAndroid() { |
Initialize(); |
} |
@@ -85,7 +105,8 @@ void PhysicalWebDataSourceAndroid::StopDiscovery() { |
NOTREACHED(); |
} |
-std::unique_ptr<base::ListValue> PhysicalWebDataSourceAndroid::GetMetadata() { |
+std::unique_ptr<physical_web::MetadataList> |
+ PhysicalWebDataSourceAndroid::GetMetadata() { |
JNIEnv* env = AttachCurrentThread(); |
auto pw_collection = base::MakeUnique<PhysicalWebCollection>(); |
@@ -95,6 +116,17 @@ std::unique_ptr<base::ListValue> PhysicalWebDataSourceAndroid::GetMetadata() { |
return pw_collection->GetMetadataList(); |
} |
+std::unique_ptr<base::ListValue> |
+ PhysicalWebDataSourceAndroid::GetMetadataListValue() { |
+ JNIEnv* env = AttachCurrentThread(); |
+ |
+ auto pw_collection = base::MakeUnique<PhysicalWebCollection>(); |
+ Java_UrlManager_getPwCollection(env, url_manager_.obj(), |
+ (long)pw_collection.get()); |
+ |
+ return pw_collection->GetMetadataListValue(); |
+} |
+ |
bool PhysicalWebDataSourceAndroid::HasUnresolvedDiscoveries() { |
NOTIMPLEMENTED(); |
return false; |