package de.lukasniemeier.mensa.ui.preference;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import com.google.common.base.Function;
import com.google.common.collect.Collections2;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import de.lukasniemeier.mensa.R;
import de.lukasniemeier.mensa.model.Mensa;
import de.lukasniemeier.mensa.utils.Utils;
/**
* Created on 18.09.13.
*/
public class GeneralPreferenceFragment extends BasePreferenceFragment {
public static Intent createIntent(Context context) {
Intent intent = new Intent(context, SettingsActivity.class);
intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, GeneralPreferenceFragment.class.getName());
intent.putExtra(SettingsActivity.EXTRA_NO_HEADERS, true );
return intent;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
ListPreference selectTheme = (ListPreference) findPreference("settings_list_theme");
setupThemeList(selectTheme);
CheckBoxPreference enableDefaultMensa = (CheckBoxPreference) findPreference("settings_check_mensa_default");
ListPreference selectDefaultMensa = (ListPreference) findPreference("settings_list_mensa_default");
setupMensaList(selectDefaultMensa);
bindPreferenceSummaryToValue(selectTheme);
bindPreferenceToCheckbox(enableDefaultMensa, selectDefaultMensa);
bindPreferenceSummaryToValue(selectDefaultMensa);
}
private void setupThemeList(ListPreference selectTheme) {
Collection<String> entries = Arrays.asList("Studi", "Girly");
Collection<String> values = Arrays.asList(String.valueOf(R.style.Theme_Studi_Theme),
String.valueOf(R.style.Theme_Girly_Theme));
selectTheme.setDefaultValue(String.valueOf(R.style.Theme_Studi_Theme));
selectTheme.setEntries(entries.toArray(new String[entries.size()]));
selectTheme.setEntryValues(values.toArray(new String[values.size()]));
selectTheme.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
Utils.restartApp(getActivity());
return true;
}
});
}
private void setupMensaList(ListPreference selectDefault) {
Collection<Mensa> mensas = Mensa.getMensas();
selectDefault.setDefaultValue("");
Collection<String> entries = new ArrayList<String>(Collections2.transform(mensas, new Function<Mensa, String>() {
@Override
public String apply(Mensa mensa) {
return mensa.getName();
}
}));
entries.add(getString(R.string.pref_none_select_mensa_default));
Collection<String> values = new ArrayList<String>(Collections2.transform(mensas, new Function<Mensa, String>() {
@Override
public String apply(Mensa mensa) {
return mensa.getShortName();
}
}));
values.add("");
selectDefault.setEntries(entries.toArray(new String[entries.size()]));
selectDefault.setEntryValues(values.toArray(new String[values.size()]));
}
}