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

Unified Diff: chrome/browser/notifications/notification_platform_bridge_android.cc

Issue 2585823002: Revert "Revert of Implement GetDisplayed on android M+ (patchset #3 id:60001 of https://codereview.… (Closed)
Patch Set: Created 4 years 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/notifications/notification_platform_bridge_android.cc
diff --git a/chrome/browser/notifications/notification_platform_bridge_android.cc b/chrome/browser/notifications/notification_platform_bridge_android.cc
index 0c8c82fe6f819c043ad8bc8419020a02332cd819..3f64247f468c31551ca6ff2e75e03b76d7b7c63f 100644
--- a/chrome/browser/notifications/notification_platform_bridge_android.cc
+++ b/chrome/browser/notifications/notification_platform_bridge_android.cc
@@ -7,6 +7,7 @@
#include <utility>
#include <vector>
+#include "base/android/build_info.h"
#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
#include "base/command_line.h"
@@ -315,8 +316,30 @@ bool NotificationPlatformBridgeAndroid::GetDisplayed(
const std::string& profile_id,
bool incognito,
std::set<std::string>* notifications) const {
- // TODO(miguelg): This can actually be implemented for M+
- return false;
+ DCHECK(notifications);
+ JNIEnv* env = AttachCurrentThread();
+
+ // Android only supports retrieving existing notifications from M+
+ if (base::android::BuildInfo::GetInstance()->sdk_int() <
+ base::android::SDK_VERSION_MARSHMALLOW) {
+ return false;
+ }
+
+ const ScopedJavaLocalRef<jstring> j_profile_id =
+ ConvertUTF8ToJavaString(env, profile_id);
+
+ ScopedJavaLocalRef<jobjectArray> j_notification_ids =
+ Java_NotificationPlatformBridge_getNotificationsForProfile(
+ env, java_object_, j_profile_id);
+ if (j_notification_ids.obj()) {
+ std::vector<std::string> notification_ids;
+ base::android::AppendJavaStringArrayToStringVector(
+ env, j_notification_ids.obj(), &notification_ids);
+ for (const auto& id : notification_ids) {
+ notifications->insert(id);
+ }
+ }
+ return true;
}
// static

Powered by Google App Engine
This is Rietveld 408576698