Add placeholder search box string for cloud gaming.
Bug: 1325360 Change-Id: Ia15d8f2f51de9aa38b56900fc98aafdb4cb2264a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3645240 Reviewed-by: Matthew Mourgos <mmourgos@chromium.org> Reviewed-by: Toni Barzic <tbarzic@chromium.org> Auto-Submit: Yulun Wu <yulunwu@chromium.org> Commit-Queue: Yulun Wu <yulunwu@chromium.org> Cr-Commit-Position: refs/heads/main@{#1004017}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
a05c2a1434
commit
2996998d10
ash
@ -81,12 +81,36 @@ constexpr auto kBorderInsetsForAppListBubble = gfx::Insets::TLBR(4, 4, 4, 0);
|
|||||||
constexpr auto kTextFieldMarginsForAppListBubble =
|
constexpr auto kTextFieldMarginsForAppListBubble =
|
||||||
gfx::Insets::TLBR(8, 0, 0, 0);
|
gfx::Insets::TLBR(8, 0, 0, 0);
|
||||||
|
|
||||||
|
// The default PlaceholderTextTypes used for productivity launcher. Randomly
|
||||||
|
// selected when placeholder text would be shown.
|
||||||
|
constexpr SearchBoxView::PlaceholderTextType kDefaultPlaceholders[3] = {
|
||||||
|
SearchBoxView::PlaceholderTextType::kShortcuts,
|
||||||
|
SearchBoxView::PlaceholderTextType::kTabs,
|
||||||
|
SearchBoxView::PlaceholderTextType::kSettings,
|
||||||
|
};
|
||||||
|
|
||||||
|
// PlaceholderTextTypes used for productivity launcher for cloud gaming devices.
|
||||||
|
// Randomly selected when placeholder text would be shown.
|
||||||
|
constexpr SearchBoxView::PlaceholderTextType kGamingPlaceholders[4] = {
|
||||||
|
SearchBoxView::PlaceholderTextType::kShortcuts,
|
||||||
|
SearchBoxView::PlaceholderTextType::kTabs,
|
||||||
|
SearchBoxView::PlaceholderTextType::kSettings,
|
||||||
|
SearchBoxView::PlaceholderTextType::kGames,
|
||||||
|
};
|
||||||
|
|
||||||
bool IsTrimmedQueryEmpty(const std::u16string& query) {
|
bool IsTrimmedQueryEmpty(const std::u16string& query) {
|
||||||
std::u16string trimmed_query;
|
std::u16string trimmed_query;
|
||||||
base::TrimWhitespace(query, base::TrimPositions::TRIM_ALL, &trimmed_query);
|
base::TrimWhitespace(query, base::TrimPositions::TRIM_ALL, &trimmed_query);
|
||||||
return trimmed_query.empty();
|
return trimmed_query.empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SearchBoxView::PlaceholderTextType SelectPlaceholderText() {
|
||||||
|
if (features::IsCloudGamingDevice()) {
|
||||||
|
return kGamingPlaceholders[rand() % std::size(kGamingPlaceholders)];
|
||||||
|
}
|
||||||
|
return kDefaultPlaceholders[rand() % std::size(kDefaultPlaceholders)];
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
class SearchBoxView::FocusRingLayer : public ui::Layer, ui::LayerDelegate {
|
class SearchBoxView::FocusRingLayer : public ui::Layer, ui::LayerDelegate {
|
||||||
@ -717,11 +741,7 @@ void SearchBoxView::UpdateTextColor() {
|
|||||||
|
|
||||||
void SearchBoxView::UpdatePlaceholderTextAndAccessibleName() {
|
void SearchBoxView::UpdatePlaceholderTextAndAccessibleName() {
|
||||||
if (features::IsProductivityLauncherEnabled()) {
|
if (features::IsProductivityLauncherEnabled()) {
|
||||||
// Randomly select a placeholder text.
|
switch (SelectPlaceholderText()) {
|
||||||
const PlaceholderTextType placeholder_type = PlaceholderTextType(
|
|
||||||
base::RandInt(0, static_cast<int>(PlaceholderTextType::kMaxValue)));
|
|
||||||
|
|
||||||
switch (placeholder_type) {
|
|
||||||
case PlaceholderTextType::kShortcuts:
|
case PlaceholderTextType::kShortcuts:
|
||||||
search_box()->SetPlaceholderText(l10n_util::GetStringFUTF16(
|
search_box()->SetPlaceholderText(l10n_util::GetStringFUTF16(
|
||||||
IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE,
|
IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE,
|
||||||
@ -758,6 +778,18 @@ void SearchBoxView::UpdatePlaceholderTextAndAccessibleName() {
|
|||||||
l10n_util::GetStringUTF16(
|
l10n_util::GetStringUTF16(
|
||||||
IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_SETTINGS)));
|
IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_SETTINGS)));
|
||||||
break;
|
break;
|
||||||
|
case PlaceholderTextType::kGames:
|
||||||
|
search_box()->SetPlaceholderText(l10n_util::GetStringFUTF16(
|
||||||
|
IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE,
|
||||||
|
l10n_util::GetStringUTF16(
|
||||||
|
IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_GAMES)));
|
||||||
|
search_box()->SetAccessibleName(l10n_util::GetStringFUTF16(
|
||||||
|
is_tablet_mode_
|
||||||
|
? IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE_ACCESSIBILITY_NAME_TABLET
|
||||||
|
: IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_TEMPLATE_ACCESSIBILITY_NAME_CLAMSHELL,
|
||||||
|
l10n_util::GetStringUTF16(
|
||||||
|
IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_GAMES)));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
search_box()->SetPlaceholderText(
|
search_box()->SetPlaceholderText(
|
||||||
|
@ -42,6 +42,13 @@ class ASH_EXPORT SearchBoxView : public SearchBoxViewBase,
|
|||||||
public AppListModelProvider::Observer,
|
public AppListModelProvider::Observer,
|
||||||
public SearchBoxModelObserver {
|
public SearchBoxModelObserver {
|
||||||
public:
|
public:
|
||||||
|
enum class PlaceholderTextType {
|
||||||
|
kShortcuts = 0,
|
||||||
|
kTabs = 1,
|
||||||
|
kSettings = 2,
|
||||||
|
kGames = 3
|
||||||
|
};
|
||||||
|
|
||||||
SearchBoxView(SearchBoxViewDelegate* delegate,
|
SearchBoxView(SearchBoxViewDelegate* delegate,
|
||||||
AppListViewDelegate* view_delegate,
|
AppListViewDelegate* view_delegate,
|
||||||
AppListView* app_list_view = nullptr);
|
AppListView* app_list_view = nullptr);
|
||||||
@ -163,13 +170,6 @@ class ASH_EXPORT SearchBoxView : public SearchBoxViewBase,
|
|||||||
private:
|
private:
|
||||||
class FocusRingLayer;
|
class FocusRingLayer;
|
||||||
|
|
||||||
enum class PlaceholderTextType {
|
|
||||||
kShortcuts = 0,
|
|
||||||
kTabs = 1,
|
|
||||||
kSettings = 2,
|
|
||||||
kMaxValue = kSettings
|
|
||||||
};
|
|
||||||
|
|
||||||
// Updates the text field text color.
|
// Updates the text field text color.
|
||||||
void UpdateTextColor();
|
void UpdateTextColor();
|
||||||
|
|
||||||
|
@ -4810,6 +4810,9 @@ New install
|
|||||||
<message name="IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_SETTINGS" desc="One of possible rotating providers listed in the placeholder text for the search box shown within the ChromeOS launcher. The provider is injected into string 'Search your $1, files, apps, and more...'">
|
<message name="IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_SETTINGS" desc="One of possible rotating providers listed in the placeholder text for the search box shown within the ChromeOS launcher. The provider is injected into string 'Search your $1, files, apps, and more...'">
|
||||||
settings
|
settings
|
||||||
</message>
|
</message>
|
||||||
|
<message name="IDS_APP_LIST_SEARCH_BOX_PLACEHOLDER_GAMES" desc="One of possible rotating providers listed in the placeholder text for the search box shown within the ChromeOS launcher. The provider is injected into string 'Search your $1, files, apps, and more...'">
|
||||||
|
games
|
||||||
|
</message>
|
||||||
|
|
||||||
<!-- WM -->
|
<!-- WM -->
|
||||||
<message name="IDS_ENTER_PIP_A11Y_NOTIFICATION" is_accessibility_with_no_ui="true" desc="Accessibility text read by chromevox when a window starts picture-in-picture mode.">
|
<message name="IDS_ENTER_PIP_A11Y_NOTIFICATION" is_accessibility_with_no_ui="true" desc="Accessibility text read by chromevox when a window starts picture-in-picture mode.">
|
||||||
|
@ -0,0 +1 @@
|
|||||||
|
48c6c426910ab6f241a5d73fc8371aad3f83ad90
|
Reference in New Issue
Block a user