Cherish:Battery light customization [2/2]

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
ezio84
2017-09-17 19:28:50 +08:00
committed by Hưng Phan
parent d957ab4bbf
commit 43c9ebd5d8
5 changed files with 226 additions and 1 deletions

View File

@@ -123,7 +123,7 @@
<string name="search">Search</string>
<string name="search_apps">Search apps</string>
<!-- Themeing -->
<string name="dark_ui_mode_summary">Browse the dark theme options</string>
<!-- [CHAR_LIMIT=NONE] Developer Settings: Title of the settings category for theme overlays. -->
@@ -148,5 +148,16 @@
<!-- Custom Wi-Fi bar icons -->
<string name="custom_wifi_bar_title">Wi-Fi</string>
<!-- Battery light -->
<string name="battery_light_settings">Battery charging light</string>
<string name="battery_light_enable">Enable</string>
<string name="battery_light_allow_on_dnd_title">Battery light in Do Not Disturb mode</string>
<string name="battery_light_low_blinking_title">Blinking light on low battery</string>
<string name="battery_light_cat">Battery light color when charging</string>
<string name="battery_light_low_color">Low battery</string>
<string name="battery_light_medium_color">Medium battery</string>
<string name="battery_light_full_color">Almost full battery</string>
<string name="battery_light_reallyfull_color">Full (100) battery</string>
</resources>

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2017 The ABC rom
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.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="battery_light_enabled"
android:title="@string/battery_light_enable"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="battery_light_allow_on_dnd"
android:title="@string/battery_light_allow_on_dnd_title"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="battery_light_low_blinking"
android:title="@string/battery_light_low_blinking_title"
android:defaultValue="false" />
<PreferenceCategory
android:key="battery_light_cat"
android:title="@string/battery_light_cat">
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="battery_light_low_color"
android:title="@string/battery_light_low_color"
android:defaultValue="0xFFFF0000" />
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="battery_light_medium_color"
android:title="@string/battery_light_medium_color"
android:defaultValue="0xFFFFFF00" />
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="battery_light_full_color"
android:title="@string/battery_light_full_color"
android:defaultValue="0xFFFFFF00" />
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="battery_light_reallyfull_color"
android:title="@string/battery_light_reallyfull_color"
android:defaultValue="0xFF00FF00" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -42,5 +42,10 @@
</PreferenceCategory> -->
<Preference
android:key="charging_light"
android:fragment="com.cherish.settings.fragments.BatteryLightSettings"
android:title="@string/battery_light_settings" />
</PreferenceScreen>

View File

@@ -0,0 +1,142 @@
/*
* Copyright (C) 2017 The ABC rom
*
* 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.ContentResolver;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.UserHandle;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import android.provider.Settings;
import com.android.internal.logging.nano.MetricsProto;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import net.margaritov.preference.colorpicker.ColorPickerPreference;
public class BatteryLightSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
private ColorPickerPreference mLowColor;
private ColorPickerPreference mMediumColor;
private ColorPickerPreference mFullColor;
private ColorPickerPreference mReallyFullColor;
private SystemSettingSwitchPreference mLowBatteryBlinking;
private PreferenceCategory mColorCategory;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.battery_light_settings);
PreferenceScreen prefSet = getPreferenceScreen();
mColorCategory = (PreferenceCategory) findPreference("battery_light_cat");
mLowBatteryBlinking = (SystemSettingSwitchPreference)prefSet.findPreference("battery_light_low_blinking");
if (getResources().getBoolean(
com.android.internal.R.bool.config_ledCanPulse)) {
mLowBatteryBlinking.setChecked(Settings.System.getIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_LOW_BLINKING, 0, UserHandle.USER_CURRENT) == 1);
mLowBatteryBlinking.setOnPreferenceChangeListener(this);
} else {
prefSet.removePreference(mLowBatteryBlinking);
}
if (getResources().getBoolean(com.android.internal.R.bool.config_multiColorBatteryLed)) {
int color = Settings.System.getIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_LOW_COLOR, 0xFFFF0000,
UserHandle.USER_CURRENT);
mLowColor = (ColorPickerPreference) findPreference("battery_light_low_color");
mLowColor.setAlphaSliderEnabled(true);
mLowColor.setNewPreviewColor(color);
mLowColor.setOnPreferenceChangeListener(this);
color = Settings.System.getIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_MEDIUM_COLOR, 0xFFFFFF00,
UserHandle.USER_CURRENT);
mMediumColor = (ColorPickerPreference) findPreference("battery_light_medium_color");
mMediumColor.setAlphaSliderEnabled(true);
mMediumColor.setNewPreviewColor(color);
mMediumColor.setOnPreferenceChangeListener(this);
color = Settings.System.getIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_FULL_COLOR, 0xFFFFFF00,
UserHandle.USER_CURRENT);
mFullColor = (ColorPickerPreference) findPreference("battery_light_full_color");
mFullColor.setAlphaSliderEnabled(true);
mFullColor.setNewPreviewColor(color);
mFullColor.setOnPreferenceChangeListener(this);
color = Settings.System.getIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_REALLYFULL_COLOR, 0xFF00FF00,
UserHandle.USER_CURRENT);
mReallyFullColor = (ColorPickerPreference) findPreference("battery_light_reallyfull_color");
mReallyFullColor.setAlphaSliderEnabled(true);
mReallyFullColor.setNewPreviewColor(color);
mReallyFullColor.setOnPreferenceChangeListener(this);
} else {
prefSet.removePreference(mColorCategory);
}
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference.equals(mLowColor)) {
int color = ((Integer) newValue).intValue();
Settings.System.putIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_LOW_COLOR, color,
UserHandle.USER_CURRENT);
return true;
} else if (preference.equals(mMediumColor)) {
int color = ((Integer) newValue).intValue();
Settings.System.putIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_MEDIUM_COLOR, color,
UserHandle.USER_CURRENT);
return true;
} else if (preference.equals(mFullColor)) {
int color = ((Integer) newValue).intValue();
Settings.System.putIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_FULL_COLOR, color,
UserHandle.USER_CURRENT);
return true;
} else if (preference.equals(mReallyFullColor)) {
int color = ((Integer) newValue).intValue();
Settings.System.putIntForUser(getContentResolver(),
Settings.System.BATTERY_LIGHT_REALLYFULL_COLOR, color,
UserHandle.USER_CURRENT);
return true;
} else if (preference == mLowBatteryBlinking) {
boolean value = (Boolean) newValue;
Settings.System.putIntForUser(getActivity().getContentResolver(),
Settings.System.BATTERY_LIGHT_LOW_BLINKING, value ? 1 : 0,
UserHandle.USER_CURRENT);
mLowBatteryBlinking.setChecked(value);
return true;
}
return false;
}
}

View File

@@ -38,6 +38,7 @@ import java.util.List;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class NotificationSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener{
private Preference mChargingLeds;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -46,6 +47,13 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
ContentResolver resolver = getActivity().getContentResolver();
final PreferenceScreen prefScreen = getPreferenceScreen();
final Resources res = getResources();
mChargingLeds = (Preference) findPreference("charging_light");
if (mChargingLeds != null
&& !getResources().getBoolean(
com.android.internal.R.bool.config_intrusiveBatteryLed)) {
prefScreen.removePreference(mChargingLeds);
}
}