diff --git a/res/values/evolution_arrays.xml b/res/values/evolution_arrays.xml
index 5d2fa76..d8014aa 100644
--- a/res/values/evolution_arrays.xml
+++ b/res/values/evolution_arrays.xml
@@ -80,4 +80,28 @@
- 0
- 3
+
+
+
+ - @string/quick_settings_show_brightness_slider_never
+ - @string/quick_settings_show_brightness_slider_expanded
+ - @string/quick_settings_show_brightness_slider_always
+
+
+
+ - 0
+ - 1
+ - 2
+
+
+
+ - @string/quick_settings_brightness_slider_position_top
+ - @string/quick_settings_brightness_slider_position_bottom
+
+
+
+ - 0
+ - 1
+
+
diff --git a/res/values/evolution_strings.xml b/res/values/evolution_strings.xml
index fda413d..593da0d 100644
--- a/res/values/evolution_strings.xml
+++ b/res/values/evolution_strings.xml
@@ -127,6 +127,18 @@
Display an indicator when the screen is being projected
+ Brightness slider
+ Brightness slider
+ Never show
+ Only show when expanded
+ Always show
+ Brightness slider position
+ Top
+ Bottom
+ Auto brightness icon
+ Show icon toggle for adaptive brightness next to the slider
+ Haptic feedback
+ Provide haptic feedback on changing brightness using slider
Lock screen
Hide on secure lock screen
Hide all quick settings in the notification shade while the device is locked
diff --git a/res/xml/evolution_settings_quick_settings.xml b/res/xml/evolution_settings_quick_settings.xml
index a4948ea..97d0859 100644
--- a/res/xml/evolution_settings_quick_settings.xml
+++ b/res/xml/evolution_settings_quick_settings.xml
@@ -9,6 +9,41 @@
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/quick_settings_title">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java b/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java
index 48b5f99..d6d35d7 100644
--- a/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java
+++ b/src/org/evolution/settings/fragments/quicksettings/QuickSettings.java
@@ -9,11 +9,14 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
+import android.os.UserHandle;
+import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
@@ -23,6 +26,10 @@ import com.android.settingslib.search.SearchIndexable;
import java.util.List;
+import lineageos.preference.LineageSecureSettingSwitchPreference;
+import lineageos.providers.LineageSettings;
+
+import org.evolution.settings.preferences.SystemSettingSwitchPreference;
import org.evolution.settings.utils.DeviceUtils;
@SearchIndexable
@@ -30,24 +37,55 @@ public class QuickSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
private static final String TAG = "QuickSettings";
+
+ private static final String KEY_BRIGHTNESS_SLIDER_POSITION = "qs_brightness_slider_position";
+ private static final String KEY_BRIGHTNESS_SLIDER_HAPTIC = "qs_brightness_slider_haptic";
+ private static final String KEY_INTERFACE_CATEGORY = "quick_settings_interface_category";
private static final String KEY_MISCELLANEOUS_CATEGORY = "quick_settings_miscellaneous_category";
private static final String KEY_QS_BLUETOOTH_SHOW_DIALOG = "qs_bt_show_dialog";
+ private static final String KEY_SHOW_BRIGHTNESS_SLIDER = "qs_show_brightness_slider";
+ private static final String KEY_SHOW_AUTO_BRIGHTNESS = "qs_show_auto_brightness";
+ private PreferenceCategory mInterfaceCategory;
private PreferenceCategory mMiscellaneousCategory;
+ private ListPreference mShowBrightnessSlider;
+ private ListPreference mBrightnessSliderPosition;
+ private LineageSecureSettingSwitchPreference mShowAutoBrightness;
+ private SystemSettingSwitchPreference mBrightnessSliderHaptic;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.evolution_settings_quick_settings);
- final Context context = getContext();
- final ContentResolver resolver = context.getContentResolver();
+ final Context mContext = getContext();
+ final ContentResolver resolver = mContext.getContentResolver();
final PreferenceScreen prefScreen = getPreferenceScreen();
- final Resources resources = context.getResources();
+ final Resources resources = mContext.getResources();
+
+ mShowBrightnessSlider = findPreference(KEY_SHOW_BRIGHTNESS_SLIDER);
+ mShowBrightnessSlider.setOnPreferenceChangeListener(this);
+ boolean showSlider = LineageSettings.Secure.getIntForUser(resolver,
+ LineageSettings.Secure.QS_SHOW_BRIGHTNESS_SLIDER, 1, UserHandle.USER_CURRENT) > 0;
+
+ mBrightnessSliderPosition = findPreference(KEY_BRIGHTNESS_SLIDER_POSITION);
+ mBrightnessSliderPosition.setEnabled(showSlider);
+
+ mBrightnessSliderHaptic = findPreference(KEY_BRIGHTNESS_SLIDER_HAPTIC);
+ mBrightnessSliderHaptic.setEnabled(showSlider);
+
+ mShowAutoBrightness = findPreference(KEY_SHOW_AUTO_BRIGHTNESS);
+ boolean automaticAvailable = mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_automatic_brightness_available);
+ if (automaticAvailable) {
+ mShowAutoBrightness.setEnabled(showSlider);
+ } else {
+ prefScreen.removePreference(mShowAutoBrightness);
+ }
mMiscellaneousCategory = (PreferenceCategory) findPreference(KEY_MISCELLANEOUS_CATEGORY);
- if (!DeviceUtils.deviceSupportsBluetooth(context)) {
+ if (!DeviceUtils.deviceSupportsBluetooth(mContext)) {
prefScreen.removePreference(mMiscellaneousCategory);
}
}
@@ -56,6 +94,14 @@ public class QuickSettings extends SettingsPreferenceFragment implements
public boolean onPreferenceChange(Preference preference, Object newValue) {
final Context context = getContext();
final ContentResolver resolver = context.getContentResolver();
+ if (preference == mShowBrightnessSlider) {
+ int value = Integer.parseInt((String) newValue);
+ mBrightnessSliderPosition.setEnabled(value > 0);
+ mBrightnessSliderHaptic.setEnabled(value > 0);
+ if (mShowAutoBrightness != null)
+ mShowAutoBrightness.setEnabled(value > 0);
+ return true;
+ }
return false;
}
@@ -72,6 +118,11 @@ public class QuickSettings extends SettingsPreferenceFragment implements
List keys = super.getNonIndexableKeys(context);
final Resources resources = context.getResources();
+ boolean autoBrightnessAvailable = resources.getBoolean(
+ com.android.internal.R.bool.config_automatic_brightness_available);
+ if (!autoBrightnessAvailable) {
+ keys.add(KEY_SHOW_AUTO_BRIGHTNESS);
+ }
if (!DeviceUtils.deviceSupportsBluetooth(context)) {
keys.add(KEY_QS_BLUETOOTH_SHOW_DIALOG);
}