[2/2] OmniGears: configure SystemUI theme

allow to force light or dark or use the wallpaper based
automatic selection

Change-Id: Icd3f7970519c319e0fe182a7669216b6761438ad
diff --git a/res/values/custom_arrays.xml b/res/values/custom_arrays.xml
index eff5300..a8f0951 100644
--- a/res/values/custom_arrays.xml
+++ b/res/values/custom_arrays.xml
@@ -461,4 +461,16 @@
         <item>6</item>
         <!--<item>1</item>-->
     </string-array>
+
+    <string-array name="systemui_theme_style_entries" translatable="false">
+        <item>@string/systemui_theme_style_auto</item>
+        <item>@string/systemui_theme_style_light</item>
+        <item>@string/systemui_theme_style_dark</item>
+    </string-array>
+
+    <string-array name="systemui_theme_style_values" translatable="false">
+        <item>0</item>
+        <item>1</item>
+        <item>2</item>
+    </string-array>
 </resources>
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 88184ae..db487fd 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -610,4 +610,9 @@
     <string name="show_dashboard_columns_summary">In settings main page</string>
     <string name="hide_dashboard_summary_title">Hide summary</string>
     <string name="hide_dashboard_summary_summary">In settings main page</string>
+
+    <string name="systemui_theme_style_title">SystemUI style</string>
+    <string name="systemui_theme_style_auto">Wallpaper based</string>
+    <string name="systemui_theme_style_light">Light style</string>
+    <string name="systemui_theme_style_dark">Dark style</string>
 </resources>
diff --git a/res/xml/style_settings.xml b/res/xml/style_settings.xml
index 94c25df..af018ae 100644
--- a/res/xml/style_settings.xml
+++ b/res/xml/style_settings.xml
@@ -30,8 +30,16 @@
                     android:targetPackage="org.omnirom.omnistyle"
                     android:targetClass="org.omnirom.omnistyle.BrowseWallsActivity" />
         </Preference>
+
+        <ListPreference
+            android:key="systemui_theme_style"
+            android:title="@string/systemui_theme_style_title"
+            android:persistent="false"
+            android:entries="@array/systemui_theme_style_entries"
+            android:entryValues="@array/systemui_theme_style_values" />
+
     </PreferenceCategory>
-    
+
     <PreferenceCategory
         android:key="category_custom_header"
         android:title="@string/custom_header_title">
diff --git a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
index 9876b0a..980a16a 100644
--- a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
@@ -61,6 +61,7 @@
     private static final String CUSTOM_HEADER_PROVIDER = "custom_header_provider";
     private static final String STATUS_BAR_CUSTOM_HEADER = "status_bar_custom_header";
     private static final String CUSTOM_HEADER_ENABLED = "status_bar_custom_header";
+    private static final String SYSTEMUI_THEME_STYLE = "systemui_theme_style";
 
     private Preference mWallBrowse;
     private Preference mHeaderBrowse;
@@ -69,6 +70,7 @@
     private ListPreference mHeaderProvider;
     private String mDaylightHeaderProvider;
     private SystemSettingSwitchPreference mHeaderEnabled;
+    private ListPreference mSystemUIThemeStyle;
 
     @Override
     public int getMetricsCategory() {
@@ -120,6 +122,14 @@
         mHeaderProvider.setSummary(mHeaderProvider.getEntry());
         mHeaderProvider.setOnPreferenceChangeListener(this);
         mDaylightHeaderPack.setEnabled(providerName.equals(mDaylightHeaderProvider));
+
+        mSystemUIThemeStyle = (ListPreference) findPreference(SYSTEMUI_THEME_STYLE);
+        int systemUIThemeStyle = Settings.System.getInt(getContentResolver(),
+                Settings.System.SYSTEM_UI_THEME, 0);
+        valueIndex = mSystemUIThemeStyle.findIndexOfValue(String.valueOf(systemUIThemeStyle));
+        mSystemUIThemeStyle.setValueIndex(valueIndex >= 0 ? valueIndex : 0);
+        mSystemUIThemeStyle.setSummary(mSystemUIThemeStyle.getEntry());
+        mSystemUIThemeStyle.setOnPreferenceChangeListener(this);
     }
 
     private void updateHeaderProviderSummary(boolean headerEnabled) {
@@ -169,6 +179,11 @@
         } else if (preference == mHeaderEnabled) {
             Boolean headerEnabled = (Boolean) newValue;
             updateHeaderProviderSummary(headerEnabled);
+        } else if (preference == mSystemUIThemeStyle) {
+            String value = (String) newValue;
+            Settings.System.putInt(getContentResolver(), Settings.System.SYSTEM_UI_THEME, Integer.valueOf(value));
+            int valueIndex = mSystemUIThemeStyle.findIndexOfValue(value);
+            mSystemUIThemeStyle.setSummary(mSystemUIThemeStyle.getEntries()[valueIndex]);
         }
         return true;
     }