1package eu.siacs.conversations.ui;
2
3import android.content.Context;
4import android.content.Intent;
5import android.os.Bundle;
6import android.view.View;
7import android.view.inputmethod.InputMethodManager;
8import android.widget.AdapterView;
9
10import java.util.Collections;
11
12import eu.siacs.conversations.entities.Account;
13import eu.siacs.conversations.entities.Contact;
14import eu.siacs.conversations.entities.ListItem;
15
16public class ChooseContactActivity extends AbstractSearchableListItemActivity {
17 @Override
18 public void onCreate(final Bundle savedInstanceState) {
19 super.onCreate(savedInstanceState);
20 getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
21
22 @Override
23 public void onItemClick(final AdapterView<?> parent, final View view,
24 final int position, final long id) {
25 final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
26 imm.hideSoftInputFromWindow(getSearchEditText().getWindowToken(),
27 InputMethodManager.HIDE_IMPLICIT_ONLY);
28 final Intent request = getIntent();
29 final Intent data = new Intent();
30 final ListItem mListItem = getListItems().get(position);
31 data.putExtra("contact", mListItem.getJid().toString());
32 String account = request.getStringExtra("account");
33 if (account == null && mListItem instanceof Contact) {
34 account = ((Contact) mListItem).getAccount().getJid().toBareJid().toString();
35 }
36 data.putExtra("account", account);
37 data.putExtra("conversation",
38 request.getStringExtra("conversation"));
39 setResult(RESULT_OK, data);
40 finish();
41 }
42 });
43
44 }
45
46 protected void filterContacts(final String needle) {
47 getListItems().clear();
48 for (final Account account : xmppConnectionService.getAccounts()) {
49 if (account.getStatus() != Account.State.DISABLED) {
50 for (final Contact contact : account.getRoster().getContacts()) {
51 if (contact.showInRoster() && contact.match(needle)) {
52 getListItems().add(contact);
53 }
54 }
55 }
56 }
57 Collections.sort(getListItems());
58 getListItemAdapter().notifyDataSetChanged();
59 }
60}