// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_PERMISSIONS_QUIET_PERMISSION_PROMPT_MODEL_ANDROID_H_
#define CHROME_BROWSER_PERMISSIONS_QUIET_PERMISSION_PROMPT_MODEL_ANDROID_H_
#include <string>
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/permissions/permission_ui_selector.h"
#include "url/gurl.h"
// Model representing the expected UI labels on different surfaces and behaviors
// on related events.
struct QuietPermissionPromptModelAndroid {
enum class PrimaryButtonBehavior {
kAllowForThisSite,
kContinueBlocking,
};
enum class SecondaryButtonBehavior {
kShowSettings,
kAllowForThisSite,
};
QuietPermissionPromptModelAndroid();
QuietPermissionPromptModelAndroid(
const QuietPermissionPromptModelAndroid& other);
~QuietPermissionPromptModelAndroid();
std::u16string title;
std::u16string description;
std::u16string primary_button_label;
std::u16string secondary_button_label;
std::u16string learn_more_text;
PrimaryButtonBehavior primary_button_behavior;
SecondaryButtonBehavior secondary_button_behavior;
};
QuietPermissionPromptModelAndroid GetQuietPermissionPromptModel(
permissions::PermissionUiSelector::QuietUiReason reason,
ContentSettingsType content_settings_type);
GURL GetNotificationBlockedLearnMoreUrl();
#endif // CHROME_BROWSER_PERMISSIONS_QUIET_PERMISSION_PROMPT_MODEL_ANDROID_H_