package com.abewy.android.apps.klyph.adapter.fql; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.abewy.android.apps.klyph.adapter.KlyphAdapter; import com.abewy.android.apps.klyph.adapter.holder.PicturePrimarySecondaryTextHolder; import com.abewy.android.apps.klyph.core.fql.Friend; import com.abewy.android.apps.klyph.core.graph.GraphObject; import com.abewy.android.apps.klyph.core.util.AttrUtil; import com.abewy.android.apps.klyph.R; public class BirthdayAdapter extends KlyphAdapter { public BirthdayAdapter() { super(); } @Override protected int getLayout() { //return R.layout.item_picture_primary_secondary_text; return R.layout.item_grid_picture_primary_secondary_text; } @Override protected void attachHolder(View view) { ImageView userPicture = (ImageView) view.findViewById(R.id.picture); TextView userName = (TextView) view.findViewById(R.id.primary_text); TextView userBirthday = (TextView) view.findViewById(R.id.secondary_text); setHolder(view, new PicturePrimarySecondaryTextHolder(userPicture, userName, userBirthday)); } @Override protected void mergeViewWithData(View view, GraphObject data) { super.mergeViewWithData(view, data); PicturePrimarySecondaryTextHolder holder = (PicturePrimarySecondaryTextHolder) getHolder(view); //holder.getPicture().setImageDrawable(null); Friend friend = (Friend) data; holder.getPrimaryText().setText(friend.getName()); String birthday = friend.getBirthday(); Date birthdayDate = null; String format = "MM/dd/y"; try { birthdayDate = new SimpleDateFormat(format).parse(friend.getBirthday_date()); } catch (ParseException e) { //e.printStackTrace(); } if (birthdayDate != null) { Calendar dobDate = Calendar.getInstance(); dobDate.setTime(birthdayDate); int year = dobDate.get(Calendar.YEAR); int month = dobDate.get(Calendar.MONTH); int day = dobDate.get(Calendar.DAY_OF_MONTH); Calendar today = Calendar.getInstance(); today.set(Calendar.DAY_OF_MONTH, day); today.set(Calendar.MONTH, month); int curYear = today.get(Calendar.YEAR); int curMonth = today.get(Calendar.MONTH); int curDay = today.get(Calendar.DAY_OF_MONTH); int age = curYear - year; if (curMonth < month || (month == curMonth && curDay < day)) { age--; } birthday += " - " + getContext(holder.getPrimaryText()).getString(R.string.birthday_age, age); } holder.getSecondaryText().setText(birthday); loadImage(holder.getPicture(), friend.getPic(), AttrUtil.getResourceId(getContext(holder.getPrimaryText()), R.attr.squarePlaceHolderIcon), data); } }