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 |