Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(845)

Side by Side Diff: chrome/browser/android/ntp/most_visited_sites_bridge.cc

Issue 2897293002: Adding CrHome-specific implementation for home page tile. (Closed)
Patch Set: Refactor tests and initialization Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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::SetHomePageClient(
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
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 }
OLDNEW
« no previous file with comments | « chrome/browser/android/ntp/most_visited_sites_bridge.h ('k') | components/ntp_tiles/most_visited_sites.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698