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 24 matching lines...) Expand all Loading... |
35 using base::android::AttachCurrentThread; | 35 using base::android::AttachCurrentThread; |
36 using base::android::ConvertJavaStringToUTF8; | 36 using base::android::ConvertJavaStringToUTF8; |
37 using base::android::JavaParamRef; | 37 using base::android::JavaParamRef; |
38 using base::android::ScopedJavaGlobalRef; | 38 using base::android::ScopedJavaGlobalRef; |
39 using base::android::ScopedJavaLocalRef; | 39 using base::android::ScopedJavaLocalRef; |
40 using base::android::ToJavaArrayOfStrings; | 40 using base::android::ToJavaArrayOfStrings; |
41 using base::android::ToJavaIntArray; | 41 using base::android::ToJavaIntArray; |
42 using content::BrowserThread; | 42 using content::BrowserThread; |
43 using ntp_tiles::MostVisitedSites; | 43 using ntp_tiles::MostVisitedSites; |
44 using ntp_tiles::MostVisitedSitesSupervisor; | 44 using ntp_tiles::MostVisitedSitesSupervisor; |
| 45 using ntp_tiles::NTPTileSource; |
45 using suggestions::SuggestionsServiceFactory; | 46 using suggestions::SuggestionsServiceFactory; |
46 | 47 |
47 MostVisitedSitesBridge::SupervisorBridge::SupervisorBridge(Profile* profile) | 48 MostVisitedSitesBridge::SupervisorBridge::SupervisorBridge(Profile* profile) |
48 : profile_(profile), | 49 : profile_(profile), |
49 supervisor_observer_(nullptr), | 50 supervisor_observer_(nullptr), |
50 register_observer_(this) { | 51 register_observer_(this) { |
51 register_observer_.Add(SupervisedUserServiceFactory::GetForProfile(profile_)); | 52 register_observer_.Add(SupervisedUserServiceFactory::GetForProfile(profile_)); |
52 } | 53 } |
53 | 54 |
54 MostVisitedSitesBridge::SupervisorBridge::~SupervisorBridge() {} | 55 MostVisitedSitesBridge::SupervisorBridge::~SupervisorBridge() {} |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
198 jboolean add_url) { | 199 jboolean add_url) { |
199 GURL url(ConvertJavaStringToUTF8(env, j_url)); | 200 GURL url(ConvertJavaStringToUTF8(env, j_url)); |
200 most_visited_.AddOrRemoveBlacklistedUrl(url, add_url); | 201 most_visited_.AddOrRemoveBlacklistedUrl(url, add_url); |
201 } | 202 } |
202 | 203 |
203 void MostVisitedSitesBridge::RecordTileTypeMetrics( | 204 void MostVisitedSitesBridge::RecordTileTypeMetrics( |
204 JNIEnv* env, | 205 JNIEnv* env, |
205 const JavaParamRef<jobject>& obj, | 206 const JavaParamRef<jobject>& obj, |
206 const JavaParamRef<jintArray>& jtile_types, | 207 const JavaParamRef<jintArray>& jtile_types, |
207 const JavaParamRef<jintArray>& jsources) { | 208 const JavaParamRef<jintArray>& jsources) { |
208 std::vector<int> tile_types; | 209 std::vector<int> int_tile_types; |
209 std::vector<int> sources; | 210 base::android::JavaIntArrayToIntVector(env, jtile_types, &int_tile_types); |
| 211 std::vector<MostVisitedSites::MostVisitedTileType> tile_types; |
| 212 for (int source : int_tile_types) { |
| 213 tile_types.push_back( |
| 214 static_cast<MostVisitedSites::MostVisitedTileType>(source)); |
| 215 } |
210 | 216 |
211 base::android::JavaIntArrayToIntVector(env, jtile_types, &tile_types); | 217 std::vector<int> int_sources; |
212 base::android::JavaIntArrayToIntVector(env, jsources, &sources); | 218 base::android::JavaIntArrayToIntVector(env, jsources, &int_sources); |
| 219 std::vector<NTPTileSource> sources; |
| 220 for (int source : int_sources) { |
| 221 sources.push_back(static_cast<NTPTileSource>(source)); |
| 222 } |
213 | 223 |
214 most_visited_.RecordTileTypeMetrics(tile_types, sources); | 224 most_visited_.RecordTileTypeMetrics(tile_types, sources); |
215 } | 225 } |
216 | 226 |
217 void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( | 227 void MostVisitedSitesBridge::RecordOpenedMostVisitedItem( |
218 JNIEnv* env, | 228 JNIEnv* env, |
219 const JavaParamRef<jobject>& obj, | 229 const JavaParamRef<jobject>& obj, |
220 jint index, | 230 jint index, |
221 jint tile_type, | 231 jint tile_type, |
222 jint source) { | 232 jint source) { |
223 most_visited_.RecordOpenedMostVisitedItem(index, tile_type, source); | 233 most_visited_.RecordOpenedMostVisitedItem( |
| 234 index, static_cast<MostVisitedSites::MostVisitedTileType>(tile_type), |
| 235 static_cast<NTPTileSource>(source)); |
224 } | 236 } |
225 | 237 |
226 // static | 238 // static |
227 bool MostVisitedSitesBridge::Register(JNIEnv* env) { | 239 bool MostVisitedSitesBridge::Register(JNIEnv* env) { |
228 return RegisterNativesImpl(env); | 240 return RegisterNativesImpl(env); |
229 } | 241 } |
230 | 242 |
231 static jlong Init(JNIEnv* env, | 243 static jlong Init(JNIEnv* env, |
232 const JavaParamRef<jobject>& obj, | 244 const JavaParamRef<jobject>& obj, |
233 const JavaParamRef<jobject>& jprofile) { | 245 const JavaParamRef<jobject>& jprofile) { |
234 MostVisitedSitesBridge* most_visited_sites = | 246 MostVisitedSitesBridge* most_visited_sites = |
235 new MostVisitedSitesBridge( | 247 new MostVisitedSitesBridge( |
236 ProfileAndroid::FromProfileAndroid(jprofile)); | 248 ProfileAndroid::FromProfileAndroid(jprofile)); |
237 return reinterpret_cast<intptr_t>(most_visited_sites); | 249 return reinterpret_cast<intptr_t>(most_visited_sites); |
238 } | 250 } |
OLD | NEW |