/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.meetup.client.android.ui.view;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.android.content.EsEventData;
import com.galaxy.meetup.client.util.Dates;
/**
*
* @author sihai
*
*/
public class EventActivityFrameCardLayout extends CardViewLayout {
private static int sAvatarLineupMarginBottom;
private static int sAvatarLineupMarginLeft;
private static int sAvatarLineupMarginRight;
private static Drawable sCheckinIconDrawable;
private static int sDateTextColor;
private static int sDateTextSize;
private static Drawable sGoingIconDrawable;
private static boolean sInitialized;
private static Drawable sInvitedIconDrawable;
private static int sPaddingBottom;
private static int sPaddingLeft;
private static int sPaddingRight;
private static int sPaddingTop;
private AvatarLineupLayout mAvatarLineup;
private TextView mDate;
private TextView mDescription;
private ImageView mIcon;
public EventActivityFrameCardLayout(Context context)
{
super(context);
}
public EventActivityFrameCardLayout(Context context, AttributeSet attributeset)
{
super(context, attributeset);
}
public EventActivityFrameCardLayout(Context context, AttributeSet attributeset, int i)
{
super(context, attributeset, i);
}
private CharSequence getText(int i, ArrayList arraylist)
{
Resources resources = getContext().getResources();
String as[] = null;
switch(i) {
case 1:
as = resources.getStringArray(R.array.event_activity_checked_in_strings);
break;
case 2:
as = resources.getStringArray(R.array.event_activity_invite_strings);
break;
case 3:
as = resources.getStringArray(R.array.event_activity_rsvp_no_strings);
break;
case 4:
as = resources.getStringArray(R.array.event_activity_rsvp_yes_strings);
break;
default:
break;
}
String s = null;
if(as != null)
if(arraylist.size() >= as.length)
{
String s2 = as[-1 + as.length];
Object aobj1[] = new Object[1];
aobj1[0] = Integer.valueOf(arraylist.size());
s = String.format(s2, aobj1);
} else
{
ArrayList arraylist1 = new ArrayList();
Iterator iterator = arraylist.iterator();
while(iterator.hasNext())
{
EsEventData.EventPerson eventperson = (EsEventData.EventPerson)iterator.next();
String s1;
if(eventperson.numAdditionalGuests == 0)
{
s1 = eventperson.name;
} else
{
int k = R.plurals.event_invitee_with_guests;
int l = eventperson.numAdditionalGuests;
Object aobj[] = new Object[2];
aobj[0] = eventperson.name;
aobj[1] = Integer.valueOf(eventperson.numAdditionalGuests);
s1 = resources.getQuantityString(k, l, aobj);
}
arraylist1.add(s1);
}
int j = arraylist1.size();
s = null;
if(j > 0)
s = String.format(as[-1 + arraylist1.size()], arraylist1.toArray());
}
return s;
}
public final void bind(int i, long l, List list, EventActionListener eventactionlistener)
{
Drawable drawable = null;
switch(i) {
case 1:
drawable = sCheckinIconDrawable;
break;
case 2:
drawable = sInvitedIconDrawable;
break;
case 3:
break;
case 4:
drawable = sGoingIconDrawable;
break;
default:
break;
}
ArrayList arraylist;
int j;
if(drawable != null)
mIcon.setImageDrawable(drawable);
arraylist = new ArrayList();
j = list.size();
for(int k = 0; k < j; k++)
{
EsEventData.EventPerson eventperson = (EsEventData.EventPerson)list.get(k);
if(eventperson.name != null)
arraylist.add(eventperson);
}
mAvatarLineup.bind(arraylist, eventactionlistener, j);
mDate.setText(Dates.getRelativeTimeSpanString(getContext(), l));
mDescription.setText(getText(i, arraylist));
}
protected final void init(Context context, AttributeSet attributeset, int i)
{
super.init(context, attributeset, i);
if(!sInitialized)
{
Resources resources = context.getResources();
sInvitedIconDrawable = resources.getDrawable(R.drawable.icn_events_activity_invited);
sGoingIconDrawable = resources.getDrawable(R.drawable.icn_events_activity_going);
sCheckinIconDrawable = resources.getDrawable(R.drawable.icn_events_activity_checkin);
sDateTextColor = resources.getColor(R.color.event_card_activity_time_color);
sDateTextSize = resources.getDimensionPixelSize(R.dimen.event_card_activity_time_size);
sPaddingLeft = resources.getDimensionPixelSize(R.dimen.event_card_activity_padding_left);
sPaddingRight = resources.getDimensionPixelSize(R.dimen.event_card_activity_padding_right);
sPaddingTop = resources.getDimensionPixelSize(R.dimen.event_card_activity_padding_top);
sPaddingBottom = resources.getDimensionPixelSize(R.dimen.event_card_activity_padding_bottom);
sAvatarLineupMarginLeft = resources.getDimensionPixelSize(R.dimen.event_card_activity_avatar_lineup_margin_left);
sAvatarLineupMarginRight = resources.getDimensionPixelSize(R.dimen.event_card_activity_avatar_lineup_margin_right);
sAvatarLineupMarginBottom = resources.getDimensionPixelSize(R.dimen.event_card_activity_avatar_lineup_margin_bottom);
sInitialized = true;
}
addPadding(sPaddingLeft, sPaddingTop, sPaddingRight, sPaddingBottom);
mDate = new TextView(context, attributeset, i);
mDate.setLayoutParams(new ExactLayout.LayoutParams(-2, -2));
mDate.setTextColor(sDateTextColor);
mDate.setTextSize(0, sDateTextSize);
addView(mDate);
mIcon = new ImageView(context, attributeset, i);
addView(mIcon);
mAvatarLineup = new AvatarLineupLayout(context, attributeset, i);
addView(mAvatarLineup);
mDescription = new TextView(context, attributeset, i);
mDescription.setLayoutParams(new ExactLayout.LayoutParams(-2, -2));
addView(mDescription);
}
protected void measureChildren(int i, int j)
{
int k = android.view.View.MeasureSpec.getSize(i);
int l = android.view.View.MeasureSpec.getSize(j);
int i1 = k + 0;
int j1 = l + 0;
mIcon.measure(android.view.View.MeasureSpec.makeMeasureSpec(k, 0x80000000), android.view.View.MeasureSpec.makeMeasureSpec(l, 0x80000000));
int k1 = mIcon.getMeasuredWidth();
setCorner(mIcon, 0, 0);
int l1 = k - k1;
mDate.measure(android.view.View.MeasureSpec.makeMeasureSpec(l1, 0x80000000), android.view.View.MeasureSpec.makeMeasureSpec(l, 0x80000000));
int i2 = mDate.getMeasuredWidth();
int j2 = i1 - i2;
setCorner(mDate, j2, 0);
int k2 = l1 - i2 - (sAvatarLineupMarginLeft + sAvatarLineupMarginRight);
mAvatarLineup.measure(android.view.View.MeasureSpec.makeMeasureSpec(k2, 0x80000000), android.view.View.MeasureSpec.makeMeasureSpec(l, 0x80000000));
int l2 = 0 + mIcon.getMeasuredWidth() + sAvatarLineupMarginLeft;
setCorner(mAvatarLineup, l2, 0);
View aview[] = new View[3];
aview[0] = mAvatarLineup;
aview[1] = mDate;
aview[2] = mIcon;
int i3 = getMaxHeight(aview);
View aview1[] = new View[3];
aview1[0] = mAvatarLineup;
aview1[1] = mDate;
aview1[2] = mIcon;
verticallyCenter(i3, aview1);
int j3 = 0 + mAvatarLineup.getMeasuredHeight() + sAvatarLineupMarginBottom;
setCorner(mDescription, 0, j3);
mDescription.measure(android.view.View.MeasureSpec.makeMeasureSpec(k, 0x80000000), android.view.View.MeasureSpec.makeMeasureSpec(j1 - j3, android.view.View.MeasureSpec.getMode(j)));
}
public void onRecycle()
{
super.onRecycle();
mIcon.setImageDrawable(null);
mDate.setText(null);
mDescription.setText(null);
mAvatarLineup.clear();
}
}