/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.ui.fragments; import android.database.Cursor; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.Loader; 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.ListView; import com.galaxy.meetup.client.android.Intents; import com.galaxy.meetup.client.android.PlusOnePeopleAdapter; import com.galaxy.meetup.client.android.PlusOnePeopleLoader; import com.galaxy.meetup.client.android.R; import com.galaxy.meetup.client.android.content.EsAccount; /** * * @author sihai * */ public class PlusOnePeopleFragment extends DialogFragment implements LoaderCallbacks, OnClickListener, OnItemClickListener { private EsAccount mAccount; private PlusOnePeopleAdapter mAdapter; public PlusOnePeopleFragment() { } public void onClick(View view) { dismiss(); } public final Loader onCreateLoader(int i, Bundle bundle) { Loader loader = null; if(0 == i) { if(mAccount != null) { String s = getArguments().getString("plus_one_id"); loader = new PlusOnePeopleLoader(getActivity(), mAccount, s); } } return loader; } public final View onCreateView(LayoutInflater layoutinflater, ViewGroup viewgroup, Bundle bundle) { View view = layoutinflater.inflate(R.layout.list_layout_acl, viewgroup); mAdapter = new PlusOnePeopleAdapter(getActivity(), null); ListView listview = (ListView)view.findViewById(0x102000a); listview.setOnItemClickListener(this); listview.setAdapter(mAdapter); view.findViewById(R.id.ok).setOnClickListener(this); view.findViewById(R.id.cancel).setVisibility(8); getDialog().setTitle(getString(R.string.plus_one_people_title)); mAccount = (EsAccount)getArguments().getParcelable("account"); getLoaderManager().initLoader(0, null, this); view.findViewById(R.id.list_empty_progress).setVisibility(0); return view; } public void onItemClick(AdapterView adapterview, View view, int i, long l) { if(mAdapter.isExtraPeopleViewIndex(i)) return; Cursor cursor = (Cursor)mAdapter.getItem(i); if(cursor != null) { String s = cursor.getString(1); startActivity(Intents.getProfileActivityIntent(getActivity(), mAccount, s, null)); } } public final void onLoadFinished(Loader loader, Object obj) { Cursor cursor = (Cursor)obj; if(0 == loader.getId()) { getView().findViewById(R.id.list_empty_progress).setVisibility(8); int i = getArguments().getInt("total_plus_ones"); int j; if(cursor == null) j = 0; else j = cursor.getCount(); mAdapter.setExtraPeopleCount(i - j); mAdapter.swapCursor(cursor); } } public final void onLoaderReset(Loader loader) { } public static interface PeopleSetQuery { public static final String PROJECTION[] = { "_id", "person_id", "gaia_id", "name", "avatar" }; } }