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.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.myMinistry.R; import com.myMinistry.provider.MinistryContract.LiteraturePlaced; import com.myMinistry.provider.MinistryContract.UnionsNameAsRef; import com.squareup.phrase.Phrase; public class PublicationRecentActivityAdapter extends ResourceCursorAdapter { private static final int LAYOUT_ID = R.layout.li_publication_recent_activity; private Calendar displayDate = Calendar.getInstance(Locale.getDefault()); public PublicationRecentActivityAdapter(Context context, Cursor cursor) { super(context, LAYOUT_ID, cursor, ResourceCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); } private class ViewHolder { TextView activity_title; 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_date = (TextView) view.findViewById(R.id.activity_date); view.setTag(holder); return view; } @Override public void bindView(View view, Context context, Cursor cursor) { ViewHolder holder = (ViewHolder) view.getTag(); // Not assigned to a householder if(TextUtils.isEmpty(cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.HOUSEHOLDER_NAME)))) { holder.activity_title.setText(Phrase.from(context, R.string.activity_for_publication) .put("count", cursor.getString(cursor.getColumnIndex(LiteraturePlaced.COUNT))) .put("service", cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.ENTRY_TYPE_NAME))) .format().toString()); } // Assigned to a householder else { holder.activity_title.setText(Phrase.from(context, R.string.activity_for_publication_with_householder) .put("count", cursor.getString(cursor.getColumnIndex(LiteraturePlaced.COUNT))) .put("householder", cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.HOUSEHOLDER_NAME))) .put("service", cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.ENTRY_TYPE_NAME))) .format().toString()); } /** Get the date */ if(cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.DATE)) != null && cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.DATE)).length() > 0) { String[] thedate = cursor.getString(cursor.getColumnIndex(UnionsNameAsRef.DATE)).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); } }