DivestOS/Patches/LineageOS-14.1/android_packages_apps_CMParts/0002-Reduced_Resolution.patch

106 lines
5.3 KiB
Diff
Raw Normal View History

2017-10-20 20:54:46 +00:00
From c7055d7cb2cf5c72d98742b0f2a09c96cc69e9f5 Mon Sep 17 00:00:00 2001
From: Tad <tad@spotco.us>
2017-10-20 20:54:46 +00:00
Date: Fri, 20 Oct 2017 16:36:00 -0400
Subject: [PATCH] Reduced Resolution Feature 1/2
2017-10-20 20:54:46 +00:00
Change-Id: Ia23616825fb70e3abfe9c71508e60c5452dea39d
---
2017-10-20 20:54:46 +00:00
res/values/strings.xml | 3 +++
res/xml/perf_profile_settings.xml | 5 +++++
.../cyanogenmod/cmparts/power/PerfProfileSettings.java | 16 ++++++++++++++++
2017-10-20 20:54:46 +00:00
3 files changed, 24 insertions(+)
diff --git a/res/values/strings.xml b/res/values/strings.xml
2017-10-20 20:54:46 +00:00
index 21b8b78..1fee482 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
2017-10-20 20:54:46 +00:00
@@ -576,6 +576,9 @@
<string name="power_save_category_title">Battery saving</string>
<string name="power_save_title">Extreme power saver</string>
<string name="power_save_summary">Restrict device performance and background activity to save power</string>
+ <string name="reduce_resolution_title">Reduce screen resolution</string>
+ <string name="reduce_resolution_summary">Lowers the screen resolution to save power</string>
2017-10-20 20:54:46 +00:00
+ <string name="reduce_resolution_fail_toast">Unable to set a lower screen resolution</string>
<string name="auto_power_save_title">Automatic power saver</string>
<string name="auto_power_save_summary_on">Automatically enable power save mode at %s battery</string>
<string name="auto_power_save_summary_off">Do not enable power save mode automatically</string>
diff --git a/res/xml/perf_profile_settings.xml b/res/xml/perf_profile_settings.xml
index 3585cb7..0513137 100644
--- a/res/xml/perf_profile_settings.xml
+++ b/res/xml/perf_profile_settings.xml
@@ -29,6 +29,11 @@
android:summary="@string/power_save_summary"
android:persistent="false" />
+ <SwitchPreference
+ android:key="reduce_resolution"
+ android:title="@string/reduce_resolution_title"
+ android:summary="@string/reduce_resoution_summary" />
+
<ListPreference
android:key="auto_power_save"
android:title="@string/auto_power_save_title"
diff --git a/src/org/cyanogenmod/cmparts/power/PerfProfileSettings.java b/src/org/cyanogenmod/cmparts/power/PerfProfileSettings.java
2017-10-20 20:54:46 +00:00
index ec2138d..80b0b28 100644
--- a/src/org/cyanogenmod/cmparts/power/PerfProfileSettings.java
+++ b/src/org/cyanogenmod/cmparts/power/PerfProfileSettings.java
@@ -56,11 +56,13 @@ public class PerfProfileSettings extends SettingsPreferenceFragment
private static final String KEY_PERF_PROFILE_CATEGORY = "perf_profile_category";
private static final String KEY_AUTO_POWER_SAVE = "auto_power_save";
private static final String KEY_POWER_SAVE = "power_save";
+ private static final String KEY_REDUCE_RESOLUTION = "reduce_resolution";
private static final String KEY_PER_APP_PROFILES = "app_perf_profiles_enabled";
private static final String KEY_PERF_SEEKBAR = "perf_seekbar";
private ListPreference mAutoPowerSavePref;
private SwitchPreference mPowerSavePref;
+ private SwitchPreference mReduceResolutionPref;
private SeekBarPreference mPerfSeekBar;
private StopMotionVectorDrawable mPerfDrawable;
@@ -90,6 +92,7 @@ public class PerfProfileSettings extends SettingsPreferenceFragment
mPerfSeekBar = (SeekBarPreference) findPreference(KEY_PERF_SEEKBAR);
mAutoPowerSavePref = (ListPreference) findPreference(KEY_AUTO_POWER_SAVE);
mPowerSavePref = (SwitchPreference) findPreference(KEY_POWER_SAVE);
+ mReduceResolutionPref = (SwitchPreference) findPreference(KEY_REDUCE_RESOLUTION);
mPerAppProfilesPref = (SwitchPreference) findPreference(KEY_PER_APP_PROFILES);
mPowerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
@@ -124,6 +127,7 @@ public class PerfProfileSettings extends SettingsPreferenceFragment
updateAutoPowerSaveValue();
mAutoPowerSavePref.setOnPreferenceChangeListener(this);
mPowerSavePref.setOnPreferenceChangeListener(this);
+ mReduceResolutionPref.setOnPreferenceChangeListener(this);
}
@@ -245,6 +249,14 @@ public class PerfProfileSettings extends SettingsPreferenceFragment
final int level = Integer.parseInt((String) newValue);
Global.putInt(getContentResolver(), Global.LOW_POWER_MODE_TRIGGER_LEVEL, level);
updateAutoPowerSaveSummary(level);
+ } else if (preference = mReduceResolutionPref) {
+ if (!mPowerManager.setReducedResolution((boolean) newValue)) {
+ // Don't just fail silently, inform the user as well
+ Toast.makeText(getActivity(),
2017-10-20 20:54:46 +00:00
+ R.string.reduce_resolution_fail_toast, Toast.LENGTH_SHORT).show();
+ return false;
+ }
+ updateReducedResolutionValue();
}
return true;
}
@@ -262,6 +274,10 @@ public class PerfProfileSettings extends SettingsPreferenceFragment
PartsUpdater.notifyChanged(getActivity(), getPreferenceScreen().getKey());
}
+ private void updateReduceResolutionValue() {
+ mReduceResolution.setChecked(mPowerManager.isReducedResolution());
+ }
+
private void updateAutoPowerSaveValue() {
final int level = Global.getInt(
getContentResolver(), Global.LOW_POWER_MODE_TRIGGER_LEVEL, 0);
--
2.14.2