[Instant Hotspot] Rename Network to Internet in Quick Settings
Renames Quick Settings 'Network' page to 'Internet' if feature flag is enabled. UI translation screenshot also added. Tested: verified that QS string is changed on DUT when FF is enabled. Bug: b/290080202 Change-Id: I031f5597ff706f5d8511317a37620a84600fb0d0 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4742004 Commit-Queue: Rudransh Dikshit <rudranshd@google.com> Reviewed-by: Gordon Seto <gordonseto@google.com> Auto-Submit: Rudransh Dikshit <rudranshd@google.com> Cr-Commit-Position: refs/heads/main@{#1183239}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
c5680d1594
commit
0b26a038ea
ash
@ -2690,6 +2690,9 @@ Turning on battery saver to increase your battery life.
|
||||
<message name="IDS_ASH_STATUS_TRAY_NETWORK" desc="The label used in the network dialog header. [CHAR_LIMIT=18]">
|
||||
Network
|
||||
</message>
|
||||
<message name="IDS_ASH_STATUS_TRAY_INTERNET" desc="The label used in the network dialog header. [CHAR_LIMIT=18]">
|
||||
Internet
|
||||
</message>
|
||||
<message name="IDS_ASH_QUICK_SETTINGS_KNOWN_NETWORKS" desc="The label used in the network detailed page for the known networks group">
|
||||
Known networks
|
||||
</message>
|
||||
|
@ -0,0 +1 @@
|
||||
c012adca227eb88f046bf6ee013d7ba8b71cbc82
|
@ -44,7 +44,7 @@ NetworkDetailedNetworkViewImpl::NetworkDetailedNetworkViewImpl(
|
||||
NetworkDetailedNetworkView::Delegate* delegate)
|
||||
: NetworkDetailedView(detailed_view_delegate,
|
||||
delegate,
|
||||
NetworkDetailedView::ListType::LIST_TYPE_NETWORK),
|
||||
NetworkDetailedViewListType::LIST_TYPE_NETWORK),
|
||||
NetworkDetailedNetworkView(delegate) {
|
||||
RecordDetailedViewSection(DetailedViewSection::kDetailedSection);
|
||||
}
|
||||
|
@ -31,15 +31,15 @@ namespace ash {
|
||||
NetworkDetailedView::NetworkDetailedView(
|
||||
DetailedViewDelegate* detailed_view_delegate,
|
||||
Delegate* delegate,
|
||||
ListType list_type)
|
||||
NetworkDetailedViewListType list_type)
|
||||
: TrayDetailedView(detailed_view_delegate),
|
||||
list_type_(list_type),
|
||||
login_(Shell::Get()->session_controller()->login_status()),
|
||||
model_(Shell::Get()->system_tray_model()->network_state_model()),
|
||||
delegate_(delegate) {
|
||||
CreateTitleRow(list_type_ == ListType::LIST_TYPE_NETWORK
|
||||
? IDS_ASH_STATUS_TRAY_NETWORK
|
||||
: IDS_ASH_STATUS_TRAY_VPN);
|
||||
title_row_string_id_ = GetStringIdForNetworkDetailedViewTitleRow(list_type_);
|
||||
CreateTitleRow(title_row_string_id_);
|
||||
|
||||
CreateScrollableList();
|
||||
// TODO(b/207089013): add metrics for UI surface displayed.
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include "ash/ash_export.h"
|
||||
#include "ash/login_status.h"
|
||||
#include "ash/system/network/network_info_bubble.h"
|
||||
#include "ash/system/network/network_utils.h"
|
||||
#include "ash/system/tray/tray_detailed_view.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/memory/weak_ptr.h"
|
||||
@ -52,11 +53,9 @@ class ASH_EXPORT NetworkDetailedView : public TrayDetailedView,
|
||||
~NetworkDetailedView() override;
|
||||
|
||||
protected:
|
||||
enum ListType { LIST_TYPE_NETWORK, LIST_TYPE_VPN };
|
||||
|
||||
NetworkDetailedView(DetailedViewDelegate* detailed_view_delegate,
|
||||
Delegate* delegate,
|
||||
ListType list_type);
|
||||
NetworkDetailedViewListType list_type);
|
||||
|
||||
TrayNetworkStateModel* model() { return model_; }
|
||||
|
||||
@ -86,14 +85,18 @@ class ASH_EXPORT NetworkDetailedView : public TrayDetailedView,
|
||||
bool ShouldIncludeDeviceAddresses() override;
|
||||
void OnInfoBubbleDestroyed() override;
|
||||
|
||||
int title_row_string_id_for_testing() { return title_row_string_id_; }
|
||||
|
||||
// Type of list (all non-VPN netwoks, or only VPN networks).
|
||||
const ListType list_type_;
|
||||
const NetworkDetailedViewListType list_type_;
|
||||
|
||||
// Used to cache the login status on creation.
|
||||
const LoginStatus login_;
|
||||
|
||||
raw_ptr<TrayNetworkStateModel, ExperimentalAsh> model_;
|
||||
|
||||
int title_row_string_id_;
|
||||
|
||||
raw_ptr<views::Button, ExperimentalAsh> info_button_ = nullptr;
|
||||
raw_ptr<views::Button, ExperimentalAsh> settings_button_ = nullptr;
|
||||
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "ash/constants/ash_features.h"
|
||||
#include "ash/login_status.h"
|
||||
#include "ash/public/cpp/test/test_system_tray_client.h"
|
||||
#include "ash/strings/grit/ash_strings.h"
|
||||
@ -19,6 +20,7 @@
|
||||
#include "base/memory/raw_ptr.h"
|
||||
#include "base/run_loop.h"
|
||||
#include "base/test/metrics/user_action_tester.h"
|
||||
#include "base/test/scoped_feature_list.h"
|
||||
#include "mojo/public/cpp/bindings/clone_traits.h"
|
||||
#include "ui/base/l10n/l10n_util.h"
|
||||
#include "ui/events/test/event_generator.h"
|
||||
@ -45,8 +47,16 @@ class NetworkDetailedViewTest : public AshTestBase {
|
||||
void SetUp() override {
|
||||
AshTestBase::SetUp();
|
||||
|
||||
list_type_ = NetworkDetailedView::ListType::LIST_TYPE_NETWORK;
|
||||
list_type_ = NetworkDetailedViewListType::LIST_TYPE_NETWORK;
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
widget_.reset();
|
||||
|
||||
AshTestBase::TearDown();
|
||||
}
|
||||
|
||||
void CreateNetworkDetailedView() {
|
||||
network_detailed_view_ = new NetworkDetailedView(
|
||||
&fake_detailed_view_delegate_, &fake_network_detailed_view_delegate_,
|
||||
list_type_);
|
||||
@ -58,12 +68,6 @@ class NetworkDetailedViewTest : public AshTestBase {
|
||||
base::RunLoop().RunUntilIdle();
|
||||
}
|
||||
|
||||
void TearDown() override {
|
||||
widget_.reset();
|
||||
|
||||
AshTestBase::TearDown();
|
||||
}
|
||||
|
||||
views::Button* FindSettingsButton() {
|
||||
return FindViewById<views::Button*>(
|
||||
NetworkDetailedView::NetworkDetailedViewChildId::kSettingsButton);
|
||||
@ -78,6 +82,10 @@ class NetworkDetailedViewTest : public AshTestBase {
|
||||
return network_detailed_view_->info_bubble_;
|
||||
}
|
||||
|
||||
int GetTitleRowStringId() {
|
||||
return network_detailed_view_->title_row_string_id_for_testing();
|
||||
}
|
||||
|
||||
FakeNetworkDetailedViewDelegate* network_detailed_view_delegate() {
|
||||
return &fake_network_detailed_view_delegate_;
|
||||
}
|
||||
@ -108,11 +116,13 @@ class NetworkDetailedViewTest : public AshTestBase {
|
||||
raw_ptr<NetworkDetailedView, ExperimentalAsh> network_detailed_view_;
|
||||
FakeNetworkDetailedViewDelegate fake_network_detailed_view_delegate_;
|
||||
FakeDetailedViewDelegate fake_detailed_view_delegate_;
|
||||
NetworkDetailedView::ListType list_type_;
|
||||
NetworkDetailedViewListType list_type_;
|
||||
base::UserActionTester user_action_tester_;
|
||||
};
|
||||
|
||||
TEST_F(NetworkDetailedViewTest, PressingSettingsButtonOpensSettings) {
|
||||
CreateNetworkDetailedView();
|
||||
|
||||
views::Button* settings_button = FindSettingsButton();
|
||||
|
||||
CheckHistogramBuckets(/*count=*/0);
|
||||
@ -135,6 +145,8 @@ TEST_F(NetworkDetailedViewTest, PressingSettingsButtonOpensSettings) {
|
||||
}
|
||||
|
||||
TEST_F(NetworkDetailedViewTest, PressingInfoButtonOpensInfoBubble) {
|
||||
CreateNetworkDetailedView();
|
||||
|
||||
views::Button* info_button = FindInfoButton();
|
||||
LeftClickOn(info_button);
|
||||
for (int i = 0; i < 3; ++i) {
|
||||
@ -150,4 +162,22 @@ TEST_F(NetworkDetailedViewTest, PressingInfoButtonOpensInfoBubble) {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(NetworkDetailedViewTest, TitleRowString_InstantHotspotRebrandEnabled) {
|
||||
base::test::ScopedFeatureList scoped_feature_list;
|
||||
scoped_feature_list.InitAndEnableFeature(features::kInstantHotspotRebrand);
|
||||
|
||||
CreateNetworkDetailedView();
|
||||
|
||||
EXPECT_EQ(GetTitleRowStringId(), IDS_ASH_STATUS_TRAY_INTERNET);
|
||||
}
|
||||
|
||||
TEST_F(NetworkDetailedViewTest, TitleRowString_InstantHotspotRebrandDisabled) {
|
||||
base::test::ScopedFeatureList scoped_feature_list;
|
||||
scoped_feature_list.InitAndDisableFeature(features::kInstantHotspotRebrand);
|
||||
|
||||
CreateNetworkDetailedView();
|
||||
|
||||
EXPECT_EQ(GetTitleRowStringId(), IDS_ASH_STATUS_TRAY_NETWORK);
|
||||
}
|
||||
|
||||
} // namespace ash
|
||||
|
@ -187,7 +187,7 @@ class NetworkStateListDetailedView::InfoBubble
|
||||
|
||||
NetworkStateListDetailedView::NetworkStateListDetailedView(
|
||||
DetailedViewDelegate* delegate,
|
||||
ListType list_type,
|
||||
NetworkDetailedViewListType list_type,
|
||||
LoginStatus login)
|
||||
: TrayDetailedView(delegate),
|
||||
list_type_(list_type),
|
||||
@ -219,9 +219,7 @@ const char* NetworkStateListDetailedView::GetClassName() const {
|
||||
|
||||
void NetworkStateListDetailedView::Init() {
|
||||
CreateScrollableList();
|
||||
CreateTitleRow(list_type_ == ListType::LIST_TYPE_NETWORK
|
||||
? IDS_ASH_STATUS_TRAY_NETWORK
|
||||
: IDS_ASH_STATUS_TRAY_VPN);
|
||||
CreateTitleRow(GetStringIdForNetworkDetailedViewTitleRow(list_type_));
|
||||
|
||||
model_->AddObserver(this);
|
||||
Update();
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "ash/login_status.h"
|
||||
#include "ash/system/network/network_utils.h"
|
||||
#include "ash/system/network/tray_network_state_observer.h"
|
||||
#include "ash/system/tray/tray_detailed_view.h"
|
||||
#include "base/memory/raw_ptr.h"
|
||||
@ -49,10 +50,8 @@ class ASH_EXPORT NetworkStateListDetailedView
|
||||
const char* GetClassName() const override;
|
||||
|
||||
protected:
|
||||
enum ListType { LIST_TYPE_NETWORK, LIST_TYPE_VPN };
|
||||
|
||||
NetworkStateListDetailedView(DetailedViewDelegate* delegate,
|
||||
ListType list_type,
|
||||
NetworkDetailedViewListType list_type,
|
||||
LoginStatus login);
|
||||
|
||||
// Refreshes the network list.
|
||||
@ -107,7 +106,7 @@ class ASH_EXPORT NetworkStateListDetailedView
|
||||
bool IsWifiEnabled();
|
||||
|
||||
// Type of list (all networks or vpn)
|
||||
ListType list_type_;
|
||||
NetworkDetailedViewListType list_type_;
|
||||
|
||||
// Track login state.
|
||||
LoginStatus login_;
|
||||
|
@ -40,6 +40,19 @@ std::string GetNetworkTypeName(
|
||||
|
||||
} // namespace
|
||||
|
||||
int GetStringIdForNetworkDetailedViewTitleRow(
|
||||
NetworkDetailedViewListType list_type) {
|
||||
if (base::FeatureList::IsEnabled(ash::features::kInstantHotspotRebrand)) {
|
||||
return (list_type == NetworkDetailedViewListType::LIST_TYPE_NETWORK
|
||||
? IDS_ASH_STATUS_TRAY_INTERNET
|
||||
: IDS_ASH_STATUS_TRAY_VPN);
|
||||
} else {
|
||||
return (list_type == NetworkDetailedViewListType::LIST_TYPE_NETWORK
|
||||
? IDS_ASH_STATUS_TRAY_NETWORK
|
||||
: IDS_ASH_STATUS_TRAY_VPN);
|
||||
}
|
||||
}
|
||||
|
||||
void RecordNetworkRowClickedAction(NetworkRowClickedAction action) {
|
||||
base::UmaHistogramEnumeration("ChromeOS.SystemTray.Network.RowClickedAction",
|
||||
action);
|
||||
|
@ -33,6 +33,8 @@ enum class DetailedViewSection {
|
||||
kMaxValue = kDetailedSection
|
||||
};
|
||||
|
||||
enum NetworkDetailedViewListType { LIST_TYPE_NETWORK, LIST_TYPE_VPN };
|
||||
|
||||
ASH_EXPORT void RecordNetworkRowClickedAction(NetworkRowClickedAction action);
|
||||
|
||||
ASH_EXPORT void RecordDetailedViewSection(DetailedViewSection section);
|
||||
@ -56,6 +58,8 @@ ASH_EXPORT bool IsNetworkInhibited(
|
||||
const chromeos::network_config::mojom::NetworkStatePropertiesPtr&
|
||||
network_properties);
|
||||
|
||||
ASH_EXPORT int GetStringIdForNetworkDetailedViewTitleRow(
|
||||
NetworkDetailedViewListType list_type);
|
||||
} // namespace ash
|
||||
|
||||
#endif // ASH_SYSTEM_NETWORK_NETWORK_UTILS_H_
|
||||
|
Reference in New Issue
Block a user