package com.door43.translationstudio.dialogs; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.door43.tools.reporting.Logger; import com.door43.translationstudio.R; import com.door43.widget.ViewUtil; import java.util.ArrayList; import java.util.List; /** * Created by joel on 2/26/2015. */ public class LogAdapter extends BaseAdapter { private List<Logger.Entry> mLogs = new ArrayList<>(); /** * Adds an item to the adapter * @param logs */ public void setItems(List<Logger.Entry> logs) { mLogs = logs; notifyDataSetChanged(); } @Override public int getCount() { return mLogs.size(); } @Override public Logger.Entry getItem(int i) { return mLogs.get(i); } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { View v = view; ViewHolder holder = new ViewHolder(); Logger.Entry logEntry = getItem(i); if(view == null) { v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.fragment_log_item, null); holder.icon = (ImageView)v.findViewById(R.id.log_icon); holder.title = (TextView)v.findViewById(R.id.log_title); holder.namespace = (TextView)v.findViewById(R.id.log_namespace); v.setTag(holder); } else { holder = (ViewHolder)v.getTag(); } holder.title.setText(logEntry.message); holder.namespace.setText(logEntry.classPath); if(logEntry.level == Logger.Level.Error) { holder.icon.setBackgroundResource(R.drawable.ic_error_black_18dp); ViewUtil.tintViewDrawable(holder.icon, viewGroup.getContext().getResources().getColor(R.color.danger)); } else if(logEntry.level == Logger.Level.Warning) { holder.icon.setBackgroundResource(R.drawable.ic_warning_black_18dp); ViewUtil.tintViewDrawable(holder.icon, viewGroup.getContext().getResources().getColor(R.color.warning)); } else if(logEntry.level == Logger.Level.Info) { holder.icon.setBackgroundResource(R.drawable.ic_info_black_18dp); ViewUtil.tintViewDrawable(holder.icon, viewGroup.getContext().getResources().getColor(R.color.info)); } return v; } private static class ViewHolder { public ImageView icon; public TextView title; public TextView namespace; } }