Evolver: Add quick settings brightness slider customizations

Co-authored-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
ShevT
2024-05-19 20:40:23 +09:00
committed by Joey Huab
parent 00062c3140
commit a84ca65600
4 changed files with 126 additions and 4 deletions

View File

@@ -80,4 +80,28 @@
<item>0</item>
<item>3</item>
</string-array>
<!-- Quick Settings - brightness slider -->
<string-array name="quick_settings_show_brightness_slider_entries" translatable="false">
<item>@string/quick_settings_show_brightness_slider_never</item>
<item>@string/quick_settings_show_brightness_slider_expanded</item>
<item>@string/quick_settings_show_brightness_slider_always</item>
</string-array>
<string-array name="quick_settings_show_brightness_slider_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="quick_settings_brightness_slider_position_entries" translatable="false">
<item>@string/quick_settings_brightness_slider_position_top</item>
<item>@string/quick_settings_brightness_slider_position_bottom</item>
</string-array>
<string-array name="quick_settings_brightness_slider_position_values" translatable="false">
<item>0</item>
<item>1</item>
</string-array>
</resources>

View File

@@ -127,6 +127,18 @@
<string name="status_bar_projection_privacy_indicator_summary">Display an indicator when the screen is being projected</string>
<!-- Quick settings -->
<string name="quick_settings_brightness_slider_category">Brightness slider</string>
<string name="quick_settings_show_brightness_slider_title">Brightness slider</string>
<string name="quick_settings_show_brightness_slider_never">Never show</string>
<string name="quick_settings_show_brightness_slider_expanded">Only show when expanded</string>
<string name="quick_settings_show_brightness_slider_always">Always show</string>
<string name="quick_settings_brightness_slider_position_title">Brightness slider position</string>
<string name="quick_settings_brightness_slider_position_top">Top</string>
<string name="quick_settings_brightness_slider_position_bottom">Bottom</string>
<string name="quick_settings_auto_brightness_icon_title">Auto brightness icon</string>
<string name="quick_settings_auto_brightness_icon_summary">Show icon toggle for adaptive brightness next to the slider</string>
<string name="quick_settings_brightness_slider_haptic_title">Haptic feedback</string>
<string name="quick_settings_brightness_slider_haptic_summary">Provide haptic feedback on changing brightness using slider</string>
<string name="quick_settings_lock_screen_category">Lock screen</string>
<string name="quick_settings_secure_lock_screen_title">Hide on secure lock screen</string>
<string name="quick_settings_secure_lock_screen_summary">Hide all quick settings in the notification shade while the device is locked</string>

View File

@@ -9,6 +9,41 @@
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/quick_settings_title">
<PreferenceCategory
android:key="quick_settings_brightness_slider_category"
android:title="@string/quick_settings_brightness_slider_category">
<!-- Brightness slider -->
<lineageos.preference.LineageSecureSettingListPreference
android:key="qs_show_brightness_slider"
android:title="@string/quick_settings_show_brightness_slider_title"
android:entries="@array/quick_settings_show_brightness_slider_entries"
android:entryValues="@array/quick_settings_show_brightness_slider_values"
android:defaultValue="1" />
<!-- Brightness slider position -->
<lineageos.preference.LineageSecureSettingListPreference
android:key="qs_brightness_slider_position"
android:title="@string/quick_settings_brightness_slider_position_title"
android:entries="@array/quick_settings_brightness_slider_position_entries"
android:entryValues="@array/quick_settings_brightness_slider_position_values"
android:defaultValue="0" />
<!-- Haptic feedback on brightness slider -->
<org.evolution.settings.preferences.SystemSettingSwitchPreference
android:key="qs_brightness_slider_haptic"
android:title="@string/quick_settings_brightness_slider_haptic_title"
android:summary="@string/quick_settings_brightness_slider_haptic_summary"
android:defaultValue="false" />
<!-- Auto brightness icon -->
<lineageos.preference.LineageSecureSettingSwitchPreference
android:key="qs_show_auto_brightness"
android:title="@string/quick_settings_auto_brightness_icon_title"
android:summary="@string/quick_settings_auto_brightness_icon_summary"
android:defaultValue="true" />
</PreferenceCategory>
<PreferenceCategory
android:key="quick_settings_lock_screen_category"
android:title="@string/quick_settings_lock_screen_category">

View File

@@ -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<String> 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);
}