import "common_base.proto"; message CChatUsability_ClientUsabilityMetrics_Notification { optional uint32 metrics_run_id = 1; optional uint32 client_build = 2; optional uint32 metrics_version = 3; optional bool in_web = 4; optional .CChatUsability_ClientUsabilityMetrics_Notification_Settings settings = 10; optional .CChatUsability_ClientUsabilityMetrics_Notification_VoiceSettings voice_settings = 11; optional .CChatUsability_ClientUsabilityMetrics_Notification_UIState ui_state = 12; optional .CChatUsability_ClientUsabilityMetrics_Notification_Metrics metrics = 13; } message CChatUsability_ClientUsabilityMetrics_Notification_Metrics { optional int32 friends_count = 1; optional int32 friends_category_count = 2; optional int32 friends_categorized_count = 3; optional int32 friends_online_count = 4; optional int32 friends_in_game_count = 5; optional int32 friends_in_game_singleton_count = 6; optional int32 game_group_count = 7; optional int32 friends_favorite_count = 8; optional int32 group_chat_count = 9; optional int32 group_chat_favorite_count = 10; } message CChatUsability_ClientUsabilityMetrics_Notification_Settings { optional bool notifications_show_ingame = 1; optional bool notifications_show_online = 2; optional bool notifications_show_message = 3; optional bool notifications_events_and_announcements = 4; optional bool sounds_play_ingame = 5; optional bool sounds_play_online = 6; optional bool sounds_play_message = 7; optional bool sounds_events_and_announcements = 8; optional bool always_new_chat_window = 9; optional bool force_alphabetic_friend_sorting = 10; optional int32 chat_flash_mode = 11; optional bool remember_open_chats = 12; optional bool compact_quick_access = 13; optional bool compact_friends_list = 14; optional bool notifications_show_chat_room_notification = 15; optional bool sounds_play_chat_room_notification = 16; optional bool hide_offline_friends_in_tag_groups = 17; optional bool hide_categorized_friends = 18; optional bool categorize_in_game_friends_by_game = 19; optional int32 chat_font_size = 20; optional bool use24hour_clock = 21; optional bool do_not_disturb_mode = 22; optional bool disable_embed_inlining = 23; optional bool sign_into_friends = 24; optional bool animated_avatars = 25; } message CChatUsability_ClientUsabilityMetrics_Notification_UIState { optional int32 friends_list_height = 1; optional int32 friends_list_width = 2; optional bool friends_list_docked = 3; optional bool friends_list_collapsed = 4; optional int32 friends_list_group_chats_height = 5; optional bool friends_list_visible = 6; optional int32 chat_popups_opened = 7; optional int32 group_chat_tabs_opened = 8; optional int32 friend_chat_tabs_opened = 9; optional int32 chat_window_width = 10; optional int32 chat_window_height = 11; optional .CChatUsability_ClientUsabilityMetrics_Notification_UIState_CategoryCollapseState category_collapse = 12; optional int32 group_chat_left_col_collapsed = 13; optional int32 group_chat_right_col_collapsed = 14; optional bool in_one_on_one_voice_chat = 15; optional bool in_group_voice_chat = 16; } message CChatUsability_ClientUsabilityMetrics_Notification_UIState_CategoryCollapseState { optional bool in_game_collapsed = 1; optional bool online_collapsed = 2; optional bool offline_collapsed = 3; optional int32 game_groups_collapsed = 4; optional int32 categories_collapsed = 5; } message CChatUsability_ClientUsabilityMetrics_Notification_VoiceSettings { optional float voice_input_gain = 1; optional float voice_output_gain = 2; optional int32 noise_gate_level = 3; optional bool voice_use_echo_cancellation = 4; optional bool voice_use_noise_cancellation = 5; optional bool voice_use_auto_gain_control = 6; optional bool selected_non_default_mic = 7; optional bool selected_non_default_output = 8; optional bool push_to_talk_enabled = 9; optional bool push_to_mute_enabled = 10; optional bool play_ptt_sounds = 11; } message CChatUsability_RequestClientUsabilityMetrics_Notification { optional uint32 metrics_run_id = 1; } service ChatUsability { rpc NotifyClientUsabilityMetrics (.CChatUsability_ClientUsabilityMetrics_Notification) returns (.NoResponse); } service ChatUsabilityClient { rpc NotifyRequestClientUsabilityMetrics (.CChatUsability_RequestClientUsabilityMetrics_Notification) returns (.NoResponse); }