package cri.sanity.pref;
import android.content.Context;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.util.AttributeSet;
import cri.sanity.*;
import cri.sanity.util.Alert;
public class PPwd extends Preference implements OnPreferenceClickListener
{
private OnPreferenceClickListener listener;
private CharSequence sum;
public PPwd(Context ctx) { super(ctx); init(); }
public PPwd(Context ctx, AttributeSet attrs) { super(ctx, attrs); init(); updateSum(); }
public PPwd(Context ctx, AttributeSet attrs, int style) { super(ctx, attrs, style); init(); updateSum(); }
//---- ListPreference override
@Override
public void setSummary(int id) { super.setSummary(sum = A.s(id)); }
@Override
public void setSummary(CharSequence text) { super.setSummary(sum = text); }
@Override
public OnPreferenceClickListener getOnPreferenceClickListener() { return listener; }
@Override
public void setOnPreferenceClickListener(OnPreferenceClickListener l) { listener = l; }
@Override
public boolean onPreferenceClick(Preference p) {
if(listener!=null && listener.onPreferenceClick(p)) return true;
Alert.pwdChoose(pwd(), new Alert.Edited() {
@Override
public void on(String text){
A.putc(getKey(), text);
updateSum();
}
});
return true;
}
public void updateSum() {
if(sum == null) sum = getSummary();
super.setSummary(sum + " (" + A.s(A.empty(pwd())? R.string.empty : R.string.active) + ')');
}
public String pwd() { return A.gets(getKey()); }
//---- private api
private void init() {
super.setOnPreferenceClickListener(this);
setWidgetLayoutResource(R.layout.img_secure);
Alert.resetPwd();
}
}