package com.bitcoinlabs.android.settings;
import com.bitcoinlabs.android.R;
import com.bitcoinlabs.android.R.xml;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.widget.Toast;
public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener {
private static final String TX_FEE_PREF = "txFee";
private Preference txFeePref;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.bitcoinprefs);
txFeePref = getPreferenceScreen().findPreference(TX_FEE_PREF);
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences sharedPreferences = getPreferenceScreen().getSharedPreferences();
setSummaries(sharedPreferences, TX_FEE_PREF);
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (TX_FEE_PREF.equals(key)) {
double txFee = Double.NaN;
String txFeeString = sharedPreferences.getString(TX_FEE_PREF, "0.005");
try {
txFee = Double.parseDouble(txFeeString);
if (!(txFee <= .05 && txFee >= 0)) {
txFee = Double.NaN;
}
} catch (NumberFormatException nfe) {}
if (txFee != Double.NaN) {
setSummaries(sharedPreferences, key);
} else {
Toast.makeText(Preferences.this, txFeeString + " is not a sane tx fee.", Toast.LENGTH_LONG).show();
}
}
}
private void setSummaries(SharedPreferences sharedPreferences, String key) {
txFeePref.setSummary(sharedPreferences.getString(key, "") + " ฿TC");
}
}