package xmpp.client.ui.fragments; import xmpp.client.Constants; import xmpp.client.R; import xmpp.client.service.chat.multi.MultiChatInfo; import xmpp.client.service.user.contact.Contact; import xmpp.client.ui.activities.AppActivity; import android.app.Activity; import android.app.ListFragment; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; public class ContactListFragment extends ListFragment implements Constants { AppActivity activity; public void goChat(String userLogin) { final Intent i = new Intent(activity, AppActivity.class); i.setData(Uri.parse(URI_SCHEME_IMTO + URI_SCHEME_HOST_DIVIDER + URI_HOST_JABBER + URI_PATH_DIVIDER + Uri.encode(userLogin))); activity.handleIntent(i); } public void goConference(String muc) { final Intent i = new Intent(activity, AppActivity.class); i.setData(Uri.parse(URI_SCHEME_IMTO + URI_SCHEME_HOST_DIVIDER + URI_HOST_JABBER_MUC + URI_PATH_DIVIDER + Uri.encode(muc))); activity.handleIntent(i); } public void goStatusChange() { final Intent i = new Intent(activity, AppActivity.class); i.setData(Uri.parse(URI_SCHEME_XMPP_FOR_ANDROID + URI_SCHEME_HOST_DIVIDER + URI_HOST_CHANGE_STATUS)); activity.handleIntent(i); } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { this.activity = (AppActivity) activity; } catch (final ClassCastException ex) { throw new RuntimeException(ContactListFragment.class.getName() + " is only available in " + AppActivity.class.getName(), ex); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.roster, null); } @Override public void onListItemClick(ListView listview, View view, int item, long id) { if (item == 0) { goStatusChange(); } else if (activity.getCurrentNavigation() == 3) { goConference(((MultiChatInfo) getListAdapter().getItem(item)) .getJid()); } else { goChat(((Contact) getListAdapter().getItem(item)).getUserLogin()); } } }