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