package by.fksis.schedule.app; import android.content.Intent; import android.os.Bundle; import by.fksis.schedule.API; import by.fksis.schedule.Preferences; import by.fksis.schedule.R; import by.fksis.schedule.dal.Database; import com.WazaBe.HoloEverywhere.preference.ListPreference; import com.WazaBe.HoloEverywhere.preference.Preference; import com.WazaBe.HoloEverywhere.preference.SharedPreferences; import com.WazaBe.HoloEverywhere.sherlock.SPreferenceActivity; import java.util.List; @SuppressWarnings("deprecation") public class PreferenceActivity extends SPreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); getSupportActionBar().setTitle(R.string.preferences); getSupportActionBar().setIcon(R.drawable.logo); { Preference preference = findPreference(getString(R.string.log_out_preference)); preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { API.clearCredentials(PreferenceActivity.this); Intent intent = new Intent(PreferenceActivity.this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); return true; } }); } { ListPreference preference = (ListPreference) findPreference(getString(R.string.subgroup_preference)); preference.setSummary(getResources().getStringArray(R.array.subgroups)[new Preferences(this).getSubgroup()]); } { ListPreference preference = (ListPreference) findPreference(getString(R.string.group_preference)); List<String> list = Database.getGroupList(); if (list.size() > 0) { String[] groups = list.toArray(new String[list.size()]); preference.setEntries(groups); preference.setEntryValues(groups); String group = new Preferences(this).getGroup(); preference.setSummary(list.contains(group) ? group : getString(R.string.group_not_selected)); } preference.setEnabled(list.size() > 0); } } @Override protected void onDestroy() { super.onDestroy(); getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String s) { { ListPreference preference = (ListPreference) findPreference(getString(R.string.subgroup_preference)); preference.setSummary(preference.getEntry()); } { ListPreference preference = (ListPreference) findPreference(getString(R.string.group_preference)); preference.setSummary(preference.getValue()); } } }