diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml index 545aa80..88a66b5 100644 --- a/res/values/cherish_arrays.xml +++ b/res/values/cherish_arrays.xml @@ -1201,4 +1201,49 @@ 16 17 + + + + 12 + 25 + 38 + 50 + 62 + 75 + 88 + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + + + + 15 seconds + 30 seconds + 1 minute + 2 minutes + 5 minutes + 10 minutes + 20 minutes + 30 minutes + 1 hour + + + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index ac9abb2..2ba6d6a 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -1079,4 +1079,12 @@ Vibrate on connect Vibrate on call waiting Vibrate on disconnect + + + Smart Pixels + Save battery by shutting off extra pixels + Auto-enable on battery saver + Enable with battery saver to increase power savings + Percent of pixels to disable + Burn-in protection interval diff --git a/res/xml/cherish_settings_misc.xml b/res/xml/cherish_settings_misc.xml index 5f7e116..c289a93 100644 --- a/res/xml/cherish_settings_misc.xml +++ b/res/xml/cherish_settings_misc.xml @@ -77,6 +77,12 @@ android:summary="@string/volume_steps_summary" android:icon="@drawable/ic_volume" android:fragment="com.cherish.settings.fragments.VolumeStepsFragment" /> + + + + + + + + + + + + + + diff --git a/src/com/cherish/settings/fragments/MiscSettings.java b/src/com/cherish/settings/fragments/MiscSettings.java index 230ccd7..e7164d7 100644 --- a/src/com/cherish/settings/fragments/MiscSettings.java +++ b/src/com/cherish/settings/fragments/MiscSettings.java @@ -34,15 +34,29 @@ import com.cherish.settings.preferences.SystemSettingListPreference; public class MiscSettings extends SettingsPreferenceFragment implements OnPreferenceChangeListener { + private static final String SMART_PIXELS = "smart_pixels"; + @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); ContentResolver resolver = getActivity().getContentResolver(); addPreferencesFromResource(R.xml.cherish_settings_misc); + updateSmartPixelsPreference(); } + private void updateSmartPixelsPreference() { + PreferenceScreen prefSet = getPreferenceScreen(); + boolean enableSmartPixels = getContext().getResources(). + getBoolean(com.android.internal.R.bool.config_enableSmartPixels); + Preference smartPixels = findPreference(SMART_PIXELS); + + if (!enableSmartPixels){ + prefSet.removePreference(smartPixels); + } + } + @Override public boolean onPreferenceChange(Preference preference, Object objValue) { return false; diff --git a/src/com/cherish/settings/preferences/fragments/SmartPixels.java b/src/com/cherish/settings/preferences/fragments/SmartPixels.java new file mode 100644 index 0000000..6919a17 --- /dev/null +++ b/src/com/cherish/settings/preferences/fragments/SmartPixels.java @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2018 CarbonROM + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with 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 android.content.Context; +import android.content.ContentResolver; +import android.content.res.Resources; +import android.os.Bundle; +import android.os.UserHandle; +import android.os.PowerManager; +import android.provider.SearchIndexableResource; +import android.provider.Settings; + +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; + +import com.android.internal.logging.nano.MetricsProto.MetricsEvent; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; +import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settingslib.search.SearchIndexable; + +import com.cherish.settings.preferences.SystemSettingSwitchPreference; + +import java.util.ArrayList; +import java.util.List; + +@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) +public class SmartPixels extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + private static final String TAG = "SmartPixels"; + + private static final String ON_POWER_SAVE = "smart_pixels_on_power_save"; + + private SystemSettingSwitchPreference mSmartPixelsOnPowerSave; + + ContentResolver resolver; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.cherish_settings_smart_pixels); + + resolver = getActivity().getContentResolver(); + + mSmartPixelsOnPowerSave = (SystemSettingSwitchPreference) findPreference(ON_POWER_SAVE); + + updateDependency(); + } + + @Override + public int getMetricsCategory() { + return MetricsEvent.CHERISH_SETTINGS; + } + + @Override + public void onResume() { + super.onResume(); + } + + @Override + public void onPause() { + super.onPause(); + } + + public boolean onPreferenceChange(Preference preference, Object objValue) { + final String key = preference.getKey(); + updateDependency(); + return true; + } + + private void updateDependency() { + boolean mUseOnPowerSave = (Settings.System.getIntForUser( + resolver, Settings.System.SMART_PIXELS_ON_POWER_SAVE, + 0, UserHandle.USER_CURRENT) == 1); + PowerManager pm = (PowerManager)getActivity().getSystemService(Context.POWER_SERVICE); + if (pm.isPowerSaveMode() && mUseOnPowerSave) { + mSmartPixelsOnPowerSave.setEnabled(false); + } else { + mSmartPixelsOnPowerSave.setEnabled(true); + } + } + + /** + * For Search. + */ + + public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = + new BaseSearchIndexProvider() { + + @Override + public List getXmlResourcesToIndex(Context context, + boolean enabled) { + ArrayList result = + new ArrayList(); + SearchIndexableResource sir = new SearchIndexableResource(context); + if (context.getResources(). + getBoolean(com.android.internal.R.bool.config_enableSmartPixels)) { + sir.xmlResId = R.xml.cherish_settings_smart_pixels; + } + return result; + } + + @Override + public List getNonIndexableKeys(Context context) { + List keys = super.getNonIndexableKeys(context); + return keys; + } + }; +}