package eu.tpmusielak.securephoto.preferences; import android.content.*; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.os.IBinder; import android.preference.EditTextPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import eu.tpmusielak.securephoto.R; import eu.tpmusielak.securephoto.verification.SCVerifierManager; import eu.tpmusielak.securephoto.verification.VerifierPreferenceReceiver; import java.util.Map; /** * Created by IntelliJ IDEA. * User: enx * Date: 27.10.11 * Time: 17:01 */ public class ShowPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListener, VerifierPreferenceReceiver { private SharedPreferences preferences; private SCVerifierManager verifierManager; private ServiceConnection verifierServiceConnection = new ServiceConnection() { @Override public void onServiceConnected(ComponentName componentName, IBinder iBinder) { verifierManager = ((SCVerifierManager.VerifierServiceBinder) iBinder).getService(); verifierManager.bindToPreferences(ShowPreferences.this); // verifierManager.generateVerifierEnablers(); verifierManager.loadVerifierPreferences(); } @Override public void onServiceDisconnected(ComponentName componentName) { } }; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); Intent verifierServiceIntent = new Intent(this, SCVerifierManager.class); bindService(verifierServiceIntent, verifierServiceConnection, Context.BIND_AUTO_CREATE); // verifierManager = SCVerifierManager.getInstance(); // verifierManager.bindToPreferences(this); // verifierManager.generateVerifierEnablers(); // verifierManager.loadVerifierPreferences(); preferences = getPreferenceScreen().getSharedPreferences(); Map<String, ?> allPreferences = preferences.getAll(); for (String prefKey : allPreferences.keySet()) { Object item = allPreferences.get(prefKey); if (item instanceof String) { Preference preference = getPreferenceScreen().findPreference(prefKey); updateSummary(preferences, prefKey, preference); } } } @Override protected void onResume() { super.onResume(); getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this); } @Override protected void onPause() { super.onPause(); getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this); } @Override public PreferenceActivity getPreferenceActivity() { return this; } public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String preferenceKey) { Preference preference = getPreferenceScreen().findPreference(preferenceKey); if (preference instanceof EditTextPreference) { updateSummary(sharedPreferences, preferenceKey, preference); } } private void updateSummary(SharedPreferences sharedPreferences, String preferenceKey, Preference preference) { if (preference == null) { return; } String preferenceValue = sharedPreferences.getString(preferenceKey, null); if (preferenceValue != null) { preference.setSummary(preferenceValue); } } }