Cherish:Add ambient pulse and aod notifications [2/2]

Co-authored-by: Ido Ben-Hur <idoybh2@gmail.com>
Change-Id: I86ab495f83d36925b9173870a95277cc88af802b
Signed-off-by: DennySPb <dennyspb@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
maxwen
2019-12-03 00:44:16 +05:30
committed by Hưng Phan
parent 36c33da733
commit a38611496a
4 changed files with 229 additions and 3 deletions

View File

@@ -11,9 +11,11 @@ import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import android.provider.Settings;
import androidx.preference.ListPreference;
import com.android.settings.SettingsPreferenceFragment;
import com.cherish.settings.preferences.SystemSettingMasterSwitchPreference;
import com.cherish.settings.preferences.SystemSettingSeekBarPreference;
import com.cherish.settings.preferences.CustomSeekBarPreference;
import com.cherish.settings.preferences.SystemSettingListPreference;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
@@ -21,7 +23,16 @@ import net.margaritov.preference.colorpicker.ColorPickerPreference;
public class NotificationSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener{
private Preference mChargingLeds;
private static final String NOTIFICATION_PULSE_COLOR = "ambient_notification_light_color";
private static final String AMBIENT_LIGHT_DURATION = "ambient_light_duration";
private static final String AMBIENT_LIGHT_REPEAT_COUNT = "ambient_light_repeat_count";
private static final String PULSE_COLOR_MODE_PREF = "ambient_notification_light_color_mode";
private Preference mChargingLeds;
private ColorPickerPreference mEdgeLightColorPreference;
private SystemSettingSeekBarPreference mEdgeLightDurationPreference;
private SystemSettingSeekBarPreference mEdgeLightRepeatCountPreference;
private ListPreference mColorMode;
@Override
public void onCreate(Bundle icicle) {
@@ -37,13 +48,98 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
com.android.internal.R.bool.config_intrusiveBatteryLed)) {
prefScreen.removePreference(mChargingLeds);
}
mEdgeLightRepeatCountPreference = (SystemSettingSeekBarPreference) findPreference(AMBIENT_LIGHT_REPEAT_COUNT);
mEdgeLightRepeatCountPreference.setOnPreferenceChangeListener(this);
int rCount = Settings.System.getInt(getContentResolver(),
Settings.System.AMBIENT_LIGHT_REPEAT_COUNT, 0);
mEdgeLightRepeatCountPreference.setValue(rCount);
mEdgeLightDurationPreference = (SystemSettingSeekBarPreference) findPreference(AMBIENT_LIGHT_DURATION);
mEdgeLightDurationPreference.setOnPreferenceChangeListener(this);
int duration = Settings.System.getInt(getContentResolver(),
Settings.System.AMBIENT_LIGHT_DURATION, 2);
mEdgeLightDurationPreference.setValue(duration);
mColorMode = (ListPreference) findPreference(PULSE_COLOR_MODE_PREF);
int value;
boolean colorModeAutomatic = Settings.System.getInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_COLOR_AUTOMATIC, 0) != 0;
boolean colorModeAccent = Settings.System.getInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_ACCENT, 0) != 0;
if (colorModeAutomatic) {
value = 0;
} else if (colorModeAccent) {
value = 1;
} else {
value = 2;
}
mColorMode.setValue(Integer.toString(value));
mColorMode.setSummary(mColorMode.getEntry());
mColorMode.setOnPreferenceChangeListener(this);
mEdgeLightColorPreference = (ColorPickerPreference) findPreference(NOTIFICATION_PULSE_COLOR);
int edgeLightColor = Settings.System.getInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_COLOR, 0xFF3980FF);
mEdgeLightColorPreference.setNewPreviewColor(edgeLightColor);
mEdgeLightColorPreference.setAlphaSliderEnabled(false);
String edgeLightColorHex = String.format("#%08x", (0xFF3980FF & edgeLightColor));
if (edgeLightColorHex.equals("#ff3980ff")) {
mEdgeLightColorPreference.setSummary(R.string.color_default);
} else {
mEdgeLightColorPreference.setSummary(edgeLightColorHex);
}
mEdgeLightColorPreference.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mEdgeLightColorPreference) {
String hex = ColorPickerPreference.convertToARGB(
Integer.valueOf(String.valueOf(newValue)));
if (hex.equals("#ff3980ff")) {
preference.setSummary(R.string.color_default);
} else {
preference.setSummary(hex);
}
int intHex = ColorPickerPreference.convertToColorInt(hex);
Settings.System.putInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_COLOR, intHex);
return true;
} else if (preference == mEdgeLightRepeatCountPreference) {
int value = (Integer) newValue;
Settings.System.putInt(getContentResolver(),
Settings.System.AMBIENT_LIGHT_REPEAT_COUNT, value);
return true;
} else if (preference == mEdgeLightDurationPreference) {
int value = (Integer) newValue;
Settings.System.putInt(getContentResolver(),
Settings.System.AMBIENT_LIGHT_DURATION, value);
return true;
} else if (preference == mColorMode) {
int value = Integer.valueOf((String) newValue);
int index = mColorMode.findIndexOfValue((String) newValue);
mColorMode.setSummary(mColorMode.getEntries()[index]);
if (value == 0) {
Settings.System.putInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_COLOR_AUTOMATIC, 1);
Settings.System.putInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_ACCENT, 0);
} else if (value == 1) {
Settings.System.putInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_COLOR_AUTOMATIC, 0);
Settings.System.putInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_ACCENT, 1);
} else {
Settings.System.putInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_COLOR_AUTOMATIC, 0);
Settings.System.putInt(getContentResolver(),
Settings.System.NOTIFICATION_PULSE_ACCENT, 0);
}
return true;
}
return false;
}