1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/permissions/android/permission_prompt/permission_dialog.h"
#include "base/android/jni_string.h"
#include "components/permissions/android/permission_prompt/permission_dialog_delegate.h"
#include "components/strings/grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/strings/grit/ui_strings.h"
namespace permissions {
using base::android::ConvertUTF16ToJavaString;
PermissionDialog::PermissionDialog(content::WebContents* web_contents,
Delegate* delegate)
: PermissionPromptAndroid(web_contents, delegate) {
DCHECK(web_contents);
CreatePermissionDialogDelegate();
}
PermissionDialog::~PermissionDialog() = default;
// static
std::unique_ptr<PermissionDialog> PermissionDialog::Create(
content::WebContents* web_contents,
Delegate* delegate) {
auto prompt = std::make_unique<PermissionDialog>(web_contents, delegate);
if (!prompt->permission_dialog_delegate() ||
prompt->permission_dialog_delegate()->IsJavaDelegateDestroyed()) {
return nullptr;
}
return prompt;
}
PermissionPromptDisposition PermissionDialog::GetPromptDisposition() const {
return PermissionPromptDisposition::MODAL_DIALOG;
}
base::android::ScopedJavaLocalRef<jstring>
PermissionDialog::GetPositiveButtonText(JNIEnv* env, bool is_one_time) const {
return is_one_time
? ConvertUTF16ToJavaString(
env, l10n_util::GetStringUTF16(
IDS_PERMISSION_ALLOW_WHILE_VISITING))
: ConvertUTF16ToJavaString(
env, l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW));
}
base::android::ScopedJavaLocalRef<jstring>
PermissionDialog::GetNegativeButtonText(JNIEnv* env, bool is_one_time) const {
return is_one_time
? ConvertUTF16ToJavaString(
env, l10n_util::GetStringUTF16(IDS_PERMISSION_NEVER_ALLOW))
: ConvertUTF16ToJavaString(
env, l10n_util::GetStringUTF16(IDS_PERMISSION_DENY));
}
base::android::ScopedJavaLocalRef<jstring>
PermissionDialog::GetPositiveEphemeralButtonText(JNIEnv* env,
bool is_one_time) const {
return is_one_time
? ConvertUTF16ToJavaString(
env,
l10n_util::GetStringUTF16(IDS_PERMISSION_ALLOW_THIS_TIME))
: ConvertUTF16ToJavaString(env, std::u16string_view());
;
}
} // namespace permissions
|