Chromium Code Reviews| Index: ash/common/system/chromeos/palette/palette_tray.cc |
| diff --git a/ash/common/system/chromeos/palette/palette_tray.cc b/ash/common/system/chromeos/palette/palette_tray.cc |
| index 80ecc3bb8117eda76ff491066ee15d2dd80d69b0..3710d9ab82d7920044c1383847bcb3674d909f72 100644 |
| --- a/ash/common/system/chromeos/palette/palette_tray.cc |
| +++ b/ash/common/system/chromeos/palette/palette_tray.cc |
| @@ -18,6 +18,7 @@ |
| #include "ash/common/wm_root_window_controller.h" |
| #include "ash/common/wm_shell.h" |
| #include "ash/common/wm_window.h" |
| +#include "base/metrics/histogram.h" |
|
Ilya Sherman
2016/09/02 21:39:30
nit: histogram_macros
xiaoyinh(OOO Sep 11-29)
2016/09/06 17:40:05
Done.
|
| #include "grit/ash_resources.h" |
| #include "grit/ash_strings.h" |
| #include "ui/base/l10n/l10n_util.h" |
| @@ -108,9 +109,13 @@ class TitleView : public views::View, public views::ButtonListener { |
| // views::ButtonListener: |
| void ButtonPressed(views::Button* sender, const ui::Event& event) override { |
| if (sender == settings_button_) { |
| + palette_tray_->RecordPaletteMetrics( |
| + ash::PaletteTrayOptions::PALETTE_SETTINGS_BUTTON); |
| WmShell::Get()->system_tray_delegate()->ShowPaletteSettings(); |
|
jdufault
2016/09/02 21:54:30
ShowPaletteSettings should already be recording a
xiaoyinh(OOO Sep 11-29)
2016/09/06 17:40:05
Should I remove mine if that's case? It might stil
|
| palette_tray_->HidePalette(); |
| } else if (sender == help_button_) { |
| + palette_tray_->RecordPaletteMetrics( |
| + ash::PaletteTrayOptions::PALETTE_HELP_BUTTON); |
| WmShell::Get()->system_tray_delegate()->ShowPaletteHelp(); |
| palette_tray_->HidePalette(); |
| } else { |
| @@ -173,7 +178,10 @@ PaletteTray::~PaletteTray() { |
| bool PaletteTray::PerformAction(const ui::Event& event) { |
| if (bubble_) { |
| - bubble_.reset(); |
| + if (num_actions_in_palette == 0) { |
| + RecordPaletteMetrics(ash::PaletteTrayOptions::PALETTE_CLOSED_NO_ACTION); |
| + } |
| + HidePalette(); |
| return true; |
| } |
| @@ -236,7 +244,9 @@ void PaletteTray::OnLockStateChanged(bool locked) { |
| } |
| void PaletteTray::ClickedOutsideBubble() { |
| - bubble_.reset(); |
| + if (num_actions_in_palette == 0) |
| + RecordPaletteMetrics(ash::PaletteTrayOptions::PALETTE_CLOSED_NO_ACTION); |
| + HidePalette(); |
| } |
| base::string16 PaletteTray::GetAccessibleNameForTray() { |
| @@ -245,7 +255,7 @@ base::string16 PaletteTray::GetAccessibleNameForTray() { |
| void PaletteTray::HideBubbleWithView(const views::TrayBubbleView* bubble_view) { |
| if (bubble_->bubble_view() == bubble_view) |
| - bubble_.reset(); |
| + HidePalette(); |
| } |
| void PaletteTray::BubbleViewDestroyed() { |
| @@ -303,14 +313,29 @@ void PaletteTray::HideBubble(const views::TrayBubbleView* bubble_view) { |
| } |
| void PaletteTray::HidePalette() { |
| + is_palette_auto_opened = false; |
| + num_actions_in_palette = 0; |
| bubble_.reset(); |
| } |
| +void PaletteTray::RecordPaletteMetrics(ash::PaletteTrayOptions option) { |
| + if (option == ash::PaletteTrayOptions::PALETTE_OPTIONS_COUNT) |
|
jdufault
2016/09/02 21:54:30
Do we want to DCHECK on this?
xiaoyinh(OOO Sep 11-29)
2016/09/06 17:40:05
Added. Thanks
|
| + return; |
| + |
| + if (is_palette_auto_opened) |
|
Ilya Sherman
2016/09/02 21:39:30
nit: Please use curly braces, since the body spans
jdufault
2016/09/02 21:54:30
nit: add {} for both if/else
xiaoyinh(OOO Sep 11-29)
2016/09/06 17:40:05
Done.
xiaoyinh(OOO Sep 11-29)
2016/09/06 17:40:05
Done.
|
| + UMA_HISTOGRAM_ENUMERATION("Ash.Shelf.PaletteUsage.AutoOpened", option, |
| + ash::PaletteTrayOptions::PALETTE_OPTIONS_COUNT); |
| + else |
| + UMA_HISTOGRAM_ENUMERATION("Ash.Shelf.PaletteUsage", option, |
| + ash::PaletteTrayOptions::PALETTE_OPTIONS_COUNT); |
| +} |
| + |
| bool PaletteTray::ShouldBlockShelfAutoHide() const { |
| return !!bubble_; |
| } |
| void PaletteTray::OnActiveToolChanged() { |
| + ++num_actions_in_palette; |
| UpdateTrayIcon(); |
| } |
| @@ -353,10 +378,12 @@ void PaletteTray::OnStylusStateChanged(ui::StylusState stylus_state) { |
| if (!WmShell::Get()->palette_delegate()->ShouldAutoOpenPalette()) |
| return; |
| - if (stylus_state == ui::StylusState::REMOVED && !bubble_) |
| + if (stylus_state == ui::StylusState::REMOVED && !bubble_) { |
| + is_palette_auto_opened = true; |
| ShowPalette(); |
| - else if (stylus_state == ui::StylusState::INSERTED && bubble_) |
| - bubble_.reset(); |
| + } else if (stylus_state == ui::StylusState::INSERTED && bubble_) { |
| + HidePalette(); |
| + } |
| } |
| void PaletteTray::OnPaletteEnabledPrefChanged(bool enabled) { |