• 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  optional PhotopickerAppMediaCapabilitiesReported photopicker_app_media_capabilities_reported = 1043
59  [(module) = "mediaprovider"];
60  optional PhotopickerVideoTranscodingDetailsLogged photopicker_video_transcoding_details_logged = 1044
61  [(module) = "mediaprovider"];
62}
63
64/*
65  Logs details about the launched picker session
66 */
67message PhotopickerSessionInfoReported {
68  optional int32 session_id = 1;
69  optional int32 package_uid = 2 [(is_uid) = true];
70  optional android.photopicker.PickerPermittedSelection picker_permitted_selection= 3;
71  optional int32 cloud_provider_uid = 4 [(is_uid) = true];
72  optional android.photopicker.UserProfile user_profile = 5;
73  optional android.photopicker.PickerStatus picker_status = 6;
74  optional int32 picked_items_count = 7;
75  optional int32 picked_items_size = 8;
76  optional bool is_profile_switch_button_visible = 9;
77  optional android.photopicker.PickerMode picker_mode = 10;
78  optional android.photopicker.PickerCloseMethod picker_close_method = 11;
79}
80
81/*
82 Logs details about how the picker was launched including information on the set picker options
83 */
84message PhotopickerApiInfoReported {
85  optional int32 session_id = 1;
86  optional android.photopicker.PickerIntentAction picker_intent_action = 2;
87  optional android.photopicker.PickerSize screen_size = 3;
88  optional android.photopicker.MediaType media_filter = 4;
89  optional int32 max_picked_item_count = 5;
90  optional android.photopicker.SelectedTab selected_tab = 6;
91  optional android.photopicker.SelectedAlbum selected_album = 7;
92  optional bool is_ordered_selection_set = 8;
93  optional bool is_accent_color_set = 9;
94  optional bool is_default_tab_set = 10;
95  optional bool is_search_enabled = 11 [deprecated = true];
96  optional bool is_cloud_search_enabled = 12;
97  optional bool is_local_search_enabled = 13;
98  optional bool is_transcoding_requested = 14;
99}
100
101/*
102 A general atom capturing any and all user interactions with the picker with other atoms focusing
103 on more specific interactions detailing the same.
104 */
105message PhotopickerUIEventLogged {
106  optional int32 session_id = 1;
107  optional int32 package_uid = 2 [(is_uid) = true];
108  optional android.photopicker.UiEvent ui_event = 3;
109}
110
111/*
112 Details out the information of a picker media item
113 */
114message PhotopickerMediaItemStatusReported {
115  optional int32 session_id = 1;
116  optional android.photopicker.MediaStatus media_status = 2;
117  optional android.photopicker.MediaLocation media_location = 3;
118  optional int32 item_position = 4;
119  optional android.photopicker.SelectedAlbum selected_album = 5;
120  optional android.photopicker.MediaType media_type = 6;
121  optional bool cloud_only = 7;
122  optional android.photopicker.PickerSize picker_size = 8;
123}
124
125/*
126 Captures details of the picker's preview mode
127 */
128message PhotopickerPreviewInfoLogged {
129  optional int32 session_id = 1;
130  optional android.photopicker.PreviewModeEntry preview_mode_entry = 2;
131  optional int32 preview_item_count = 3;
132  optional android.photopicker.MediaType media_type = 4;
133  optional android.photopicker.VideoPlayBackInteractions video_interactions = 5;
134}
135
136/*
137Logs the user's interaction with the photopicker menu
138 */
139message PhotopickerMenuInteractionLogged {
140  optional int32 session_id = 1;
141  optional int32 package_uid = 2 [(is_uid) = true];
142  optional android.photopicker.MenuItemSelected menu_item_selected = 3;
143}
144
145/*
146 Logs the user's interaction with different picker banners
147 */
148message PhotopickerBannerInteractionLogged {
149  optional int32 session_id = 1;
150  optional android.photopicker.BannerType banner_type = 2;
151  optional android.photopicker.UserBannerInteraction user_banner_interaction = 3;
152}
153
154/*
155 Logs details of the picker media library size
156 */
157message PhotopickerMediaLibraryInfoLogged {
158  optional int32 session_id = 1;
159  optional int32 cloud_provider_uid = 2 [(is_uid) = true];
160  optional int32 library_size = 3;
161  optional int32 media_count = 4;
162}
163
164/*
165  Captures the picker's paging details: can give an estimate of how far the user scrolled and
166  the items loaded in.
167 */
168message PhotopickerPageInfoLogged {
169  optional int32 session_id = 1;
170  optional int32 page_number = 2;
171  optional int32 items_loaded_in_page = 3;
172}
173
174/*
175 Logs picker media sync information: both sync start/end and incremental syncs.
176 */
177message PhotopickerMediaGridSyncInfoReported {
178  optional int32 session_id = 1;
179  optional int32 media_collection_info_start_time_millis = 2;
180  optional int32 media_collection_info_end_time_millis = 3;
181  optional int32 media_sync_start_time_millis = 4;
182  optional int32 media_sync_end_time_millis = 5;
183  optional int32 incremental_media_sync_start_time_millis = 6;
184  optional int32 incremental_media_sync_end_time_millis = 7;
185  optional int32 incremental_deleted_media_sync_start_time_millis = 8;
186  optional int32 incremental_deleted_media_sync_end_time_millis = 9;
187}
188
189/*
190  Logs sync information for picker albums: both the album details and its content
191 */
192message PhotopickerAlbumSyncInfoReported {
193  optional int32 session_id_time_millis = 1;
194  optional int32 get_albums_start_time_millis = 2;
195  optional int32 get_albums_end_time_millis = 3;
196  optional int32 get_album_media_start_time_millis = 4;
197  optional int32 get_album_media_end_time_millis = 5;
198}
199
200/*
201 Logs information about the picker's search functionality
202 */
203message PhotopickerSearchInfoReported {
204  optional int32 session_id = 1;
205  optional android.photopicker.SearchMethod search_method = 2;
206  // items picked in a particular search method
207  optional int32 picked_items = 3 [deprecated = true];
208  optional int32 start_time_millis = 4 [deprecated = true];
209  optional int32 end_time_millis = 5 [deprecated = true];
210}
211
212/*
213 Logs details about the requests made for extracting search data
214 */
215message SearchDataExtractionDetailsReported {
216  optional int32 session_id = 1;
217  optional int32 unprocessed_images_count = 2;
218  optional int32 processing_start_time_millis = 3;
219  optional int32 processing_end_time_millis = 4;
220  optional bool is_processing_successful = 5;
221  optional bool is_response_received = 6;
222}
223
224/*
225 Logs information about the embedded photopicker(implementation details)
226 */
227message EmbeddedPhotopickerInfoReported {
228  optional int32 session_id = 1;
229  optional bool is_surface_package_creation_successful = 2;
230  optional int32 surface_package_delivery_start_time_millis = 3;
231  optional int32 surface_package_delivery_end_time_millis = 4;
232}
233
234/*
235 Logs Application Media Capabilities for Transcoding support
236 */
237message PhotopickerAppMediaCapabilitiesReported {
238  optional int32 session_id = 1;
239  repeated android.photopicker.AppMediaCapabilityHdrType supported_hdr_types = 2;
240  repeated android.photopicker.AppMediaCapabilityHdrType unsupported_hdr_types = 3;
241}
242
243/*
244 Logs Transcoding video details
245*/
246message PhotopickerVideoTranscodingDetailsLogged {
247  optional int32 session_id = 1;
248  optional int32 duration = 2;
249  optional int32 colorStandard = 3;
250  optional int32 colorTransfer = 4;
251  optional android.photopicker.VideoMimeType mimeType = 5;
252}
253