nx: Add leanback brightness slider
Uses Settings API and SeekBarPreference to allow proper brightness setting on ATV. Co-authored-by: Thomas Makin <halorocker89@gmail.com> Co-authored-by: Aaron Kling <webgeek1234@gmail.com> Change-Id: Iccdc098414bd143080f9907a99e26458ec617072
This commit is contained in:
1 parent
ebeee1d3b5
commit
f9ca85df02
5 files changed
+43
No files matched your search
@@ -16,4 +16,6 @@
|
||||
-->
|
||||
<resources>
|
||||
<integer name="mode_confirmation_wait_time">15</integer>
|
||||
<integer name="max_brightness">255</integer>
|
||||
<integer name="min_brightness">255</integer>
|
||||
</resources>
|
||||
@@ -18,6 +18,7 @@
|
||||
<string name="display_panel_title">Switch Configuration</string>
|
||||
<string name="display_panel_summary">Adjust docking, performance, and controller settings</string>
|
||||
<string name="cust_category_title">Customization</string>
|
||||
<string name="bright_pref_title">Adjust System Brightness</string>
|
||||
<string name="perf_setting_title">Performance Mode</string>
|
||||
<string name="perf_setting_summary">Modifies CPU and GPU clocks in order to get the best possible performance at the cost of higher battery wear and usage</string>
|
||||
<string name="perf_warning_title">WARNING</string>
|
||||
|
||||
@@ -20,6 +20,12 @@
|
||||
android:key="customization_category"
|
||||
android:title="@string/cust_category_title">
|
||||
|
||||
<SeekBarPreference
|
||||
android:key="bright_pref"
|
||||
android:title="@string/bright_pref_title"
|
||||
android:max="@integer/max_brightness"
|
||||
android:min="@integer/min_brightness" />
|
||||
|
||||
<SwitchPreference
|
||||
android:key="perf_mode"
|
||||
android:title="@string/perf_setting_title"
|
||||
|
||||
@@ -41,6 +41,7 @@ import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.preference.SeekBarPreference;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import vendor.nvidia.hardware.graphics.display.V1_0.HwcSvcDisplay;
|
||||
@@ -121,6 +122,7 @@ public class DisplaySettingsFragmentLeanback extends LeanbackSettingsFragmentCom
|
||||
PreferenceScreen preferenceScreen = this.getPreferenceScreen();
|
||||
|
||||
createPerfSettings();
|
||||
createBrightSettings();
|
||||
|
||||
if (!sku.equals("vali")) {
|
||||
createDisplaySettings(preferenceScreen);
|
||||
@@ -321,6 +323,25 @@ public class DisplaySettingsFragmentLeanback extends LeanbackSettingsFragmentCom
|
||||
});
|
||||
}
|
||||
|
||||
private void createBrightSettings() {
|
||||
SeekBarPreference brightPref = findPreference("bright_pref");
|
||||
int current = DisplayUtils.getPanelBrightness(getActivity().getContentResolver());
|
||||
|
||||
brightPref.setUpdatesContinuously(true);
|
||||
brightPref.setShowSeekBarValue(false);
|
||||
brightPref.setDefaultValue(current);
|
||||
brightPref.setOnPreferenceChangeListener(
|
||||
new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference,
|
||||
Object newValue) {
|
||||
|
||||
DisplayUtils.setPanelBrightness(getActivity().getContentResolver(), (Integer)newValue);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void createPanelModeSettings() {
|
||||
ListPreference panelColorPref = findPreference("panel_color_mode");
|
||||
String current = DisplayUtils.getPanelColorMode();
|
||||
|
||||
@@ -16,8 +16,10 @@
|
||||
|
||||
package org.lineageos.settings.device;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.RemoteException;
|
||||
import android.provider.Settings;
|
||||
import android.util.Log;
|
||||
import android.view.IWindowManager;
|
||||
|
||||
@@ -38,6 +40,8 @@ import vendor.nvidia.hardware.graphics.display.V1_0.INvDisplay;
|
||||
public class DisplayUtils {
|
||||
private static final String TAG = DisplayUtils.class.getSimpleName();
|
||||
public static final String POWER_UPDATE_INTENT = "com.lineage.devicesettings.UPDATE_POWER";
|
||||
public static final String PANEL_BRIGHTNESS_SYSFS =
|
||||
"/sys/class/backlight/backlight/brightness";
|
||||
public static final String PANEL_MODE_SYSFS =
|
||||
"/sys/devices/50000000.host1x/tegradc.0/panel_color_mode";
|
||||
public static final String PWM_FAN_PROFILE_SYSFS = "/sys/devices/pwm-fan/fan_profile";
|
||||
@@ -192,6 +196,15 @@ public class DisplayUtils {
|
||||
return out;
|
||||
}
|
||||
|
||||
public static void setPanelBrightness(ContentResolver resolver, int brightness) {
|
||||
Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS, brightness);
|
||||
}
|
||||
|
||||
public static Integer getPanelBrightness(ContentResolver resolver) {
|
||||
return Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS, 0);
|
||||
}
|
||||
|
||||
|
||||
public static void setFanProfile(String profile) {
|
||||
Log.i(TAG, "Setting fan profile: " + profile);
|
||||
try {
|
||||
|
||||
Reference in new issue
Block a user