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

Unified Diff: chrome/browser/android/ntp/content_suggestions_notification_helper.cc

Issue 2639553002: Track active notifications in Java (Closed)
Patch Set: FindBugs 2 Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/ntp/content_suggestions_notification_helper.cc
diff --git a/chrome/browser/android/ntp/content_suggestions_notification_helper.cc b/chrome/browser/android/ntp/content_suggestions_notification_helper.cc
index ccfdc9e27ccd67fd17fd2b1d048902e258e5cb6b..fe1e5b10220b8588df45d301e08e9c7a6cd67cc9 100644
--- a/chrome/browser/android/ntp/content_suggestions_notification_helper.cc
+++ b/chrome/browser/android/ntp/content_suggestions_notification_helper.cc
@@ -11,7 +11,6 @@
#include "base/metrics/histogram_macros.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/ntp_snippets/ntp_snippets_features.h"
-#include "chrome/browser/ntp_snippets/ntp_snippets_metrics.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/common/pref_names.h"
@@ -41,7 +40,8 @@ bool IsDisabledForProfile(Profile* profile) {
} // namespace
-void ContentSuggestionsNotificationHelper::SendNotification(
+bool ContentSuggestionsNotificationHelper::SendNotification(
+ const ContentSuggestion::ID& id,
const GURL& url,
const base::string16& title,
const base::string16& text,
@@ -50,23 +50,42 @@ void ContentSuggestionsNotificationHelper::SendNotification(
JNIEnv* env = base::android::AttachCurrentThread();
SkBitmap skimage = image.AsImageSkia().GetRepresentation(1.0f).sk_bitmap();
if (skimage.empty())
- return;
+ return false;
jint timeout_at_millis = timeout_at.ToJavaTime();
if (timeout_at == base::Time::Max()) {
timeout_at_millis = std::numeric_limits<jint>::max();
}
- Java_ContentSuggestionsNotificationHelper_showNotification(
- env, base::android::ConvertUTF8ToJavaString(env, url.spec()),
- base::android::ConvertUTF16ToJavaString(env, title),
- base::android::ConvertUTF16ToJavaString(env, text),
- gfx::ConvertToJavaBitmap(&skimage), timeout_at_millis);
+ if (Java_ContentSuggestionsNotificationHelper_showNotification(
+ env, id.category().id(),
+ base::android::ConvertUTF8ToJavaString(env, id.id_within_category()),
+ base::android::ConvertUTF8ToJavaString(env, url.spec()),
+ base::android::ConvertUTF16ToJavaString(env, title),
+ base::android::ConvertUTF16ToJavaString(env, text),
+ gfx::ConvertToJavaBitmap(&skimage), timeout_at_millis)) {
+ DVLOG(1) << "Displayed notification for " << id;
+ return true;
+ } else {
+ DVLOG(1) << "Suppressed notification for " << url.spec();
+ return false;
+ }
}
-void ContentSuggestionsNotificationHelper::HideAllNotifications() {
+void ContentSuggestionsNotificationHelper::HideNotification(
+ const ContentSuggestion::ID& id,
+ ContentSuggestionsNotificationAction why) {
JNIEnv* env = base::android::AttachCurrentThread();
- Java_ContentSuggestionsNotificationHelper_hideAllNotifications(env);
+ Java_ContentSuggestionsNotificationHelper_hideNotification(
+ env, id.category().id(),
+ base::android::ConvertUTF8ToJavaString(env, id.id_within_category()),
+ static_cast<int>(why));
+}
+
+void ContentSuggestionsNotificationHelper::HideAllNotifications(
+ ContentSuggestionsNotificationAction why) {
+ JNIEnv* env = base::android::AttachCurrentThread();
+ Java_ContentSuggestionsNotificationHelper_hideAllNotifications(env, why);
}
void ContentSuggestionsNotificationHelper::FlushCachedMetrics() {
@@ -89,10 +108,18 @@ static void ReceiveFlushedMetrics(JNIEnv* env,
jint tap_count,
jint dismissal_count,
jint hide_deadline_count,
+ jint hide_expiry_count,
+ jint hide_frontmost_count,
+ jint hide_disabled_count,
+ jint hide_shutdown_count,
jint consecutive_ignored) {
DVLOG(1) << "Flushing metrics: tap_count=" << tap_count
<< "; dismissal_count=" << dismissal_count
<< "; hide_deadline_count=" << hide_deadline_count
+ << "; hide_expiry_count=" << hide_expiry_count
+ << "; hide_frontmost_count=" << hide_frontmost_count
+ << "; hide_disabled_count=" << hide_disabled_count
+ << "; hide_shutdown_count=" << hide_shutdown_count
<< "; consecutive_ignored=" << consecutive_ignored;
Profile* profile = ProfileManager::GetLastUsedProfile()->GetOriginalProfile();
PrefService* prefs = profile->GetPrefs();
@@ -107,6 +134,21 @@ static void ReceiveFlushedMetrics(JNIEnv* env,
RecordContentSuggestionsNotificationAction(
CONTENT_SUGGESTIONS_HIDE_DEADLINE);
}
+ for (int i = 0; i < hide_expiry_count; ++i) {
+ RecordContentSuggestionsNotificationAction(CONTENT_SUGGESTIONS_HIDE_EXPIRY);
+ }
+ for (int i = 0; i < hide_frontmost_count; ++i) {
+ RecordContentSuggestionsNotificationAction(
+ CONTENT_SUGGESTIONS_HIDE_FRONTMOST);
+ }
+ for (int i = 0; i < hide_disabled_count; ++i) {
+ RecordContentSuggestionsNotificationAction(
+ CONTENT_SUGGESTIONS_HIDE_DISABLED);
+ }
+ for (int i = 0; i < hide_shutdown_count; ++i) {
+ RecordContentSuggestionsNotificationAction(
+ CONTENT_SUGGESTIONS_HIDE_SHUTDOWN);
+ }
const bool was_disabled = IsDisabledForProfile(profile);
if (tap_count == 0) {

Powered by Google App Engine
This is Rietveld 408576698