package com.james.status.data.preference; import android.app.Dialog; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.james.status.R; import com.james.status.data.IconStyleData; import com.james.status.data.icon.IconData; import com.james.status.dialogs.IconDialog; import com.james.status.dialogs.PreferenceDialog; import com.james.status.views.IconStyleImageView; public class IconPreferenceData extends PreferenceData<IconStyleData> { private IconStyleData iconStyle; private IconData iconData; public IconPreferenceData(Context context, Identifier identifier, IconStyleData iconStyle, IconData iconData, OnPreferenceChangeListener<IconStyleData> listener) { super(context, identifier, listener); if (iconStyle == null) iconStyle = (IconStyleData) iconData.getIconStyles().get(0); this.iconStyle = iconStyle; this.iconData = iconData; } @Override public ViewHolder getViewHolder(LayoutInflater inflater, ViewGroup parent) { return new ViewHolder(inflater.inflate(R.layout.item_preference_icon, parent, false)); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { super.onBindViewHolder(holder, position); ((IconStyleImageView) holder.v.findViewById(R.id.icon)).setIconStyle(iconStyle); } @Override public void onClick(final View v) { Dialog dialog = new IconDialog(getContext(), iconData).setPreference(iconStyle).setListener(new PreferenceDialog.OnPreferenceListener<IconStyleData>() { @Override public void onPreference(PreferenceDialog dialog, IconStyleData preference) { if (preference != null) { ((IconStyleImageView) v.findViewById(R.id.icon)).setIconStyle(preference); IconPreferenceData.this.iconStyle = preference; onPreferenceChange(preference); } } @Override public void onCancel(PreferenceDialog dialog) { } }); dialog.setTitle(getIdentifier().getTitle()); dialog.show(); } }