ReminderPreferences extends PreferenceActivity

pull/253/head
Alex Baker 9 years ago
parent c525734d79
commit 034b71ec92

@ -247,7 +247,7 @@ public class GtasksPreferences extends TodorooPreferenceActivity {
public void onClick(DialogInterface dialog,
int which) {
logOut();
initializePreference(getPreferenceScreen());
finish();
}
}, null
);

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

@ -14,17 +14,13 @@ package com.todoroo.astrid.utility;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceGroup;
import android.preference.PreferenceManager;
import android.preference.RingtonePreference;
import org.tasks.injection.InjectingPreferenceActivity;
import org.tasks.preferences.Preferences;
import org.tasks.ui.TimePreference;
import javax.inject.Inject;
@ -63,7 +59,7 @@ abstract public class TodorooPreferenceActivity extends InjectingPreferenceActiv
return preferences.getPrefs();
}
protected void initializePreference(Preference preference) {
private void initializePreference(Preference preference) {
if(preference instanceof PreferenceGroup) {
PreferenceGroup group = (PreferenceGroup)preference;
for(int i = 0; i < group.getPreferenceCount(); i++) {
@ -76,13 +72,6 @@ abstract public class TodorooPreferenceActivity extends InjectingPreferenceActiv
value = ((ListPreference) preference).getValue();
} else if(preference instanceof CheckBoxPreference) {
value = ((CheckBoxPreference) preference).isChecked();
} else if(preference instanceof EditTextPreference) {
value = ((EditTextPreference) preference).getText();
} else if(preference instanceof RingtonePreference) {
value = PreferenceManager.getDefaultSharedPreferences(preference.getContext())
.getString(preference.getKey(), null);
} else if(preference instanceof TimePreference) {
value = ((TimePreference) preference).getMillisOfDay();
}
updatePreferences(preference, value);

@ -20,7 +20,6 @@ import com.todoroo.astrid.gcal.CalendarAlarmListCreator;
import com.todoroo.astrid.gcal.CalendarReminderActivity;
import com.todoroo.astrid.gtasks.GtasksPreferences;
import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity;
import com.todoroo.astrid.reminders.ReminderPreferences;
import com.todoroo.astrid.tags.DeleteTagActivity;
import com.todoroo.astrid.tags.RenameTagActivity;
import com.todoroo.astrid.widget.WidgetConfigActivity;
@ -59,7 +58,6 @@ import dagger.Provides;
FilterShortcutActivity.class,
BeastModePreferences.class,
DefaultsPreferences.class,
ReminderPreferences.class,
AACRecordingActivity.class,
SnoozeActivity.class,
MiscellaneousPreferences.class,

Loading…
Cancel
Save