Chromium Code Reviews| Index: ash/common/system/chromeos/network/network_list_md.cc |
| diff --git a/ash/common/system/chromeos/network/network_list_md.cc b/ash/common/system/chromeos/network/network_list_md.cc |
| index b91d6eacff82af46f21fafee6422c4b42749d584..ed1f1f2395cf9e0c2365ef356162b52d50e22423 100644 |
| --- a/ash/common/system/chromeos/network/network_list_md.cc |
| +++ b/ash/common/system/chromeos/network/network_list_md.cc |
| @@ -182,6 +182,24 @@ class CellularHeaderRowView : public NetworkListViewMd::SectionHeaderRowView { |
| DISALLOW_COPY_AND_ASSIGN(CellularHeaderRowView); |
| }; |
| +class TetherHeaderRowView : public NetworkListViewMd::SectionHeaderRowView { |
| + public: |
| + TetherHeaderRowView() |
| + : SectionHeaderRowView(IDS_ASH_STATUS_TRAY_NETWORK_TETHER) {} |
| + |
| + ~TetherHeaderRowView() override {} |
| + |
| + const char* GetClassName() const override { return "TetherHeaderRowView"; } |
| + |
| + protected: |
| + void OnToggleToggled(bool is_on) override { |
| + // TODO (hansberry): Persist toggle to settings/preferences. |
| + } |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(TetherHeaderRowView); |
| +}; |
| + |
| class WifiHeaderRowView : public NetworkListViewMd::SectionHeaderRowView { |
| public: |
| explicit WifiHeaderRowView(NetworkListDelegate* network_list_delegate) |
| @@ -263,8 +281,10 @@ NetworkListViewMd::NetworkListViewMd(NetworkListDelegate* delegate) |
| no_wifi_networks_view_(nullptr), |
| no_cellular_networks_view_(nullptr), |
| cellular_header_view_(nullptr), |
| + tether_header_view_(nullptr), |
| wifi_header_view_(nullptr), |
| cellular_separator_view_(nullptr), |
| + tether_separator_view_(nullptr), |
| wifi_separator_view_(nullptr) { |
| CHECK(delegate_); |
| } |
| @@ -376,6 +396,8 @@ void NetworkListViewMd::UpdateNetworkIcons() { |
| info->type = NetworkInfo::Type::WIFI; |
| else if (network->Matches(NetworkTypePattern::Cellular())) |
| info->type = NetworkInfo::Type::CELLULAR; |
| + else if (network->Matches(NetworkTypePattern::Tether())) |
| + info->type = NetworkInfo::Type::TETHER; |
| if (prohibited_by_policy) { |
| info->tooltip = |
| l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_NETWORK_PROHIBITED); |
| @@ -466,6 +488,24 @@ NetworkListViewMd::UpdateNetworkListEntries() { |
| new_cellular_service_paths->end()); |
| } |
| + // TODO (hansberry): Use a runtime flag? |
| + bool isTetherEnabled = true; |
|
stevenjb
2017/02/15 20:59:04
You will definitely want to set up a FeatureList f
Ryan Hansberry
2017/02/16 22:42:20
We already have a flag in chromeos::switches::kEna
stevenjb
2017/02/16 22:56:35
It looks like we already have a bunch of os specif
|
| + if (isTetherEnabled && pattern.MatchesPattern(NetworkTypePattern::Tether())) { |
| + // TODO (hansberry): Fetch isTetherTechnologyEnabled value from |
| + // settings/preferences. |
|
stevenjb
2017/02/15 20:59:04
We should leverage NetworkStateHandler::IsTechnolo
Ryan Hansberry
2017/02/16 22:42:20
Was worried about the appearance of interacting wi
stevenjb
2017/02/16 22:56:35
Acknowledged.
|
| + bool isTetherTechnologyEnabled = true; |
| + index = UpdateSectionHeaderRow( |
| + NetworkTypePattern::Tether(), isTetherTechnologyEnabled, index, |
| + &tether_header_view_, &tether_separator_view_); |
| + |
| + // Add Tether networks. |
| + std::unique_ptr<std::set<std::string>> new_tether_service_paths = |
|
stevenjb
2017/02/15 20:59:04
For teter these will be guids so i would name them
Ryan Hansberry
2017/02/16 22:42:20
Done.
|
| + UpdateNetworkChildren(NetworkInfo::Type::TETHER, index); |
| + index += new_tether_service_paths->size(); |
| + new_service_paths->insert(new_tether_service_paths->begin(), |
| + new_tether_service_paths->end()); |
| + } |
| + |
| if (pattern.MatchesPattern(NetworkTypePattern::WiFi())) { |
| index = UpdateSectionHeaderRow( |
| NetworkTypePattern::WiFi(), |
| @@ -575,6 +615,8 @@ int NetworkListViewMd::UpdateSectionHeaderRow( |
| if (!*view) { |
| if (pattern.Equals(NetworkTypePattern::Cellular())) |
| *view = new CellularHeaderRowView(); |
| + else if (pattern.Equals(NetworkTypePattern::Tether())) |
| + *view = new TetherHeaderRowView(); |
| else if (pattern.Equals(NetworkTypePattern::WiFi())) |
| *view = new WifiHeaderRowView(delegate_); |
| else |