Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3755)

Unified Diff: chrome/browser/android/physical_web/physical_web_data_source_android.cc

Issue 2561493002: Pass Physical Web metadata through a struct (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698