package com.blackice.control.fragments; import net.margaritov.preference.colorpicker.ColorPickerPreference; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceScreen; import android.preference.Preference.OnPreferenceChangeListener; import android.provider.Settings; import android.util.Log; import com.blackice.control.R; import com.blackice.control.BlackICEPreferenceFragment; public class StatusBarSignal extends BlackICEPreferenceFragment implements OnPreferenceChangeListener { ListPreference mDbmStyletyle; ListPreference mWifiStyle; ColorPickerPreference mColorPicker; ColorPickerPreference mWifiColorPicker; CheckBoxPreference mHideSignal; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.prefs_statusbar_signal); mDbmStyletyle = (ListPreference) findPreference("signal_style"); mDbmStyletyle.setOnPreferenceChangeListener(this); mDbmStyletyle.setValue(Integer.toString(Settings.System.getInt(getActivity() .getContentResolver(), Settings.System.STATUSBAR_SIGNAL_TEXT, 0))); mColorPicker = (ColorPickerPreference) findPreference("signal_color"); mColorPicker.setOnPreferenceChangeListener(this); mWifiStyle = (ListPreference) findPreference("wifi_signal_style"); mWifiStyle.setOnPreferenceChangeListener(this); mWifiStyle.setValue(Integer.toString(Settings.System.getInt(getActivity() .getContentResolver(), Settings.System.STATUSBAR_WIFI_SIGNAL_TEXT, 0))); mWifiColorPicker = (ColorPickerPreference) findPreference("wifi_signal_color"); mWifiColorPicker.setOnPreferenceChangeListener(this); mHideSignal = (CheckBoxPreference) findPreference("hide_signal"); mHideSignal.setChecked(Settings.System.getInt(getActivity() .getContentResolver(), Settings.System.STATUSBAR_HIDE_SIGNAL_BARS, 0) != 0); } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (preference == mHideSignal) { Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STATUSBAR_HIDE_SIGNAL_BARS, ((CheckBoxPreference) preference).isChecked() ? 1 : 0); return true; } return super.onPreferenceTreeClick(preferenceScreen, preference); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference == mDbmStyletyle) { int val = Integer.parseInt((String) newValue); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STATUSBAR_SIGNAL_TEXT, val); return true; } else if (preference == mColorPicker) { String hex = ColorPickerPreference.convertToARGB(Integer.valueOf(String .valueOf(newValue))); preference.setSummary(hex); int intHex = ColorPickerPreference.convertToColorInt(hex); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STATUSBAR_SIGNAL_TEXT_COLOR, intHex); return true; } else if (preference == mWifiStyle) { int val = Integer.parseInt((String) newValue); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STATUSBAR_WIFI_SIGNAL_TEXT, val); return true; } else if (preference == mWifiColorPicker) { String hex = ColorPickerPreference.convertToARGB(Integer.valueOf(String .valueOf(newValue))); preference.setSummary(hex); int intHex = ColorPickerPreference.convertToColorInt(hex); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.STATUSBAR_WIFI_SIGNAL_TEXT_COLOR, intHex); return true; } return false; } }