package com.myMinistry.adapters;
import java.util.ArrayList;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import com.myMinistry.Helper;
import com.myMinistry.R;
import com.myMinistry.model.HouseholderForTime;
import com.myMinistry.model.QuickLiterature;
public class TimeEditorEntryAdapter extends ArrayAdapter<HouseholderForTime> {
public static final int LAYOUT_ID = R.layout.li_time_editor_entry;
private Context context;
private ArrayList<HouseholderForTime> entries;
private HouseholderForTime entry;
private int padding;
private LayoutParams lp1;
private LayoutParams lp2;
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.FROYO)
public TimeEditorEntryAdapter(Context context, ArrayList<HouseholderForTime> entries) {
super(context, LAYOUT_ID, entries);
this.context = context;
this.entries = entries;
padding = Helper.dipsToPix(context, 5);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO)
lp1 = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
else
lp1 = new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
lp2 = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
}
private class ViewHolder {
LinearLayout linlay;
}
@SuppressWarnings("deprecation")
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if(row == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(LAYOUT_ID, parent, false);
holder = new ViewHolder();
holder.linlay = (LinearLayout)row.findViewById(R.id.linlay);
row.setTag(holder);
}
else {
holder = (ViewHolder)row.getTag();
holder.linlay.removeAllViews();
}
entry = entries.get(position);
TextView tv;
/** Show if NOT a return visit */
if(!entry.isCountedForReturnVisit()) {
tv = new TextView(context);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
tv.setBackground(context.getResources().getDrawable(R.drawable.alert_bg));
else
tv.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.alert_bg));
tv.setText(R.string.menu_do_not_count_as_return_visit);
tv.setTextAppearance(context, android.R.attr.textAppearanceMedium);
tv.setTextColor(context.getResources().getColor(R.color.white));
tv.setGravity(Gravity.CENTER_VERTICAL);
tv.setLayoutParams(lp1);
tv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.ic_action_warning), null, null, null);
tv.setCompoundDrawablePadding(padding);
holder.linlay.addView(tv);
}
/** Show Householder if exists */
if(!TextUtils.isEmpty(entry.toString())) {
tv = new TextView(context);
tv.setText(entry.toString());
tv.setTextAppearance(context, android.R.attr.textAppearanceLarge);
tv.setTextColor(context.getResources().getColor(R.color.bg_card_title_text_holo_light));
tv.setGravity(Gravity.CENTER_VERTICAL);
tv.setLayoutParams(lp1);
tv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(R.drawable.ic_drawer_householder), null, null, null);
tv.setCompoundDrawablePadding(padding);
holder.linlay.addView(tv);
}
/** Show Notes if exists */
if(!TextUtils.isEmpty(entry.getNotes())) {
ImageView iv = new ImageView(context);
iv.setPadding(0, 0, padding, 0);
iv.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_action_chat));
iv.setLayoutParams(lp2);
iv.setContentDescription(context.getResources().getString(R.string.form_notes));
tv = new TextView(context);
tv.setText(entry.getNotes());
tv.setTextAppearance(context, android.R.attr.textAppearanceMedium);
tv.setTextColor(context.getResources().getColor(R.color.default_text));
tv.setGravity(Gravity.CENTER_VERTICAL);
tv.setLayoutParams(lp2);
tv.setPadding(0, padding, 0, 0);
LinearLayout linlay = new LinearLayout(context);
linlay.setLayoutParams(lp1);
linlay.setOrientation(LinearLayout.HORIZONTAL);
linlay.addView(iv);
linlay.addView(tv);
holder.linlay.addView(linlay);
}
/** Load the publications for the entry */
for(QuickLiterature item : entry.getLit()) {
tv = new TextView(context);
tv.setTextAppearance(context, android.R.attr.textAppearanceMedium);
tv.setTextColor(context.getResources().getColor(R.color.default_text));
tv.setGravity(Gravity.CENTER_VERTICAL);
tv.setText("(" + item.getCount() + ") " + item.toString());
tv.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(Helper.getIconResIDByLitTypeID(item.getTypeID())), null, null, null);
tv.setCompoundDrawablePadding(padding);
tv.setLayoutParams(lp1);
holder.linlay.addView(tv);
}
return row;
}
public class PublicationItem {
public String title;
public int iconRes;
public Drawable icon;
public int count;
public int litTypeID;
public PublicationItem(String _title, int _litTypeID, int _count) {
title = _title;
litTypeID = _litTypeID;
count = _count;
iconRes = Helper.getIconResIDByLitTypeID(_litTypeID);
};
public String toString() {
return "(" + count + ") " + title;
}
public int getIconResID() {
return iconRes;
}
}
public class Entry {
public ArrayList<PublicationItem> pubs;
public String householder;
public String notes;
public Entry() {
pubs = new ArrayList<PublicationItem>();
householder = "";
notes = "";
};
public void setHouseholder(String string) {
householder = string;
}
public String getHouseholder() {
return householder;
}
public void setNotes(String string) {
notes = string;
}
public String getNotes() {
return notes;
}
public void addPublication(PublicationItem _pub) {
pubs.add(_pub);
}
public ArrayList<PublicationItem> getPublications() {
return pubs;
}
}
}