| Index: chrome/browser/android/ntp/ntp_snippets_bridge.cc
|
| diff --git a/chrome/browser/android/ntp/ntp_snippets_bridge.cc b/chrome/browser/android/ntp/ntp_snippets_bridge.cc
|
| index 939435eba8b2a60d840dfae30e1cad96a0af49e6..cb9cdca533f64145b26c5158a890a1de543535b5 100644
|
| --- a/chrome/browser/android/ntp/ntp_snippets_bridge.cc
|
| +++ b/chrome/browser/android/ntp/ntp_snippets_bridge.cc
|
| @@ -110,9 +110,10 @@ ntp_snippets::RemoteSuggestionsScheduler* GetRemoteSuggestionsScheduler() {
|
| } // namespace
|
|
|
| static jlong Init(JNIEnv* env,
|
| - const JavaParamRef<jobject>& obj,
|
| + const JavaParamRef<jobject>& j_bridge,
|
| const JavaParamRef<jobject>& j_profile) {
|
| - NTPSnippetsBridge* snippets_bridge = new NTPSnippetsBridge(env, j_profile);
|
| + NTPSnippetsBridge* snippets_bridge =
|
| + new NTPSnippetsBridge(env, j_bridge, j_profile);
|
| return reinterpret_cast<intptr_t>(snippets_bridge);
|
| }
|
|
|
| @@ -155,8 +156,11 @@ static void OnSuggestionTargetVisited(JNIEnv* env,
|
| }
|
|
|
| NTPSnippetsBridge::NTPSnippetsBridge(JNIEnv* env,
|
| + const JavaParamRef<jobject>& j_bridge,
|
| const JavaParamRef<jobject>& j_profile)
|
| - : content_suggestions_service_observer_(this), weak_ptr_factory_(this) {
|
| + : content_suggestions_service_observer_(this),
|
| + bridge_(env, j_bridge),
|
| + weak_ptr_factory_(this) {
|
| Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile);
|
| content_suggestions_service_ =
|
| ContentSuggestionsServiceFactory::GetForProfile(profile);
|
| @@ -170,12 +174,6 @@ void NTPSnippetsBridge::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) {
|
| delete this;
|
| }
|
|
|
| -void NTPSnippetsBridge::SetObserver(JNIEnv* env,
|
| - const JavaParamRef<jobject>& obj,
|
| - const JavaParamRef<jobject>& j_observer) {
|
| - observer_.Reset(env, j_observer);
|
| -}
|
| -
|
| ScopedJavaLocalRef<jintArray> NTPSnippetsBridge::GetCategories(
|
| JNIEnv* env,
|
| const base::android::JavaParamRef<jobject>& obj) {
|
| @@ -405,50 +403,34 @@ void NTPSnippetsBridge::OnNTPInitialized(
|
| NTPSnippetsBridge::~NTPSnippetsBridge() {}
|
|
|
| void NTPSnippetsBridge::OnNewSuggestions(Category category) {
|
| - if (observer_.is_null()) {
|
| - return;
|
| - }
|
| -
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| - Java_SnippetsBridge_onNewSuggestions(env, observer_,
|
| + Java_SnippetsBridge_onNewSuggestions(env, bridge_,
|
| static_cast<int>(category.id()));
|
| }
|
|
|
| void NTPSnippetsBridge::OnCategoryStatusChanged(Category category,
|
| CategoryStatus new_status) {
|
| - if (observer_.is_null()) {
|
| - return;
|
| - }
|
| -
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| - Java_SnippetsBridge_onCategoryStatusChanged(env, observer_,
|
| + Java_SnippetsBridge_onCategoryStatusChanged(env, bridge_,
|
| static_cast<int>(category.id()),
|
| static_cast<int>(new_status));
|
| }
|
|
|
| void NTPSnippetsBridge::OnSuggestionInvalidated(
|
| const ContentSuggestion::ID& suggestion_id) {
|
| - if (observer_.is_null()) {
|
| - return;
|
| - }
|
| -
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| Java_SnippetsBridge_onSuggestionInvalidated(
|
| - env, observer_.obj(), static_cast<int>(suggestion_id.category().id()),
|
| + env, bridge_.obj(), static_cast<int>(suggestion_id.category().id()),
|
| ConvertUTF8ToJavaString(env, suggestion_id.id_within_category()).obj());
|
| }
|
|
|
| void NTPSnippetsBridge::OnFullRefreshRequired() {
|
| - if (observer_.is_null()) {
|
| - return;
|
| - }
|
| -
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| - Java_SnippetsBridge_onFullRefreshRequired(env, observer_.obj());
|
| + Java_SnippetsBridge_onFullRefreshRequired(env, bridge_.obj());
|
| }
|
|
|
| void NTPSnippetsBridge::ContentSuggestionsServiceShutdown() {
|
| - observer_.Reset();
|
| + bridge_.Reset();
|
| content_suggestions_service_observer_.Remove(content_suggestions_service_);
|
| }
|
|
|
| @@ -468,7 +450,7 @@ void NTPSnippetsBridge::OnSuggestionsFetched(
|
| // TODO(fhorschig, dgn): Allow refetch or show notification acc. to status.
|
| JNIEnv* env = AttachCurrentThread();
|
| Java_SnippetsBridge_onMoreSuggestions(
|
| - env, observer_, category.id(),
|
| + env, bridge_, category.id(),
|
| ToJavaSuggestionList(env, category, suggestions));
|
| }
|
|
|
|
|