· 8 years ago · Jul 07, 2018, 11:28 PM
1public class FranciesChatJabberActivity extends Activity {
2
3 private final static String SERVER_HOST = "talk.google.com";
4 private final static int SERVER_PORT = 5222;
5 private final static String SERVICE_NAME = "gmail.com";
6 private final static String LOGIN = "xxxxx.xxxxx@gmail.com";
7 private final static String PASSWORD = "xxxxx";
8
9
10 private List<String> m_discussionThread;
11 private ArrayAdapter<String> m_discussionThreadAdapter;
12 private XMPPConnection m_connection;
13 private Handler m_handler;
14
15 /** Called when the activity is first created. */
16 @Override
17 public void onCreate(Bundle savedInstanceState) {
18 super.onCreate(savedInstanceState);
19 setContentView(R.layout.main);
20 m_handler = new Handler();
21 try {
22 initConnection();
23 } catch (XMPPException e) {
24 e.printStackTrace();
25 }
26
27 final EditText recipient = (EditText) this.findViewById(R.id.recipient);
28 final EditText message = (EditText) this.findViewById(R.id.message);
29 ListView list = (ListView) this.findViewById(R.id.thread);
30
31 m_discussionThread = new ArrayList<String>();
32 m_discussionThreadAdapter = new ArrayAdapter<String>(this,
33 R.layout.multi_line_list_item, m_discussionThread);
34 list.setAdapter(m_discussionThreadAdapter);
35
36 Button send = (Button) this.findViewById(R.id.send);
37 send.setOnClickListener(new View.OnClickListener() {
38 public void onClick(View view) {
39 String to = recipient.getText().toString();
40 String text = message.getText().toString();
41
42 Message msg = new Message(to, Message.Type.chat);
43 msg.setBody(text);
44 m_connection.sendPacket(msg);
45 m_discussionThread.add("moi :");
46 m_discussionThread.add(text);
47 m_discussionThreadAdapter.notifyDataSetChanged();
48 }
49 });
50 }
51
52
53 private void initConnection() throws XMPPException {
54 //Initialisation de la connexion
55 ConnectionConfiguration config =
56 new ConnectionConfiguration(SERVER_HOST, SERVER_PORT, SERVICE_NAME);
57 m_connection = new XMPPConnection(config);
58 m_connection.connect();
59 m_connection.login(LOGIN, PASSWORD);
60 Presence presence = new Presence(Presence.Type.available);
61 m_connection.sendPacket(presence);
62
63 //enregistrement de l'écouteur de messages
64 PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
65 m_connection.addPacketListener(new PacketListener() {
66 public void processPacket(Packet packet) {
67 Message message = (Message) packet;
68 if (message.getBody() != null) {
69 String fromName = StringUtils.parseBareAddress(message
70 .getFrom());
71 m_discussionThread.add(fromName + ":");
72 m_discussionThread.add(message.getBody());
73
74 m_handler.post(new Runnable() {
75 public void run() {
76 m_discussionThreadAdapter.notifyDataSetChanged();
77 }
78 });
79 }
80 }
81 }, filter);
82 }
83
84
85}