|
|
@ -5,67 +5,81 @@
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
package com.todoroo.astrid.reminders;
|
|
|
|
package com.todoroo.astrid.reminders;
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.res.Resources;
|
|
|
|
|
|
|
|
import android.media.Ringtone;
|
|
|
|
import android.media.Ringtone;
|
|
|
|
import android.media.RingtoneManager;
|
|
|
|
import android.media.RingtoneManager;
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.net.Uri;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.preference.Preference;
|
|
|
|
import android.preference.Preference;
|
|
|
|
|
|
|
|
import android.preference.PreferenceActivity;
|
|
|
|
|
|
|
|
import android.preference.PreferenceManager;
|
|
|
|
import android.preference.PreferenceScreen;
|
|
|
|
import android.preference.PreferenceScreen;
|
|
|
|
|
|
|
|
|
|
|
|
import com.todoroo.astrid.utility.TodorooPreferenceActivity;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import org.joda.time.DateTime;
|
|
|
|
import org.joda.time.DateTime;
|
|
|
|
import org.tasks.R;
|
|
|
|
import org.tasks.R;
|
|
|
|
|
|
|
|
import org.tasks.ui.TimePreference;
|
|
|
|
|
|
|
|
|
|
|
|
import java.text.DateFormat;
|
|
|
|
import java.text.DateFormat;
|
|
|
|
|
|
|
|
|
|
|
|
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
|
|
|
|
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
|
|
|
|
|
|
|
|
|
|
|
|
public class ReminderPreferences extends TodorooPreferenceActivity {
|
|
|
|
public class ReminderPreferences extends PreferenceActivity {
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
addPreferencesFromResource(R.xml.preferences_reminders);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
initializeRingtonePreference();
|
|
|
|
|
|
|
|
initializeTimePreference(R.string.p_rmd_time, R.string.rmd_EPr_rmd_time_desc);
|
|
|
|
|
|
|
|
|
|
|
|
if (atLeastLollipop()) {
|
|
|
|
if (atLeastLollipop()) {
|
|
|
|
Resources resources = getResources();
|
|
|
|
|
|
|
|
PreferenceScreen preferenceScreen = getPreferenceScreen();
|
|
|
|
PreferenceScreen preferenceScreen = getPreferenceScreen();
|
|
|
|
preferenceScreen.removePreference(findPreference(resources.getString(R.string.p_rmd_enable_quiet)));
|
|
|
|
preferenceScreen.removePreference(findPreference(getString(R.string.p_rmd_enable_quiet)));
|
|
|
|
preferenceScreen.removePreference(findPreference(resources.getString(R.string.p_rmd_quietStart)));
|
|
|
|
preferenceScreen.removePreference(findPreference(getString(R.string.p_rmd_quietStart)));
|
|
|
|
preferenceScreen.removePreference(findPreference(resources.getString(R.string.p_rmd_quietEnd)));
|
|
|
|
preferenceScreen.removePreference(findPreference(getString(R.string.p_rmd_quietEnd)));
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
initializeTimePreference(R.string.p_rmd_quietStart, R.string.rmd_EPr_quiet_hours_start_desc);
|
|
|
|
|
|
|
|
initializeTimePreference(R.string.p_rmd_quietEnd, R.string.rmd_EPr_quiet_hours_end_desc);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
private void initializeTimePreference(int key, final int summaryRes) {
|
|
|
|
public int getPreferenceResource() {
|
|
|
|
Preference preference = findPreference(getString(key));
|
|
|
|
return R.xml.preferences_reminders;
|
|
|
|
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());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
private void setPreference(Preference preference, final int summaryRes, int millisOfDay) {
|
|
|
|
public void updatePreferences(Preference preference, Object value) {
|
|
|
|
String setting = DateFormat.getTimeInstance(DateFormat.SHORT).format(new DateTime().withMillisOfDay(millisOfDay).toDate());
|
|
|
|
Resources r = getResources();
|
|
|
|
preference.setSummary(getString(summaryRes, setting));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(r.getString(R.string.p_rmd_quietStart).equals(preference.getKey())) {
|
|
|
|
private void initializeRingtonePreference() {
|
|
|
|
int millisOfDay = (int) value;
|
|
|
|
Preference.OnPreferenceChangeListener ringtoneChangedListener = new Preference.OnPreferenceChangeListener() {
|
|
|
|
String setting = DateFormat.getTimeInstance(DateFormat.SHORT).format(new DateTime().withMillisOfDay(millisOfDay).toDate());
|
|
|
|
@Override
|
|
|
|
preference.setSummary(r.getString(R.string.rmd_EPr_quiet_hours_start_desc, setting));
|
|
|
|
public boolean onPreferenceChange(Preference preference, Object value) {
|
|
|
|
} else if(r.getString(R.string.p_rmd_quietEnd).equals(preference.getKey())) {
|
|
|
|
if ("".equals(value)) {
|
|
|
|
int millisOfDay = (int) value;
|
|
|
|
preference.setSummary(R.string.silent);
|
|
|
|
String setting = DateFormat.getTimeInstance(DateFormat.SHORT).format(new DateTime().withMillisOfDay(millisOfDay).toDate());
|
|
|
|
} else {
|
|
|
|
preference.setSummary(r.getString(R.string.rmd_EPr_quiet_hours_end_desc, setting));
|
|
|
|
Ringtone ringtone = RingtoneManager.getRingtone(ReminderPreferences.this, Uri.parse((String) (value == null ? "" : value)));
|
|
|
|
} else if(r.getString(R.string.p_rmd_time).equals(preference.getKey())) {
|
|
|
|
String ringtoneTitle = ringtone.getTitle(ReminderPreferences.this);
|
|
|
|
int millisOfDay = (int) value;
|
|
|
|
preference.setSummary(ringtoneTitle);
|
|
|
|
String setting = DateFormat.getTimeInstance(DateFormat.SHORT).format(new DateTime().withMillisOfDay(millisOfDay).toDate());
|
|
|
|
}
|
|
|
|
preference.setSummary(r.getString(R.string.rmd_EPr_rmd_time_desc, setting));
|
|
|
|
return true;
|
|
|
|
} else if(r.getString(R.string.p_rmd_ringtone).equals(preference.getKey())) {
|
|
|
|
|
|
|
|
if ("".equals(value)) {
|
|
|
|
|
|
|
|
preference.setSummary(R.string.silent);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
Ringtone ringtone = RingtoneManager.getRingtone(this, Uri.parse((String) (value == null ? "" : value)));
|
|
|
|
|
|
|
|
String ringtoneTitle = ringtone.getTitle(this);
|
|
|
|
|
|
|
|
preference.setSummary(ringtoneTitle);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String ringtoneKey = getString(R.string.p_rmd_ringtone);
|
|
|
|
|
|
|
|
Preference ringtonePreference = findPreference(ringtoneKey);
|
|
|
|
|
|
|
|
ringtonePreference.setOnPreferenceChangeListener(ringtoneChangedListener);
|
|
|
|
|
|
|
|
ringtoneChangedListener.onPreferenceChange(ringtonePreference, PreferenceManager.getDefaultSharedPreferences(this)
|
|
|
|
|
|
|
|
.getString(ringtoneKey, null));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|