package com.lechucksoftware.proxy.proxysettings.preferences; import android.content.Context; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.preference.Preference; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import com.lechucksoftware.proxy.proxysettings.R; import be.shouldit.proxy.lib.enums.CheckStatusValues; import be.shouldit.proxy.lib.ProxyStatusItem; public class ValidationPreference extends Preference { private Drawable mIcon; public enum ValidationStatus { CHECKING, VALID, ERROR } public ValidationPreference(Context context, AttributeSet attrs) { super(context, attrs); setWidgetLayoutResource(R.layout.actionbar_refresh_progress); } @Override protected Object onGetDefaultValue(TypedArray a, int index) { return a.getInteger(index, 0); } @Override public void onBindView(View view) { super.onBindView(view); ImageView imageView = (ImageView) view.findViewById(R.id.validation_preference_imageview); if (imageView != null && mIcon != null) { imageView.setImageDrawable(mIcon); } } public Drawable getIcon() { return mIcon; } public void SetStatus(ProxyStatusItem st) { if (st.effective) { setEnabled(true); if (st.status == CheckStatusValues.CHECKING) { setWidgetLayoutResource(R.layout.actionbar_refresh_progress); } else { if (st.result == true) { setWidgetLayoutResource(R.layout.validation_preference_widget); mIcon = getContext().getResources().getDrawable(R.drawable.ic_valid); } else { setWidgetLayoutResource(R.layout.validation_preference_widget); mIcon = getContext().getResources().getDrawable(R.drawable.ic_error); } } } else { setEnabled(false); setWidgetLayoutResource(0); setSummary(getContext().getResources().getString(R.string.not_available)); } if (!TextUtils.isEmpty(st.message)) { setSummary(st.message); } notifyChanged(); } }