Fix IsBraveAdsNotificationChannelEnabled().
In browser-android-tabs, we were adding a new method GetChannelStatus directly in chromium's NotificationChannelsProviderAndroid class. To avoid patching, this commit add BraveNotificationSettingsBridge for our native code to get Ads channel status without patching chromium.
This commit is contained in:
@@ -26,6 +26,7 @@ brave_java_sources = [
|
||||
"../../brave/android/java/org/chromium/chrome/browser/document/BraveLauncherActivity.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/notifications/BraveAds.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/notifications/BraveAdsNotificationBuilder.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/notifications/BraveNotificationSettingsBridge.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/notifications/BraveOnboardingNotification.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/notifications/BraveSetDefaultBrowserNotificationService.java",
|
||||
"../../brave/android/java/org/chromium/chrome/browser/ntp/BraveDuckDuckGoOfferView.java",
|
||||
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* Copyright (c) 2019 The Brave Authors. All rights reserved.
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package org.chromium.chrome.browser.notifications;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.os.Build;
|
||||
|
||||
import org.chromium.base.annotations.CalledByNative;
|
||||
import org.chromium.chrome.browser.notifications.NotificationSettingsBridge;
|
||||
|
||||
/**
|
||||
* This class provides our native code to access NotificationSettingsBridge
|
||||
* without patching notification_channels_provider_android.cc/h.
|
||||
*/
|
||||
public class BraveNotificationSettingsBridge {
|
||||
@TargetApi(Build.VERSION_CODES.O)
|
||||
@CalledByNative
|
||||
static @NotificationChannelStatus int getChannelStatus(String channelId) {
|
||||
return NotificationSettingsBridge.getChannelStatus(channelId);
|
||||
}
|
||||
}
|
||||
@@ -96,6 +96,7 @@ generate_jni("jni_headers") {
|
||||
"//brave/android/java/org/chromium/chrome/browser/BraveActivity.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/BraveRelaunchUtils.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/BraveRewardsNativeWorker.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/notifications/BraveNotificationSettingsBridge.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/preferences/BravePrefServiceBridge.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/preferences/website/BraveShieldsContentSettings.java",
|
||||
"//brave/android/java/org/chromium/chrome/browser/signin/BraveSigninManager.java",
|
||||
|
||||
@@ -3,15 +3,18 @@
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "brave/components/brave_ads/browser/notification_helper_android.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "base/android/jni_string.h"
|
||||
#include "base/system/sys_info.h"
|
||||
#include "brave/components/brave_ads/browser/notification_helper_android.h"
|
||||
#include "brave/build/android/jni_headers/BraveAds_jni.h"
|
||||
#include "brave/build/android/jni_headers/BraveAdsSignupDialog_jni.h"
|
||||
#include "brave/build/android/jni_headers/BraveNotificationSettingsBridge_jni.h"
|
||||
#include "brave/components/brave_ads/browser/background_helper.h"
|
||||
#include "chrome/android/chrome_jni_headers/NotificationSystemStatusUtil_jni.h"
|
||||
#include "chrome/browser/notifications/notification_channels_provider_android.h"
|
||||
|
||||
namespace brave_ads {
|
||||
|
||||
@@ -77,13 +80,12 @@ bool NotificationHelperAndroid::IsBraveAdsNotificationChannelEnabled() const {
|
||||
|
||||
JNIEnv* env = base::android::AttachCurrentThread();
|
||||
auto j_channel_id = Java_BraveAds_getBraveAdsChannelId(env);
|
||||
std::string channel_id = ConvertJavaStringToUTF8(env, j_channel_id);
|
||||
auto status = static_cast<NotificationChannelStatus>(
|
||||
Java_BraveNotificationSettingsBridge_getChannelStatus(
|
||||
env, j_channel_id));
|
||||
|
||||
return false;
|
||||
// TODO(jocelyn): FIXME
|
||||
// auto status = channels_provider_->GetChannelStatus(channel_id);
|
||||
// return (status == NotificationChannelStatus::ENABLED ||
|
||||
// status == NotificationChannelStatus::UNAVAILABLE);
|
||||
return (status == NotificationChannelStatus::ENABLED ||
|
||||
status == NotificationChannelStatus::UNAVAILABLE);
|
||||
}
|
||||
|
||||
int NotificationHelperAndroid::GetOperatingSystemVersion() const {
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
#include "base/memory/weak_ptr.h"
|
||||
|
||||
#include "brave/components/brave_ads/browser/notification_helper.h"
|
||||
#include "chrome/browser/notifications/notification_channels_provider_android.h"
|
||||
|
||||
namespace brave_ads {
|
||||
|
||||
@@ -27,9 +26,6 @@ class NotificationHelperAndroid
|
||||
|
||||
bool IsBraveAdsNotificationChannelEnabled() const;
|
||||
|
||||
std::unique_ptr<NotificationChannelsProviderAndroid> channels_provider_ =
|
||||
std::make_unique<NotificationChannelsProviderAndroid>();
|
||||
|
||||
int GetOperatingSystemVersion() const;
|
||||
|
||||
// NotificationHelper impl
|
||||
|
||||
Reference in New Issue
Block a user