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

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

Issue 2453133002: [ash-md] Makes Wi-Fi header row sticky when network list is scrolled (Closed)
Patch Set: [ash-md] Makes Wi-Fi header row sticky when network list is scrolled (fixed targeting) Created 4 years, 2 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 c5a5bfbb4cdda6c4bfd8d277d733274f08e20412..a940770049c0daadae384dd6b21f0d75b3e92bc6 100644
--- a/ash/common/system/chromeos/network/network_list_md.cc
+++ b/ash/common/system/chromeos/network/network_list_md.cc
@@ -10,7 +10,9 @@
#include "ash/common/system/chromeos/network/network_icon_animation.h"
#include "ash/common/system/chromeos/network/network_info.h"
#include "ash/common/system/chromeos/network/network_list_delegate.h"
+#include "ash/common/system/tray/tray_constants.h"
#include "base/memory/ptr_util.h"
+#include "base/strings/utf_string_conversions.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/power_manager/power_supply_properties.pb.h"
#include "chromeos/dbus/power_manager_client.h"
@@ -27,6 +29,7 @@
#include "ui/gfx/font.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/gfx/vector_icons_public.h"
+#include "ui/views/background.h"
#include "ui/views/border.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/button/toggle_button.h"
@@ -46,16 +49,15 @@ namespace ash {
namespace {
+const int kHeaderRowId = 1000;
+const int kWiFiGroupId = 1;
const int kWiFiButtonSize = 48;
const int kWifiRowVerticalInset = 4;
const int kWifiRowLeftInset = 18;
const int kWifiRowRightInset = 14;
-const int kWifiRowSeparatorThickness = 1;
const int kWifiRowChildSpacing = 14;
const int kFocusBorderInset = 1;
-const SkColor kWifiRowSeparatorColor = SkColorSetA(SK_ColorBLACK, 0x1F);
-
bool IsProhibitedByPolicy(const chromeos::NetworkState* network) {
if (!NetworkTypePattern::WiFi().MatchesType(network->type()))
return false;
@@ -116,11 +118,13 @@ class NetworkListViewMd::WifiHeaderRowView : public views::View {
return GetPreferredSize().height();
}
+ const char* GetClassName() const override { return "WifiHeaderRowView"; }
+
private:
void Init() {
+ set_id(kHeaderRowId);
+ set_background(views::Background::CreateSolidBackground(kBackgroundColor));
// TODO(tdanderson): Need to unify this with the generic menu row class.
- SetBorder(views::Border::CreateSolidSidedBorder(
- kWifiRowSeparatorThickness, 0, 0, 0, kWifiRowSeparatorColor));
views::View* container = new views::View;
container->SetBorder(views::Border::CreateEmptyBorder(
0, kWifiRowLeftInset, 0, kWifiRowRightInset));
@@ -377,6 +381,7 @@ NetworkListViewMd::UpdateNetworkListEntries() {
handler->IsTechnologyEnabled(NetworkTypePattern::WiFi()), index,
&wifi_header_view_);
++index;
+ wifi_header_view_->SetGroup(kWiFiGroupId);
// "Wifi Enabled / Disabled".
int message_id = 0;
@@ -388,6 +393,8 @@ NetworkListViewMd::UpdateNetworkListEntries() {
UpdateInfoLabel(message_id, index, &no_wifi_networks_view_);
if (message_id)
++index;
+ if (no_wifi_networks_view_)
+ no_wifi_networks_view_->SetGroup(kWiFiGroupId);
// Add Wi-Fi networks.
std::unique_ptr<std::set<std::string>> new_wifi_service_paths =
@@ -409,6 +416,7 @@ NetworkListViewMd::UpdateNetworkListEntries() {
std::unique_ptr<std::set<std::string>> NetworkListViewMd::UpdateNetworkChildren(
bool is_wifi,
int index) {
+ int group_id = is_wifi ? kWiFiGroupId : -1;
std::unique_ptr<std::set<std::string>> new_service_paths(
new std::set<std::string>);
for (const auto& info : network_list_) {
@@ -416,6 +424,18 @@ std::unique_ptr<std::set<std::string>> NetworkListViewMd::UpdateNetworkChildren(
continue;
UpdateNetworkChild(index++, info.get());
new_service_paths->insert(info->service_path);
+
+ // TODO(varkha) Demo code - remove before committing!
+ views::View* network_view = service_path_map_[info->service_path];
+ if (info->label == base::UTF8ToUTF16("wifi12") ||
+ info->label == base::UTF8ToUTF16("wifi15") ||
+ info->label == base::UTF8ToUTF16("wifi20")) {
+ network_view->set_id(kHeaderRowId);
+ network_view->set_background(
+ views::Background::CreateSolidBackground(kBackgroundColor));
+ ++group_id;
+ }
+ network_view->SetGroup(group_id);
}
return new_service_paths;
}
« no previous file with comments | « no previous file | ash/common/system/tray/hover_highlight_view.cc » ('j') | ash/common/system/tray/tray_details_view.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698