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

Side by Side Diff: chrome/browser/android/physical_web/physical_web_data_source_android.cc

Issue 2648973004: Remove GetMetadata from PhysicalWebDataSource and PhysicalWebScanner (Closed)
Patch Set: nil -> null Created 3 years, 11 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/physical_web/physical_web_data_source_android.h " 5 #include "chrome/browser/android/physical_web/physical_web_data_source_android.h "
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/jni_android.h" 9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h" 10 #include "base/android/jni_string.h"
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/values.h"
13 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
14 #include "jni/UrlManager_jni.h" 13 #include "jni/UrlManager_jni.h"
15 14
16 using base::android::AttachCurrentThread; 15 using base::android::AttachCurrentThread;
17 using base::android::ConvertJavaStringToUTF8; 16 using base::android::ConvertJavaStringToUTF8;
18 using base::android::JavaParamRef; 17 using base::android::JavaParamRef;
19 using base::android::ScopedJavaLocalRef; 18 using base::android::ScopedJavaLocalRef;
20 19
21 PhysicalWebCollection::PhysicalWebCollection() 20 PhysicalWebCollection::PhysicalWebCollection()
22 : dictionary_value_list_(base::MakeUnique<base::ListValue>()), 21 : metadata_list_(base::MakeUnique<physical_web::MetadataList>()),
23 metadata_list_(base::MakeUnique<physical_web::MetadataList>()),
24 accessed_once_(false) {} 22 accessed_once_(false) {}
25 23
26 PhysicalWebCollection::~PhysicalWebCollection() {} 24 PhysicalWebCollection::~PhysicalWebCollection() {}
27 25
28 void PhysicalWebCollection::AppendMetadataItem( 26 void PhysicalWebCollection::AppendMetadataItem(
29 JNIEnv* env, 27 JNIEnv* env,
30 const JavaParamRef<jobject>& obj, 28 const JavaParamRef<jobject>& obj,
31 const JavaParamRef<jstring>& j_request_url, 29 const JavaParamRef<jstring>& j_request_url,
32 jdouble distance_estimate, 30 jdouble distance_estimate,
33 jlong scan_timestamp, 31 jlong scan_timestamp,
34 const JavaParamRef<jstring>& j_site_url, 32 const JavaParamRef<jstring>& j_site_url,
35 const JavaParamRef<jstring>& j_icon_url, 33 const JavaParamRef<jstring>& j_icon_url,
36 const JavaParamRef<jstring>& j_title, 34 const JavaParamRef<jstring>& j_title,
37 const JavaParamRef<jstring>& j_description, 35 const JavaParamRef<jstring>& j_description,
38 const JavaParamRef<jstring>& j_group_id) { 36 const JavaParamRef<jstring>& j_group_id) {
39 // Create a DictionaryValue. Notice that we no longer set the timestamp 37 metadata_list_->emplace_back();
40 // since it is a long and the DictionaryValue can only store ints. 38 physical_web::Metadata& metadata = metadata_list_->back();
41 auto dictionary_value = base::MakeUnique<base::DictionaryValue>();
42 dictionary_value->SetString(physical_web::kScannedUrlKey,
43 ConvertJavaStringToUTF8(j_request_url));
44 dictionary_value->SetDouble(physical_web::kDistanceEstimateKey,
45 distance_estimate);
46 dictionary_value->SetString(physical_web::kResolvedUrlKey,
47 ConvertJavaStringToUTF8(j_site_url));
48 dictionary_value->SetString(physical_web::kIconUrlKey,
49 ConvertJavaStringToUTF8(j_icon_url));
50 dictionary_value->SetString(physical_web::kTitleKey,
51 ConvertJavaStringToUTF8(j_title));
52 dictionary_value->SetString(physical_web::kDescriptionKey,
53 ConvertJavaStringToUTF8(j_description));
54 dictionary_value->SetString(physical_web::kGroupIdKey,
55 ConvertJavaStringToUTF8(j_group_id));
56 dictionary_value_list_->Append(std::move(dictionary_value));
57
58 physical_web::Metadata metadata;
59 metadata.scanned_url = GURL(ConvertJavaStringToUTF8(j_request_url)); 39 metadata.scanned_url = GURL(ConvertJavaStringToUTF8(j_request_url));
60 metadata.resolved_url = GURL(ConvertJavaStringToUTF8(j_site_url)); 40 metadata.resolved_url = GURL(ConvertJavaStringToUTF8(j_site_url));
61 metadata.icon_url = GURL(ConvertJavaStringToUTF8(j_icon_url)); 41 metadata.icon_url = GURL(ConvertJavaStringToUTF8(j_icon_url));
62 metadata.title = ConvertJavaStringToUTF8(j_title); 42 metadata.title = ConvertJavaStringToUTF8(j_title);
63 metadata.description = ConvertJavaStringToUTF8(j_description); 43 metadata.description = ConvertJavaStringToUTF8(j_description);
64 metadata.group_id = ConvertJavaStringToUTF8(j_group_id); 44 metadata.group_id = ConvertJavaStringToUTF8(j_group_id);
65 metadata.distance_estimate = distance_estimate; 45 metadata.distance_estimate = distance_estimate;
66 metadata.scan_timestamp = base::Time::FromJavaTime(scan_timestamp); 46 metadata.scan_timestamp = base::Time::FromJavaTime(scan_timestamp);
67 metadata_list_->push_back(std::move(metadata));
68 } 47 }
69 48
70 std::unique_ptr<physical_web::MetadataList> 49 std::unique_ptr<physical_web::MetadataList>
71 PhysicalWebCollection::GetMetadataList() { 50 PhysicalWebCollection::GetMetadataList() {
72 DCHECK(!accessed_once_); 51 DCHECK(!accessed_once_);
73 accessed_once_ = true; 52 accessed_once_ = true;
74 return std::move(metadata_list_); 53 return std::move(metadata_list_);
75 } 54 }
76 55
77 std::unique_ptr<base::ListValue> PhysicalWebCollection::GetMetadata() {
78 DCHECK(!accessed_once_);
79 accessed_once_ = true;
80 return std::move(dictionary_value_list_);
81 }
82
83 PhysicalWebDataSourceAndroid::PhysicalWebDataSourceAndroid() { 56 PhysicalWebDataSourceAndroid::PhysicalWebDataSourceAndroid() {
84 Initialize(); 57 Initialize();
85 } 58 }
86 59
87 PhysicalWebDataSourceAndroid::~PhysicalWebDataSourceAndroid() {} 60 PhysicalWebDataSourceAndroid::~PhysicalWebDataSourceAndroid() {}
88 61
89 void PhysicalWebDataSourceAndroid::Initialize() { 62 void PhysicalWebDataSourceAndroid::Initialize() {
90 JNIEnv* env = AttachCurrentThread(); 63 JNIEnv* env = AttachCurrentThread();
91 64
92 // Cache a reference to the singleton instance of UrlManager. 65 // Cache a reference to the singleton instance of UrlManager.
(...skipping 16 matching lines...) Expand all
109 PhysicalWebDataSourceAndroid::GetMetadataList() { 82 PhysicalWebDataSourceAndroid::GetMetadataList() {
110 JNIEnv* env = AttachCurrentThread(); 83 JNIEnv* env = AttachCurrentThread();
111 84
112 auto pw_collection = base::MakeUnique<PhysicalWebCollection>(); 85 auto pw_collection = base::MakeUnique<PhysicalWebCollection>();
113 Java_UrlManager_getPwCollection(env, url_manager_.obj(), 86 Java_UrlManager_getPwCollection(env, url_manager_.obj(),
114 reinterpret_cast<long>(pw_collection.get())); 87 reinterpret_cast<long>(pw_collection.get()));
115 88
116 return pw_collection->GetMetadataList(); 89 return pw_collection->GetMetadataList();
117 } 90 }
118 91
119 std::unique_ptr<base::ListValue>
120 PhysicalWebDataSourceAndroid::GetMetadata() {
121 JNIEnv* env = AttachCurrentThread();
122
123 auto pw_collection = base::MakeUnique<PhysicalWebCollection>();
124 Java_UrlManager_getPwCollection(env, url_manager_.obj(),
125 reinterpret_cast<long>(pw_collection.get()));
126
127 return pw_collection->GetMetadata();
128 }
129
130 bool PhysicalWebDataSourceAndroid::HasUnresolvedDiscoveries() { 92 bool PhysicalWebDataSourceAndroid::HasUnresolvedDiscoveries() {
131 NOTIMPLEMENTED(); 93 NOTIMPLEMENTED();
132 return false; 94 return false;
133 } 95 }
134 96
135 void PhysicalWebDataSourceAndroid::OnFound( 97 void PhysicalWebDataSourceAndroid::OnFound(
136 JNIEnv* env, 98 JNIEnv* env,
137 const base::android::JavaParamRef<jobject>& obj, 99 const base::android::JavaParamRef<jobject>& obj,
138 const base::android::JavaParamRef<jstring>& j_url) { 100 const base::android::JavaParamRef<jstring>& j_url) {
139 NotifyOnFound(GURL(ConvertJavaStringToUTF8(env, j_url))); 101 NotifyOnFound(GURL(ConvertJavaStringToUTF8(env, j_url)));
(...skipping 18 matching lines...) Expand all
158 // static 120 // static
159 bool PhysicalWebDataSourceAndroid::RegisterPhysicalWebDataSource(JNIEnv* env) { 121 bool PhysicalWebDataSourceAndroid::RegisterPhysicalWebDataSource(JNIEnv* env) {
160 return RegisterNativesImpl(env); 122 return RegisterNativesImpl(env);
161 } 123 }
162 124
163 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { 125 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
164 physical_web::PhysicalWebDataSource* data_source = 126 physical_web::PhysicalWebDataSource* data_source =
165 g_browser_process->GetPhysicalWebDataSource(); 127 g_browser_process->GetPhysicalWebDataSource();
166 return reinterpret_cast<intptr_t>(data_source); 128 return reinterpret_cast<intptr_t>(data_source);
167 } 129 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698