[2/2] OmniGears: online header support

Change-Id: Ic44d7082fb97d0200bf5db15055f1fc851964473
diff --git a/res/values/custom_arrays.xml b/res/values/custom_arrays.xml
index 17e86fe..e91e790 100644
--- a/res/values/custom_arrays.xml
+++ b/res/values/custom_arrays.xml
@@ -284,13 +284,11 @@
 
     <string-array name="custom_header_provider_entries" translatable="false">
         <item>@string/daylight_header_provider_title</item>
-        <item>@string/static_header_provider_title</item>
         <item>@string/file_header_provider_title</item>
     </string-array>
 
     <string-array name="custom_header_provider_values" translatable="false">
         <item>@string/daylight_header_provider</item>
-        <item>@string/static_header_provider</item>
         <item>@string/file_header_provider</item>
     </string-array>
 
@@ -507,7 +505,7 @@
         <item>3</item>
     </string-array>
 
-    <string-array name="entries_battery_styles" translatable="false">
+    <string-array name="battery_styles_entries" translatable="false">
         <item>@string/battery_style_default</item>
         <item>@string/battery_style_meter_horizontal</item>
         <item>@string/battery_style_circle</item>
@@ -516,7 +514,7 @@
         <item>@string/battery_style_droid</item>
     </string-array>
 
-    <string-array name="values_battery_styles" translatable="false">
+    <string-array name="battery_styles_values" translatable="false">
         <item>0</item>
         <item>1</item>
         <item>2</item>
@@ -524,4 +522,16 @@
         <item>4</item>
         <item>5</item>
     </string-array>
+
+    <string-array name="battery_percent_enable_entries" translatable="false">
+        <item>@string/battery_percent_none</item>
+        <item>@string/battery_percent_always</item>
+        <item>@string/battery_percent_expanded</item>
+    </string-array>
+
+    <string-array name="battery_percent_enable_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 7968be9..8959079 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -262,18 +262,15 @@
     <string name="static_header_provider_title">Static image</string>
     <string name="daylight_header_provider_title">Image collection</string>
     <string name="custom_header_provider_title">Header provider</string>
-    <string name="custom_header_browse_title">Browse installed headers</string>
-    <string name="custom_header_browse_summary">Click on any image to use for static mode</string>
-    <string name="custom_header_browse_summary_new">Browse all available header collections</string>
     <string name="custom_header_pick_title">Select header image</string>
-    <string name="custom_header_pick_summary">Select an image to use for static mode</string>
+    <string name="custom_header_pick_summary">Select a local or remote image</string>
     <string name="style_enabled_summary">Custom header image is ON</string>
     <string name="style_disabled_summary">Custom header image is OFF</string>
     <string name="header_provider_disabled">Disabled</string>
     <string name="custom_header_title">Custom header image</string>
-    <string name="file_header_select_title">Select image</string>
-    <string name="file_header_select_summary">Select custom image</string>
-    <string name="file_header_provider_title">Custom image</string>
+    <string name="file_header_select_title">Select local image</string>
+    <string name="file_header_select_summary">Select image from storage</string>
+    <string name="file_header_provider_title">Single image</string>
     <string name="file_header_provider" translatable="false">file</string>
 
     <!-- Network traffic -->
diff --git a/res/xml/style_settings.xml b/res/xml/style_settings.xml
index 1bbfc6b..639a2ce 100644
--- a/res/xml/style_settings.xml
+++ b/res/xml/style_settings.xml
@@ -79,8 +79,8 @@
 
         <Preference
             android:key="custom_header_browse"
-            android:title="@string/custom_header_browse_title"
-            android:summary="@string/custom_header_browse_summary"
+            android:title="@string/custom_header_pick_title"
+            android:summary="@string/custom_header_pick_summary"
             android:persistent="false"
             android:dependency="status_bar_custom_header" >
             <intent android:action="android.intent.action.MAIN"
diff --git a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
index 1347590..9b4fd87 100644
--- a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
@@ -80,6 +80,12 @@
     private String mFileHeaderProvider;
 
     @Override
+    public void onResume() {
+        super.onResume();
+        updateEnablement();
+    }
+
+    @Override
     public int getMetricsCategory() {
         return MetricsEvent.OMNI_SETTINGS;
     }
@@ -97,7 +103,9 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        //addPreferencesFromResource(R.xml.style_settings);
+
+        mDaylightHeaderProvider = getResources().getString(R.string.daylight_header_provider);
+        mFileHeaderProvider = getResources().getString(R.string.file_header_provider);
 
         mWallBrowse = findPreference(CUSTOM_WALL_BROWSE);
         mWallBrowse.setEnabled(isBrowseWallsAvailable());
@@ -126,32 +134,18 @@
         mHeaderShadow.setValue((int)(((double) headerShadow / 255) * 100));
         mHeaderShadow.setOnPreferenceChangeListener(this);
 
-        mDaylightHeaderProvider = getResources().getString(R.string.daylight_header_provider);
-        mFileHeaderProvider = getResources().getString(R.string.file_header_provider);
-        String providerName = Settings.System.getString(getContentResolver(),
-                Settings.System.STATUS_BAR_CUSTOM_HEADER_PROVIDER);
-        if (providerName == null) {
-            providerName = mDaylightHeaderProvider;
-        }
-        mHeaderBrowse.setEnabled(isBrowseHeaderAvailable() && !providerName.equals(mFileHeaderProvider));
-
         mHeaderProvider = (ListPreference) findPreference(CUSTOM_HEADER_PROVIDER);
-        int valueIndex = mHeaderProvider.findIndexOfValue(providerName);
-        mHeaderProvider.setValueIndex(valueIndex >= 0 ? valueIndex : 0);
-        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));
+        int valueIndex = mSystemUIThemeStyle.findIndexOfValue(String.valueOf(systemUIThemeStyle));
         mSystemUIThemeStyle.setValueIndex(valueIndex >= 0 ? valueIndex : 0);
         mSystemUIThemeStyle.setSummary(mSystemUIThemeStyle.getEntry());
         mSystemUIThemeStyle.setOnPreferenceChangeListener(this);
 
         mFileHeader = findPreference(FILE_HEADER_SELECT);
-        mFileHeader.setEnabled(providerName.equals(mFileHeaderProvider));
     }
 
     private void updateHeaderProviderSummary(boolean headerEnabled) {
@@ -201,11 +195,7 @@
                     Settings.System.STATUS_BAR_CUSTOM_HEADER_PROVIDER, value);
             int valueIndex = mHeaderProvider.findIndexOfValue(value);
             mHeaderProvider.setSummary(mHeaderProvider.getEntries()[valueIndex]);
-            mDaylightHeaderPack.setEnabled(value.equals(mDaylightHeaderProvider));
-            mHeaderBrowse.setEnabled(!value.equals(mFileHeaderProvider));
-            mHeaderBrowse.setTitle(valueIndex == 0 ? R.string.custom_header_browse_title : R.string.custom_header_pick_title);
-            mHeaderBrowse.setSummary(valueIndex == 0 ? R.string.custom_header_browse_summary_new : R.string.custom_header_pick_summary);
-            mFileHeader.setEnabled(value.equals(mFileHeaderProvider));
+            updateEnablement();
         } else if (preference == mHeaderEnabled) {
             Boolean headerEnabled = (Boolean) newValue;
             updateHeaderProviderSummary(headerEnabled);
@@ -273,6 +263,7 @@
                 return;
             }
             final Uri imageUri = result.getData();
+            Settings.System.putString(getContentResolver(), Settings.System.STATUS_BAR_CUSTOM_HEADER_PROVIDER, "file");
             Settings.System.putString(getContentResolver(), Settings.System.STATUS_BAR_FILE_HEADER_IMAGE, imageUri.toString());
         }
     }
@@ -284,6 +275,23 @@
         return controllers;
     }
 
+    private void updateEnablement() {
+        String providerName = Settings.System.getString(getContentResolver(),
+                Settings.System.STATUS_BAR_CUSTOM_HEADER_PROVIDER);
+        if (providerName == null) {
+            providerName = mDaylightHeaderProvider;
+        }
+        if (!providerName.equals(mDaylightHeaderProvider)) {
+            providerName = mFileHeaderProvider;
+        }
+        int valueIndex = mHeaderProvider.findIndexOfValue(providerName);
+        mHeaderProvider.setValueIndex(valueIndex >= 0 ? valueIndex : 0);
+        mHeaderProvider.setSummary(mHeaderProvider.getEntry());
+        mDaylightHeaderPack.setEnabled(providerName.equals(mDaylightHeaderProvider));
+        mFileHeader.setEnabled(providerName.equals(mFileHeaderProvider));
+        mHeaderBrowse.setEnabled(isBrowseHeaderAvailable() && providerName.equals(mFileHeaderProvider));
+    }
+    
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider() {
                 @Override