| 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 JavaClient : public MostVisitedSites::HomePageClient { |
| 42 public: |
| 43 JavaClient(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(JavaClient); |
| 53 }; |
| 54 |
| 55 JavaClient::JavaClient(JNIEnv* env, const JavaParamRef<jobject>& obj) |
| 56 : client_(env, obj) {} |
| 57 |
| 58 bool JavaClient::IsHomePageEnabled() const { |
| 59 return Java_Client_isHomePageEnabled(AttachCurrentThread(), client_); |
| 60 } |
| 61 |
| 62 bool JavaClient::IsNewTabPageUsedAsHomePage() const { |
| 63 return Java_Client_isNewTabPageUsedAsHomePage(AttachCurrentThread(), client_); |
| 64 } |
| 65 |
| 66 GURL JavaClient::GetHomepageUrl() const { |
| 67 base::android::ScopedJavaLocalRef<jstring> url = |
| 68 Java_Client_getHomePageUrl(AttachCurrentThread(), client_); |
| 69 return GURL(ConvertJavaStringToUTF8(url)); |
| 70 } |
| 71 |
| 72 } // namespace |
| 73 |
| 39 class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer { | 74 class MostVisitedSitesBridge::JavaObserver : public MostVisitedSites::Observer { |
| 40 public: | 75 public: |
| 41 JavaObserver(JNIEnv* env, const JavaParamRef<jobject>& obj); | 76 JavaObserver(JNIEnv* env, const JavaParamRef<jobject>& obj); |
| 42 | 77 |
| 43 void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override; | 78 void OnMostVisitedURLsAvailable(const NTPTilesVector& tiles) override; |
| 44 | 79 |
| 45 void OnIconMadeAvailable(const GURL& site_url) override; | 80 void OnIconMadeAvailable(const GURL& site_url) override; |
| 46 | 81 |
| 47 private: | 82 private: |
| 48 ScopedJavaGlobalRef<jobject> observer_; | 83 ScopedJavaGlobalRef<jobject> observer_; |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 | 139 |
| 105 void MostVisitedSitesBridge::SetObserver( | 140 void MostVisitedSitesBridge::SetObserver( |
| 106 JNIEnv* env, | 141 JNIEnv* env, |
| 107 const JavaParamRef<jobject>& obj, | 142 const JavaParamRef<jobject>& obj, |
| 108 const JavaParamRef<jobject>& j_observer, | 143 const JavaParamRef<jobject>& j_observer, |
| 109 jint num_sites) { | 144 jint num_sites) { |
| 110 java_observer_.reset(new JavaObserver(env, j_observer)); | 145 java_observer_.reset(new JavaObserver(env, j_observer)); |
| 111 most_visited_->SetMostVisitedURLsObserver(java_observer_.get(), num_sites); | 146 most_visited_->SetMostVisitedURLsObserver(java_observer_.get(), num_sites); |
| 112 } | 147 } |
| 113 | 148 |
| 149 void MostVisitedSitesBridge::SetClient( |
| 150 JNIEnv* env, |
| 151 const base::android::JavaParamRef<jobject>& obj, |
| 152 const base::android::JavaParamRef<jobject>& j_client) { |
| 153 most_visited_->SetHomePageClient(base::MakeUnique<JavaClient>(env, j_client)); |
| 154 } |
| 155 |
| 114 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl( | 156 void MostVisitedSitesBridge::AddOrRemoveBlacklistedUrl( |
| 115 JNIEnv* env, | 157 JNIEnv* env, |
| 116 const JavaParamRef<jobject>& obj, | 158 const JavaParamRef<jobject>& obj, |
| 117 const JavaParamRef<jstring>& j_url, | 159 const JavaParamRef<jstring>& j_url, |
| 118 jboolean add_url) { | 160 jboolean add_url) { |
| 119 GURL url(ConvertJavaStringToUTF8(env, j_url)); | 161 GURL url(ConvertJavaStringToUTF8(env, j_url)); |
| 120 most_visited_->AddOrRemoveBlacklistedUrl(url, add_url); | 162 most_visited_->AddOrRemoveBlacklistedUrl(url, add_url); |
| 121 } | 163 } |
| 122 | 164 |
| 123 void MostVisitedSitesBridge::RecordPageImpression( | 165 void MostVisitedSitesBridge::RecordPageImpression( |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 163 return RegisterNativesImpl(env); | 205 return RegisterNativesImpl(env); |
| 164 } | 206 } |
| 165 | 207 |
| 166 static jlong Init(JNIEnv* env, | 208 static jlong Init(JNIEnv* env, |
| 167 const JavaParamRef<jobject>& obj, | 209 const JavaParamRef<jobject>& obj, |
| 168 const JavaParamRef<jobject>& jprofile) { | 210 const JavaParamRef<jobject>& jprofile) { |
| 169 MostVisitedSitesBridge* most_visited_sites = | 211 MostVisitedSitesBridge* most_visited_sites = |
| 170 new MostVisitedSitesBridge(ProfileAndroid::FromProfileAndroid(jprofile)); | 212 new MostVisitedSitesBridge(ProfileAndroid::FromProfileAndroid(jprofile)); |
| 171 return reinterpret_cast<intptr_t>(most_visited_sites); | 213 return reinterpret_cast<intptr_t>(most_visited_sites); |
| 172 } | 214 } |
| OLD | NEW |