/* @file MyEditPreferences.java * * @author marco corvi * @date nov 2011 * * @brief TopoDroid option value * -------------------------------------------------------- * Copyright This sowftare is distributed under GPL-3.0 or later * See the file COPYING. * -------------------------------------------------------- */ package com.topodroid.DistoX; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; import android.preference.Preference; import android.preference.EditTextPreference; import android.util.AttributeSet; import android.preference.Preference.OnPreferenceChangeListener; import android.util.Log; /** */ public class MyEditPreference extends EditTextPreference { SharedPreferences sp; public MyEditPreference( Context c, AttributeSet a ) { super(c,a); init(); sp = PreferenceManager.getDefaultSharedPreferences( c ); } public MyEditPreference( Context c ) { super( c ); init(); sp = PreferenceManager.getDefaultSharedPreferences( c ); } private void init() { setOnPreferenceChangeListener( new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange( Preference p, Object v ) { String value = (String)v; String new_value = TDSetting.enforcePreferenceBounds( p.getKey(), value ); // Log.v("DistoX", p.getKey() + ": value " + ((String)v) + " -> " + new_value + " text " + getText() ); // if ( ! new_value.equals( value ) ) { SharedPreferences.Editor editor = sp.edit(); editor.putString( p.getKey(), new_value ); editor.commit(); EditTextPreference ep = (EditTextPreference)p; ep.setSummary( new_value ); ep.setText( new_value ); } return false; // state of preference has already been updated } } ); } @Override public CharSequence getSummary() { return super.getText(); } }