| 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 18 matching lines...) Expand all Loading... |
| 29 using base::android::ScopedJavaGlobalRef; | 29 using base::android::ScopedJavaGlobalRef; |
| 30 using base::android::ScopedJavaLocalRef; | 30 using base::android::ScopedJavaLocalRef; |
| 31 using base::android::ToJavaArrayOfStrings; | 31 using base::android::ToJavaArrayOfStrings; |
| 32 using base::android::ToJavaIntArray; | 32 using base::android::ToJavaIntArray; |
| 33 using ntp_tiles::MostVisitedSites; | 33 using ntp_tiles::MostVisitedSites; |
| 34 using ntp_tiles::TileSource; | 34 using ntp_tiles::TileSource; |
| 35 using ntp_tiles::NTPTilesVector; | 35 using ntp_tiles::NTPTilesVector; |
| 36 using ntp_tiles::TileVisualType; | 36 using ntp_tiles::TileVisualType; |
| 37 using ntp_tiles::metrics::TileImpression; | 37 using ntp_tiles::metrics::TileImpression; |
| 38 | 38 |
| 39 namespace { |
| 40 |
| 41 class JavaHomePageClient : public MostVisitedSites::HomePageClient { |
| 42 public: |
| 43 JavaHomePageClient(JNIEnv* env, const JavaParamRef<jobject>& obj); |
| 44 |
| 45 bool IsHomePageEnabled() const override; |
| 46 bool IsNewTabPageUsedAsHomePage() const override; |
| 47 GURL GetHomepageUrl() const override; |
| 48 |
| 49 private: |
| 50 ScopedJavaGlobalRef<jobject> client_; |
| 51 |
| 52 DISALLOW_COPY_AND_ASSIGN(JavaHomePageClient); |
| 53 }; |
| 54 |
| 55 JavaHomePageClient::JavaHomePageClient(JNIEnv* env, |
| 56 const JavaParamRef<jobject>& obj) |
| 57 : client_(env, obj) {} |
| 58 |
| 59 bool JavaHomePageClient::IsHomePageEnabled() const { |
| 60 return Java_HomePageClient_isHomePageEnabled(AttachCurrentThread(), client_); |
| 61 } |
| 62 |
| 63 bool JavaHomePageClient::IsNewTabPageUsedAsHomePage() const { |
| 64 return Java_HomePageClient_isNewTabPageUsedAsHomePage(AttachCurrentThread(), |
| 65 client_); |
| 66 } |
| 67 |
| 68 GURL JavaHomePageClient::GetHomepageUrl() const { |
| 69 base::android::ScopedJavaLocalRef<jstring> url = |
| 70 Java_HomePageClient_getHomePageUrl(AttachCurrentThread(), client_); |
| 71 if (url.is_null()) { |
| 72 return GURL(); |
| 73 } |
| 74 return GURL(ConvertJavaStringToUTF8(url)); |
| 75 } |
| 76 |
| 77 } // namespace |
| 78 |
| 39 class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer { | 79 class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer { |
| 40 public: | 80 public: |
| 41 JavaObserver(JNIEnv* env, const JavaParamRef<jobject>& obj); | 81 JavaObserver(JNIEnv* env, const JavaParamRef<jobject>& obj); |
| 42 | 82 |
| 43 void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override; | 83 void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override; |
| 44 | 84 |
| 45 void OnIconMadeAvailable(const GURL& site_url) override; | 85 void OnIconMadeAvailable(const GURL& site_url) override; |
| 46 | 86 |
| 47 private: | 87 private: |
| 48 ScopedJavaGlobalRef<jobject> observer_; | 88 ScopedJavaGlobalRef<jobject> observer_; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 | 144 |
| 105 void MostVisitedSitesBridge::SetObserver( | 145 void MostVisitedSitesBridge::SetObserver( |
| 106 JNIEnv* env, | 146 JNIEnv* env, |
| 107 const JavaParamRef<jobject>& obj, | 147 const JavaParamRef<jobject>& obj, |
| 108 const JavaParamRef<jobject>& j_observer, | 148 const JavaParamRef<jobject>& j_observer, |
| 109 jint num_sites) { | 149 jint num_sites) { |
| 110 java_observer_.reset(new JavaObserver(env, j_observer)); | 150 java_observer_.reset(new JavaObserver(env, j_observer)); |
| 111 most_visited_->SetMostVisitedURLsObserver(java_observer_.get(), num_sites); | 151 most_visited_->SetMostVisitedURLsObserver(java_observer_.get(), num_sites); |
| 112 } | 152 } |
| 113 | 153 |
| 154 void MostVisitedSitesBridge::SetClient( |
| 155 JNIEnv* env, |
| 156 const base::android::JavaParamRef<jobject>& obj, |
| 157 const base::android::JavaParamRef<jobject>& j_client) { |
| 158 most_visited_->SetHomePageClient( |
| 159 base::MakeUnique<JavaHomePageClient>(env, j_client)); |
| 160 } |
| 161 |
| 114 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl( | 162 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl( |
| 115 JNIEnv* env, | 163 JNIEnv* env, |
| 116 const JavaParamRef<jobject>& obj, | 164 const JavaParamRef<jobject>& obj, |
| 117 const JavaParamRef<jstring>& j_url, | 165 const JavaParamRef<jstring>& j_url, |
| 118 jboolean add_url) { | 166 jboolean add_url) { |
| 119 GURL url(ConvertJavaStringToUTF8(env, j_url)); | 167 GURL url(ConvertJavaStringToUTF8(env, j_url)); |
| 120 most_visited_->AddOrRemoveBlacklistedUrl(url, add_url); | 168 most_visited_->AddOrRemoveBlacklistedUrl(url, add_url); |
| 121 } | 169 } |
| 122 | 170 |
| 123 void MostVisitedSitesBridge::RecordPageImpression( | 171 void MostVisitedSitesBridge::RecordPageImpression( |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 return RegisterNativesImpl(env); | 211 return RegisterNativesImpl(env); |
| 164 } | 212 } |
| 165 | 213 |
| 166 static jlong Init(JNIEnv* env, | 214 static jlong Init(JNIEnv* env, |
| 167 const JavaParamRef<jobject>& obj, | 215 const JavaParamRef<jobject>& obj, |
| 168 const JavaParamRef<jobject>& jprofile) { | 216 const JavaParamRef<jobject>& jprofile) { |
| 169 MostVisitedSitesBridge* most_visited_sites = | 217 MostVisitedSitesBridge* most_visited_sites = |
| 170 new MostVisitedSitesBridge(ProfileAndroid::FromProfileAndroid(jprofile)); | 218 new MostVisitedSitesBridge(ProfileAndroid::FromProfileAndroid(jprofile)); |
| 171 return reinterpret_cast<intptr_t>(most_visited_sites); | 219 return reinterpret_cast<intptr_t>(most_visited_sites); |
| 172 } | 220 } |
| OLD | NEW |