blob: b1c154f59c96e32f564a41017e8aa266384426cc [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/android/scoped_java_ref.h"
#include "chrome/android/chrome_jni_headers/PermissionSettingsBridge_jni.h"
#include "chrome/browser/permissions/quiet_notification_permission_ui_state.h"
#include "chrome/browser/profiles/profile_android.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/permissions/permission_request_manager.h"
using base::android::JavaParamRef;
static jboolean JNI_PermissionSettingsBridge_ShouldShowNotificationsPromo(
JNIEnv* env,
const JavaParamRef<jobject>& jprofile,
const JavaParamRef<jobject>& jweb_contents) {
permissions::PermissionRequestManager* manager =
permissions::PermissionRequestManager::FromWebContents(
content::WebContents::FromJavaWebContents(jweb_contents));
return manager->IsRequestInProgress() &&
manager->Requests()[0]->GetContentSettingsType() ==
ContentSettingsType::NOTIFICATIONS &&
QuietNotificationPermissionUiState::ShouldShowPromo(
ProfileAndroid::FromProfileAndroid(jprofile));
}
static void JNI_PermissionSettingsBridge_DidShowNotificationsPromo(
JNIEnv* env,
const JavaParamRef<jobject>& jprofile) {
QuietNotificationPermissionUiState::PromoWasShown(
ProfileAndroid::FromProfileAndroid(jprofile));
}