/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android; import android.content.Context; import android.content.res.Resources; import android.database.Cursor; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.galaxy.meetup.client.android.ui.view.AvatarView; /** * * @author sihai * */ public class PlusOnePeopleAdapter extends EsCursorAdapter { private View mExtraPeopleView; public PlusOnePeopleAdapter(Context context, Cursor cursor) { super(context, null); } private boolean isLastViewExtraPeopleCount() { boolean flag; if(mExtraPeopleView != null) flag = true; else flag = false; return flag; } public final void bindView(View view, Context context, Cursor cursor) { if(view != mExtraPeopleView && cursor.getPosition() < super.getCount()) { AvatarView avatarview = (AvatarView)view.findViewById(R.id.avatar); avatarview.setVisibility(0); avatarview.setGaiaIdAndAvatarUrl(cursor.getString(2), cursor.getString(4)); ((TextView)view.findViewById(R.id.name)).setText(cursor.getString(3)); } } public final int getCount() { int i = super.getCount(); int j; if(isLastViewExtraPeopleCount()) j = 1; else j = 0; return j + i; } public final int getItemViewType(int i) { int j; if(isExtraPeopleViewIndex(i)) j = 1; else j = 0; return j; } public final View getView(int i, View view, ViewGroup viewgroup) { if(i >= getCount()) { if(view == null) view = newView(mContext, getCursor(), viewgroup); } else if(isExtraPeopleViewIndex(i)) view = mExtraPeopleView; else view = super.getView(i, view, viewgroup); return view; } public final int getViewTypeCount() { return 2; } public final boolean isExtraPeopleViewIndex(int i) { boolean flag; if(isLastViewExtraPeopleCount() && i == super.getCount()) flag = true; else flag = false; return flag; } public final View newView(Context context, Cursor cursor, ViewGroup viewgroup) { View view; if(isExtraPeopleViewIndex(cursor.getPosition())) view = mExtraPeopleView; else view = ((LayoutInflater)context.getSystemService("layout_inflater")).inflate(R.layout.acl_row_view, null); return view; } public final void setExtraPeopleCount(int i) { if(i <= 0) { mExtraPeopleView = null; } else { mExtraPeopleView = ((LayoutInflater)mContext.getSystemService("layout_inflater")).inflate(R.layout.acl_row_view, null, false); mExtraPeopleView.findViewById(R.id.avatar).setVisibility(4); TextView textview = (TextView)mExtraPeopleView.findViewById(R.id.name); Resources resources = mContext.getResources(); int j = R.plurals.plus_one_people_more_plus_ones; Object aobj[] = new Object[1]; aobj[0] = Integer.valueOf(i); textview.setText(resources.getQuantityString(j, i, aobj)); } } }