package it.angelic.soulissclient.adapters; import android.app.Activity; import android.support.v4.content.ContextCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.BaseAdapter; import android.widget.TextView; import java.util.ArrayList; import java.util.List; import it.angelic.soulissclient.R; import it.angelic.soulissclient.helpers.SoulissPreferenceHelper; import it.angelic.soulissclient.model.SoulissCommand; import it.angelic.soulissclient.model.SoulissScene; import it.angelic.soulissclient.util.FontAwesomeEnum; import it.angelic.soulissclient.util.FontAwesomeUtil; public class SceneListAdapter extends BaseAdapter { List<SoulissScene> scenesList; private Activity context; private LayoutInflater mInflater; private SoulissPreferenceHelper opzioni; public SceneListAdapter(Activity context, List<SoulissScene> versio, SoulissPreferenceHelper opts) { mInflater = LayoutInflater.from(context); this.context = context; this.scenesList = versio; opzioni = opts; } public int getCount() { return scenesList.size(); } public Object getItem(int position) { return scenesList.get(position); } public long getItemId(int position) { return position; } public List<SoulissScene> getScenes() { return scenesList; } public void setScenes(List<SoulissScene> scene) { this.scenesList = scene; } public View getView(int position, View convertView, ViewGroup parent) { SceneViewHolder holder; if (convertView == null) { convertView = mInflater.inflate(R.layout.listview_scenes, parent, false); holder = new SceneViewHolder(); holder.textCmd = (TextView) convertView.findViewById(R.id.TextViewCommand); holder.textCmdWhen = (TextView) convertView.findViewById(R.id.TextViewCommandWhen); holder.textCmdInfo = (TextView) convertView.findViewById(R.id.TextViewCommandInfo); holder.image = (TextView) convertView.findViewById(R.id.command_icon); convertView.setTag(holder); } else { holder = (SceneViewHolder) convertView.getTag(); } //fuori e vaffanculo holder.data = scenesList.get(position); // holder.data.getCommand().getNodeId() if (opzioni.isLightThemeSelected()) { holder.textCmdWhen.setTextColor(ContextCompat.getColor(context, R.color.black)); holder.textCmd.setTextColor(ContextCompat.getColor(context, R.color.black)); holder.textCmdInfo.setTextColor(ContextCompat.getColor(context, R.color.black)); } if (scenesList.get(position).getIconResourceId() != 0) FontAwesomeUtil.prepareFontAweTextView(context, holder.image, scenesList.get(position).getIconResourceId()); else FontAwesomeUtil.prepareFontAweTextView(context, holder.image, FontAwesomeEnum.fa_moon_o.getFontName()); holder.image.setTextColor(ContextCompat.getColor(context, R.color.aa_yellow)); ArrayList<SoulissCommand> appoggio = holder.data.getCommandArray(); // name = context.getString(appoggio.getAliasNameResId()); holder.textCmd.setText(scenesList.get(position).getNiceName()); String strMeatFormat = context.getString(R.string.scene_subtitle); holder.textCmdWhen.setText(String.format(strMeatFormat, appoggio.size())); //EMPTY space for info //holder.textCmdInfo.setText("Info 2"); holder.textCmdInfo.setVisibility(View.GONE); if (opzioni.getTextFx()) { Animation a2 = AnimationUtils.loadAnimation(context, R.anim.scalerotale); a2.reset(); a2.setStartOffset(100 * position); // Animazione immagine holder.image.clearAnimation(); holder.image.startAnimation(a2); } return convertView; } public static class SceneViewHolder { public SoulissScene data; TextView textCmd; TextView textCmdWhen; TextView textCmdInfo; TextView image; } }