[2/2] OmniGears: add config to apply custom shadow on header images
To make text and status icons better visible with bright
images if required.
Change-Id: Idafa96bf1e07c91ef6e3e62efbe6aa505d9d9892
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index e7fe400..6e9a6c1 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -217,6 +217,9 @@
<string name="status_bar_custom_header_title">Custom header image</string>
<string name="status_bar_custom_header_summary">Enable notification panel header image</string>
<string name="daylight_header_pack_title">Header image pack</string>
+ <string name="status_bar_custom_header_shadow_title">Header image shadow</string>
+ <string name="status_bar_custom_header_shadow_summary">For better visibility on bright images</string>
+ <string name="unit_percent">\u0025</string>
<!-- Network traffic -->
<string name="network_traffic_title">Network traffic</string>
diff --git a/res/xml/bars_settings.xml b/res/xml/bars_settings.xml
index 12c196e..80bd7b2 100644
--- a/res/xml/bars_settings.xml
+++ b/res/xml/bars_settings.xml
@@ -71,15 +71,29 @@
android:title="@string/notification_title" >
<CheckBoxPreference
- android:key="status_bar_custom_header"
- android:title="@string/status_bar_custom_header_title"
- android:summary="@string/status_bar_custom_header_summary"
- android:defaultValue="false"/>
+ android:key="status_bar_custom_header"
+ android:title="@string/status_bar_custom_header_title"
+ android:summary="@string/status_bar_custom_header_summary"
+ android:defaultValue="false"
+ android:persistent="false" />
<ListPreference
android:key="daylight_header_pack"
android:title="@string/daylight_header_pack_title"
- android:persistent="false" />
+ android:persistent="false"
+ android:dependency="status_bar_custom_header" />
+
+ <com.android.settings.preference.SeekBarPreference
+ android:key="status_bar_custom_header_shadow"
+ android:title="@string/status_bar_custom_header_shadow_title"
+ android:summary="@string/status_bar_custom_header_shadow_summary"
+ android:defaultValue="0"
+ android:max="100"
+ settings:min="0"
+ settings:unitsLeft=""
+ settings:unitsRight="@string/unit_percent"
+ android:persistent="false"
+ android:dependency="status_bar_custom_header" />
<PreferenceScreen
android:title="@string/quick_settings_title"
diff --git a/src/org/omnirom/omnigears/ButtonBrightnessSettings.java b/src/org/omnirom/omnigears/ButtonBrightnessSettings.java
index a0e5d28..e5b56fd 100644
--- a/src/org/omnirom/omnigears/ButtonBrightnessSettings.java
+++ b/src/org/omnirom/omnigears/ButtonBrightnessSettings.java
@@ -82,7 +82,7 @@
addPreferencesFromResource(R.xml.button_brightness_settings);
PreferenceScreen prefSet = getPreferenceScreen();
- ContentResolver resolver = getActivity().getContentResolver();
+ ContentResolver resolver = getContentResolver();
mNoButtonBrightness = (CheckBoxPreference) findPreference(KEY_BUTTON_NO_BRIGHTNESS);
mNoButtonBrightness.setChecked(Settings.System.getInt(resolver,
@@ -95,7 +95,7 @@
mManualButtonBrightnessNew = (SeekBarPreference) findPreference(KEY_BUTTON_MANUAL_BRIGHTNESS_NEW);
final int customButtonBrightness = getResources().getInteger(
com.android.internal.R.integer.config_button_brightness_default);
- final int currentBrightness = Settings.System.getInt(getContext().getContentResolver(),
+ final int currentBrightness = Settings.System.getInt(resolver,
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, customButtonBrightness);
mManualButtonBrightnessNew.setValue(currentBrightness);
mManualButtonBrightnessNew.setOnPreferenceChangeListener(this);
@@ -131,13 +131,13 @@
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
if (preference == mNoButtonBrightness) {
boolean checked = ((CheckBoxPreference)preference).isChecked();
- Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.putInt(getContentResolver(),
Settings.System.CUSTOM_BUTTON_DISABLE_BRIGHTNESS, checked ? 1:0);
updateEnablement();
return true;
} else if (preference == mLinkButtonBrightness) {
boolean checked = ((CheckBoxPreference)preference).isChecked();
- Settings.System.putInt(getActivity().getContentResolver(),
+ Settings.System.putInt(getContentResolver(),
Settings.System.CUSTOM_BUTTON_USE_SCREEN_BRIGHTNESS, checked ? 1:0);
updateEnablement();
return true;
@@ -155,7 +155,7 @@
Settings.System.BUTTON_BACKLIGHT_TIMEOUT, buttonTimeout);
} else if (preference == mManualButtonBrightnessNew) {
int buttonBrightness = (Integer) objValue;
- Settings.System.putInt(getContext().getContentResolver(),
+ Settings.System.putInt(getContentResolver(),
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, buttonBrightness);
} else {
return false;
diff --git a/src/org/omnirom/omnigears/interfacesettings/BarsSettings.java b/src/org/omnirom/omnigears/interfacesettings/BarsSettings.java
index 7d66027..39710c3 100644
--- a/src/org/omnirom/omnigears/interfacesettings/BarsSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/BarsSettings.java
@@ -38,6 +38,7 @@
import android.provider.SearchIndexableResource;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
+import android.util.Log;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.R;
@@ -61,10 +62,12 @@
private static final String DAYLIGHT_HEADER_PACK = "daylight_header_pack";
private static final String DEFAULT_HEADER_PACKAGE = "com.android.systemui";
private static final String NAVIGATIONBAR_ROOT = "category_navigationbar";
- private static final String TABLET_NAVIGATION_BAR = "enable_tablet_navigationr";
+ private static final String TABLET_NAVIGATION_BAR = "enable_tablet_navigation";
+ private static final String CUSTOM_HEADER_IMAGE_SHADOW = "status_bar_custom_header_shadow";
private ListPreference mDaylightHeaderPack;
private CheckBoxPreference mCustomHeaderImage;
+ private SeekBarPreference mHeaderShadow;
@Override
protected int getMetricsCategory() {
@@ -119,7 +122,12 @@
mDaylightHeaderPack.setValueIndex(valueIndex >= 0 ? valueIndex : 0);
mDaylightHeaderPack.setSummary(mDaylightHeaderPack.getEntry());
mDaylightHeaderPack.setOnPreferenceChangeListener(this);
- mDaylightHeaderPack.setEnabled(customHeaderImage);
+
+ mHeaderShadow = (SeekBarPreference) findPreference(CUSTOM_HEADER_IMAGE_SHADOW);
+ final int headerShadow = Settings.System.getInt(getContentResolver(),
+ Settings.System.STATUS_BAR_CUSTOM_HEADER_SHADOW, 0);
+ mHeaderShadow.setValue((int)((headerShadow / 255) * 100));
+ mHeaderShadow.setOnPreferenceChangeListener(this);
}
@Override
@@ -128,7 +136,6 @@
final boolean value = ((CheckBoxPreference)preference).isChecked();
Settings.System.putInt(getContentResolver(),
Settings.System.STATUS_BAR_CUSTOM_HEADER, value ? 1 : 0);
- mDaylightHeaderPack.setEnabled(value);
return true;
}
// If we didn't handle it, let preferences handle it.
@@ -143,6 +150,11 @@
Settings.System.STATUS_BAR_DAYLIGHT_HEADER_PACK, value);
int valueIndex = mDaylightHeaderPack.findIndexOfValue(value);
mDaylightHeaderPack.setSummary(mDaylightHeaderPack.getEntries()[valueIndex]);
+ } else if (preference == mHeaderShadow) {
+ Integer headerShadow = (Integer) newValue;
+ int realHeaderValue = (int) (((double) headerShadow / 100) * 255);
+ Settings.System.putInt(getContentResolver(),
+ Settings.System.STATUS_BAR_CUSTOM_HEADER_SHADOW, realHeaderValue);
}
return true;
}