1syntax = "proto2";
2
3package android.os.statsd.aiwallpapers;
4
5import "frameworks/proto_logging/stats/atoms.proto";
6import "frameworks/proto_logging/stats/atom_field_options.proto";
7import "frameworks/proto_logging/stats/attribution_node.proto";
8
9option java_package = "com.android.os.aiwallpapers";
10option java_multiple_files = true;
11
12extend Atom {
13    optional AiWallpapersButtonPressed ai_wallpapers_button_pressed = 706
14        [(module) = "aiwallpapers"];
15
16    optional AiWallpapersTemplateSelected ai_wallpapers_template_selected = 707
17         [(module) = "aiwallpapers"];
18
19    optional AiWallpapersTermSelected ai_wallpapers_term_selected = 708
20        [(module) = "aiwallpapers"];
21
22    optional AiWallpapersWallpaperSet ai_wallpapers_wallpaper_set = 709
23        [(module) = "aiwallpapers"];
24
25    optional AiWallpapersSessionSummary ai_wallpapers_session_summary = 710
26        [(module) = "aiwallpapers"];
27}
28
29enum AiWallpapersButton {
30  /* unknown button. */
31  BUTTON_UNSPECIFIED = 0;
32  /* "Create Wallpaper" button */
33  BUTTON_CREATE_WALLPAPER = 1;
34  /* "Randomize" button */
35  BUTTON_RANDOMIZE = 2;
36  /* preview wallpaper ("check" mark) button */
37  BUTTON_PREVIEW_WALLPAPER = 3;
38}
39
40enum AiWallpapersBackend {
41  /* unknown backend. */
42  BACKEND_UNSPECIFIED = 0;
43  /* Aratea backend */
44  BACKEND_ARATEA = 1;
45  /* local images (for testing) backend */
46  BACKEND_LOCAL = 2;
47}
48
49/**
50  Enum corresponding to prompt templates. These are preapproved sentences,
51  with immutable structure, like "An abstract photo of pastel <texture>".
52  We assign them to enums in order to transmit fewer bytes per atom.
53  */
54enum AiWallpapersPrompt {
55  /* unknown prompt. */
56  PROMPT_UNSPECIFIED = 0;
57  PROMPT_CANDY_PASTELS = 1;
58  PROMPT_LINE_DRAWING = 2;
59  PROMPT_IRIDESCENT = 3;
60  PROMPT_SOFT_FOCUS = 4;
61  PROMPT_AMBIENT_TEXTURES = 5;
62  PROMPT_TRANSLUCENT = 6;
63  PROMPT_DARK_THEME = 7;
64  PROMPT_MOOD = 8;
65  PROMPT_GLITCH = 9;
66  PROMPT_MYSTICAL_BOTANICALS = 10;
67  PROMPT_MINERALS = 11;
68  PROMPT_COSMIC = 12;
69  PROMPT_CHARACTERS = 13;
70  PROMPT_CLASSIC_ART = 14;
71  PROMPT_COLLAGE = 15;
72  PROMPT_DREAMSCAPES = 16;
73  PROMPT_UNEXPECTED_LANDSCAPE = 17;
74  PROMPT_VIVID = 18;
75  PROMPT_PATTERN = 19;
76  PROMPT_AIRBRUSH_FLOWERS = 20;
77  PROMPT_SPIRITUAL = 21;
78  PROMPT_CURIOUS_WORLD = 22;
79  PROMPT_SCAN = 23;
80}
81
82
83/**
84 * A record of the fact that a specific button was pressed.
85 * One message for each press of a button we care about.
86 * Logged from:
87 *     platform/vendor/unbundled_google/packages/WallpaperEffect/master/AiWallpapers/src/com/google/android/apps/aiwallpapers/utils/
88 */
89message AiWallpapersButtonPressed {
90  optional AiWallpapersButton button = 1;
91  /* the backend (image generation system) */
92  optional AiWallpapersBackend backend = 2;
93}
94
95/**
96 * A record of the fact that a specific prompt template was selected.
97 * We want to know whether it was set from within the app, or launched with that
98 * template selected from the WallpaperPicker.
99 * Logged from:
100 *     platform/vendor/unbundled_google/packages/WallpaperEffect/master/AiWallpapers/src/com/google/android/apps/aiwallpapers/utils/
101 */
102message AiWallpapersTemplateSelected {
103  /* true if prompt template was selected from WallpaperPicker, else false */
104  optional bool selected_from_picker = 1;
105  /* the phrase shown for the prompt template in the dropdown */
106  optional AiWallpapersPrompt prompt = 2;
107}
108
109/**
110 * A record of the fact that a specific term option (chip) was selected.
111 * These are preapproved words, and the user cannot type in arbitrary strings.
112 * Their values can only be selected from a menu of preapproved words/phrases.
113 * E.g. for a <subject> option, the list of preapproved values includes:
114 *      flowers, leaves, roses, ..., cats, deer, ..., owls, etc.
115 * Logged from:
116 *     platform/vendor/unbundled_google/packages/WallpaperEffect/master/AiWallpapers/src/com/google/android/apps/aiwallpapers/utils/
117 */
118message AiWallpapersTermSelected {
119  /* identifies the prompt within which this term option resides */
120  optional AiWallpapersPrompt prompt = 1;
121  /* the term option selected; these can only be one of the preapproved entries in:
122     platform/vendor/unbundled_google/packages/WallpaperEffect/AiWallpapers/scripts/chips.txt
123   */
124  optional string term_option = 2;
125  /* the zero-indexed position of that option within the list of options */
126  optional int32 term_index = 3;
127  /* the fractional position of that option within the list of options */
128  optional float term_pos_frac = 4;
129}
130
131/**
132 * A record of the fact that a wallpaper was set from the app.
133 * Logged from:
134 *     platform/vendor/unbundled_google/packages/WallpaperEffect/master/AiWallpapers/src/com/google/android/apps/aiwallpapers/utils/
135 */
136message AiWallpapersWallpaperSet {
137  /* the prompt template selected from the dropdown */
138  optional AiWallpapersPrompt prompt = 1;
139  /* the term options selected for this prompt; these can only be one of the
140     preapproved entries in:
141     platform/vendor/unbundled_google/packages/WallpaperEffect/AiWallpapers/scripts/chips.txt
142   */
143  repeated string term_options = 2;
144  /* the backend (image generation system) */
145  optional AiWallpapersBackend backend = 3;
146}
147
148/**
149 * A summary of a session, starting from launching the activity, till setting
150 * the wallpaper (or quitting).
151 * Logged from:
152 *     platform/vendor/unbundled_google/packages/WallpaperEffect/master/AiWallpapers/src/com/google/android/apps/aiwallpapers/utils/
153 */
154message AiWallpapersSessionSummary {
155  /* number of times user changed the value of a term */
156  optional int32 term_change_count = 1;
157  /* number of times user clicked the "Randomize" button */
158  optional int32 randomize_click_count = 2;
159  /* number of times user swiped through the list of term options */
160  optional int32 term_options_swipe_count = 3;
161  /* number of times user swiped through the carousel of AI-generated bitmaps */
162  optional int32 bitmap_carousel_swipe_count = 4;
163  /* how long the app was open */
164  optional int64 session_duration_millis = 5;
165  /* the backend (image generation system) */
166  optional AiWallpapersBackend backend = 6;
167}
168