@@ -465,6 +465,45 @@ public boolean isLayoutSizeAtLeast(int size) {
465465 */
466466 public int orientation ;
467467
468+ /** Constant for {@link #uiThemeMode}
469+ * value that corresponds to the
470+ * ui theme mode framework
471+ * resource qualifier.
472+ * value indicating that no mode has been set.
473+ * @hide
474+ */
475+ public static final int UI_THEME_MODE_UNDEFINED = 0 ;
476+ /** Constant for {@link #uiThemeMode}
477+ * value that corresponds to the
478+ * stock themed framework
479+ * resource qualifier.
480+ * @hide
481+ */
482+ public static final int UI_THEME_MODE_NORMAL = 1 ;
483+ /** Constant for {@link #uiThemeMode}
484+ * value that corresponds to the
485+ * dark themed framework
486+ * resource qualifier.
487+ * @hide
488+ */
489+ public static final int UI_THEME_MODE_HOLO_DARK = 2 ;
490+ /** Constant for {@link #uiThemeMode}
491+ * value that corresponds to the
492+ * light themed framework
493+ * resource qualifier.
494+ * @hide
495+ */
496+ public static final int UI_THEME_MODE_HOLO_LIGHT = 3 ;
497+
498+ /**
499+ * Bit for the ui theme mode.
500+ * This may be one of {@link #UI_THEME_MODE_UNDEFINED},
501+ * {@link #UI_THEME_MODE_NORMAL},
502+ * {@link #UI_THEME_MODE_HOLO_DARK}, {@link #UI_THEME_MODE_HOLO_LIGHT},
503+ * @hide
504+ */
505+ public int uiThemeMode ;
506+
468507 /** Constant for {@link #uiMode}: bits that encode the mode type. */
469508 public static final int UI_MODE_TYPE_MASK = 0x0f ;
470509 /** Constant for {@link #uiMode}: a {@link #UI_MODE_TYPE_MASK}
@@ -642,6 +681,8 @@ public boolean isLayoutSizeAtLeast(int size) {
642681 public static final int NATIVE_CONFIG_VERSION = 0x0400 ;
643682 /** @hide Native-specific bit mask for SCREEN_LAYOUT config; DO NOT USE UNLESS YOU ARE SURE. */
644683 public static final int NATIVE_CONFIG_SCREEN_LAYOUT = 0x0800 ;
684+ /** @hide Native-specific bit mask for UI_THEME_MODE config; DO NOT USE UNLESS YOU ARE SURE. */
685+ public static final int NATIVE_CONFIG_UI_THEME_MODE = 0x0900 ;
645686 /** @hide Native-specific bit mask for UI_MODE config; DO NOT USE UNLESS YOU ARE SURE. */
646687 public static final int NATIVE_CONFIG_UI_MODE = 0x1000 ;
647688 /** @hide Native-specific bit mask for SMALLEST_SCREEN_SIZE config; DO NOT USE UNLESS YOU
@@ -681,6 +722,7 @@ public void setTo(Configuration o) {
681722 navigationHidden = o .navigationHidden ;
682723 orientation = o .orientation ;
683724 screenLayout = o .screenLayout ;
725+ uiThemeMode = o .uiThemeMode ;
684726 uiMode = o .uiMode ;
685727 screenWidthDp = o .screenWidthDp ;
686728 screenHeightDp = o .screenHeightDp ;
@@ -768,6 +810,14 @@ public String toString() {
768810 case ORIENTATION_PORTRAIT : sb .append (" port" ); break ;
769811 default : sb .append (" orien=" ); sb .append (orientation ); break ;
770812 }
813+ switch (uiThemeMode ) {
814+ case UI_THEME_MODE_UNDEFINED : sb .append (" ?uithememode" ); break ;
815+ /* normal is not interesting to print it is default behaviour*/
816+ case UI_THEME_MODE_NORMAL : break ;
817+ case UI_THEME_MODE_HOLO_DARK : sb .append (" darktheme" ); break ;
818+ case UI_THEME_MODE_HOLO_LIGHT : sb .append (" lighttheme" ); break ;
819+ default : sb .append (" uiThemeMode=" ); sb .append (uiThemeMode ); break ;
820+ }
771821 switch ((uiMode &UI_MODE_TYPE_MASK )) {
772822 case UI_MODE_TYPE_UNDEFINED : sb .append (" ?uimode" ); break ;
773823 case UI_MODE_TYPE_NORMAL : /* normal is not interesting to print */ break ;
@@ -851,6 +901,7 @@ public void setToDefaults() {
851901 navigationHidden = NAVIGATIONHIDDEN_UNDEFINED ;
852902 orientation = ORIENTATION_UNDEFINED ;
853903 screenLayout = SCREENLAYOUT_UNDEFINED ;
904+ uiThemeMode = UI_THEME_MODE_UNDEFINED ;
854905 uiMode = UI_MODE_TYPE_UNDEFINED ;
855906 screenWidthDp = compatScreenWidthDp = SCREEN_WIDTH_DP_UNDEFINED ;
856907 screenHeightDp = compatScreenHeightDp = SCREEN_HEIGHT_DP_UNDEFINED ;
@@ -956,6 +1007,11 @@ public int updateFrom(Configuration delta) {
9561007 screenLayout = delta .screenLayout ;
9571008 }
9581009 }
1010+ if (delta .uiThemeMode != UI_THEME_MODE_UNDEFINED
1011+ && uiThemeMode != delta .uiThemeMode ) {
1012+ changed |= ActivityInfo .CONFIG_UI_THEME_MODE ;
1013+ uiThemeMode = delta .uiThemeMode ;
1014+ }
9591015 if (delta .uiMode != (UI_MODE_TYPE_UNDEFINED |UI_MODE_NIGHT_UNDEFINED )
9601016 && uiMode != delta .uiMode ) {
9611017 changed |= ActivityInfo .CONFIG_UI_MODE ;
@@ -1101,6 +1157,10 @@ && getScreenLayoutNoDirection(screenLayout) !=
11011157 getScreenLayoutNoDirection (delta .screenLayout )) {
11021158 changed |= ActivityInfo .CONFIG_SCREEN_LAYOUT ;
11031159 }
1160+ if (delta .uiThemeMode != UI_THEME_MODE_UNDEFINED
1161+ && uiThemeMode != delta .uiThemeMode ) {
1162+ changed |= ActivityInfo .CONFIG_UI_THEME_MODE ;
1163+ }
11041164 if (delta .uiMode != (UI_MODE_TYPE_UNDEFINED |UI_MODE_NIGHT_UNDEFINED )
11051165 && uiMode != delta .uiMode ) {
11061166 changed |= ActivityInfo .CONFIG_UI_MODE ;
@@ -1211,6 +1271,7 @@ public void writeToParcel(Parcel dest, int flags) {
12111271 dest .writeInt (navigationHidden );
12121272 dest .writeInt (orientation );
12131273 dest .writeInt (screenLayout );
1274+ dest .writeInt (uiThemeMode );
12141275 dest .writeInt (uiMode );
12151276 dest .writeInt (screenWidthDp );
12161277 dest .writeInt (screenHeightDp );
@@ -1240,6 +1301,7 @@ public void readFromParcel(Parcel source) {
12401301 navigationHidden = source .readInt ();
12411302 orientation = source .readInt ();
12421303 screenLayout = source .readInt ();
1304+ uiThemeMode = source .readInt ();
12431305 uiMode = source .readInt ();
12441306 screenWidthDp = source .readInt ();
12451307 screenHeightDp = source .readInt ();
@@ -1308,6 +1370,8 @@ public int compareTo(Configuration that) {
13081370 if (n != 0 ) return n ;
13091371 n = this .screenLayout - that .screenLayout ;
13101372 if (n != 0 ) return n ;
1373+ n = this .uiThemeMode - that .uiThemeMode ;
1374+ if (n != 0 ) return n ;
13111375 n = this .uiMode - that .uiMode ;
13121376 if (n != 0 ) return n ;
13131377 n = this .screenWidthDp - that .screenWidthDp ;
@@ -1354,6 +1418,7 @@ public int hashCode() {
13541418 result = 31 * result + navigationHidden ;
13551419 result = 31 * result + orientation ;
13561420 result = 31 * result + screenLayout ;
1421+ result = 31 * result + uiThemeMode ;
13571422 result = 31 * result + uiMode ;
13581423 result = 31 * result + screenWidthDp ;
13591424 result = 31 * result + screenHeightDp ;
0 commit comments