OmniGears: rework header image pref

diff between browse only and pick for static mode
depends on OmniStyle changes to header activities

Change-Id: If3761336567124ee91fe80af351a69204b27d753
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 1d46b7a..e3e7a05 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -263,6 +263,9 @@
     <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">Long press on any image to use for static mode</string>
+    <string name="custom_header_browse_summary_new">Browse all available header packages</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="style_enabled_summary">Custom header image is ON</string>
     <string name="style_disabled_summary">Custom header image is OFF</string>
 
diff --git a/res/xml/style_settings.xml b/res/xml/style_settings.xml
index 411e920..63723e9 100644
--- a/res/xml/style_settings.xml
+++ b/res/xml/style_settings.xml
@@ -99,13 +99,8 @@
             <PreferenceScreen
                 android:key="custom_header_browse"
                 android:title="@string/custom_header_browse_title"
-                android:summary="@string/custom_header_browse_summary"
                 android:dependency="status_bar_custom_header"
-                android:persistent="false" >
-                <intent android:action="android.intent.action.MAIN"
-                        android:targetPackage="org.omnirom.omnistyle"
-                        android:targetClass="org.omnirom.omnistyle.BrowseHeaderActivity" />
-            </PreferenceScreen>
+                android:persistent="false" />
 
             <org.omnirom.omnigears.preference.SeekBarPreference
                 android:key="status_bar_custom_header_shadow"
diff --git a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
index 28d764b..653d095 100644
--- a/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/StyleSettings.java
@@ -148,6 +148,8 @@
 
         mHeaderBrowse = (PreferenceScreen) findPreference(CUSTOM_HEADER_BROWSE);
         mHeaderBrowse.setEnabled(isBrowseHeaderAvailable());
+        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);
 
         mWallBrowse = (PreferenceScreen) findPreference(CUSTOM_WALL_BROWSE);
         mWallBrowse.setEnabled(isBrowseWallsAvailable());
@@ -181,6 +183,16 @@
             } else {
                 downloadOmsApp();
             }
+            return true;
+        } else if (preference == mHeaderBrowse) {
+            String providerName = Settings.System.getString(getContentResolver(),
+                Settings.System.STATUS_BAR_CUSTOM_HEADER_PROVIDER);
+            if (providerName == null) {
+                providerName = mDaylightHeaderProvider;
+            }
+            int valueIndex = mHeaderProvider.findIndexOfValue(providerName);
+            startHeaderActivity(valueIndex == 0 ? false : true);
+            return true;
         }
         return super.onPreferenceTreeClick(preference);
     }
@@ -205,6 +217,8 @@
             int valueIndex = mHeaderProvider.findIndexOfValue(value);
             mHeaderProvider.setSummary(mHeaderProvider.getEntries()[valueIndex]);
             mDaylightHeaderPack.setEnabled(value.equals(mDaylightHeaderProvider));
+            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);
         } else if (preference == mNightModePreference) {
             try {
                 final int value = Integer.parseInt((String) newValue);
@@ -334,4 +348,10 @@
         omsDownloadIntent.setData(Uri.parse("https://play.google.com/store/apps/details?id=projekt.substratum"));
         startActivity(omsDownloadIntent);
     }
+
+    private void startHeaderActivity(boolean pick) {
+        Intent headerIntent = new Intent();
+        headerIntent.setClassName("org.omnirom.omnistyle", pick ? "org.omnirom.omnistyle.PickHeaderActivity" : "org.omnirom.omnistyle.BrowseHeaderActivity");
+        startActivity(headerIntent);
+    }
 }