From 12d27fdc9d39a8e031cb2cca831dfa96b348b6e5 Mon Sep 17 00:00:00 2001 From: Maitreya29 Date: Sun, 1 Aug 2021 17:11:55 +0530 Subject: [PATCH] Cherish:Battery Saver Profiles [2/2] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Hưng Phan --- res/values/cherish_arrays.xml | 17 ++++ res/values/cherish_colors.xml | 2 + res/values/cherish_strings.xml | 10 +++ res/xml/cherish_settings_misc.xml | 7 ++ res/xml/cherish_settings_powersave.xml | 28 +++++++ .../settings/fragments/PowerSaving.java | 82 +++++++++++++++++++ 6 files changed, 146 insertions(+) create mode 100644 res/xml/cherish_settings_powersave.xml create mode 100644 src/com/cherish/settings/fragments/PowerSaving.java diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml index 8ecfd2f..66bcdf5 100644 --- a/res/values/cherish_arrays.xml +++ b/res/values/cherish_arrays.xml @@ -1356,4 +1356,21 @@ 1 2 + + + + @string/power_profile_light + @string/power_profile_default + @string/power_profile_med + @string/power_profile_high + @string/power_profile_ext + + + + 0 + 1 + 2 + 3 + 4 + diff --git a/res/values/cherish_colors.xml b/res/values/cherish_colors.xml index 34a936e..2df2593 100644 --- a/res/values/cherish_colors.xml +++ b/res/values/cherish_colors.xml @@ -32,4 +32,6 @@ #d6d6d6 @*android:color/accent_device_default_light + + #FFF diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index 632ad06..f6ec02f 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -1327,4 +1327,14 @@ Hide apps from appearing in recents Add app Recents + + + Power Saving + Battery saver profile + Default + Light + Moderate + High + Extreme + Options to extend your battery life diff --git a/res/xml/cherish_settings_misc.xml b/res/xml/cherish_settings_misc.xml index 7686a8d..f2f35a6 100644 --- a/res/xml/cherish_settings_misc.xml +++ b/res/xml/cherish_settings_misc.xml @@ -129,6 +129,13 @@ + + + + + + + + + diff --git a/src/com/cherish/settings/fragments/PowerSaving.java b/src/com/cherish/settings/fragments/PowerSaving.java new file mode 100644 index 0000000..fd78d09 --- /dev/null +++ b/src/com/cherish/settings/fragments/PowerSaving.java @@ -0,0 +1,82 @@ +/* +* Copyright (C) 2021 NezukoOS +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +package com.cherish.settings.fragments; + +import java.util.ArrayList; +import android.content.DialogInterface; +import android.app.AlertDialog; +import android.content.DialogInterface.OnClickListener; +import android.content.Intent; +import android.content.Context; +import android.content.ContentResolver; +import android.os.UserHandle; +import com.cherish.settings.preferences.SystemSettingListPreference; +import androidx.preference.*; +import android.provider.Settings; +import android.widget.Toast; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.R; +import com.android.internal.logging.nano.MetricsProto; +import com.android.internal.logging.MetricsLogger; +import androidx.preference.Preference.OnPreferenceChangeListener; +import android.os.Bundle; + +public class PowerSaving extends SettingsPreferenceFragment implements OnPreferenceChangeListener { + + private static final String POWER_PROFILE = "power_profile_type"; + + private SystemSettingListPreference mPowerProfile; + + public static final String[] POWER_MODE_PROFILES = { + "advertise_is_enabled=false,datasaver_disabled=true,enable_night_mode=false,launch_boost_disabled=false,vibration_disabled=false,animation_disabled=false,soundtrigger_disabled=false,fullbackup_deferred=true,keyvaluebackup_deferred=true,firewall_disabled=false,gps_mode=4,adjust_brightness_disabled=true,adjust_brightness_factor=0.5,force_all_apps_standby=false,force_background_check=false,optional_sensors_disabled=true,aod_disabled=false,quick_doze_enabled=true", + "null", + "advertise_is_enabled=true,datasaver_disabled=true,enable_night_mode=true,launch_boost_disabled=false,vibration_disabled=false,animation_disabled=false,soundtrigger_disabled=false,fullbackup_deferred=true,keyvaluebackup_deferred=true,firewall_disabled=false,gps_mode=4,adjust_brightness_disabled=true,adjust_brightness_factor=0.75,force_all_apps_standby=false,force_background_check=false,optional_sensors_disabled=true,aod_disabled=true,quick_doze_enabled=true", + "advertise_is_enabled=true,datasaver_disabled=false,enable_night_mode=true,launch_boost_disabled=true,vibration_disabled=true,animation_disabled=false,soundtrigger_disabled=true,fullbackup_deferred=true,keyvaluebackup_deferred=true,firewall_disabled=true,gps_mode=2,adjust_brightness_disabled=false,adjust_brightness_factor=0.6,force_all_apps_standby=true,force_background_check=true,optional_sensors_disabled=true,aod_disabled=true,quick_doze_enabled=true", + "advertise_is_enabled=true,datasaver_disabled=false,enable_night_mode=true,launch_boost_disabled=true,vibration_disabled=true,animation_disabled=true,soundtrigger_disabled=true,fullbackup_deferred=true,keyvaluebackup_deferred=true,firewall_disabled=true,gps_mode=2,adjust_brightness_disabled=false,adjust_brightness_factor=0.5,force_all_apps_standby=true,force_background_check=true,optional_sensors_disabled=true,aod_disabled=true,quick_doze_enabled=true", + }; + + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + addPreferencesFromResource(R.xml.cherish_settings_powersave); + ContentResolver resolver = getActivity().getContentResolver(); + mPowerProfile = (SystemSettingListPreference) findPreference(POWER_PROFILE); + mPowerProfile.setOnPreferenceChangeListener(this); + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference == mPowerProfile){ + int profile = Integer.valueOf((String) newValue); + for (int i = 0; i < POWER_MODE_PROFILES.length; i++) { + if(profile == i){ + if (profile != 1){ + Settings.Global.putString(getActivity().getContentResolver(), Settings.Global.BATTERY_SAVER_CONSTANTS, POWER_MODE_PROFILES[i]); + } else{ + Settings.Global.putString(getActivity().getContentResolver(), Settings.Global.BATTERY_SAVER_CONSTANTS, null); + } + } + } + return true; + } + return false; + } + + @Override + public int getMetricsCategory() { + return MetricsProto.MetricsEvent.CHERISH_SETTINGS; + } +}