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

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

Issue 2232783002: Support action button to fetch more content suggestions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@snippetsbridge
Patch Set: Created 4 years, 4 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/ntp_snippets_bridge.h" 5 #include "chrome/browser/android/ntp/ntp_snippets_bridge.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/callback_android.h" 9 #include "base/android/callback_android.h"
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 const base::android::JavaParamRef<jobject>& obj, 134 const base::android::JavaParamRef<jobject>& obj,
135 jint category) { 135 jint category) {
136 base::Optional<CategoryInfo> info = 136 base::Optional<CategoryInfo> info =
137 content_suggestions_service_->GetCategoryInfo( 137 content_suggestions_service_->GetCategoryInfo(
138 content_suggestions_service_->category_factory()->FromIDValue( 138 content_suggestions_service_->category_factory()->FromIDValue(
139 category)); 139 category));
140 if (!info) 140 if (!info)
141 return base::android::ScopedJavaLocalRef<jobject>(env, nullptr); 141 return base::android::ScopedJavaLocalRef<jobject>(env, nullptr);
142 return Java_SnippetsBridge_createSuggestionsCategoryInfo( 142 return Java_SnippetsBridge_createSuggestionsCategoryInfo(
143 env, ConvertUTF16ToJavaString(env, info->title()).obj(), 143 env, ConvertUTF16ToJavaString(env, info->title()).obj(),
144 static_cast<int>(info->card_layout())); 144 static_cast<int>(info->card_layout()), info->has_more_button());
145 } 145 }
146 146
147 ScopedJavaLocalRef<jobject> NTPSnippetsBridge::GetSuggestionsForCategory( 147 ScopedJavaLocalRef<jobject> NTPSnippetsBridge::GetSuggestionsForCategory(
148 JNIEnv* env, 148 JNIEnv* env,
149 const base::android::JavaParamRef<jobject>& obj, 149 const base::android::JavaParamRef<jobject>& obj,
150 jint category) { 150 jint category) {
151 const std::vector<ContentSuggestion>& suggestions = 151 const std::vector<ContentSuggestion>& suggestions =
152 content_suggestions_service_->GetSuggestionsForCategory( 152 content_suggestions_service_->GetSuggestionsForCategory(
153 content_suggestions_service_->category_factory()->FromIDValue( 153 content_suggestions_service_->category_factory()->FromIDValue(
154 category)); 154 category));
155 ScopedJavaLocalRef<jobject> result = 155 ScopedJavaLocalRef<jobject> result =
156 Java_SnippetsBridge_createSuggestionList(env); 156 Java_SnippetsBridge_createSuggestionList(env);
157 for (const ContentSuggestion& suggestion : suggestions) { 157 for (const ContentSuggestion& suggestion : suggestions) {
158 Java_SnippetsBridge_addSuggestion( 158 Java_SnippetsBridge_addSuggestion(
159 env, result.obj(), ConvertUTF8ToJavaString(env, suggestion.id()).obj(), 159 env, result.obj(), ConvertUTF8ToJavaString(env, suggestion.id()).obj(),
160 ConvertUTF16ToJavaString(env, suggestion.title()).obj(), 160 ConvertUTF16ToJavaString(env, suggestion.title()).obj(),
161 ConvertUTF16ToJavaString(env, suggestion.publisher_name()).obj(), 161 ConvertUTF16ToJavaString(env, suggestion.publisher_name()).obj(),
162 ConvertUTF16ToJavaString(env, suggestion.snippet_text()).obj(), 162 ConvertUTF16ToJavaString(env, suggestion.snippet_text()).obj(),
163 ConvertUTF8ToJavaString(env, suggestion.url().spec()).obj(), 163 ConvertUTF8ToJavaString(env, suggestion.url().spec()).obj(),
164 ConvertUTF8ToJavaString(env, suggestion.amp_url().spec()).obj(), 164 ConvertUTF8ToJavaString(env, suggestion.amp_url().spec()).obj(),
165 suggestion.publish_date().ToJavaTime(), suggestion.score()); 165 suggestion.publish_date().ToJavaTime(), suggestion.score());
166 } 166 }
167 return result; 167 return result;
168 } 168 }
169 169
170 void NTPSnippetsBridge::FetchMoreSuggestions(
171 JNIEnv* env,
172 const base::android::JavaParamRef<jobject>& obj,
173 jint category) {
174 content_suggestions_service_->FetchMoreSuggestions(
175 content_suggestions_service_->category_factory()->FromIDValue(category));
176 }
177
170 void NTPSnippetsBridge::FetchSuggestionImage( 178 void NTPSnippetsBridge::FetchSuggestionImage(
171 JNIEnv* env, 179 JNIEnv* env,
172 const JavaParamRef<jobject>& obj, 180 const JavaParamRef<jobject>& obj,
173 const JavaParamRef<jstring>& suggestion_id, 181 const JavaParamRef<jstring>& suggestion_id,
174 const JavaParamRef<jobject>& j_callback) { 182 const JavaParamRef<jobject>& j_callback) {
175 base::android::ScopedJavaGlobalRef<jobject> callback(j_callback); 183 base::android::ScopedJavaGlobalRef<jobject> callback(j_callback);
176 content_suggestions_service_->FetchSuggestionImage( 184 content_suggestions_service_->FetchSuggestionImage(
177 ConvertJavaStringToUTF8(env, suggestion_id), 185 ConvertJavaStringToUTF8(env, suggestion_id),
178 base::Bind(&NTPSnippetsBridge::OnImageFetched, 186 base::Bind(&NTPSnippetsBridge::OnImageFetched,
179 weak_ptr_factory_.GetWeakPtr(), callback)); 187 weak_ptr_factory_.GetWeakPtr(), callback));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 if (!image.IsEmpty()) 240 if (!image.IsEmpty())
233 j_bitmap = gfx::ConvertToJavaBitmap(image.ToSkBitmap()); 241 j_bitmap = gfx::ConvertToJavaBitmap(image.ToSkBitmap());
234 242
235 base::android::RunCallbackAndroid(callback, j_bitmap); 243 base::android::RunCallbackAndroid(callback, j_bitmap);
236 } 244 }
237 245
238 // static 246 // static
239 bool NTPSnippetsBridge::Register(JNIEnv* env) { 247 bool NTPSnippetsBridge::Register(JNIEnv* env) {
240 return RegisterNativesImpl(env); 248 return RegisterNativesImpl(env);
241 } 249 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698