xref: /aosp_15_r20/frameworks/base/tools/aapt2/Configuration.proto (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker/*
2*d57664e9SAndroid Build Coastguard Worker * Copyright (C) 2017 The Android Open Source Project
3*d57664e9SAndroid Build Coastguard Worker *
4*d57664e9SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*d57664e9SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*d57664e9SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*d57664e9SAndroid Build Coastguard Worker *
8*d57664e9SAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*d57664e9SAndroid Build Coastguard Worker *
10*d57664e9SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*d57664e9SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*d57664e9SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*d57664e9SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*d57664e9SAndroid Build Coastguard Worker * limitations under the License.
15*d57664e9SAndroid Build Coastguard Worker */
16*d57664e9SAndroid Build Coastguard Worker
17*d57664e9SAndroid Build Coastguard Workersyntax = "proto3";
18*d57664e9SAndroid Build Coastguard Worker
19*d57664e9SAndroid Build Coastguard Workerpackage aapt.pb;
20*d57664e9SAndroid Build Coastguard Worker
21*d57664e9SAndroid Build Coastguard Workeroption java_package = "com.android.aapt";
22*d57664e9SAndroid Build Coastguard Worker
23*d57664e9SAndroid Build Coastguard Worker// A description of the requirements a device must have in order for a
24*d57664e9SAndroid Build Coastguard Worker// resource to be matched and selected.
25*d57664e9SAndroid Build Coastguard Workermessage Configuration {
26*d57664e9SAndroid Build Coastguard Worker  enum LayoutDirection {
27*d57664e9SAndroid Build Coastguard Worker    LAYOUT_DIRECTION_UNSET = 0;
28*d57664e9SAndroid Build Coastguard Worker    LAYOUT_DIRECTION_LTR = 1;
29*d57664e9SAndroid Build Coastguard Worker    LAYOUT_DIRECTION_RTL = 2;
30*d57664e9SAndroid Build Coastguard Worker  }
31*d57664e9SAndroid Build Coastguard Worker
32*d57664e9SAndroid Build Coastguard Worker  enum ScreenLayoutSize {
33*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_SIZE_UNSET = 0;
34*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_SIZE_SMALL = 1;
35*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_SIZE_NORMAL = 2;
36*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_SIZE_LARGE = 3;
37*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_SIZE_XLARGE = 4;
38*d57664e9SAndroid Build Coastguard Worker  }
39*d57664e9SAndroid Build Coastguard Worker
40*d57664e9SAndroid Build Coastguard Worker  enum ScreenLayoutLong {
41*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_LONG_UNSET = 0;
42*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_LONG_LONG = 1;
43*d57664e9SAndroid Build Coastguard Worker    SCREEN_LAYOUT_LONG_NOTLONG = 2;
44*d57664e9SAndroid Build Coastguard Worker  }
45*d57664e9SAndroid Build Coastguard Worker
46*d57664e9SAndroid Build Coastguard Worker  enum ScreenRound {
47*d57664e9SAndroid Build Coastguard Worker    SCREEN_ROUND_UNSET = 0;
48*d57664e9SAndroid Build Coastguard Worker    SCREEN_ROUND_ROUND = 1;
49*d57664e9SAndroid Build Coastguard Worker    SCREEN_ROUND_NOTROUND = 2;
50*d57664e9SAndroid Build Coastguard Worker  }
51*d57664e9SAndroid Build Coastguard Worker
52*d57664e9SAndroid Build Coastguard Worker  enum WideColorGamut {
53*d57664e9SAndroid Build Coastguard Worker    WIDE_COLOR_GAMUT_UNSET = 0;
54*d57664e9SAndroid Build Coastguard Worker    WIDE_COLOR_GAMUT_WIDECG = 1;
55*d57664e9SAndroid Build Coastguard Worker    WIDE_COLOR_GAMUT_NOWIDECG = 2;
56*d57664e9SAndroid Build Coastguard Worker  }
57*d57664e9SAndroid Build Coastguard Worker
58*d57664e9SAndroid Build Coastguard Worker  enum Hdr {
59*d57664e9SAndroid Build Coastguard Worker    HDR_UNSET = 0;
60*d57664e9SAndroid Build Coastguard Worker    HDR_HIGHDR = 1;
61*d57664e9SAndroid Build Coastguard Worker    HDR_LOWDR = 2;
62*d57664e9SAndroid Build Coastguard Worker  }
63*d57664e9SAndroid Build Coastguard Worker
64*d57664e9SAndroid Build Coastguard Worker  enum Orientation {
65*d57664e9SAndroid Build Coastguard Worker    ORIENTATION_UNSET = 0;
66*d57664e9SAndroid Build Coastguard Worker    ORIENTATION_PORT = 1;
67*d57664e9SAndroid Build Coastguard Worker    ORIENTATION_LAND = 2;
68*d57664e9SAndroid Build Coastguard Worker    ORIENTATION_SQUARE = 3;
69*d57664e9SAndroid Build Coastguard Worker  }
70*d57664e9SAndroid Build Coastguard Worker
71*d57664e9SAndroid Build Coastguard Worker  enum UiModeType {
72*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_UNSET = 0;
73*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_NORMAL = 1;
74*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_DESK = 2;
75*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_CAR = 3;
76*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_TELEVISION = 4;
77*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_APPLIANCE = 5;
78*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_WATCH = 6;
79*d57664e9SAndroid Build Coastguard Worker    UI_MODE_TYPE_VRHEADSET = 7;
80*d57664e9SAndroid Build Coastguard Worker  }
81*d57664e9SAndroid Build Coastguard Worker
82*d57664e9SAndroid Build Coastguard Worker  enum UiModeNight {
83*d57664e9SAndroid Build Coastguard Worker    UI_MODE_NIGHT_UNSET = 0;
84*d57664e9SAndroid Build Coastguard Worker    UI_MODE_NIGHT_NIGHT = 1;
85*d57664e9SAndroid Build Coastguard Worker    UI_MODE_NIGHT_NOTNIGHT = 2;
86*d57664e9SAndroid Build Coastguard Worker  }
87*d57664e9SAndroid Build Coastguard Worker
88*d57664e9SAndroid Build Coastguard Worker  enum Touchscreen {
89*d57664e9SAndroid Build Coastguard Worker    TOUCHSCREEN_UNSET = 0;
90*d57664e9SAndroid Build Coastguard Worker    TOUCHSCREEN_NOTOUCH = 1;
91*d57664e9SAndroid Build Coastguard Worker    TOUCHSCREEN_STYLUS = 2;
92*d57664e9SAndroid Build Coastguard Worker    TOUCHSCREEN_FINGER = 3;
93*d57664e9SAndroid Build Coastguard Worker  }
94*d57664e9SAndroid Build Coastguard Worker
95*d57664e9SAndroid Build Coastguard Worker  enum KeysHidden {
96*d57664e9SAndroid Build Coastguard Worker    KEYS_HIDDEN_UNSET = 0;
97*d57664e9SAndroid Build Coastguard Worker    KEYS_HIDDEN_KEYSEXPOSED = 1;
98*d57664e9SAndroid Build Coastguard Worker    KEYS_HIDDEN_KEYSHIDDEN = 2;
99*d57664e9SAndroid Build Coastguard Worker    KEYS_HIDDEN_KEYSSOFT = 3;
100*d57664e9SAndroid Build Coastguard Worker  }
101*d57664e9SAndroid Build Coastguard Worker
102*d57664e9SAndroid Build Coastguard Worker  enum Keyboard {
103*d57664e9SAndroid Build Coastguard Worker    KEYBOARD_UNSET = 0;
104*d57664e9SAndroid Build Coastguard Worker    KEYBOARD_NOKEYS = 1;
105*d57664e9SAndroid Build Coastguard Worker    KEYBOARD_QWERTY = 2;
106*d57664e9SAndroid Build Coastguard Worker    KEYBOARD_TWELVEKEY = 3;
107*d57664e9SAndroid Build Coastguard Worker  }
108*d57664e9SAndroid Build Coastguard Worker
109*d57664e9SAndroid Build Coastguard Worker  enum NavHidden {
110*d57664e9SAndroid Build Coastguard Worker    NAV_HIDDEN_UNSET = 0;
111*d57664e9SAndroid Build Coastguard Worker    NAV_HIDDEN_NAVEXPOSED = 1;
112*d57664e9SAndroid Build Coastguard Worker    NAV_HIDDEN_NAVHIDDEN = 2;
113*d57664e9SAndroid Build Coastguard Worker  }
114*d57664e9SAndroid Build Coastguard Worker
115*d57664e9SAndroid Build Coastguard Worker  enum Navigation {
116*d57664e9SAndroid Build Coastguard Worker    NAVIGATION_UNSET = 0;
117*d57664e9SAndroid Build Coastguard Worker    NAVIGATION_NONAV = 1;
118*d57664e9SAndroid Build Coastguard Worker    NAVIGATION_DPAD = 2;
119*d57664e9SAndroid Build Coastguard Worker    NAVIGATION_TRACKBALL = 3;
120*d57664e9SAndroid Build Coastguard Worker    NAVIGATION_WHEEL = 4;
121*d57664e9SAndroid Build Coastguard Worker  }
122*d57664e9SAndroid Build Coastguard Worker
123*d57664e9SAndroid Build Coastguard Worker  enum GrammaticalGender {
124*d57664e9SAndroid Build Coastguard Worker    GRAM_GENDER_USET = 0;
125*d57664e9SAndroid Build Coastguard Worker    GRAM_GENDER_NEUTER = 1;
126*d57664e9SAndroid Build Coastguard Worker    GRAM_GENDER_FEMININE = 2;
127*d57664e9SAndroid Build Coastguard Worker    GRAM_GENDER_MASCULINE = 3;
128*d57664e9SAndroid Build Coastguard Worker  }
129*d57664e9SAndroid Build Coastguard Worker
130*d57664e9SAndroid Build Coastguard Worker  //
131*d57664e9SAndroid Build Coastguard Worker  // Axis/dimensions that are understood by the runtime.
132*d57664e9SAndroid Build Coastguard Worker  //
133*d57664e9SAndroid Build Coastguard Worker
134*d57664e9SAndroid Build Coastguard Worker  // Mobile country code.
135*d57664e9SAndroid Build Coastguard Worker  uint32 mcc = 1;
136*d57664e9SAndroid Build Coastguard Worker
137*d57664e9SAndroid Build Coastguard Worker  // Mobile network code.
138*d57664e9SAndroid Build Coastguard Worker  uint32 mnc = 2;
139*d57664e9SAndroid Build Coastguard Worker
140*d57664e9SAndroid Build Coastguard Worker  // BCP-47 locale tag.
141*d57664e9SAndroid Build Coastguard Worker  string locale = 3;
142*d57664e9SAndroid Build Coastguard Worker
143*d57664e9SAndroid Build Coastguard Worker  // Left-to-right, right-to-left...
144*d57664e9SAndroid Build Coastguard Worker  LayoutDirection layout_direction = 4;
145*d57664e9SAndroid Build Coastguard Worker
146*d57664e9SAndroid Build Coastguard Worker  // Screen width in pixels. Prefer screen_width_dp.
147*d57664e9SAndroid Build Coastguard Worker  uint32 screen_width = 5;
148*d57664e9SAndroid Build Coastguard Worker
149*d57664e9SAndroid Build Coastguard Worker  // Screen height in pixels. Prefer screen_height_dp.
150*d57664e9SAndroid Build Coastguard Worker  uint32 screen_height = 6;
151*d57664e9SAndroid Build Coastguard Worker
152*d57664e9SAndroid Build Coastguard Worker  // Screen width in density independent pixels (dp).
153*d57664e9SAndroid Build Coastguard Worker  uint32 screen_width_dp = 7;
154*d57664e9SAndroid Build Coastguard Worker
155*d57664e9SAndroid Build Coastguard Worker  // Screen height in density independent pixels (dp).
156*d57664e9SAndroid Build Coastguard Worker  uint32 screen_height_dp = 8;
157*d57664e9SAndroid Build Coastguard Worker
158*d57664e9SAndroid Build Coastguard Worker  // The smallest screen dimension, regardless of orientation, in dp.
159*d57664e9SAndroid Build Coastguard Worker  uint32 smallest_screen_width_dp = 9;
160*d57664e9SAndroid Build Coastguard Worker
161*d57664e9SAndroid Build Coastguard Worker  // Whether the device screen is classified as small, normal, large, xlarge.
162*d57664e9SAndroid Build Coastguard Worker  ScreenLayoutSize screen_layout_size = 10;
163*d57664e9SAndroid Build Coastguard Worker
164*d57664e9SAndroid Build Coastguard Worker  // Whether the device screen is long.
165*d57664e9SAndroid Build Coastguard Worker  ScreenLayoutLong screen_layout_long = 11;
166*d57664e9SAndroid Build Coastguard Worker
167*d57664e9SAndroid Build Coastguard Worker  // Whether the screen is round (Android Wear).
168*d57664e9SAndroid Build Coastguard Worker  ScreenRound screen_round = 12;
169*d57664e9SAndroid Build Coastguard Worker
170*d57664e9SAndroid Build Coastguard Worker  // Whether the screen supports wide color gamut.
171*d57664e9SAndroid Build Coastguard Worker  WideColorGamut wide_color_gamut = 13;
172*d57664e9SAndroid Build Coastguard Worker
173*d57664e9SAndroid Build Coastguard Worker  // Whether the screen has high dynamic range.
174*d57664e9SAndroid Build Coastguard Worker  Hdr hdr = 14;
175*d57664e9SAndroid Build Coastguard Worker
176*d57664e9SAndroid Build Coastguard Worker  // Which orientation the device is in (portrait, landscape).
177*d57664e9SAndroid Build Coastguard Worker  Orientation orientation = 15;
178*d57664e9SAndroid Build Coastguard Worker
179*d57664e9SAndroid Build Coastguard Worker  // Which type of UI mode the device is in (television, car, etc.).
180*d57664e9SAndroid Build Coastguard Worker  UiModeType ui_mode_type = 16;
181*d57664e9SAndroid Build Coastguard Worker
182*d57664e9SAndroid Build Coastguard Worker  // Whether the device is in night mode.
183*d57664e9SAndroid Build Coastguard Worker  UiModeNight ui_mode_night = 17;
184*d57664e9SAndroid Build Coastguard Worker
185*d57664e9SAndroid Build Coastguard Worker  // The device's screen density in dots-per-inch (dpi).
186*d57664e9SAndroid Build Coastguard Worker  uint32 density = 18;
187*d57664e9SAndroid Build Coastguard Worker
188*d57664e9SAndroid Build Coastguard Worker  // Whether a touchscreen exists, supports a stylus, or finger.
189*d57664e9SAndroid Build Coastguard Worker  Touchscreen touchscreen = 19;
190*d57664e9SAndroid Build Coastguard Worker
191*d57664e9SAndroid Build Coastguard Worker  // Whether the keyboard hardware keys are currently hidden, exposed, or
192*d57664e9SAndroid Build Coastguard Worker  // if the keyboard is a software keyboard.
193*d57664e9SAndroid Build Coastguard Worker  KeysHidden keys_hidden = 20;
194*d57664e9SAndroid Build Coastguard Worker
195*d57664e9SAndroid Build Coastguard Worker  // The type of keyboard present (none, QWERTY, 12-key).
196*d57664e9SAndroid Build Coastguard Worker  Keyboard keyboard = 21;
197*d57664e9SAndroid Build Coastguard Worker
198*d57664e9SAndroid Build Coastguard Worker  // Whether the navigation is exposed or hidden.
199*d57664e9SAndroid Build Coastguard Worker  NavHidden nav_hidden = 22;
200*d57664e9SAndroid Build Coastguard Worker
201*d57664e9SAndroid Build Coastguard Worker  // The type of navigation present on the device
202*d57664e9SAndroid Build Coastguard Worker  // (trackball, wheel, dpad, etc.).
203*d57664e9SAndroid Build Coastguard Worker  Navigation navigation = 23;
204*d57664e9SAndroid Build Coastguard Worker
205*d57664e9SAndroid Build Coastguard Worker  // The minimum SDK version of the device.
206*d57664e9SAndroid Build Coastguard Worker  uint32 sdk_version = 24;
207*d57664e9SAndroid Build Coastguard Worker
208*d57664e9SAndroid Build Coastguard Worker  // Grammatical gender.
209*d57664e9SAndroid Build Coastguard Worker  GrammaticalGender grammatical_gender = 26;
210*d57664e9SAndroid Build Coastguard Worker
211*d57664e9SAndroid Build Coastguard Worker  //
212*d57664e9SAndroid Build Coastguard Worker  // Build-time only dimensions.
213*d57664e9SAndroid Build Coastguard Worker  //
214*d57664e9SAndroid Build Coastguard Worker
215*d57664e9SAndroid Build Coastguard Worker  string product = 25;
216*d57664e9SAndroid Build Coastguard Worker}
217