| 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 |