#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 base {
class TimeDelta;
class TimeTicks;
}
namespace views {
class View;
}
namespace ash {
namespace calendar_metrics {
enum class CalendarEventSource {
kInvalid = 0,
kTap = 1,
kClick = 2,
kKeyboard = 3,
kStylus = 4,
kMaxValue = kStylus
};
enum class CalendarViewShowSource {
kTimeView = 0,
kDateView = 1,
kAccelerator = 2,
kMaxValue = kAccelerator
};
enum class CalendarViewScrollSource {
kByMouseWheel = 0,
kByGesture = 1,
kByFling = 2,
kByStylus = 3,
kMaxValue = kByStylus
};
enum class CalendarKeyboardNavigationSource {
kTab = 0,
kArrowKeys = 1,
kMaxValue = kArrowKeys
};
CalendarEventSource GetEventType(const ui::Event& event);
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);
}
}
#endif