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.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceScreen;
import android.provider.Settings;
import android.util.Log;
import com.blackice.control.R;
import com.blackice.control.BlackICEPreferenceFragment;
public class StatusBarClock extends BlackICEPreferenceFragment implements
OnPreferenceChangeListener {
private static final String PREF_ENABLE = "clock_style";
private static final String PREF_AM_PM_STYLE = "clock_am_pm_style";
private static final String PREF_COLOR_PICKER = "clock_color";
private static final String PREF_ALARM_ENABLE = "alarm";
private static final String PREF_CLOCK_WEEKDAY = "clock_weekday";
ListPreference mClockStyle;
ListPreference mClockAmPmstyle;
CheckBoxPreference mAlarm;
ColorPickerPreference mColorPicker;
ListPreference mClockWeekday;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.prefs_statusbar_clock);
mClockStyle = (ListPreference) findPreference(PREF_ENABLE);
mClockStyle.setOnPreferenceChangeListener(this);
mClockStyle.setValue(Integer.toString(Settings.System.getInt(getActivity()
.getContentResolver(), Settings.System.STATUSBAR_CLOCK_STYLE,
1)));
mClockAmPmstyle = (ListPreference) findPreference(PREF_AM_PM_STYLE);
mClockAmPmstyle.setOnPreferenceChangeListener(this);
mClockAmPmstyle.setValue(Integer.toString(Settings.System.getInt(getActivity()
.getContentResolver(), Settings.System.STATUSBAR_CLOCK_AM_PM_STYLE,
2)));
mColorPicker = (ColorPickerPreference) findPreference(PREF_COLOR_PICKER);
mColorPicker.setOnPreferenceChangeListener(this);
mAlarm = (CheckBoxPreference) findPreference(PREF_ALARM_ENABLE);
mAlarm.setChecked(Settings.System.getInt(getActivity()
.getContentResolver(), Settings.System.STATUSBAR_SHOW_ALARM,
1) == 1);
mClockWeekday = (ListPreference) findPreference(PREF_CLOCK_WEEKDAY);
mClockWeekday.setOnPreferenceChangeListener(this);
mClockWeekday.setValue(Integer.toString(Settings.System.getInt(getActivity()
.getContentResolver(), Settings.System.STATUSBAR_CLOCK_WEEKDAY,
0)));
if (mTablet) {
PreferenceScreen prefs = getPreferenceScreen();
prefs.removePreference(mClockAmPmstyle);
prefs.removePreference(mAlarm);
prefs.removePreference(mClockWeekday);
}
}
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,
Preference preference) {
if (preference == mAlarm) {
Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.STATUSBAR_SHOW_ALARM,
((CheckBoxPreference) preference).isChecked() ? 1 : 0);
return true;
}
return super.onPreferenceTreeClick(preferenceScreen, preference);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean result = false;
if (preference == mClockAmPmstyle) {
int val = Integer.parseInt((String) newValue);
result = Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.STATUSBAR_CLOCK_AM_PM_STYLE, val);
} else if (preference == mClockStyle) {
int val = Integer.parseInt((String) newValue);
result = Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.STATUSBAR_CLOCK_STYLE, val);
} 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_CLOCK_COLOR, intHex);
Log.e("BlackICE", intHex + "");
} else if (preference == mClockWeekday) {
int val = Integer.parseInt((String) newValue);
result = Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.STATUSBAR_CLOCK_WEEKDAY, val);
}
return result;
}
}