package ar.rulosoft.custompref;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceDialogFragmentCompat;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import ar.rulosoft.mimanganu.R;
public class ColorListDialogFragment extends PreferenceDialogFragmentCompat {
private String[] mColorCodeList;
private String[] mColorNameList;
private ListView mListView;
private int mValue;
private ColorListDialogPref parent;
public static ColorListDialogFragment newInstance(Preference preference) {
ColorListDialogFragment fragment = new ColorListDialogFragment();
fragment.setParent((ColorListDialogPref) preference);
Bundle bundle = new Bundle(1);
bundle.putString("key", preference.getKey());
fragment.setArguments(bundle);
return fragment;
}
@Override
protected View onCreateDialogView(Context context) {
mListView = new ListView(context);
return mListView;
}
@Override
public void onStart() {
super.onStart();
ArrayAdapter<String> color_adapter = new ArrayAdapterColor(this, R.layout.listitem_color, mValue);
mListView.setAdapter(color_adapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> container, View view, int position, long id) {
mValue = Color.parseColor(mColorCodeList[position]);
parent.persistInt(mValue);
parent.setIconChange();
onDialogClosed(true);
getDialog().dismiss();
}
});
}
@Override
protected void onBindDialogView(@NonNull View view) {
super.onBindDialogView(view);
}
@Override
public void onDialogClosed(boolean positiveResult) {
if (positiveResult) {
Integer pushValue = mValue;
if (parent.callChangeListener(pushValue)) {
parent.persistInt(pushValue);
parent._notifyChanged();
}
}
}
public String[] getCodeList() {
return mColorCodeList;
}
public String[] getNameList() {
return mColorNameList;
}
public void setParent(ColorListDialogPref parent) {
this.parent = parent;
mColorCodeList = parent.getCodeList();
mColorNameList = parent.getNameList();
}
}