package com.myMinistry.adapters;
import java.util.Calendar;
import java.util.Locale;
import android.content.Context;
import android.database.Cursor;
import android.support.v4.widget.ResourceCursorAdapter;
import android.text.TextUtils;
import android.text.format.DateUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.myMinistry.Helper;
import com.myMinistry.R;
import com.myMinistry.provider.MinistryContract.Literature;
import com.myMinistry.provider.MinistryContract.LiteraturePlaced;
import com.myMinistry.provider.MinistryContract.LiteratureType;
import com.myMinistry.provider.MinistryContract.Notes;
import com.myMinistry.provider.MinistryContract.Time;
import com.myMinistry.provider.MinistryContract.UnionsNameAsRef;
import com.myMinistry.provider.MinistryService;
import com.squareup.phrase.Phrase;
public class HouseholderRecentActivityAdapter extends ResourceCursorAdapter {
private static final int LAYOUT_ID = R.layout.li_householder_recent_activity;
private Calendar displayDate = Calendar.getInstance(Locale.getDefault());
private MinistryService database;
private Cursor cursorpubs;
private static int householderID;
private int padding;
public HouseholderRecentActivityAdapter(Context context, Cursor cursor, int _householderID) {
super(context, LAYOUT_ID, cursor, ResourceCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
database = new MinistryService(context);
householderID = _householderID;
padding = Helper.dipsToPix(context, 5);
}
public void setHouseholderID(int _householderID) {
householderID = _householderID;
}
private class ViewHolder {
TextView activity_title;
LinearLayout activity_publications;
LinearLayout activity_notes_layout;
TextView activity_notes;
TextView activity_date;
}
@Override
public View newView(Context context, Cursor cur, ViewGroup parent) {
LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = li.inflate(LAYOUT_ID, parent, false);
ViewHolder holder = new ViewHolder();
holder.activity_title = (TextView) view.findViewById(R.id.activity_title);
holder.activity_publications = (LinearLayout) view.findViewById(R.id.activity_publications);
holder.activity_notes_layout = (LinearLayout) view.findViewById(R.id.activity_notes_layout);
holder.activity_notes = (TextView) view.findViewById(R.id.activity_notes);
holder.activity_date = (TextView) view.findViewById(R.id.activity_date);
view.setTag(holder);
return view;
}
@SuppressWarnings("deprecation")
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder = (ViewHolder) view.getTag();
/** Title */
holder.activity_title.setText(Phrase.from(context, R.string.activity_for_householder)
.put("service", cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.ENTRY_TYPE_NAME)))
.format().toString());
/** Publications */
if(cursor.getInt(cursor.getColumnIndex(UnionsNameAsRef.COUNT)) > 0) {
holder.activity_publications.setVisibility(View.VISIBLE);
holder.activity_publications.removeAllViews();
database.openWritable();
cursorpubs = database.fetchPlacedLitByTimeAndHouseholderID(cursor.getInt(cursor.getColumnIndex(Time._ID)), householderID);
for(cursorpubs.moveToFirst();!cursorpubs.isAfterLast();cursorpubs.moveToNext()) {
TextView valueTV = new TextView(context);
valueTV.setText("(" + cursorpubs.getString(cursorpubs.getColumnIndex(LiteraturePlaced.COUNT)) + ") " + cursorpubs.getString(cursorpubs.getColumnIndex(LiteratureType.NAME)));
valueTV.setCompoundDrawablesWithIntrinsicBounds(context.getResources().getDrawable(Helper.getIconResIDByLitTypeID(cursorpubs.getInt(cursorpubs.getColumnIndex(Literature.TYPE_OF_LIERATURE_ID)))), null, null, null);
valueTV.setCompoundDrawablePadding(padding);
valueTV.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));
valueTV.setTextAppearance(context, android.R.attr.textAppearanceMedium);
valueTV.setTextColor(context.getResources().getColor(R.color.bg_card_title_text_holo_light));
valueTV.setGravity(Gravity.CENTER_VERTICAL);
holder.activity_publications.addView(valueTV);
}
cursorpubs.close();
database.close();
}
else {
holder.activity_publications.setVisibility(View.GONE);
}
/** Notes */
if(TextUtils.isEmpty(cursor.getString(cursor.getColumnIndex(Notes.NOTES)))) {
holder.activity_notes_layout.setVisibility(View.GONE);
}
else {
holder.activity_notes_layout.setVisibility(View.VISIBLE);
holder.activity_notes.setText(cursor.getString(cursor.getColumnIndex(Notes.NOTES)));
}
/** Date */
if(cursor.getString(cursor.getColumnIndex(Time.DATE_START)) != null && cursor.getString(cursor.getColumnIndex(Time.DATE_START)).length() > 0) {
String[] thedate = cursor.getString(cursor.getColumnIndex(Time.DATE_START)).split("-");
if(thedate.length == 3) {
/** We have the three numbers to make the date. Subtract 1 for zero based months. */
displayDate.set(Integer.valueOf(thedate[0]),Integer.valueOf(thedate[1])-1,Integer.valueOf(thedate[2]));
String date = DateUtils.formatDateTime(context, displayDate.getTimeInMillis(), DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_WEEKDAY);
holder.activity_date.setText(Phrase.from(context, R.string.activity_date_by_publisher)
.put("date", date)
.put("publisher", cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.PUBLISHER_NAME)))
.format().toString());
}
else
holder.activity_date.setText(R.string.no_activity);
}
else
holder.activity_date.setText(R.string.no_activity);
}
}