• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2024 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17syntax = "proto2";
18
19package android.os.statsd.photopicker;
20
21import "frameworks/proto_logging/stats/atoms.proto";
22import "frameworks/proto_logging/stats/atom_field_options.proto";
23import "frameworks/proto_logging/stats/enums/photopicker/enums.proto";
24
25// This file contains extension atoms for photopicker.
26option java_package = "com.android.os.photopicker";
27option java_multiple_files = true;
28
29extend Atom {
30  optional PhotopickerSessionInfoReported photopicker_session_info_reported = 886
31  [(module) = "mediaprovider"];
32  optional PhotopickerApiInfoReported photopicker_api_info_reported = 887
33  [(module) = "mediaprovider"];
34  optional PhotopickerUIEventLogged photopicker_ui_event_logged = 888
35  [(module) = "mediaprovider"];
36  optional PhotopickerMediaItemStatusReported photopicker_media_item_status_reported = 889
37  [(module) = "mediaprovider"];
38  optional PhotopickerPreviewInfoLogged photopicker_preview_info_logged = 890
39  [(module) = "mediaprovider"];
40  optional PhotopickerMenuInteractionLogged photopicker_menu_interaction_logged = 891
41  [(module) = "mediaprovider"];
42  optional PhotopickerBannerInteractionLogged photopicker_banner_interaction_logged = 892
43  [(module) = "mediaprovider"];
44  optional PhotopickerMediaLibraryInfoLogged photopicker_media_library_info_logged = 893
45  [(module) = "mediaprovider"];
46  optional PhotopickerPageInfoLogged photopicker_page_info_logged = 894
47  [(module) = "mediaprovider"];
48  optional PhotopickerMediaGridSyncInfoReported photopicker_media_grid_sync_info_reported = 895
49  [(module) = "mediaprovider"];
50  optional PhotopickerAlbumSyncInfoReported photopicker_album_sync_info_reported = 896
51  [(module) = "mediaprovider"];
52  optional PhotopickerSearchInfoReported photopicker_search_info_reported = 897
53  [(module) = "mediaprovider"];
54  optional SearchDataExtractionDetailsReported search_data_extraction_details_reported = 898
55  [(module) = "mediaprovider"];
56  optional EmbeddedPhotopickerInfoReported embedded_photopicker_info_reported = 899
57  [(module) = "mediaprovider"];
58}
59
60/*
61  Logs details about the launched picker session
62 */
63message PhotopickerSessionInfoReported {
64  optional int32 session_id = 1;
65  optional int32 package_uid = 2;
66  optional android.photopicker.PickerPermittedSelection picker_permitted_selection= 3;
67  optional int32 cloud_provider_uid = 4;
68  optional android.photopicker.UserProfile user_profile = 5;
69  optional android.photopicker.PickerStatus picker_status = 6;
70  optional int32 picked_items_count = 7;
71  optional int32 picked_items_size = 8;
72  optional bool is_profile_switch_button_visible = 9;
73  optional android.photopicker.PickerMode picker_mode = 10;
74  optional android.photopicker.PickerCloseMethod picker_close_method = 11;
75}
76
77/*
78 Logs details about how the picker was launched including information on the set picker options
79 */
80message PhotopickerApiInfoReported {
81  optional int32 session_id = 1;
82  optional android.photopicker.PickerIntentAction picker_intent_action = 2;
83  optional android.photopicker.PickerSize screen_size = 3;
84  optional android.photopicker.MediaType media_filter = 4;
85  optional int32 max_picked_item_count = 5;
86  optional android.photopicker.SelectedTab selected_tab = 6;
87  optional android.photopicker.SelectedAlbum selected_album = 7;
88  optional bool is_ordered_selection_set = 8;
89  optional bool is_accent_color_set = 9;
90  optional bool is_default_tab_set = 10;
91  optional bool is_search_enabled = 11;
92}
93
94/*
95 A general atom capturing any and all user interactions with the picker with other atoms focusing
96 on more specific interactions detailing the same.
97 */
98message PhotopickerUIEventLogged {
99  optional int32 session_id = 1;
100  optional int32 package_uid = 2;
101  optional android.photopicker.UiEvent ui_event = 3;
102}
103
104/*
105 Details out the information of a picker media item
106 */
107message PhotopickerMediaItemStatusReported {
108  optional int32 session_id = 1;
109  optional android.photopicker.MediaStatus media_status = 2;
110  optional android.photopicker.MediaLocation media_location = 3;
111  optional int32 item_position = 4;
112  optional android.photopicker.SelectedAlbum selected_album = 5;
113  optional android.photopicker.MediaType media_type = 6;
114  optional bool cloud_only = 7;
115  optional android.photopicker.PickerSize picker_size = 8;
116}
117
118/*
119 Captures details of the picker's preview mode
120 */
121message PhotopickerPreviewInfoLogged {
122  optional int32 session_id = 1;
123  optional android.photopicker.PreviewModeEntry preview_mode_entry = 2;
124  optional int32 preview_item_count = 3;
125  optional android.photopicker.MediaType media_type = 4;
126  optional android.photopicker.VideoPlayBackInteractions video_interactions = 5;
127}
128
129/*
130Logs the user's interaction with the photopicker menu
131 */
132message PhotopickerMenuInteractionLogged {
133  optional int32 session_id = 1;
134  optional int32 package_uid = 2;
135  optional android.photopicker.MenuItemSelected menu_item_selected = 3;
136}
137
138/*
139 Logs the user's interaction with different picker banners
140 */
141message PhotopickerBannerInteractionLogged {
142  optional int32 session_id = 1;
143  optional android.photopicker.BannerType banner_type = 2;
144  optional android.photopicker.UserBannerInteraction user_banner_interaction = 3;
145}
146
147/*
148 Logs details of the picker media library size
149 */
150message PhotopickerMediaLibraryInfoLogged {
151  optional int32 session_id = 1;
152  optional int32 cloud_provider_uid = 2;
153  optional int32 library_size = 3;
154  optional int32 media_count = 4;
155}
156
157/*
158  Ccaptures the picker's paging details: can give an estimate of how far the user scrolled and
159  the items loaded in.
160 */
161message PhotopickerPageInfoLogged {
162  optional int32 session_id = 1;
163  optional int32 page_number = 2;
164  optional int32 items_loaded_in_page = 3;
165}
166
167/*
168 Logs picker media sync information: both sync start/end and incremental syncs.
169 */
170message PhotopickerMediaGridSyncInfoReported {
171  optional int32 session_id = 1;
172  optional int32 media_collection_info_start_time_millis = 2;
173  optional int32 media_collection_info_end_time_millis = 3;
174  optional int32 media_sync_start_time_millis = 4;
175  optional int32 media_sync_end_time_millis = 5;
176  optional int32 incremental_media_sync_start_time_millis = 6;
177  optional int32 incremental_media_sync_end_time_millis = 7;
178  optional int32 incremental_deleted_media_sync_start_time_millis = 8;
179  optional int32 incremental_deleted_media_sync_end_time_millis = 9;
180}
181
182/*
183  Logs sync information for picker albums: both the album details and its content
184 */
185message PhotopickerAlbumSyncInfoReported {
186  optional int32 session_id_time_millis = 1;
187  optional int32 get_albums_start_time_millis = 2;
188  optional int32 get_albums_end_time_millis = 3;
189  optional int32 get_album_media_start_time_millis = 4;
190  optional int32 get_album_media_end_time_millis = 5;
191}
192
193/*
194 Logs information about the picker's search functionality
195 */
196message PhotopickerSearchInfoReported {
197  optional int32 session_id = 1;
198  optional android.photopicker.SearchMethod search_method = 2;
199  // items picked in a particular search method
200  optional int32 picked_items = 3;
201  optional int32 start_time_millis = 4;
202  optional int32 end_time_millis = 5;
203}
204
205/*
206 Logs details about the requests made for extracting search data
207 */
208message SearchDataExtractionDetailsReported {
209  optional int32 session_id = 1;
210  optional int32 unprocessed_images_count = 2;
211  optional int32 processing_start_time_millis = 3;
212  optional int32 processing_end_time_millis = 4;
213  optional bool is_processing_successful = 5;
214  optional bool is_response_received = 6;
215}
216
217/*
218 Logs information about the embedded photopicker(implementation details)
219 */
220message EmbeddedPhotopickerInfoReported {
221  optional int32 session_id = 1;
222  optional bool is_surface_package_creation_successful = 2;
223  optional int32 surface_package_delivery_start_time = 3;
224  optional int32 surface_package_delivery_end_time = 4;
225}
226