OmniGears: cleanup
-validate power menu entries with global action list
-use SeekBarPreference for ambient display brightness
-set values from PowerManager for brightness seekbars
-rework button backlight page
Change-Id: Id5375684d99942cb350d917bc45b587dd608b1c7
diff --git a/res/values/custom_strings.xml b/res/values/custom_strings.xml
index 32c28fd..5d7a224 100644
--- a/res/values/custom_strings.xml
+++ b/res/values/custom_strings.xml
@@ -179,17 +179,14 @@
<string name="statusbar_battery_charging_color_enable_summary"></string>
<string name="battery_enable_title">Show battery</string>
- <string name="button_brightness_title">Brightness</string>
- <string name="button_brightness_summary">Button backlight brightness</string>
+ <string name="button_backlight_title">Button backlight</string>
<string name="button_timeout_title">Backlight timeout</string>
<string name="button_timeout_summary">Disabled on value 0</string>
- <string name="button_no_brightness">Dark mode</string>
- <string name="button_no_brightness_summary">Don\'t set button brightness</string>
<string name="button_link_brightness">Link to screen</string>
<string name="button_link_brightness_summary">Use screen brightness level</string>
<string name="button_manual_brightness">Brightness level</string>
- <string name="dialog_manual_brightness_title">Brightness level</string>
<string name="unit_sec">sec</string>
+ <string name="button_backlight_enable_title">Enable</string>
<string name="navigation_bar_show_title">Show navigation bar</string>
<string name="navigation_bar_show_summary">Force enable navigation bar</string>
diff --git a/res/xml/ambient_settings.xml b/res/xml/ambient_settings.xml
index 7c61091..729c881 100644
--- a/res/xml/ambient_settings.xml
+++ b/res/xml/ambient_settings.xml
@@ -54,9 +54,11 @@
android:defaultValue="true"
android:dependency="doze_overwrite_value" />
- <Preference
+ <com.android.settings.preference.SeekBarPreference
android:key="doze_brightness_level"
android:title="@string/doze_brightness_level_title"
+ android:max="255"
+ settings:min="0"
android:persistent="false"
android:dependency="doze_overwrite_value" />
diff --git a/res/xml/button_brightness_settings.xml b/res/xml/button_brightness_settings.xml
index 941552c..68288ee 100644
--- a/res/xml/button_brightness_settings.xml
+++ b/res/xml/button_brightness_settings.xml
@@ -19,22 +19,24 @@
android:title="@string/button_brightness_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
- <com.android.settings.preference.SeekBarPreference
- android:key="button_manual_brightness_new"
- android:title="@string/button_manual_brightness"
- android:max="255"
- settings:min="0"
- android:persistent="false" />
- <CheckBoxPreference
- android:key="button_no_brightness"
- android:title="@string/button_no_brightness"
- android:summary="@string/button_no_brightness_summary"
+ <SwitchPreference
+ android:key="button_backlight_enable"
+ android:title="@string/button_backlight_enable_title"
android:persistent="false"/>
<CheckBoxPreference
android:key="button_link_brightness"
android:title="@string/button_link_brightness"
android:summary="@string/button_link_brightness_summary"
- android:persistent="false"/>
+ android:persistent="false"
+ android:dependency="button_backlight_enable"
+ android:disableDependentsState="true" />
+ <com.android.settings.preference.SeekBarPreference
+ android:key="button_manual_brightness_new"
+ android:title="@string/button_manual_brightness"
+ android:max="255"
+ settings:min="0"
+ android:persistent="false"
+ android:dependency="button_link_brightness" />
<com.android.settings.preference.SeekBarPreference
android:key="button_timeout"
android:title="@string/button_timeout_title"
@@ -43,5 +45,6 @@
settings:min="0"
settings:unitsLeft=""
settings:unitsRight="@string/unit_sec"
- android:persistent="false" />
+ android:persistent="false"
+ android:dependency="button_backlight_enable" />
</PreferenceScreen>
diff --git a/res/xml/button_settings.xml b/res/xml/button_settings.xml
index 4a5e9dd..9aec1fb 100644
--- a/res/xml/button_settings.xml
+++ b/res/xml/button_settings.xml
@@ -102,8 +102,7 @@
<PreferenceScreen
android:key="button_brightness"
- android:title="@string/button_brightness_title"
- android:summary="@string/button_brightness_summary"
+ android:title="@string/button_backlight_title"
android:fragment="org.omnirom.omnigears.brightness.ButtonBrightnessSettings" />
<!--<SwitchPreference
diff --git a/src/org/omnirom/omnigears/AmbientSettings.java b/src/org/omnirom/omnigears/AmbientSettings.java
index 92ade63..4814e6a 100644
--- a/src/org/omnirom/omnigears/AmbientSettings.java
+++ b/src/org/omnirom/omnigears/AmbientSettings.java
@@ -49,6 +49,7 @@
import com.android.internal.logging.MetricsLogger;
import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.preference.SeekBarPreference;
import com.android.settings.preference.SystemCheckBoxPreference;
import org.omnirom.omnigears.sensor.ShakeSensorManager;
@@ -84,8 +85,8 @@
private ShakeSensorManager mShakeSensorManager;
private AlertDialog mDialog;
private Button mShakeFoundButton;
- private DozeBrightnessDialog mDozeBrightnessDialog;
- private Preference mDozeBrightness;
+ private SeekBarPreference mDozeBrightness;
+ private int mCurrentBrightness;
@Override
protected int getMetricsCategory() {
@@ -132,7 +133,16 @@
updateDozeOptions();
mShakeSensorManager = new ShakeSensorManager(activity, this);
- mDozeBrightness = (Preference) findPreference(KEY_DOZE_BRIGHTNESS_LEVEL);
+ final int dozeBrightnessConfig = getResources().getInteger(
+ com.android.internal.R.integer.config_screenBrightnessDoze);
+ mCurrentBrightness = Settings.System.getInt(getContentResolver(),
+ Settings.System.SCREEN_BRIGHTNESS_DOZE, dozeBrightnessConfig);
+ mDozeBrightness = (SeekBarPreference) findPreference(KEY_DOZE_BRIGHTNESS_LEVEL);
+ PowerManager pm = (PowerManager)activity.getSystemService(Context.POWER_SERVICE);
+ mDozeBrightness.setMaxValue(pm.getMaximumScreenBrightnessSetting());
+ mDozeBrightness.setMinValue(pm.getMinimumScreenBrightnessSetting());
+ mDozeBrightness.setValue(mCurrentBrightness);
+ mDozeBrightness.setOnPreferenceChangeListener(this);
}
private static boolean isAccelerometerAvailable(Context context) {
@@ -408,9 +418,6 @@
if (preference == findPreference(KEY_DOZE_OVERWRITE_VALUE)) {
updateDozeListMode();
return true;
- } else if (preference == mDozeBrightness) {
- showDozeBrightnessDialog();
- return true;
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
@@ -457,121 +464,14 @@
int index = mDozeListMode.findIndexOfValue((String) objValue);
mDozeListMode.setSummary(mDozeListMode.getEntries()[index]);
}
+ if (preference == mDozeBrightness) {
+ mCurrentBrightness = (Integer) objValue;
+ Settings.System.putInt(getContentResolver(),
+ Settings.System.SCREEN_BRIGHTNESS_DOZE, mCurrentBrightness);
+ }
return true;
}
- private void showDozeBrightnessDialog() {
- if (mDozeBrightnessDialog != null && mDozeBrightnessDialog.isShowing()) {
- return;
- }
-
- mDozeBrightnessDialog = new DozeBrightnessDialog(getActivity());
- mDozeBrightnessDialog.show();
- }
-
- private class DozeBrightnessDialog extends AlertDialog implements DialogInterface.OnClickListener {
-
- private SeekBar mBacklightBar;
- private EditText mBacklightInput;
- private int mCurrentBrightness;
- private int mMaxBrightness;
-
- public DozeBrightnessDialog(Context context) {
- super(context);
- }
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- final View v = getLayoutInflater().inflate(R.layout.dialog_manual_brightness, null);
- final Context context = getContext();
-
- mBacklightBar = (SeekBar) v.findViewById(R.id.backlight);
- mBacklightInput = (EditText) v.findViewById(R.id.backlight_input);
-
- setTitle(R.string.dialog_manual_brightness_title);
- setCancelable(true);
- setView(v);
-
- final int dozeBrightnessConfig = getResources().getInteger(
- com.android.internal.R.integer.config_screenBrightnessDoze);
- mCurrentBrightness = Settings.System.getInt(getContentResolver(),
- Settings.System.SCREEN_BRIGHTNESS_DOZE, dozeBrightnessConfig);
-
- final PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
- mMaxBrightness = pm.getMaximumScreenBrightnessSetting();
- mBacklightBar.setMax(mMaxBrightness);
- mBacklightBar.setProgress(mCurrentBrightness);
- mBacklightInput.setText(String.valueOf(mCurrentBrightness));
-
- initListeners();
-
- setButton(DialogInterface.BUTTON_POSITIVE, getResources().getString(R.string.ok), this);
- setButton(DialogInterface.BUTTON_NEGATIVE, getResources().getString(R.string.cancel), this);
-
- super.onCreate(savedInstanceState);
- }
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- if (which == DialogInterface.BUTTON_POSITIVE) {
- try {
- int newBacklight = Integer.valueOf(mBacklightInput.getText().toString());
- Settings.System.putInt(getContext().getContentResolver(),
- Settings.System.SCREEN_BRIGHTNESS_DOZE, newBacklight);
- } catch (NumberFormatException e) {
- Log.d(TAG, "NumberFormatException " + e);
- }
- }
- }
-
- private void initListeners() {
- mBacklightBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- if (seekBar.getProgress() > 0) {
- mBacklightInput.setText(String.valueOf(seekBar.getProgress()));
- }
- }
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- }
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- }
- });
-
- mBacklightInput.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- }
- @Override
- public void afterTextChanged(Editable s) {
- boolean ok = false;
- try {
- int minValue = 1;
- int maxValue = mMaxBrightness;
- int newBrightness = Integer.valueOf(s.toString());
-
- if (newBrightness >= minValue && newBrightness <= maxValue) {
- ok = true;
- mBacklightBar.setProgress(newBrightness);
- }
- } catch (NumberFormatException e) {
- //ignored, ok is false ayway
- }
-
- Button okButton = mDozeBrightnessDialog.getButton(DialogInterface.BUTTON_POSITIVE);
- if (okButton != null) {
- okButton.setEnabled(ok);
- }
- }
- });
- }
- }
-
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
diff --git a/src/org/omnirom/omnigears/ButtonBrightnessSettings.java b/src/org/omnirom/omnigears/ButtonBrightnessSettings.java
index e5b56fd..3d91713 100644
--- a/src/org/omnirom/omnigears/ButtonBrightnessSettings.java
+++ b/src/org/omnirom/omnigears/ButtonBrightnessSettings.java
@@ -34,6 +34,7 @@
import android.preference.ListPreference;
import android.preference.CheckBoxPreference;
import android.preference.PreferenceCategory;
+import android.preference.SwitchPreference;
import android.provider.Settings;
import android.provider.SearchIndexableResource;
import android.view.View;
@@ -61,12 +62,12 @@
Preference.OnPreferenceChangeListener, Indexable {
private static final String TAG = "ButtonBrightnessSettings";
- private static final String KEY_BUTTON_NO_BRIGHTNESS = "button_no_brightness";
+ private static final String KEY_BUTTON_BACKLIGHT_ENABLE = "button_backlight_enable";
private static final String KEY_BUTTON_LINK_BRIGHTNESS = "button_link_brightness";
private static final String KEY_BUTTON_MANUAL_BRIGHTNESS_NEW = "button_manual_brightness_new";
private static final String KEY_BUTTON_TIMEOUT = "button_timeout";
- private CheckBoxPreference mNoButtonBrightness;
+ private SwitchPreference mButtonBacklightEnable;
private CheckBoxPreference mLinkButtonBrightness;
private IPowerManager mPowerService;
private SeekBarPreference mButtonTimoutBar;
@@ -84,9 +85,9 @@
PreferenceScreen prefSet = getPreferenceScreen();
ContentResolver resolver = getContentResolver();
- mNoButtonBrightness = (CheckBoxPreference) findPreference(KEY_BUTTON_NO_BRIGHTNESS);
- mNoButtonBrightness.setChecked(Settings.System.getInt(resolver,
- Settings.System.CUSTOM_BUTTON_DISABLE_BRIGHTNESS, 0) != 0);
+ mButtonBacklightEnable = (SwitchPreference) findPreference(KEY_BUTTON_BACKLIGHT_ENABLE);
+ mButtonBacklightEnable.setChecked(Settings.System.getInt(resolver,
+ Settings.System.CUSTOM_BUTTON_DISABLE_BRIGHTNESS, 0) == 0);
mLinkButtonBrightness = (CheckBoxPreference) findPreference(KEY_BUTTON_LINK_BRIGHTNESS);
mLinkButtonBrightness.setChecked(Settings.System.getInt(resolver,
@@ -97,6 +98,8 @@
com.android.internal.R.integer.config_button_brightness_default);
final int currentBrightness = Settings.System.getInt(resolver,
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, customButtonBrightness);
+ PowerManager pm = (PowerManager)getActivity().getSystemService(Context.POWER_SERVICE);
+ mManualButtonBrightnessNew.setMaxValue(pm.getMaximumScreenBrightnessSetting());
mManualButtonBrightnessNew.setValue(currentBrightness);
mManualButtonBrightnessNew.setOnPreferenceChangeListener(this);
@@ -107,39 +110,19 @@
mButtonTimoutBar.setOnPreferenceChangeListener(this);
mPowerService = IPowerManager.Stub.asInterface(ServiceManager.getService("power"));
-
- updateEnablement();
- }
-
- private void updateEnablement() {
- if (mNoButtonBrightness.isChecked()){
- mLinkButtonBrightness.setEnabled(false);
- mButtonTimoutBar.setEnabled(false);
- mManualButtonBrightnessNew.setEnabled(false);
- } else if (mLinkButtonBrightness.isChecked()){
- mNoButtonBrightness.setEnabled(false);
- mManualButtonBrightnessNew.setEnabled(false);
- } else {
- mNoButtonBrightness.setEnabled(true);
- mLinkButtonBrightness.setEnabled(true);
- mButtonTimoutBar.setEnabled(true);
- mManualButtonBrightnessNew.setEnabled(true);
- }
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
- if (preference == mNoButtonBrightness) {
- boolean checked = ((CheckBoxPreference)preference).isChecked();
+ if (preference == mButtonBacklightEnable) {
+ boolean checked = ((SwitchPreference)preference).isChecked();
Settings.System.putInt(getContentResolver(),
- Settings.System.CUSTOM_BUTTON_DISABLE_BRIGHTNESS, checked ? 1:0);
- updateEnablement();
+ Settings.System.CUSTOM_BUTTON_DISABLE_BRIGHTNESS, checked ? 0 : 1);
return true;
} else if (preference == mLinkButtonBrightness) {
boolean checked = ((CheckBoxPreference)preference).isChecked();
Settings.System.putInt(getContentResolver(),
- Settings.System.CUSTOM_BUTTON_USE_SCREEN_BRIGHTNESS, checked ? 1:0);
- updateEnablement();
+ Settings.System.CUSTOM_BUTTON_USE_SCREEN_BRIGHTNESS, checked ? 1 : 0);
return true;
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
diff --git a/src/org/omnirom/omnigears/interfacesettings/GlobalActionsSettings.java b/src/org/omnirom/omnigears/interfacesettings/GlobalActionsSettings.java
index 3cffc44..cb7ecbe 100644
--- a/src/org/omnirom/omnigears/interfacesettings/GlobalActionsSettings.java
+++ b/src/org/omnirom/omnigears/interfacesettings/GlobalActionsSettings.java
@@ -69,6 +69,7 @@
final String[] allActions = getContext().getResources().getStringArray(
com.android.internal.R.array.values_globalActionsList);
+ final List<String> allActionssList = new ArrayList<String>(Arrays.asList(allActions));
final String enabledActions = Settings.System.getString(contentResolver,
Settings.System.GLOBAL_ACTIONS_LIST);
@@ -88,22 +89,23 @@
}
final UserManager um = (UserManager) getContext().getSystemService(Context.USER_SERVICE);
boolean multiUser = um.isUserSwitcherEnabled();
- Preference userPref = null;
int count = prefScreen.getPreferenceCount();
for (int i = 0; i < count; i++) {
Preference p = prefScreen.getPreference(i);
if (p instanceof SwitchPreference) {
SwitchPreference action = (SwitchPreference) p;
String key = action.getKey();
+ if (!allActionssList.contains(key)) {
+ prefScreen.removePreference(action);
+ continue;
+ }
if (key.equals("users") && !multiUser) {
- userPref = action;
+ prefScreen.removePreference(action);
+ continue;
}
action.setChecked(mGlobalActionsMap.get(key));
}
}
- if (userPref != null) {
- prefScreen.removePreference(userPref);
- }
}
@Override