Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Unified Diff: ash/common/system/chromeos/network/network_list_md.cc

Issue 2701463003: Create a Tether section in the system tray network list. (Closed)
Patch Set: Create a Tether section in the system tray network list. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698