/**
* 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.util.AttributeSet;
import android.widget.TextView;
import com.galaxy.meetup.client.android.R;
import com.galaxy.meetup.client.android.content.EsEventData;
import com.galaxy.meetup.server.client.domain.Invitee;
import com.galaxy.meetup.server.client.domain.InviteeSummary;
import com.galaxy.meetup.server.client.domain.PlusEvent;
import com.galaxy.meetup.server.client.v2.domain.Event;
import com.galaxy.meetup.server.client.v2.domain.EventMember;
/**
*
* @author sihai
*
*/
public class EventInviteeSummaryLayout extends ExactLayout {
private static int sFontColor;
private static float sFontSize;
private static String sGuestsFormat;
private static boolean sInitialized;
private static String sRsvpInvitedFormat;
private static String sRsvpInvitedPastFormat;
private static String sRsvpMaybeFormat;
private static String sRsvpYesFormat;
private static String sRsvpYesPastFormat;
private AvatarLineupLayout mLineupLayout;
private int mSize;
private TextView mStatus;
private int mVisibleSize;
public EventInviteeSummaryLayout(Context context)
{
super(context);
init(context, null, 0);
}
public EventInviteeSummaryLayout(Context context, AttributeSet attributeset)
{
super(context, attributeset);
init(context, attributeset, 0);
}
public EventInviteeSummaryLayout(Context context, AttributeSet attributeset, int i)
{
super(context, attributeset, i);
init(context, attributeset, i);
}
private static int getGaiaIds(Event event, String s, List<String> userNameList) {
List<EventMember> emList = event.getMemberList();
for(EventMember em : emList) {
userNameList.add(em.getUserName());
}
return userNameList.size();
}
private static int getGaiaIds(PlusEvent plusevent, String s, ArrayList arraylist)
{
InviteeSummary inviteesummary = EsEventData.getInviteeSummary(plusevent, s);
int i = 0;
if(inviteesummary != null)
{
if(inviteesummary.invitee != null)
{
Iterator iterator = inviteesummary.invitee.iterator();
do
{
if(!iterator.hasNext())
break;
Invitee invitee = (Invitee)iterator.next();
if(invitee.invitee != null)
{
String s1 = invitee.invitee.ownerObfuscatedId;
if(s1 != null)
arraylist.add(s1);
}
} while(true);
}
i = inviteesummary.count.intValue();
}
return i;
}
private void init(Context context, AttributeSet attributeset, int i)
{
if(!sInitialized)
{
Resources resources = context.getResources();
sRsvpYesFormat = resources.getString(R.string.event_detail_rsvp_yes_count);
sRsvpYesPastFormat = resources.getString(R.string.event_detail_rsvp_yes_count_past);
sGuestsFormat = resources.getString(R.string.event_details_rsvp_guests_count);
sRsvpMaybeFormat = resources.getString(R.string.event_detail_rsvp_maybe_count);
sRsvpInvitedFormat = resources.getString(R.string.event_detail_rsvp_invited_count);
sRsvpInvitedPastFormat = resources.getString(R.string.event_detail_rsvp_invited_count_past);
sFontSize = resources.getDimension(R.dimen.event_card_details_rsvp_count_size);
sFontColor = resources.getColor(R.color.event_card_details_rsvp_count_color);
sInitialized = true;
}
mStatus = TextViewUtils.createText(context, attributeset, i, sFontSize, sFontColor, false, true);
addView(mStatus);
mLineupLayout = new AvatarLineupLayout(context, attributeset, i);
addView(mLineupLayout);
mVisibleSize = 0;
mSize = 0;
}
public final void bind(Event plusevent, EventActionListener eventactionlistener, boolean flag)
{
ArrayList arraylist = new ArrayList();
mSize = 0 + getGaiaIds(plusevent, "ATTENDING", arraylist) + getGaiaIds(plusevent, "MAYBE", arraylist) + getGaiaIds(plusevent, "NOT_RESPONDED", arraylist);
mLineupLayout.bindIds(arraylist, eventactionlistener, mSize);
mVisibleSize = arraylist.size();
String s = sGuestsFormat;
TextView textview = mStatus;
Object aobj[] = new Object[1];
aobj[0] = Integer.valueOf(mSize);
textview.setText(String.format(s, aobj));
requestLayout();
}
public final void clear()
{
mVisibleSize = 0;
mSize = 0;
}
protected void measureChildren(int i, int j)
{
int k = android.view.View.MeasureSpec.getSize(i);
measure(mStatus, k, 0x80000000, 0, 0);
setCorner(mStatus, 0, 0);
int l = 0 + mStatus.getMeasuredHeight();
if(mVisibleSize > 0)
{
measure(mLineupLayout, k, 0x80000000, 0, 0);
setCorner(mLineupLayout, 0, l);
mLineupLayout.getMeasuredHeight();
}
}
public final int size()
{
return mSize;
}
}