/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.reminders;
import android.content.res.Resources;
import android.preference.Preference;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.andlib.utility.TodorooPreferenceActivity;
/**
* Displays the preference screen for users to edit their preferences
*
* @author Tim Su <tim@todoroo.com>
*
*/
public class ReminderPreferences extends TodorooPreferenceActivity {
@Override
public int getPreferenceResource() {
return R.xml.preferences_reminders;
}
/**
*
* @param resource if null, updates all resources
*/
@Override
public void updatePreferences(Preference preference, Object value) {
Resources r = getResources();
if(r.getString(R.string.p_rmd_quietStart).equals(preference.getKey())) {
int index = AndroidUtilities.indexOf(r.getStringArray(R.array.EPr_quiet_hours_start_values), (String)value);
Preference endPreference = findPreference(getString(R.string.p_rmd_quietEnd));
if(index <= 0) {
preference.setSummary(r.getString(R.string.rmd_EPr_quiet_hours_desc_none));
endPreference.setEnabled(false);
} else {
String setting = r.getStringArray(R.array.EPr_quiet_hours_start)[index];
preference.setSummary(r.getString(R.string.rmd_EPr_quiet_hours_start_desc, setting));
endPreference.setEnabled(true);
}
} else if(r.getString(R.string.p_rmd_quietEnd).equals(preference.getKey())) {
int index = AndroidUtilities.indexOf(r.getStringArray(R.array.EPr_quiet_hours_end_values), (String)value);
int quietHoursStart = Preferences.getIntegerFromString(R.string.p_rmd_quietStart, -1);
if(index == -1 || quietHoursStart == -1)
preference.setSummary(r.getString(R.string.rmd_EPr_quiet_hours_desc_none));
else {
String setting = r.getStringArray(R.array.EPr_quiet_hours_end)[index];
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 index = AndroidUtilities.indexOf(r.getStringArray(R.array.EPr_rmd_time_values), (String)value);
if (index != -1 && index < r.getStringArray(R.array.EPr_rmd_time).length) {
// FIXME this does not fix the underlying cause of the ArrayIndexOutofBoundsException
// https://www.crittercism.com/developers/crash-details/e0886dbfcf9e78a21d9f2e2a385c4c13e2f6ad2132ac24a3fa811144
String setting = r.getStringArray(R.array.EPr_rmd_time)[index];
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(value == null || "content://settings/system/notification_sound".equals(value)) //$NON-NLS-1$
preference.setSummary(r.getString(R.string.rmd_EPr_ringtone_desc_default));
else if("".equals(value)) //$NON-NLS-1$
preference.setSummary(r.getString(R.string.rmd_EPr_ringtone_desc_silent));
else
preference.setSummary(r.getString(R.string.rmd_EPr_ringtone_desc_custom));
} else if(r.getString(R.string.p_rmd_persistent).equals(preference.getKey())) {
if((Boolean)value)
preference.setSummary(r.getString(R.string.rmd_EPr_persistent_desc_true));
else
preference.setSummary(r.getString(R.string.rmd_EPr_persistent_desc_false));
} else if(r.getString(R.string.p_rmd_maxvolume).equals(preference.getKey())) {
if((Boolean)value)
preference.setSummary(r.getString(R.string.rmd_EPr_multiple_maxvolume_desc_true));
else
preference.setSummary(r.getString(R.string.rmd_EPr_multiple_maxvolume_desc_false));
} else if(r.getString(R.string.p_rmd_vibrate).equals(preference.getKey())) {
if((Boolean)value)
preference.setSummary(r.getString(R.string.rmd_EPr_vibrate_desc_true));
else
preference.setSummary(r.getString(R.string.rmd_EPr_vibrate_desc_false));
} else if(r.getString(R.string.p_rmd_nagging).equals(preference.getKey())) {
if((Boolean)value)
preference.setSummary(r.getString(R.string.rmd_EPr_nagging_desc_true));
else
preference.setSummary(r.getString(R.string.rmd_EPr_nagging_desc_false));
} else if(r.getString(R.string.p_rmd_snooze_dialog).equals(preference.getKey())) {
if(value == null || ((Boolean)value) == true)
preference.setSummary(r.getString(R.string.rmd_EPr_snooze_dialog_desc_true));
else
preference.setSummary(r.getString(R.string.rmd_EPr_snooze_dialog_desc_false));
} else if (r.getString(R.string.p_rmd_enabled).equals(preference.getKey())) {
if((Boolean)value)
preference.setSummary(R.string.rmd_EPr_enabled_desc_true);
else
preference.setSummary(R.string.rmd_EPr_enabled_desc_false);
} else if (r.getString(R.string.p_rmd_social).equals(preference.getKey())) {
if ((Boolean)value)
preference.setSummary(R.string.rmd_EPr_social_summary_enabled);
else
preference.setSummary(R.string.rmd_EPr_social_summary_disabled);
}
}
}