[2/2] OmniGears: battery styles are back

Change-Id: I0ab26a8ef8681629ed71378a438c7e3e8d60e63a
diff --git a/res/values/custom_dimens.xml b/res/values/custom_dimens.xml
index 73b9b17..beb265a 100755
--- a/res/values/custom_dimens.xml
+++ b/res/values/custom_dimens.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!--  Copyright (C) 2014 The OmniROM Project
+<!--  Copyright (C) 2016 The OmniROM Project
 
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
  -->
 
 <resources>
-    <dimen name="color_preference_width">16dip</dimen>
-    <dimen name="color_preference_height">16dip</dimen>
-    <dimen name="color_preference_height_large">32dip</dimen>
+    <dimen name="alert_dialog_padding_material">20dp</dimen>
+    <dimen name="color_preference_width">18dip</dimen>
+    <dimen name="color_preference_height">18dip</dimen>
 </resources>
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 58d4b77..d55fd24 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -161,6 +161,7 @@
 
     <string name="statusbar_title">Status bar</string>
     <string name="battery_title">Battery display</string>
+    <string name="statusbar_battery_summary">Set style of status bar battery display</string>
     <string name="battery_style_title">Style</string>
     <string name="battery_percent_title">Show percent</string>
     <string name="battery_percent_none">Never</string>
@@ -171,7 +172,9 @@
     <string name="statusbar_charging_image_title">Charging indicator</string>
     <string name="statusbar_category_charging_title">Charging</string>
     <string name="statusbar_charging_image_summary">Display bolt indicator while charging. Hides percent overlay</string>
-    <string name="statusbar_battery_charging_color_title">Color battery while charging</string>
+    <string name="statusbar_battery_charging_color_title">Color</string>
+    <string name="statusbar_battery_charging_color_enable_title">Color while charging</string>
+    <string name="statusbar_battery_charging_color_enable_summary"></string>
 
     <string name="button_brightness_title">Brightness</string>
     <string name="button_brightness_summary">Button backlight brightness</string>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
deleted file mode 100644
index 3c299cc..0000000
--- a/res/values/dimens.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2015 The OmniROM Project
-
-  This program is free software: you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation, either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License
-  along with this program.  If not, see <http://www.gnu.org/licenses/>.
--->
-<resources>
-	<dimen name="alert_dialog_padding_material">20dp</dimen>
-</resources>
diff --git a/res/xml/bars_settings.xml b/res/xml/bars_settings.xml
index 5d61fa2..12c196e 100644
--- a/res/xml/bars_settings.xml
+++ b/res/xml/bars_settings.xml
@@ -34,10 +34,11 @@
                 android:summary="@string/double_tap_to_sleep_summary"
                 android:defaultValue="false" />
 
-            <!--<PreferenceScreen
+            <PreferenceScreen
                 android:key="statusbar_battery"
                 android:title="@string/battery_title"
-                android:fragment="org.omnirom.omnigears.interfacesettings.StatusbarBatterySettings" />-->
+                android:summary="@string/statusbar_battery_summary"
+                android:fragment="org.omnirom.omnigears.interfacesettings.StatusbarBatterySettings" />
 
             <PreferenceScreen
                     android:title="@string/status_bar_icon_blacklist_title"
diff --git a/res/xml/statusbar_battery_settings.xml b/res/xml/statusbar_battery_settings.xml
index 21aec74..5080042 100644
--- a/res/xml/statusbar_battery_settings.xml
+++ b/res/xml/statusbar_battery_settings.xml
@@ -23,7 +23,8 @@
             android:title="@string/battery_style_title"
             android:entries="@*android:array/entries_battery_styles"
             android:entryValues="@*android:array/values_battery_styles"
-            android:persistent="false"/>
+            android:persistent="false"
+            android:defaultValue="0"/>
         <ListPreference
             android:key="statusbar_battery_percent"
             android:title="@string/battery_percent_title"
@@ -45,10 +46,16 @@
                 android:title="@string/statusbar_charging_image_title"
                 android:summary="@string/statusbar_charging_image_summary"
                 android:defaultValue="true"/>
+            <com.android.settings.preference.SystemCheckBoxPreference
+                android:key="statusbar_battery_charging_color_enable"
+                android:title="@string/statusbar_battery_charging_color_enable_title"
+                android:summary="@string/statusbar_battery_charging_color_enable_summary"
+                android:defaultValue="true"/>
             <org.omnirom.omnigears.ui.ColorPickerPreference
                 android:key="statusbar_battery_charging_color"
                 android:title="@string/statusbar_battery_charging_color_title"
-                android:persistent="false" />
+                android:persistent="false"
+                android:dependency ="statusbar_battery_charging_color_enable"/>
 
         </PreferenceCategory>
 </PreferenceScreen>
diff --git a/src/org/omnirom/omnigears/interfacesettings/StatusbarBatterySettings.java b/src/org/omnirom/omnigears/interfacesettings/StatusbarBatterySettings.java
index ffb2b2d..713e715 100644
--- a/src/org/omnirom/omnigears/interfacesettings/StatusbarBatterySettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/StatusbarBatterySettings.java
@@ -26,6 +26,7 @@
 import android.net.TrafficStats;
 import android.os.Bundle;
 import android.os.RemoteException;
+import android.preference.CheckBoxPreference;
 import android.preference.ListPreference;
 import android.preference.Preference;
 import android.preference.PreferenceGroup;
@@ -60,10 +61,16 @@
     private static final String STATUSBAR_BATTERY_STYLE = "statusbar_battery_style";
     private static final String STATUSBAR_BATTERY_PERCENT = "statusbar_battery_percent";
     private static final String STATUSBAR_CHARGING_COLOR = "statusbar_battery_charging_color";
+    private static final String STATUSBAT_BATTERY_PERCENT_INSIDE = "statusbar_battery_percent_inside";
+    private static final String STATUSBAT_BATTERY_SHOW_BOLT = "statusbar_battery_charging_image";
 
     private ListPreference mBatteryStyle;
     private ListPreference mBatteryPercent;
     private ColorPickerPreference mChargingColor;
+    private CheckBoxPreference mPercentInside;
+    private CheckBoxPreference mShowBolt;
+    private int mShowPercent;
+    private int mBatteryStyleValue;
 
     @Override
     protected int getMetricsCategory() {
@@ -79,18 +86,18 @@
         ContentResolver resolver = getActivity().getContentResolver();
 
         mBatteryStyle = (ListPreference) findPreference(STATUSBAR_BATTERY_STYLE);
-        int batteryStyle = Settings.System.getInt(resolver,
+        mBatteryStyleValue = Settings.System.getInt(resolver,
                 Settings.System.STATUSBAR_BATTERY_STYLE, 0);
 
-        mBatteryStyle.setValue(Integer.toString(batteryStyle));
+        mBatteryStyle.setValue(Integer.toString(mBatteryStyleValue));
         mBatteryStyle.setSummary(mBatteryStyle.getEntry());
         mBatteryStyle.setOnPreferenceChangeListener(this);
 
         mBatteryPercent = (ListPreference) findPreference(STATUSBAR_BATTERY_PERCENT);
-        int batteryPercent = Settings.System.getInt(resolver,
+        mShowPercent = Settings.System.getInt(resolver,
                 Settings.System.STATUSBAR_BATTERY_PERCENT, 2);
 
-        mBatteryPercent.setValue(Integer.toString(batteryPercent));
+        mBatteryPercent.setValue(Integer.toString(mShowPercent));
         mBatteryPercent.setSummary(mBatteryPercent.getEntry());
         mBatteryPercent.setOnPreferenceChangeListener(this);
 
@@ -101,6 +108,12 @@
         String hexColor = String.format("#%08X", chargingColor);
         mChargingColor.setSummary(hexColor);
         mChargingColor.setOnPreferenceChangeListener(this);
+
+        mPercentInside = (CheckBoxPreference) findPreference(STATUSBAT_BATTERY_PERCENT_INSIDE);
+        mPercentInside.setEnabled(mBatteryStyleValue < 3 && mShowPercent != 0);
+
+        mShowBolt = (CheckBoxPreference) findPreference(STATUSBAT_BATTERY_SHOW_BOLT);
+        mShowBolt.setEnabled(mBatteryStyleValue < 3);
     }
 
     @Override
@@ -113,19 +126,22 @@
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         ContentResolver resolver = getActivity().getContentResolver();
         if (preference == mBatteryStyle) {
-            int value = Integer.valueOf((String) newValue);
+            mBatteryStyleValue = Integer.valueOf((String) newValue);
             int index = mBatteryStyle.findIndexOfValue((String) newValue);
+            mPercentInside.setEnabled(mBatteryStyleValue < 3 && mShowPercent != 0);
+            mShowBolt.setEnabled(mBatteryStyleValue < 3);
             mBatteryStyle.setSummary(
                     mBatteryStyle.getEntries()[index]);
             Settings.System.putInt(getContentResolver(),
-                    Settings.System.STATUSBAR_BATTERY_STYLE, value);
+                    Settings.System.STATUSBAR_BATTERY_STYLE, mBatteryStyleValue);
         } else if (preference == mBatteryPercent) {
-            int value = Integer.valueOf((String) newValue);
+            mShowPercent = Integer.valueOf((String) newValue);
             int index = mBatteryPercent.findIndexOfValue((String) newValue);
+            mPercentInside.setEnabled(mBatteryStyleValue < 3 && mShowPercent != 0);
             mBatteryPercent.setSummary(
                     mBatteryPercent.getEntries()[index]);
             Settings.System.putInt(getContentResolver(),
-                    Settings.System.STATUSBAR_BATTERY_PERCENT, value);
+                    Settings.System.STATUSBAR_BATTERY_PERCENT, mShowPercent);
         } else if (preference == mChargingColor) {
             String hexColor = String.format("#%08X", mChargingColor.getColor());
             mChargingColor.setSummary(hexColor);