Status bar brightness control (Settings portion)
Based on CM10/10.1's implementation, but moved to OmniGears
Change-Id: I825a62529505eab421e87ec60e335b6c9d77cd8a
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index e05e38c..50262e3 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -24,6 +24,9 @@
<string name="bars_and_menus_settings">Bars and menus</string>
<string name="bars_and_menus_category_status_bar_title">Status bar</string>
<string name="status_bar_battery_title">Battery style</string>
+ <string name="status_bar_toggle_brightness">Brightness control</string>
+ <string name="status_bar_toggle_brightness_summary">Adjust brightness by sliding across status bar</string>
+ <string name="status_bar_toggle_info">Automatic brightness is enabled</string>
<string name="status_bar_signal_text_title">Signal status style</string>
<string name="status_bar_style_icon">Icon</string>
<string name="status_bar_style_hidden">Hidden</string>
diff --git a/res/xml/bars_and_menus_settings.xml b/res/xml/bars_and_menus_settings.xml
index e6b75d6..7fb2fe8 100644
--- a/res/xml/bars_and_menus_settings.xml
+++ b/res/xml/bars_and_menus_settings.xml
@@ -33,6 +33,12 @@
android:entryValues="@array/values_status_bar_battery" />
<CheckBoxPreference
+ android:key="status_bar_brightness_control"
+ android:title="@string/status_bar_toggle_brightness"
+ android:summary="@string/status_bar_toggle_brightness_summary"
+ android:defaultValue="false" />
+
+ <CheckBoxPreference
android:key="status_bar_notif_count"
android:title="@string/status_bar_notif_count_title"
android:summary="@string/status_bar_notif_count_summary"
diff --git a/src/org/omnirom/omnigears/BarsAndMenusSettings.java b/src/org/omnirom/omnigears/BarsAndMenusSettings.java
index dc6a2e8..61312fd 100644
--- a/src/org/omnirom/omnigears/BarsAndMenusSettings.java
+++ b/src/org/omnirom/omnigears/BarsAndMenusSettings.java
@@ -41,6 +41,7 @@
import android.preference.PreferenceScreen;
import android.provider.MediaStore;
import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
import android.util.Log;
import java.util.List;
@@ -50,10 +51,12 @@
private static final String TAG = "BarsAndMenusSettings";
private static final String STATUS_BAR_BATTERY = "status_bar_battery";
+ private static final String STATUS_BAR_BRIGHTNESS_CONTROL = "status_bar_brightness_control";
private static final String STATUS_BAR_NOTIF_COUNT = "status_bar_notif_count";
private static final String STATUS_BAR_TRANSPARENT_ON_KEYGUARD = "status_bar_transparent_on_keyguard";
private ListPreference mStatusBarBattery;
+ private CheckBoxPreference mStatusBarBrightnessControl;
private CheckBoxPreference mStatusBarNotifCount;
private CheckBoxPreference mStatusBarTransparentOnKeyguard;
@@ -71,6 +74,19 @@
mStatusBarBattery.setSummary(mStatusBarBattery.getEntry());
mStatusBarBattery.setOnPreferenceChangeListener(this);
+ mStatusBarBrightnessControl = (CheckBoxPreference) prefSet.findPreference(STATUS_BAR_BRIGHTNESS_CONTROL);
+ mStatusBarBrightnessControl.setChecked((Settings.System.getInt(resolver,Settings.System.STATUS_BAR_BRIGHTNESS_CONTROL, 0) == 1));
+ mStatusBarBrightnessControl.setOnPreferenceChangeListener(this);
+
+ try {
+ if (Settings.System.getInt(getActivity().getApplicationContext().getContentResolver(),
+ Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
+ mStatusBarBrightnessControl.setEnabled(false);
+ mStatusBarBrightnessControl.setSummary(R.string.status_bar_toggle_info);
+ }
+ } catch (SettingNotFoundException e) {
+ }
+
mStatusBarNotifCount = (CheckBoxPreference) prefSet.findPreference(STATUS_BAR_NOTIF_COUNT);
mStatusBarNotifCount.setChecked(Settings.System.getInt(resolver,
Settings.System.STATUS_BAR_NOTIF_COUNT, 0) == 1);
@@ -95,6 +111,9 @@
int index = mStatusBarBattery.findIndexOfValue((String) objValue);
Settings.System.putInt(resolver, Settings.System.STATUS_BAR_BATTERY, statusBarBattery);
mStatusBarBattery.setSummary(mStatusBarBattery.getEntries()[index]);
+ } else if (preference == mStatusBarBrightnessControl) {
+ boolean value = (Boolean) objValue;
+ Settings.System.putInt(resolver,Settings.System.STATUS_BAR_BRIGHTNESS_CONTROL, value ? 1 : 0);
} else if (preference == mStatusBarNotifCount) {
boolean value = (Boolean) objValue;
Settings.System.putInt(resolver, Settings.System.STATUS_BAR_NOTIF_COUNT, value ? 1 : 0);