package de.tudarmstadt.informatik.hostage.ui2.fragment; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import java.util.HashMap; import de.tudarmstadt.informatik.hostage.R; import de.tudarmstadt.informatik.hostage.ui2.activity.MainActivity; import de.tudarmstadt.informatik.hostage.ui2.fragment.interfaces.UpNavigatible; /** * @author Alexander Brakowski * @created 02.03.14 21:03 */ public class PreferenceHostageFrament extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { private HashMap mSuffixMap; private String[] mTextPreferences; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); this.mTextPreferences = new String[]{ "pref_external_location", "pref_upload_server", "pref_max_connections", "pref_timeout", "pref_sleeptime", "pref_location_time", "pref_location_retries" }; this.mSuffixMap = new HashMap(); this.mSuffixMap.put("pref_timeout", "s"); this.mSuffixMap.put("pref_sleeptime", "ms"); this.mSuffixMap.put("pref_location_time", "ms"); addPreferencesFromResource(R.xml.settings_preferences); for(String k: this.mTextPreferences){ updatePreferenceSummary(k); } } private void updatePreferenceSummary(String key){ Preference p = findPreference(key); SharedPreferences sharedPreferences = this.getPreferenceManager().getSharedPreferences(); if(p != null && p instanceof EditTextPreference){ String suffix = ""; if(this.mSuffixMap.containsKey(key)){ suffix = this.mSuffixMap.get(key); } p.setSummary(sharedPreferences.getString(key, "") + " " + suffix); } } @Override public void onResume() { super.onResume(); getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } @Override public void onPause() { getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); super.onPause(); } /* @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { super.onPreferenceTreeClick(preferenceScreen, preference); if (preference instanceof PreferenceScreen) { if(MainActivity.getInstance().mDisplayedFragment != null && MainActivity.getInstance().mDisplayedFragment instanceof UpNavigatible){ ((UpNavigatible) MainActivity.getInstance().mDisplayedFragment).setUpNavigatible(true); ((UpNavigatible) MainActivity.getInstance().mDisplayedFragment).setUpFragment(SettingsFragment.class); MainActivity.getInstance().setDrawerIndicatorEnabled(false); return true; } } return false; }*/ @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { updatePreferenceSummary(key); } }