mirror of https://github.com/tasks/tasks
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
3.0 KiB
Java
75 lines
3.0 KiB
Java
/**
|
|
* Copyright (c) 2012 Todoroo Inc
|
|
*
|
|
* See the file "LICENSE" for the full license governing this code.
|
|
*/
|
|
package com.todoroo.astrid.reminders;
|
|
|
|
import android.media.Ringtone;
|
|
import android.media.RingtoneManager;
|
|
import android.net.Uri;
|
|
import android.os.Bundle;
|
|
import android.preference.Preference;
|
|
import android.preference.PreferenceManager;
|
|
|
|
import org.joda.time.DateTime;
|
|
import org.tasks.R;
|
|
import org.tasks.injection.InjectingPreferenceActivity;
|
|
import org.tasks.ui.TimePreference;
|
|
|
|
import java.text.DateFormat;
|
|
|
|
public class ReminderPreferences extends InjectingPreferenceActivity {
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
|
|
addPreferencesFromResource(R.xml.preferences_reminders);
|
|
|
|
initializeRingtonePreference();
|
|
initializeTimePreference(R.string.p_rmd_time, R.string.rmd_EPr_rmd_time_desc);
|
|
initializeTimePreference(R.string.p_rmd_quietStart, null);
|
|
initializeTimePreference(R.string.p_rmd_quietEnd, null);
|
|
}
|
|
|
|
private void initializeTimePreference(int key, final Integer summaryRes) {
|
|
Preference preference = findPreference(getString(key));
|
|
preference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
|
setPreference(preference, summaryRes, (int) newValue);
|
|
return true;
|
|
}
|
|
});
|
|
setPreference(preference, summaryRes, ((TimePreference) preference).getMillisOfDay());
|
|
}
|
|
|
|
private void setPreference(Preference preference, final Integer summaryRes, int millisOfDay) {
|
|
String setting = DateFormat.getTimeInstance(DateFormat.SHORT).format(new DateTime().withMillisOfDay(millisOfDay).toDate());
|
|
preference.setSummary(summaryRes == null ? setting : getString(summaryRes, setting));
|
|
}
|
|
|
|
private void initializeRingtonePreference() {
|
|
Preference.OnPreferenceChangeListener ringtoneChangedListener = new Preference.OnPreferenceChangeListener() {
|
|
@Override
|
|
public boolean onPreferenceChange(Preference preference, Object value) {
|
|
if ("".equals(value)) {
|
|
preference.setSummary(R.string.silent);
|
|
} else {
|
|
Ringtone ringtone = RingtoneManager.getRingtone(ReminderPreferences.this, Uri.parse((String) (value == null ? "" : value)));
|
|
String ringtoneTitle = ringtone.getTitle(ReminderPreferences.this);
|
|
preference.setSummary(ringtoneTitle);
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
|
|
String ringtoneKey = getString(R.string.p_rmd_ringtone);
|
|
Preference ringtonePreference = findPreference(ringtoneKey);
|
|
ringtonePreference.setOnPreferenceChangeListener(ringtoneChangedListener);
|
|
ringtoneChangedListener.onPreferenceChange(ringtonePreference, PreferenceManager.getDefaultSharedPreferences(this)
|
|
.getString(ringtoneKey, null));
|
|
}
|
|
}
|