OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/ntp/most_visited_sites_bridge.h" | 5 #include "chrome/browser/android/ntp/most_visited_sites_bridge.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 const JavaParamRef<jobject>& obj) | 113 const JavaParamRef<jobject>& obj) |
114 : observer_(env, obj) {} | 114 : observer_(env, obj) {} |
115 | 115 |
116 void MostVisitedSitesBridge::JavaObserver::OnMostVisitedURLsAvailable( | 116 void MostVisitedSitesBridge::JavaObserver::OnMostVisitedURLsAvailable( |
117 const MostVisitedSites::SuggestionsVector& suggestions) { | 117 const MostVisitedSites::SuggestionsVector& suggestions) { |
118 JNIEnv* env = AttachCurrentThread(); | 118 JNIEnv* env = AttachCurrentThread(); |
119 std::vector<base::string16> titles; | 119 std::vector<base::string16> titles; |
120 std::vector<std::string> urls; | 120 std::vector<std::string> urls; |
121 std::vector<std::string> whitelist_icon_paths; | 121 std::vector<std::string> whitelist_icon_paths; |
122 std::vector<int> sources; | 122 std::vector<int> sources; |
123 std::vector<int> provider_indexes; | |
124 | 123 |
125 titles.reserve(suggestions.size()); | 124 titles.reserve(suggestions.size()); |
126 urls.reserve(suggestions.size()); | 125 urls.reserve(suggestions.size()); |
127 whitelist_icon_paths.reserve(suggestions.size()); | 126 whitelist_icon_paths.reserve(suggestions.size()); |
128 sources.reserve(suggestions.size()); | 127 sources.reserve(suggestions.size()); |
129 provider_indexes.reserve(suggestions.size()); | |
130 for (const auto& suggestion : suggestions) { | 128 for (const auto& suggestion : suggestions) { |
131 titles.emplace_back(suggestion.title); | 129 titles.emplace_back(suggestion.title); |
132 urls.emplace_back(suggestion.url.spec()); | 130 urls.emplace_back(suggestion.url.spec()); |
133 whitelist_icon_paths.emplace_back(suggestion.whitelist_icon_path.value()); | 131 whitelist_icon_paths.emplace_back(suggestion.whitelist_icon_path.value()); |
134 sources.emplace_back(suggestion.source); | 132 sources.emplace_back(suggestion.source); |
135 provider_indexes.emplace_back(suggestion.provider_index); | |
136 } | 133 } |
137 Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable( | 134 Java_MostVisitedURLsObserver_onMostVisitedURLsAvailable( |
138 env, observer_.obj(), ToJavaArrayOfStrings(env, titles).obj(), | 135 env, observer_.obj(), ToJavaArrayOfStrings(env, titles).obj(), |
139 ToJavaArrayOfStrings(env, urls).obj(), | 136 ToJavaArrayOfStrings(env, urls).obj(), |
140 ToJavaArrayOfStrings(env, whitelist_icon_paths).obj(), | 137 ToJavaArrayOfStrings(env, whitelist_icon_paths).obj(), |
141 ToJavaIntArray(env, sources).obj(), | 138 ToJavaIntArray(env, sources).obj()); |
142 ToJavaIntArray(env, provider_indexes).obj()); | |
143 } | 139 } |
144 | 140 |
145 void MostVisitedSitesBridge::JavaObserver::OnPopularURLsAvailable( | 141 void MostVisitedSitesBridge::JavaObserver::OnPopularURLsAvailable( |
146 const MostVisitedSites::PopularSitesVector& sites) { | 142 const MostVisitedSites::PopularSitesVector& sites) { |
147 JNIEnv* env = AttachCurrentThread(); | 143 JNIEnv* env = AttachCurrentThread(); |
148 std::vector<std::string> urls; | 144 std::vector<std::string> urls; |
149 std::vector<std::string> favicon_urls; | 145 std::vector<std::string> favicon_urls; |
150 std::vector<std::string> large_icon_urls; | 146 std::vector<std::string> large_icon_urls; |
151 for (const auto& site : sites) { | 147 for (const auto& site : sites) { |
152 urls.emplace_back(site.url.spec()); | 148 urls.emplace_back(site.url.spec()); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 const JavaParamRef<jstring>& j_url, | 193 const JavaParamRef<jstring>& j_url, |
198 jboolean add_url) { | 194 jboolean add_url) { |
199 GURL url(ConvertJavaStringToUTF8(env, j_url)); | 195 GURL url(ConvertJavaStringToUTF8(env, j_url)); |
200 most_visited_.AddOrRemoveBlacklistedUrl(url, add_url); | 196 most_visited_.AddOrRemoveBlacklistedUrl(url, add_url); |
201 } | 197 } |
202 | 198 |
203 void MostVisitedSitesBridge::RecordTileTypeMetrics( | 199 void MostVisitedSitesBridge::RecordTileTypeMetrics( |
204 JNIEnv* env, | 200 JNIEnv* env, |
205 const JavaParamRef<jobject>& obj, | 201 const JavaParamRef<jobject>& obj, |
206 const JavaParamRef<jintArray>& jtile_types, | 202 const JavaParamRef<jintArray>& jtile_types, |
207 const JavaParamRef<jintArray>& jsources, | 203 const JavaParamRef<jintArray>& jsources) { |
208 const JavaParamRef<jintArray>& jprovider_indices) { | |
209 std::vector<int> tile_types; | 204 std::vector<int> tile_types; |
210 std::vector<int> sources; | 205 std::vector<int> sources; |
211 std::vector<int> provider_indices; | |
212 | 206 |
213 base::android::JavaIntArrayToIntVector(env, jtile_types, &tile_types); | 207 base::android::JavaIntArrayToIntVector(env, jtile_types, &tile_types); |
214 base::android::JavaIntArrayToIntVector(env, jsources, &sources); | 208 base::android::JavaIntArrayToIntVector(env, jsources, &sources); |
215 base::android::JavaIntArrayToIntVector(env, jprovider_indices, | |
216 &provider_indices); | |
217 | 209 |
218 most_visited_.RecordTileTypeMetrics(tile_types, sources, provider_indices); | 210 most_visited_.RecordTileTypeMetrics(tile_types, sources); |
219 } | 211 } |
220 | 212 |
221 void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( | 213 void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( |
222 JNIEnv* env, | 214 JNIEnv* env, |
223 const JavaParamRef<jobject>& obj, | 215 const JavaParamRef<jobject>& obj, |
224 jint index, | 216 jint index, |
225 jint tile_type) { | 217 jint tile_type) { |
226 most_visited_.RecordOpenedMostVisitedItem(index, tile_type); | 218 most_visited_.RecordOpenedMostVisitedItem(index, tile_type); |
227 } | 219 } |
228 | 220 |
229 // static | 221 // static |
230 bool MostVisitedSitesBridge::Register(JNIEnv* env) { | 222 bool MostVisitedSitesBridge::Register(JNIEnv* env) { |
231 return RegisterNativesImpl(env); | 223 return RegisterNativesImpl(env); |
232 } | 224 } |
233 | 225 |
234 static jlong Init(JNIEnv* env, | 226 static jlong Init(JNIEnv* env, |
235 const JavaParamRef<jobject>& obj, | 227 const JavaParamRef<jobject>& obj, |
236 const JavaParamRef<jobject>& jprofile) { | 228 const JavaParamRef<jobject>& jprofile) { |
237 MostVisitedSitesBridge* most_visited_sites = | 229 MostVisitedSitesBridge* most_visited_sites = |
238 new MostVisitedSitesBridge( | 230 new MostVisitedSitesBridge( |
239 ProfileAndroid::FromProfileAndroid(jprofile)); | 231 ProfileAndroid::FromProfileAndroid(jprofile)); |
240 return reinterpret_cast<intptr_t>(most_visited_sites); | 232 return reinterpret_cast<intptr_t>(most_visited_sites); |
241 } | 233 } |
OLD | NEW |