/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.fragments; import java.util.ArrayList; import android.content.Context; import android.content.res.Resources; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import com.galaxy.meetup.client.android.Intents; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.content.AudienceData; import com.galaxy.meetup.client.android.content.EsAccount; import com.galaxy.meetup.client.android.content.EsAvatarData; import com.galaxy.meetup.client.android.content.PersonData; import com.galaxy.meetup.client.android.ui.view.AvatarView; /** * * @author sihai * */ public class PeopleListDialogFragment extends DialogFragment implements OnClickListener, OnItemClickListener { private EsAccount mAccount; private PeopleListAdapter mAdapter; public PeopleListDialogFragment() { } public void onClick(View view) { dismiss(); } public final View onCreateView(LayoutInflater layoutinflater, ViewGroup viewgroup, Bundle bundle) { View view = layoutinflater.inflate(R.layout.list_layout_acl, viewgroup); Bundle bundle1 = getArguments(); ListView listview = (ListView)view.findViewById(0x102000a); AudienceData audiencedata = (AudienceData)bundle1.getParcelable("audience"); mAccount = (EsAccount)bundle1.getParcelable("account"); mAdapter = new PeopleListAdapter(getActivity(), audiencedata); listview.setAdapter(mAdapter); listview.setOnItemClickListener(this); view.findViewById(R.id.ok).setOnClickListener(this); view.findViewById(R.id.cancel).setVisibility(8); getDialog().setTitle(bundle1.getString("people_list_title")); return view; } public void onItemClick(AdapterView adapterview, View view, int i, long l) { PeopleListItem peoplelistitem = (PeopleListItem)mAdapter.getItem(i); if(0 == peoplelistitem.mType) { PersonData persondata = peoplelistitem.mPerson; boolean flag = TextUtils.isEmpty(persondata.getObfuscatedId()); String s = null; if(!flag) s = persondata.getObfuscatedId(); String s1 = null; if(s != null) s1 = (new StringBuilder("g:")).append(s).toString(); if(s1 != null) { android.content.Intent intent = Intents.getProfileActivityIntent(getActivity(), mAccount, s1, null, 0); dismiss(); startActivity(intent); } } } private static final class PeopleListAdapter extends BaseAdapter { private final Context mContext; private final ArrayList mItems = new ArrayList(); public PeopleListAdapter(Context context, AudienceData audiencedata) { PersonData apersondata[] = audiencedata.getUsers(); int i = apersondata.length; for(int j = 0; j < i; j++) { PersonData persondata = apersondata[j]; mItems.add(new PeopleListItem(persondata)); } int k = audiencedata.getHiddenUserCount(); if(k > 0) { Resources resources = context.getResources(); int l = R.plurals.audience_hidden_user_count; Object aobj[] = new Object[1]; aobj[0] = Integer.valueOf(k); String s = resources.getQuantityString(l, k, aobj); mItems.add(new PeopleListItem(1, s)); } mContext = context; } public final int getCount() { return mItems.size(); } public final Object getItem(int i) { return mItems.get(i); } public final long getItemId(int i) { return (long)i; } public final int getItemViewType(int i) { return ((PeopleListItem)mItems.get(i)).mType; } public final View getView(int i, View view, ViewGroup viewgroup) { PeopleListItem peoplelistitem; AvatarView avatarview; View view1; if(view == null) view1 = ((LayoutInflater)mContext.getSystemService("layout_inflater")).inflate(R.layout.acl_row_view, viewgroup, false); else view1 = view; peoplelistitem = (PeopleListItem)mItems.get(i); view1.setTag(peoplelistitem); avatarview = (AvatarView)view1.findViewById(R.id.avatar); if(0 == peoplelistitem.mType) { if(peoplelistitem.mPerson != null && !TextUtils.isEmpty(peoplelistitem.mPerson.getObfuscatedId())) { String s = peoplelistitem.mPerson.getCompressedPhotoUrl(); avatarview.setGaiaIdAndAvatarUrl(peoplelistitem.mPerson.getObfuscatedId(), EsAvatarData.uncompressAvatarUrl(s)); } avatarview.setVisibility(0); } else if(1 == peoplelistitem.mType) { avatarview.setVisibility(4); } ((TextView)view1.findViewById(R.id.name)).setText(peoplelistitem.mContent); return view1; } public final int getViewTypeCount() { return 2; } } private static final class PeopleListItem { public final String mContent; public final PersonData mPerson; public final int mType; public PeopleListItem(int i, String s) { mType = 1; mContent = s; mPerson = null; } public PeopleListItem(PersonData persondata) { mType = 0; mPerson = persondata; mContent = persondata.getName(); } } }