Skip to content

Commit af670aa

Browse files
Yash MalikYash Malik
Yash Malik
authored and
Yash Malik
committed
VR: Prompt user to update their keyboard version if needed
This CL renames AudioPermissionPrompt and its corresponding texture to Prompt and uses the same texture for the exit prompt. Bug: 799584 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: If435488f3e10a2f704d7e4df2177756e4d7aaa15 Reviewed-on: https://chromium-review.googlesource.com/945110 Commit-Queue: Yash Malik <[email protected]> Reviewed-by: Christopher Grant <[email protected]> Cr-Original-Commit-Position: refs/heads/master@{#540573}(cherry picked from commit dd8e1f5) Reviewed-on: https://chromium-review.googlesource.com/952745 Reviewed-by: Yash Malik <[email protected]> Cr-Commit-Position: refs/branch-heads/3359@{#53} Cr-Branched-From: 66afc5e-refs/heads/master@{#540276}
1 parent 869f88f commit af670aa

21 files changed

+340
-236
lines changed

chrome/browser/vr/BUILD.gn

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ static_library("vr_common") {
3030
"databinding/binding_base.h",
3131
"databinding/vector_binding.h",
3232
"databinding/vector_element_binding.h",
33-
"elements/audio_permission_prompt.cc",
34-
"elements/audio_permission_prompt.h",
35-
"elements/audio_permission_prompt_texture.cc",
36-
"elements/audio_permission_prompt_texture.h",
3733
"elements/button.cc",
3834
"elements/button.h",
3935
"elements/content_element.cc",
@@ -69,6 +65,10 @@ static_library("vr_common") {
6965
"elements/omnibox_formatting.h",
7066
"elements/omnibox_text_field.cc",
7167
"elements/omnibox_text_field.h",
68+
"elements/prompt.cc",
69+
"elements/prompt.h",
70+
"elements/prompt_texture.cc",
71+
"elements/prompt_texture.h",
7272
"elements/rect.cc",
7373
"elements/rect.h",
7474
"elements/render_text_wrapper.cc",

chrome/browser/vr/elements/audio_permission_prompt.cc

Lines changed: 0 additions & 26 deletions
This file was deleted.

chrome/browser/vr/elements/audio_permission_prompt.h

Lines changed: 0 additions & 32 deletions
This file was deleted.

chrome/browser/vr/elements/audio_permission_prompt_texture.h

Lines changed: 0 additions & 34 deletions
This file was deleted.

chrome/browser/vr/elements/exit_prompt_texture.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,11 @@ class ExitPromptTexture : public UiTexture {
5151
ButtonColors primary_button_colors_;
5252
ButtonColors secondary_button_colors_;
5353

54+
int content_message_id_ = -1;
55+
5456
private:
5557
void Draw(SkCanvas* sk_canvas, const gfx::Size& texture_size) override;
5658

57-
int content_message_id_ = -1;
58-
5959
DISALLOW_COPY_AND_ASSIGN(ExitPromptTexture);
6060
};
6161

chrome/browser/vr/elements/prompt.cc

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2017 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#include "chrome/browser/vr/elements/prompt.h"
6+
7+
#include "chrome/browser/vr/elements/prompt_texture.h"
8+
9+
namespace vr {
10+
11+
Prompt::Prompt(int preferred_width,
12+
int content_message_id,
13+
const gfx::VectorIcon& icon,
14+
int primary_button_message_id,
15+
int secondary_button_message_id,
16+
const ExitPromptCallback& result_callback)
17+
: ExitPrompt(preferred_width,
18+
result_callback,
19+
std::make_unique<PromptTexture>(content_message_id,
20+
icon,
21+
primary_button_message_id,
22+
secondary_button_message_id)) {
23+
set_reason(UiUnsupportedMode::kVoiceSearchNeedsRecordAudioOsPermission);
24+
}
25+
26+
Prompt::~Prompt() = default;
27+
28+
void Prompt::SetIconColor(SkColor color) {
29+
static_cast<PromptTexture*>(GetTexture())->SetIconColor(color);
30+
}
31+
32+
} // namespace vr

chrome/browser/vr/elements/prompt.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// Copyright 2017 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#ifndef CHROME_BROWSER_VR_ELEMENTS_PROMPT_H_
6+
#define CHROME_BROWSER_VR_ELEMENTS_PROMPT_H_
7+
8+
#include <memory>
9+
10+
#include "base/callback.h"
11+
#include "base/macros.h"
12+
#include "chrome/browser/vr/elements/exit_prompt.h"
13+
#include "ui/gfx/vector_icon_types.h"
14+
15+
namespace vr {
16+
17+
class Prompt : public ExitPrompt {
18+
public:
19+
Prompt(int preferred_width,
20+
int content_message_id,
21+
const gfx::VectorIcon& icon,
22+
int primary_button_message_id,
23+
int secondary_button_message_id,
24+
const ExitPromptCallback& result_callback);
25+
~Prompt() override;
26+
27+
void SetIconColor(SkColor color);
28+
29+
private:
30+
void OnStateUpdated(const gfx::PointF& position);
31+
32+
DISALLOW_COPY_AND_ASSIGN(Prompt);
33+
};
34+
35+
} // namespace vr
36+
37+
#endif // CHROME_BROWSER_VR_ELEMENTS_PROMPT_H_

chrome/browser/vr/elements/audio_permission_prompt_texture.cc renamed to chrome/browser/vr/elements/prompt_texture.cc

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
#include "chrome/browser/vr/elements/audio_permission_prompt_texture.h"
5+
#include "chrome/browser/vr/elements/prompt_texture.h"
66

77
#include "base/i18n/case_conversion.h"
88
#include "cc/paint/skia_paint_canvas.h"
@@ -41,12 +41,19 @@ constexpr char kPreferredFontNameForButtons[] = "sans-serif-medium";
4141

4242
} // namespace
4343

44-
AudioPermissionPromptTexture::AudioPermissionPromptTexture() = default;
44+
PromptTexture::PromptTexture(int content_message_id,
45+
const gfx::VectorIcon& icon,
46+
int primary_button_message_id,
47+
int secondary_button_message_id)
48+
: icon_(icon),
49+
primary_button_message_id_(primary_button_message_id),
50+
secondary_button_message_id_(secondary_button_message_id) {
51+
SetContentMessageId(content_message_id);
52+
}
4553

46-
AudioPermissionPromptTexture::~AudioPermissionPromptTexture() = default;
54+
PromptTexture::~PromptTexture() = default;
4755

48-
void AudioPermissionPromptTexture::Draw(SkCanvas* sk_canvas,
49-
const gfx::Size& texture_size) {
56+
void PromptTexture::Draw(SkCanvas* sk_canvas, const gfx::Size& texture_size) {
5057
size_.set_width(texture_size.width());
5158
size_.set_height(texture_size.height());
5259

@@ -63,12 +70,11 @@ void AudioPermissionPromptTexture::Draw(SkCanvas* sk_canvas,
6370

6471
// Icon
6572
gfx::PointF icon_location(ToPixels(kPadding), ToPixels(kPadding));
66-
VectorIcon::DrawVectorIcon(canvas, vector_icons::kMicIcon,
67-
ToPixels(kIconSize), icon_location, icon_color_);
73+
VectorIcon::DrawVectorIcon(canvas, icon_, ToPixels(kIconSize), icon_location,
74+
icon_color_);
6875

6976
// Prompt description.
70-
auto text = l10n_util::GetStringUTF16(
71-
IDS_VR_SHELL_AUDIO_PERMISSION_PROMPT_DESCRIPTION);
77+
auto text = l10n_util::GetStringUTF16(content_message_id_);
7278
gfx::FontList fonts;
7379
GetDefaultFontList(ToPixels(kFontSizePromptText), text, &fonts);
7480
gfx::Rect prompt_text_size(
@@ -91,8 +97,8 @@ void AudioPermissionPromptTexture::Draw(SkCanvas* sk_canvas,
9197

9298
// Secondary button area.
9399
// TODO(https://crbug.com/787654): Uppercasing should be conditional.
94-
text = base::i18n::ToUpper(l10n_util::GetStringUTF16(
95-
IDS_VR_SHELL_AUDIO_PERMISSION_PROMPT_ABORT_BUTTON));
100+
text = base::i18n::ToUpper(
101+
l10n_util::GetStringUTF16(secondary_button_message_id_));
96102
GetFontList(kPreferredFontNameForButtons, ToPixels(kFontSizePromptButtonText),
97103
text, &fonts);
98104
lines = PrepareDrawStringRect(
@@ -118,8 +124,8 @@ void AudioPermissionPromptTexture::Draw(SkCanvas* sk_canvas,
118124

119125
// Primary button area.
120126
// TODO(https://crbug.com/787654): Uppercasing should be conditional.
121-
text = base::i18n::ToUpper(l10n_util::GetStringUTF16(
122-
IDS_VR_SHELL_AUDIO_PERMISSION_PROMPT_CONTINUE_BUTTON));
127+
text = base::i18n::ToUpper(
128+
l10n_util::GetStringUTF16(primary_button_message_id_));
123129
GetFontList(kPreferredFontNameForButtons, ToPixels(kFontSizePromptButtonText),
124130
text, &fonts);
125131
button_text_size.set_size(gfx::Size(ToPixels(kButtonWidth), 0));
@@ -144,17 +150,12 @@ void AudioPermissionPromptTexture::Draw(SkCanvas* sk_canvas,
144150
canvas->Restore();
145151
}
146152

147-
void AudioPermissionPromptTexture::SetIconColor(SkColor color) {
153+
void PromptTexture::SetIconColor(SkColor color) {
148154
SetAndDirty(&icon_color_, color);
149155
}
150156

151-
gfx::Size AudioPermissionPromptTexture::GetPreferredTextureSize(
152-
int maximum_width) const {
157+
gfx::Size PromptTexture::GetPreferredTextureSize(int maximum_width) const {
153158
return gfx::Size(maximum_width, maximum_width * kHeight / kWidth);
154159
}
155160

156-
void AudioPermissionPromptTexture::SetContentMessageId(int message_id) {
157-
NOTREACHED();
158-
}
159-
160161
} // namespace vr
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// Copyright 2017 The Chromium Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#ifndef CHROME_BROWSER_VR_ELEMENTS_PROMPT_TEXTURE_H_
6+
#define CHROME_BROWSER_VR_ELEMENTS_PROMPT_TEXTURE_H_
7+
8+
#include "base/macros.h"
9+
#include "chrome/browser/vr/elements/exit_prompt_texture.h"
10+
#include "chrome/browser/vr/model/color_scheme.h"
11+
#include "ui/gfx/geometry/rect_f.h"
12+
#include "ui/gfx/vector_icon_types.h"
13+
14+
namespace vr {
15+
16+
class PromptTexture : public ExitPromptTexture {
17+
public:
18+
PromptTexture(int content_message_id,
19+
const gfx::VectorIcon& icon,
20+
int primary_button_message_id,
21+
int secondary_button_message_id);
22+
~PromptTexture() override;
23+
gfx::Size GetPreferredTextureSize(int width) const override;
24+
25+
void SetIconColor(SkColor color);
26+
27+
private:
28+
void Draw(SkCanvas* sk_canvas, const gfx::Size& texture_size) override;
29+
30+
SkColor icon_color_ = SK_ColorBLACK;
31+
const gfx::VectorIcon& icon_;
32+
int primary_button_message_id_ = -1;
33+
int secondary_button_message_id_ = -1;
34+
35+
DISALLOW_COPY_AND_ASSIGN(PromptTexture);
36+
};
37+
38+
} // namespace vr
39+
40+
#endif // CHROME_BROWSER_VR_ELEMENTS_PROMPT_TEXTURE_H_

chrome/browser/vr/elements/ui_element_name.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ static const char* g_ui_element_name_strings[] = {
4040
"kCeiling",
4141
"kFloor",
4242
"kStars",
43+
"kUpdateKeyboardPrompt",
4344
"kUrlBarDmmRoot",
4445
"kUrlBar",
4546
"kUrlBarLayout",
@@ -67,6 +68,7 @@ static const char* g_ui_element_name_strings[] = {
6768
"k2dBrowsingVisibiltyControlForSiteInfoPrompt",
6869
"k2dBrowsingOpacityControlForAudioPermissionPrompt",
6970
"k2dBrowsingOpacityControlForNativeDialogPrompt",
71+
"k2dBrowsingOpacityControlForUpdateKeyboardPrompt",
7072
"kIndicatorLayout",
7173
"kAudioCaptureIndicator",
7274
"kVideoCaptureIndicator",

chrome/browser/vr/elements/ui_element_name.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ enum UiElementName {
3939
kCeiling,
4040
kFloor,
4141
kStars,
42+
kUpdateKeyboardPrompt,
4243
kUrlBarDmmRoot,
4344
kUrlBar,
4445
kUrlBarLayout,
@@ -66,6 +67,7 @@ enum UiElementName {
6667
k2dBrowsingVisibiltyControlForSiteInfoPrompt,
6768
k2dBrowsingOpacityControlForAudioPermissionPrompt,
6869
k2dBrowsingOpacityControlForNativeDialogPrompt,
70+
k2dBrowsingOpacityControlForUpdateKeyboardPrompt,
6971
kIndicatorLayout,
7072
kAudioCaptureIndicator,
7173
kVideoCaptureIndicator,

chrome/browser/vr/elements/ui_element_type.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ static const char* g_ui_element_type_strings[] = {
2424
"kTypeOmniboxSuggestionIcon",
2525
"kTypeOmniboxSuggestionContentText",
2626
"kTypeOmniboxSuggestionDescriptionText",
27+
"kTypePromptBackplane",
28+
"kTypePromptShadow",
2729
"kTypeSpacer",
2830
"kTypeTextInputHint",
2931
"kTypeTextInputText",

chrome/browser/vr/elements/ui_element_type.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ enum UiElementType {
2424
kTypeOmniboxSuggestionIcon,
2525
kTypeOmniboxSuggestionContentText,
2626
kTypeOmniboxSuggestionDescriptionText,
27+
kTypePromptBackplane,
28+
kTypePromptShadow,
2729
kTypeSpacer,
2830
kTypeTextInputHint,
2931
kTypeTextInputText,

0 commit comments

Comments
 (0)