@@ -32,6 +32,7 @@ public class ResConfigFlags {
32
32
public final byte keyboard ;
33
33
public final byte navigation ;
34
34
public final byte inputFlags ;
35
+ public final byte grammaticalInflection ;
35
36
36
37
public final short screenWidth ;
37
38
public final short screenHeight ;
@@ -70,6 +71,7 @@ public ResConfigFlags() {
70
71
keyboard = KEYBOARD_ANY ;
71
72
navigation = NAVIGATION_ANY ;
72
73
inputFlags = KEYSHIDDEN_ANY | NAVHIDDEN_ANY ;
74
+ grammaticalInflection = GRAMMATICAL_GENDER_ANY ;
73
75
screenWidth = 0 ;
74
76
screenHeight = 0 ;
75
77
sdkVersion = 0 ;
@@ -91,7 +93,7 @@ public ResConfigFlags() {
91
93
public ResConfigFlags (short mcc , short mnc , char [] language ,
92
94
char [] region , byte orientation ,
93
95
byte touchscreen , int density , byte keyboard , byte navigation ,
94
- byte inputFlags , short screenWidth , short screenHeight ,
96
+ byte inputFlags , byte grammaticalInflection , short screenWidth , short screenHeight ,
95
97
short sdkVersion , byte screenLayout , byte uiMode ,
96
98
short smallestScreenWidthDp , short screenWidthDp ,
97
99
short screenHeightDp , char [] localeScript , char [] localeVariant ,
@@ -149,6 +151,7 @@ public ResConfigFlags(short mcc, short mnc, char[] language,
149
151
this .keyboard = keyboard ;
150
152
this .navigation = navigation ;
151
153
this .inputFlags = inputFlags ;
154
+ this .grammaticalInflection = grammaticalInflection ;
152
155
this .screenWidth = screenWidth ;
153
156
this .screenHeight = screenHeight ;
154
157
this .sdkVersion = sdkVersion ;
@@ -198,6 +201,18 @@ private String generateQualifiers() {
198
201
}
199
202
ret .append (getLocaleString ());
200
203
204
+ switch (grammaticalInflection ) {
205
+ case GRAMMATICAL_GENDER_NEUTER :
206
+ ret .append ("-neuter" );
207
+ break ;
208
+ case GRAMMATICAL_GENDER_FEMININE :
209
+ ret .append ("-feminine" );
210
+ break ;
211
+ case GRAMMATICAL_GENDER_MASCULINE :
212
+ ret .append ("-masculine" );
213
+ break ;
214
+ }
215
+
201
216
switch (screenLayout & MASK_LAYOUTDIR ) {
202
217
case SCREENLAYOUT_LAYOUTDIR_RTL :
203
218
ret .append ("-ldrtl" );
@@ -421,6 +436,9 @@ private String generateQualifiers() {
421
436
}
422
437
423
438
private short getNaturalSdkVersionRequirement () {
439
+ if (grammaticalInflection != 0 ) {
440
+ return SDK_UPSIDEDOWN_CAKE ;
441
+ }
424
442
if ((uiMode & MASK_UI_MODE_TYPE ) == UI_MODE_TYPE_VR_HEADSET || (colorMode & COLOR_WIDE_MASK ) != 0 || ((colorMode & COLOR_HDR_MASK ) != 0 )) {
425
443
return SDK_OREO ;
426
444
}
@@ -550,6 +568,7 @@ public int hashCode() {
550
568
public final static byte SDK_S = 31 ;
551
569
public final static byte SDK_S_V2 = 32 ;
552
570
public final static byte SDK_TIRAMISU = 33 ;
571
+ public final static byte SDK_UPSIDEDOWN_CAKE = 34 ;
553
572
554
573
// AOSP has this as 10,000 for dev purposes.
555
574
// platform_frameworks_base/commit/c7a1109a1fe0771d4c9b572dcf178e2779fc4f2d
@@ -590,6 +609,11 @@ public int hashCode() {
590
609
public final static short SCREENLAYOUT_ROUND_NO = 0x1 ;
591
610
public final static short SCREENLAYOUT_ROUND_YES = 0x2 ;
592
611
612
+ public final static byte GRAMMATICAL_GENDER_ANY = 0 ;
613
+ public final static byte GRAMMATICAL_GENDER_NEUTER = 1 ;
614
+ public final static byte GRAMMATICAL_GENDER_FEMININE = 2 ;
615
+ public final static byte GRAMMATICAL_GENDER_MASCULINE = 3 ;
616
+
593
617
public final static byte KEYBOARD_ANY = 0 ;
594
618
public final static byte KEYBOARD_NOKEYS = 1 ;
595
619
public final static byte KEYBOARD_QWERTY = 2 ;
0 commit comments