package org.yuttadhammo.buddydroid; import com.actionbarsherlock.app.SherlockPreferenceActivity; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Build; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.EditTextPreference; import android.preference.Preference; import android.preference.PreferenceManager; import android.preference.Preference.OnPreferenceClickListener; import android.preference.Preference.OnPreferenceChangeListener; import android.text.InputType; import com.actionbarsherlock.view.MenuItem; public class BPSettingsActivity extends SherlockPreferenceActivity { private Context context; private static SharedPreferences prefs; @SuppressLint("NewApi") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.context = getApplicationContext(); addPreferencesFromResource(R.xml.preferences); prefs = PreferenceManager.getDefaultSharedPreferences(context); final EditTextPreference streamPref = (EditTextPreference)findPreference("stream_max"); final EditTextPreference contentPref = (EditTextPreference)findPreference("content_max"); final EditTextPreference intervalPref = (EditTextPreference)findPreference("sync_interval"); setupEditTextPreference(streamPref,"20", null); setupEditTextPreference(contentPref,null, getString(R.string.contentMaxDesc)); setupEditTextPreference(intervalPref,"60", null); intervalPref.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER); streamPref.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER); contentPref.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER); final CheckBoxPreference syncPref = (CheckBoxPreference)findPreference("interval_sync"); if(prefs.getBoolean("interval_sync", false)) intervalPref.setEnabled(true); else intervalPref.setEnabled(false); syncPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { if(!syncPref.isChecked()) intervalPref.setEnabled(true); else intervalPref.setEnabled(false); return true; } }); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } protected String TAG = "BPSettingsActivity"; @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection super.onOptionsItemSelected(item); switch (item.getItemId()) { case android.R.id.home: // app icon in action bar clicked; go home finish(); return true; default: return false; } } public void setupEditTextPreference(final EditTextPreference etp, final String def, final String desc) { if(def != null) { if(etp.getText() == null || etp.getText().equals("")) etp.setText(def); etp.setSummary(etp.getText()); } else if(etp.getText() != null && !etp.getText().equals("")) { etp.setSummary(etp.getText()); } etp.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, final Object newValue) { if((newValue == null || ((String)newValue).length() == 0) && desc != null) etp.setSummary(desc); else etp.setSummary((String) newValue); return true; } }); } }