package tof.cv.mpp; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.util.Log; import android.view.MenuItem; import com.readystatesoftware.systembartint.SystemBarTintManager; import java.util.List; public class MyPreferenceActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener { // private MyPrefAdapter mAdapter; // private ViewPager mPager; public static int PAGE_GENERAL = 0; public static int PAGE_PLANNER = 1; public static int PAGE_TWITTER = 2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getActionBar().setDisplayHomeAsUpEnabled(true); boolean hasNoHeader = true; try { hasNoHeader = !hasHeaders(); } catch (Error e) { e.printStackTrace(); } if (hasNoHeader) { this.setContentView(R.layout.activity_preference); addPreferencesFromResource(R.xml.activity_preferences); addPreferencesFromResource(R.xml.activity_planner_preferences); addPreferencesFromResource(R.xml.activity_twitter_preferences); } SystemBarTintManager tintManager = new SystemBarTintManager(this); // enable status bar tint tintManager.setStatusBarTintEnabled(true); // enable navigation bar tint tintManager.setNavigationBarTintEnabled(true); tintManager.setTintResource(R.color.primarycolor); } protected boolean isValidFragment (String fragmentName) { return true; } @Override public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.preference_headers, target); } /** * This fragment shows the preferences for the first header. */ public static class Prefs1Fragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Make sure default values are applied. In a real app, you would // want this in a shared function that is used to retrieve the // SharedPreferences wherever they are needed. // PreferenceManager.setDefaultValues(getActivity(), // R.xml.advanced_preferences, false); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.activity_preferences); Preference pref3 = findPreference("prefPseudo"); if (pref3 != null) { pref3.setSummary(((EditTextPreference) pref3).getText()); pref3.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { preference.setSummary((CharSequence) newValue); return true; } }); } } protected boolean isValidFragment (String fragmentName) { return true; } } /** * This fragment shows the preferences for the second header. */ public static class Prefs2Fragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Can retrieve arguments from headers XML. Log.i("args", "Arguments: " + getArguments()); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.activity_planner_preferences); Preference pref = findPreference(getString(R.string.key_planner_da)); if (pref != null) { pref.setSummary(((ListPreference) pref).getEntry()); pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { try {//Wrong number in previous app. Need to try/catch preference.setSummary(((ListPreference) preference) .getEntries()[Integer.valueOf(newValue .toString()) - 1]); } catch (NumberFormatException e) { e.printStackTrace(); } return true; } }); } Preference pref2 = findPreference(getString(R.string.key_activity)); if (pref2 != null) { pref2.setSummary(((ListPreference) pref2).getEntry()); pref2.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { preference.setSummary(((ListPreference) preference) .getEntries()[Integer.valueOf(newValue .toString()) - 1]); return true; } }); } } protected boolean isValidFragment (String fragmentName) { return true; } } /** * This fragment shows the preferences for the third header. */ public static class Prefs3Fragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Can retrieve arguments from headers XML. Log.i("args", "Arguments: " + getArguments()); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.activity_twitter_preferences); } protected boolean isValidFragment (String fragmentName) { return true; } } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.contentEquals("prefPseudo")) { Preference pref = findPreference("prefPseudo"); pref.setSummary(((EditTextPreference) pref).getText()); } if (key.contentEquals(getString(R.string.key_activity))) { Preference pref = findPreference(getString(R.string.key_activity)); pref.setSummary(((ListPreference) pref).getEntry()); } if (key.contentEquals(getString(R.string.key_planner_da))) { Preference pref = findPreference(getString(R.string.key_planner_da)); pref.setSummary(((ListPreference) pref).getEntry()); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case (android.R.id.home): finish(); return true; default: return super.onOptionsItemSelected(item); } } }