1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SYSTEM_TIME_CALENDAR_METRICS_H_
#define ASH_SYSTEM_TIME_CALENDAR_METRICS_H_
#include <cstddef>
#include <string>
#include "google_apis/common/api_error_codes.h"
namespace ui {
class AnimationThroughputReporter;
class Event;
} // namespace ui
namespace base {
class TimeDelta;
class TimeTicks;
} // namespace base
namespace views {
class View;
} // namespace views
namespace ash {
namespace calendar_metrics {
// The event types CalendarView is interested in. These are used in histograms,
// do not remove/renumber entries. If you're adding to this enum with the
// intention that it will be logged, update the CalendarEventSource listing in
// enums.xml.
enum class CalendarEventSource {
kInvalid = 0,
kTap = 1,
kClick = 2,
kKeyboard = 3,
kStylus = 4,
kMaxValue = kStylus
};
// The different hosts which hold components allowing a user to open the
// calendar. These are used in histograms, do not remove/renumber entries. If
// you're adding to this enum with the intention that it will be logged, update
// the CalendarViewShowSource token variant in histograms.xml.
enum class CalendarViewShowSource {
kTimeView = 0, // Shown via activating the time view in the status area.
kDateView = 1, // Shown via activating the date view in the quick settings
// bubble.
kAccelerator = 2, // Shown via activating the accelerator.
kMaxValue = kAccelerator
};
// Sources of scrolling inside the calendar view. These are used in histograms,
// do not remove/renumber entries. If you're adding to this enum with the
// intention that it will be logged, update the CalendarViewScrollSource token
// variant in enums.xml.
enum class CalendarViewScrollSource {
kByMouseWheel = 0,
kByGesture = 1,
kByFling = 2,
kByStylus = 3,
kMaxValue = kByStylus
};
// The keys pressed by a user to navigate the calendar by using the keyboard.
// These are used in histograms, do not remove/renumber entries. If you're
// adding to this enum with the intention that it will be logged, update the
// CalendarKeyboardNavigationSource enum in enums.xml.
enum class CalendarKeyboardNavigationSource {
kTab = 0,
kArrowKeys = 1,
kMaxValue = kArrowKeys
};
// Converts the given event into an appropriate CalendarEventSource.
CalendarEventSource GetEventType(const ui::Event& event);
// Records calendar show metrics for a given CalendarViewShowSource
void RecordCalendarShowMetrics(
CalendarViewShowSource show_source,
calendar_metrics::CalendarEventSource event_source);
void RecordCalendarDateCellActivated(const ui::Event& event);
void RecordMonthArrowButtonActivated(bool up, const ui::Event& event);
void RecordEventListItemActivated(const ui::Event& event);
void RecordEventListForTodayActivated();
void RecordMonthDwellTime(const base::TimeDelta& dwell_time);
void RecordResetToTodayPressed();
void RecordScrollSource(CalendarViewScrollSource source);
ui::AnimationThroughputReporter CreateAnimationReporter(
views::View* view,
const std::string& animation_histogram_name);
void RecordCalendarKeyboardNavigation(
const CalendarKeyboardNavigationSource key_source);
void RecordEventListItemInUpNextLaunched(const ui::Event& event);
void RecordUpNextEventCount(const int event_count);
void RecordJoinButtonPressedFromEventListView(const ui::Event& event);
void RecordJoinButtonPressedFromUpNextView(const ui::Event& event);
void RecordEventListEventCount(const int event_count);
void RecordEventsDisplayedToUser();
void RecordScrollEventInUpNext();
void RecordCalendarLaunchedFromEmptyEventList();
void RecordEventListClosed();
void RecordSettingsButtonPressed();
void RecordCalendarListFetchDuration(const base::TimeDelta fetch_duration);
void RecordCalendarListFetchErrorCode(google_apis::ApiErrorCode error);
void RecordCalendarListFetchTimeout(bool fetch_timed_out);
void RecordEventListFetchDuration(const base::TimeDelta fetch_duration);
void RecordEventListFetchErrorCode(google_apis::ApiErrorCode error);
void RecordEventListFetchTimeout(bool fetch_timed_out);
void RecordEventListFetchesTotalDuration(const base::TimeDelta fetch_duration);
void RecordSingleMonthSizeInBytes(size_t single_month_cache_size);
void RecordTotalEventsCacheSizeInMonths(unsigned int events_cache_size);
void RecordTotalSelectedCalendars(unsigned int selected_calendars);
void RecordTimeToSeeTodaysEventDots(const base::TimeDelta time_elapsed,
bool multi_calendar_enabled);
void RecordTimeToSeeTodaysPrimaryCalendarEventDots(
const base::TimeTicks time_elapsed);
void RecordTimeToSeeTodaysMultiCalendarEventDots(
const base::TimeTicks time_elapsed);
} // namespace calendar_metrics
} // namespace ash
#endif // ASH_SYSTEM_TIME_CALENDAR_METRICS_H_
|