Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java |
| index 4525f1f16c2e94dfe3fea99fd0b3a160d8efecb0..909aa9548033161ecad5d81c468efb0ae251cce3 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java |
| @@ -11,6 +11,7 @@ |
| import org.chromium.chrome.browser.ntp.cards.SuggestionsCategoryInfo; |
| import org.chromium.chrome.browser.ntp.snippets.CategoryStatus.CategoryStatusEnum; |
| import org.chromium.chrome.browser.profiles.Profile; |
| +import org.chromium.chrome.browser.suggestions.SuggestionsUma; |
| import java.util.ArrayList; |
| import java.util.List; |
| @@ -23,6 +24,7 @@ |
| private long mNativeSnippetsBridge; |
| private SuggestionsSource.Observer mObserver; |
| + private SuggestionsUma mUmaHelper; |
|
Bernhard Bauer
2017/01/11 13:53:38
I think I would make this an interface and have Se
dgn
2017/01/12 14:29:58
Done.
|
| public static boolean isCategoryStatusAvailable(@CategoryStatusEnum int status) { |
| // Note: This code is duplicated in content_suggestions_category_status.cc. |
| @@ -119,8 +121,10 @@ public void fetchSuggestionImage(SnippetArticle suggestion, Callback<Bitmap> cal |
| @Override |
| public void dismissSuggestion(SnippetArticle suggestion) { |
| assert mNativeSnippetsBridge != 0; |
| - nativeDismissSuggestion(mNativeSnippetsBridge, suggestion.mUrl, suggestion.mGlobalPosition, |
| - suggestion.mCategory, suggestion.mPosition, suggestion.mIdWithinCategory); |
| + int suggestionRank = mUmaHelper.getSuggestionRank(suggestion); |
|
Bernhard Bauer
2017/01/11 13:53:38
If getSuggestionRank returns -1 when the suggestio
dgn
2017/01/12 14:29:58
Done.
|
| + int suggestionGlobalRank = mUmaHelper.getSuggestionGlobalRank(suggestion, suggestionRank); |
| + nativeDismissSuggestion(mNativeSnippetsBridge, suggestion.mUrl, suggestionGlobalRank, |
| + suggestion.mCategory, suggestionRank, suggestion.mIdWithinCategory); |
| } |
| @Override |
| @@ -142,23 +146,28 @@ public void onPageShown(int[] categories, int[] suggestionsPerCategory) { |
| public void onSuggestionShown(SnippetArticle suggestion) { |
| assert mNativeSnippetsBridge != 0; |
| - nativeOnSuggestionShown(mNativeSnippetsBridge, suggestion.mGlobalPosition, |
| - suggestion.mCategory, suggestion.mPosition, |
| - suggestion.mPublishTimestampMilliseconds, suggestion.mScore); |
| + int suggestionRank = mUmaHelper.getSuggestionRank(suggestion); |
| + int suggestionGlobalRank = mUmaHelper.getSuggestionGlobalRank(suggestion, suggestionRank); |
| + nativeOnSuggestionShown(mNativeSnippetsBridge, suggestionGlobalRank, suggestion.mCategory, |
| + suggestionRank, suggestion.mPublishTimestampMilliseconds, suggestion.mScore); |
| } |
| public void onSuggestionOpened(SnippetArticle suggestion, int windowOpenDisposition) { |
| assert mNativeSnippetsBridge != 0; |
| - nativeOnSuggestionOpened(mNativeSnippetsBridge, suggestion.mGlobalPosition, |
| - suggestion.mCategory, suggestion.mPosition, |
| - suggestion.mPublishTimestampMilliseconds, suggestion.mScore, windowOpenDisposition); |
| + int suggestionRank = mUmaHelper.getSuggestionRank(suggestion); |
| + int suggestionGlobalRank = mUmaHelper.getSuggestionGlobalRank(suggestion, suggestionRank); |
| + nativeOnSuggestionOpened(mNativeSnippetsBridge, suggestionGlobalRank, suggestion.mCategory, |
| + suggestionRank, suggestion.mPublishTimestampMilliseconds, suggestion.mScore, |
| + windowOpenDisposition); |
| } |
| public void onSuggestionMenuOpened(SnippetArticle suggestion) { |
| assert mNativeSnippetsBridge != 0; |
| - nativeOnSuggestionMenuOpened(mNativeSnippetsBridge, suggestion.mGlobalPosition, |
| - suggestion.mCategory, suggestion.mPosition, |
| - suggestion.mPublishTimestampMilliseconds, suggestion.mScore); |
| + int suggestionRank = mUmaHelper.getSuggestionRank(suggestion); |
| + int suggestionGlobalRank = mUmaHelper.getSuggestionGlobalRank(suggestion, suggestionRank); |
| + nativeOnSuggestionMenuOpened(mNativeSnippetsBridge, suggestionGlobalRank, |
| + suggestion.mCategory, suggestionRank, suggestion.mPublishTimestampMilliseconds, |
| + suggestion.mScore); |
| } |
| public void onMoreButtonShown(int category, int position) { |
| @@ -193,18 +202,13 @@ public static void onSuggestionTargetVisited(int category, long visitTimeMs) { |
| nativeOnSuggestionTargetVisited(category, visitTimeMs); |
| } |
| - /** |
| - * Sets the recipient for the fetched snippets. |
| - * |
| - * An observer needs to be set before the native code attempts to transmit snippets them to |
| - * java. Upon registration, the observer will be notified of already fetched snippets. |
| - * |
| - * @param observer object to notify when snippets are received. |
| - */ |
| @Override |
| - public void setObserver(SuggestionsSource.Observer observer) { |
| + public void init(SuggestionsSource.Observer observer, SuggestionsUma umaHelper) { |
| assert observer != null; |
| mObserver = observer; |
| + |
| + assert mUmaHelper == null; |
|
Bernhard Bauer
2017/01/11 13:53:38
TBH, I kind of like keeping simple set methods tha
dgn
2017/01/12 14:29:58
Done.
|
| + mUmaHelper = umaHelper; |
| } |
| @Override |
| @@ -233,7 +237,7 @@ private static SnippetArticle addSuggestion(List<SnippetArticle> suggestions, in |
| long timestamp, float score) { |
| int position = suggestions.size(); |
| suggestions.add(new SnippetArticle( |
| - category, id, title, publisher, previewText, url, timestamp, score, position)); |
| + category, id, title, publisher, previewText, url, timestamp, score)); |
| return suggestions.get(position); |
| } |