package com.wamod.preference; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.preference.ListPreference; import android.support.v7.app.AppCompatActivity; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import com.wamod.Utils; /** * Created by BrianValente on 3/3/16. */ public class ThemePickerPreference extends ListPreference { AppCompatActivity activity; public ThemePickerPreference(Context context) { super(context); activity = (AppCompatActivity) context; } public ThemePickerPreference(Context context, AttributeSet attrs) { super(context, attrs); activity = (AppCompatActivity) context; } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public ThemePickerPreference(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); activity = (AppCompatActivity) context; } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public ThemePickerPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); activity = (AppCompatActivity) context; } private void init() { try { int arrayId = activity.getResources().getIdentifier(getKey(), "array", activity.getPackageName()); String[] arrayStrings = activity.getResources().getStringArray(arrayId); int valuesArrayId = activity.getResources().getIdentifier(getKey() + "_values", "array", activity.getPackageName()); String[] valuesArrayStrings = activity.getResources().getStringArray(valuesArrayId); String value = getValue(); int valueIndex; for (valueIndex = 0; valueIndex<valuesArrayStrings.length; valueIndex++) { if (valuesArrayStrings[valueIndex].contentEquals(value)) break; } setSummary(arrayStrings[valueIndex]); } catch (Exception e) { Utils.manageException(e); } } @Override public void setValue(String value) { super.setValue(value); init(); } @Override protected void onBindView(View view) { super.onBindView(view); com.wamod.preference.Preference.loadColors(view); } }