src/com/beem/project/beem/service/RosterAdapter.java
author Da Risk <darisk972@gmail.com>
Wed, 28 Oct 2009 20:36:02 +0100
changeset 474 dd6d3c09d0d1
parent 453 ca4fa180e533
child 482 a5a7e1af3611
permissions -rw-r--r--
checkstyle
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
371
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
     1
/**
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
     2
 *
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
     3
 */
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     4
package com.beem.project.beem.service;
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     5
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     6
import java.util.ArrayList;
51
85705bdb77ab Ajout d'une methode pour recuperer les groups du roster
Da Risk <darisk972@gmail.com>
parents: 38
diff changeset
     7
import java.util.Collection;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     8
import java.util.List;
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     9
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    10
import org.jivesoftware.smack.Roster;
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    11
import org.jivesoftware.smack.RosterEntry;
51
85705bdb77ab Ajout d'une methode pour recuperer les groups du roster
Da Risk <darisk972@gmail.com>
parents: 38
diff changeset
    12
import org.jivesoftware.smack.RosterGroup;
58
ae9ca6ed9095 Add a listner for presence message in the RosterAdapter class
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    13
import org.jivesoftware.smack.RosterListener;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    14
import org.jivesoftware.smack.XMPPException;
58
ae9ca6ed9095 Add a listner for presence message in the RosterAdapter class
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    15
import org.jivesoftware.smack.packet.Presence;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    16
61
08cfba11099a Ajout du IBeemRosterListener
nikita@nikita-rack
parents: 58
diff changeset
    17
import android.os.RemoteCallbackList;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    18
import android.os.RemoteException;
58
ae9ca6ed9095 Add a listner for presence message in the RosterAdapter class
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    19
import android.util.Log;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    20
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
    21
import com.beem.project.beem.service.aidl.IBeemRosterListener;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
    22
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    23
/**
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
    24
 * This class implement a Roster adapter for BEEM.
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    25
 * @author darisk
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    26
 */
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    27
public class RosterAdapter extends com.beem.project.beem.service.aidl.IRoster.Stub {
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    28
268
marseille@marseille-desktop
parents: 267 265
diff changeset
    29
    private static final String TAG = "RosterAdapter";
marseille@marseille-desktop
parents: 267 265
diff changeset
    30
    private Roster mAdaptee;
marseille@marseille-desktop
parents: 267 265
diff changeset
    31
    private RemoteCallbackList<IBeemRosterListener> mRemoteRosListeners = new RemoteCallbackList<IBeemRosterListener>();
marseille@marseille-desktop
parents: 267 265
diff changeset
    32
marseille@marseille-desktop
parents: 267 265
diff changeset
    33
    private RosterListenerAdapter mRosterListener = new RosterListenerAdapter();
marseille@marseille-desktop
parents: 267 265
diff changeset
    34
marseille@marseille-desktop
parents: 267 265
diff changeset
    35
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
    36
     * Constructor.
marseille@marseille-desktop
parents: 267 265
diff changeset
    37
     * @param roster the roster to adapt
marseille@marseille-desktop
parents: 267 265
diff changeset
    38
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
    39
    public RosterAdapter(final Roster roster) {
marseille@marseille-desktop
parents: 267 265
diff changeset
    40
	mAdaptee = roster;
marseille@marseille-desktop
parents: 267 265
diff changeset
    41
	roster.addRosterListener(mRosterListener);
marseille@marseille-desktop
parents: 267 265
diff changeset
    42
    }
marseille@marseille-desktop
parents: 267 265
diff changeset
    43
marseille@marseille-desktop
parents: 267 265
diff changeset
    44
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
    45
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
    46
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
    47
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
    48
    public void addRosterListener(IBeemRosterListener listen) throws RemoteException {
marseille@marseille-desktop
parents: 267 265
diff changeset
    49
	if (listen != null)
marseille@marseille-desktop
parents: 267 265
diff changeset
    50
	    mRemoteRosListeners.register(listen);
marseille@marseille-desktop
parents: 267 265
diff changeset
    51
    }
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
    52
268
marseille@marseille-desktop
parents: 267 265
diff changeset
    53
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
    54
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
    55
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
    56
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
    57
    public Contact addContact(String user, String name, String[] groups) throws RemoteException {
marseille@marseille-desktop
parents: 267 265
diff changeset
    58
	RosterEntry contact = mAdaptee.getEntry(user);
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    59
	try {
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    60
	    mAdaptee.createEntry(user, name, groups);
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    61
	    contact = mAdaptee.getEntry(user);
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    62
	} catch (XMPPException e) {
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    63
	    Log.e(TAG, "Error while adding new contact", e);
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    64
	    return null;
268
marseille@marseille-desktop
parents: 267 265
diff changeset
    65
	}
291
nikita@localhost
parents: 287
diff changeset
    66
	if (groups != null) {
nikita@localhost
parents: 287
diff changeset
    67
	    for (String groupStr : groups) {
nikita@localhost
parents: 287
diff changeset
    68
		RosterGroup group = mAdaptee.getGroup(groupStr);
nikita@localhost
parents: 287
diff changeset
    69
		if (group == null) {
nikita@localhost
parents: 287
diff changeset
    70
		    group = mAdaptee.createGroup(groupStr);
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 314
diff changeset
    71
		}
291
nikita@localhost
parents: 287
diff changeset
    72
		try {
nikita@localhost
parents: 287
diff changeset
    73
		    group.addEntry(contact);
nikita@localhost
parents: 287
diff changeset
    74
		} catch (XMPPException e) {
nikita@localhost
parents: 287
diff changeset
    75
		    e.printStackTrace();
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    76
		    return null;
291
nikita@localhost
parents: 287
diff changeset
    77
		}
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 314
diff changeset
    78
	    }
291
nikita@localhost
parents: 287
diff changeset
    79
	}
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
    80
	return getContactFromRosterEntry(contact);
268
marseille@marseille-desktop
parents: 267 265
diff changeset
    81
    }
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
    82
268
marseille@marseille-desktop
parents: 267 265
diff changeset
    83
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
    84
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
    85
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
    86
    @Override
425
2e33fad3ec98 User info delete user.
Vincent Veronis <veroni_v@epitech.net>
parents: 402
diff changeset
    87
    public void deleteContact(Contact contact) throws RemoteException {
268
marseille@marseille-desktop
parents: 267 265
diff changeset
    88
	try {
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
    89
	    RosterEntry entry = mAdaptee.getEntry(contact.getJID());
425
2e33fad3ec98 User info delete user.
Vincent Veronis <veroni_v@epitech.net>
parents: 402
diff changeset
    90
	    mAdaptee.removeEntry(entry);
268
marseille@marseille-desktop
parents: 267 265
diff changeset
    91
	} catch (XMPPException e) {
marseille@marseille-desktop
parents: 267 265
diff changeset
    92
	    e.printStackTrace();
marseille@marseille-desktop
parents: 267 265
diff changeset
    93
	}
marseille@marseille-desktop
parents: 267 265
diff changeset
    94
    }
marseille@marseille-desktop
parents: 267 265
diff changeset
    95
marseille@marseille-desktop
parents: 267 265
diff changeset
    96
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
    97
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
    98
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
    99
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
   100
    public void createGroup(String groupname) throws RemoteException {
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   101
	try {
287
d951927691e1 EntriesDeleted
Marseille
parents: 286
diff changeset
   102
	    mAdaptee.createGroup(groupname);
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   103
	} catch (IllegalArgumentException e) {
351
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   104
	    Log.e(TAG, "Error while creating group", e);
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   105
	}
268
marseille@marseille-desktop
parents: 267 265
diff changeset
   106
    }
marseille@marseille-desktop
parents: 267 265
diff changeset
   107
marseille@marseille-desktop
parents: 267 265
diff changeset
   108
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
   109
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
   110
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
   111
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
   112
    public Contact getContact(String jid) throws RemoteException {
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   113
	if (mAdaptee.contains(jid))
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   114
	    return getContactFromRosterEntry(mAdaptee.getEntry(jid));
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   115
	return null;
268
marseille@marseille-desktop
parents: 267 265
diff changeset
   116
    }
marseille@marseille-desktop
parents: 267 265
diff changeset
   117
marseille@marseille-desktop
parents: 267 265
diff changeset
   118
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
   119
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
   120
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
   121
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
   122
    public List<Contact> getContactList() throws RemoteException {
350
5bb849b49099 Correction
darisk@kaaliyah
parents: 349
diff changeset
   123
	List<Contact> coList = new ArrayList<Contact>(mAdaptee.getEntries().size());
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 314
diff changeset
   124
	for (RosterEntry entry : mAdaptee.getEntries()) {
300
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   125
	    coList.add(getContactFromRosterEntry(entry));
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   126
	}
c7c1827fa960 Support #189
nikita@localhost
parents: 291
diff changeset
   127
	return coList;
268
marseille@marseille-desktop
parents: 267 265
diff changeset
   128
    }
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   129
268
marseille@marseille-desktop
parents: 267 265
diff changeset
   130
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
   131
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
   132
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
   133
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
   134
    public List<String> getGroupsNames() throws RemoteException {
marseille@marseille-desktop
parents: 267 265
diff changeset
   135
	Collection<RosterGroup> groups = mAdaptee.getGroups();
474
dd6d3c09d0d1 checkstyle
Da Risk <darisk972@gmail.com>
parents: 453
diff changeset
   136
	List<String> result = new ArrayList<String>(groups.size());
268
marseille@marseille-desktop
parents: 267 265
diff changeset
   137
	for (RosterGroup rosterGroup : groups) {
marseille@marseille-desktop
parents: 267 265
diff changeset
   138
	    result.add(rosterGroup.getName());
marseille@marseille-desktop
parents: 267 265
diff changeset
   139
	}
marseille@marseille-desktop
parents: 267 265
diff changeset
   140
	return result;
marseille@marseille-desktop
parents: 267 265
diff changeset
   141
    }
marseille@marseille-desktop
parents: 267 265
diff changeset
   142
marseille@marseille-desktop
parents: 267 265
diff changeset
   143
    /**
marseille@marseille-desktop
parents: 267 265
diff changeset
   144
     * {@inheritDoc}
marseille@marseille-desktop
parents: 267 265
diff changeset
   145
     */
marseille@marseille-desktop
parents: 267 265
diff changeset
   146
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
   147
    public void removeRosterListener(IBeemRosterListener listen) throws RemoteException {
marseille@marseille-desktop
parents: 267 265
diff changeset
   148
	if (listen != null)
marseille@marseille-desktop
parents: 267 265
diff changeset
   149
	    mRemoteRosListeners.unregister(listen);
marseille@marseille-desktop
parents: 267 265
diff changeset
   150
    }
marseille@marseille-desktop
parents: 267 265
diff changeset
   151
marseille@marseille-desktop
parents: 267 265
diff changeset
   152
    /**
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 314
diff changeset
   153
     * {@inheritDoc}
269
d78115a6b45b Feature #183
nikita@localhost
parents: 255
diff changeset
   154
     */
268
marseille@marseille-desktop
parents: 267 265
diff changeset
   155
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
   156
    public void setContactName(String jid, String name) throws RemoteException {
marseille@marseille-desktop
parents: 267 265
diff changeset
   157
	mAdaptee.getEntry(jid).setName(name);
marseille@marseille-desktop
parents: 267 265
diff changeset
   158
    }
marseille@marseille-desktop
parents: 267 265
diff changeset
   159
marseille@marseille-desktop
parents: 267 265
diff changeset
   160
    @Override
marseille@marseille-desktop
parents: 267 265
diff changeset
   161
    public PresenceAdapter getPresence(String jid) throws RemoteException {
marseille@marseille-desktop
parents: 267 265
diff changeset
   162
	return new PresenceAdapter(mAdaptee.getPresence(jid));
marseille@marseille-desktop
parents: 267 265
diff changeset
   163
    }
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   164
443
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   165
    @Override
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   166
    public void addContactToGroup(String groupName, String jid) throws RemoteException {
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   167
	createGroup(groupName);
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   168
	RosterGroup group = mAdaptee.getGroup(groupName);
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   169
	try {
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   170
	    group.addEntry(mAdaptee.getEntry(jid));
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   171
	} catch (XMPPException e) {
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   172
	    e.printStackTrace();
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   173
	}
443
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   174
    }
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   175
443
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   176
    @Override
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   177
    public void removeContactFromGroup(String groupName, String jid) throws RemoteException {
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   178
	RosterGroup group = mAdaptee.getGroup(groupName);
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   179
	try {
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   180
	    group.removeEntry(mAdaptee.getEntry(jid));
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   181
	} catch (XMPPException e) {
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   182
	    e.printStackTrace();
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   183
	}
97c8c32b61d0 maj de groupList, ce devrait etre bon pour l'ajout de group et l'ajout de contact dans un groupe, mais a debug encore
Nikita Kozlov <nikita@beem-project.com>
parents: 425
diff changeset
   184
    }
268
marseille@marseille-desktop
parents: 267 265
diff changeset
   185
349
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   186
    /**
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   187
     * Get a contact from a RosterEntry.
351
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   188
     * @param entry a roster entry containing information for the contact.
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   189
     * @return a contact for this entry.
349
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   190
     */
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   191
    private Contact getContactFromRosterEntry(RosterEntry entry) {
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 351
diff changeset
   192
	String user = entry.getUser();
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 271
diff changeset
   193
	Contact c = new Contact(user);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 271
diff changeset
   194
	c.setStatus(mAdaptee.getPresence(user));
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 271
diff changeset
   195
	c.setGroups(entry.getGroups());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 271
diff changeset
   196
	c.setName(entry.getName());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 271
diff changeset
   197
	return c;
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   198
    }
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 271
diff changeset
   199
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   200
    /**
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   201
     * Listener for the roster events. It will call the remote listeners registered.
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   202
     * @author darisk
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   203
     */
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   204
    private class RosterListenerAdapter implements RosterListener {
61
08cfba11099a Ajout du IBeemRosterListener
nikita@nikita-rack
parents: 58
diff changeset
   205
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   206
	/**
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   207
	 * Constructor.
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   208
	 */
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   209
	public RosterListenerAdapter() {
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   210
	}
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   211
351
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   212
	/**
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   213
	 * Event which is fired when an entry is deleted for a group.
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   214
	 * @param group the group the entry was.
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   215
	 * @param jid the jid of the entry which is deleted.
371
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
   216
	 */
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   217
	public void onEntryDeleteFromGroup(String group, String jid) {
425
2e33fad3ec98 User info delete user.
Vincent Veronis <veroni_v@epitech.net>
parents: 402
diff changeset
   218
	    // Log.i(TAG, "entry delete listener");
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   219
	    final int n = mRemoteRosListeners.beginBroadcast();
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   220
	    for (int i = 0; i < n; i++) {
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   221
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   222
		try {
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   223
		    listener.onEntryDeleteFromGroup(group, jid);
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   224
		} catch (RemoteException e) {
287
d951927691e1 EntriesDeleted
Marseille
parents: 286
diff changeset
   225
		    Log.w(TAG, "entry delete listener", e);
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   226
		}
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   227
	    }
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   228
	    mRemoteRosListeners.finishBroadcast();
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   229
371
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
   230
	}
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   231
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   232
	/**
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   233
	 * {@inheritDoc}
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   234
	 */
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   235
	@Override
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   236
	public void entriesAdded(Collection<String> addresses) {
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   237
	    // Log.i(TAG, "Ajout de l'entry " + addresses.size() + " " +
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   238
	    // addresses.toArray()[0]);
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   239
	    final int n = mRemoteRosListeners.beginBroadcast();
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   240
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   241
	    List<String> tab = new ArrayList<String>();
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   242
	    tab.addAll(addresses);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   243
	    for (int i = 0; i < n; i++) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   244
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   245
		try {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   246
		    listener.onEntriesAdded(tab);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   247
		} catch (RemoteException e) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   248
		    Log.w(TAG, "Error while adding roster entries", e);
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   249
		}
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   250
	    }
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   251
	    mRemoteRosListeners.finishBroadcast();
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   252
	}
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   253
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   254
	/**
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   255
	 * {@inheritDoc}
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   256
	 */
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   257
	@Override
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   258
	public void entriesDeleted(Collection<String> addresses) {
425
2e33fad3ec98 User info delete user.
Vincent Veronis <veroni_v@epitech.net>
parents: 402
diff changeset
   259
	    // Log.i(TAG, "Suppression de l'entry");
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   260
	    final int n = mRemoteRosListeners.beginBroadcast();
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   261
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   262
	    List<String> tab = new ArrayList<String>();
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   263
	    tab.addAll(addresses);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   264
	    for (int i = 0; i < n; i++) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   265
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   266
		try {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   267
		    listener.onEntriesDeleted(tab);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   268
		} catch (RemoteException e) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   269
		    Log.w(TAG, "Error while deleting roster entries", e);
69
cc06de2dfff0 test de merge et petit commit
nikita@nikita-rack
parents: 65
diff changeset
   270
		}
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   271
	    }
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   272
	    mRemoteRosListeners.finishBroadcast();
58
ae9ca6ed9095 Add a listner for presence message in the RosterAdapter class
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
   273
	}
51
85705bdb77ab Ajout d'une methode pour recuperer les groups du roster
Da Risk <darisk972@gmail.com>
parents: 38
diff changeset
   274
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   275
	/**
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   276
	 * {@inheritDoc}
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   277
	 */
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   278
	@Override
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   279
	public void entriesUpdated(Collection<String> addresses) {
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   280
	    // Log.i(TAG, "Update de l'entry " + addresses.size() + " " +
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   281
	    // addresses.toArray()[0]);
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   282
	    final int n = mRemoteRosListeners.beginBroadcast();
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   283
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   284
	    List<String> tab = new ArrayList<String>();
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   285
	    tab.addAll(addresses);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   286
	    for (int i = 0; i < n; i++) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   287
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   288
		try {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   289
		    listener.onEntriesUpdated(tab);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   290
		} catch (RemoteException e) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   291
		    Log.w(TAG, "Error while updating roster entries", e);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   292
		}
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   293
	    }
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   294
	    mRemoteRosListeners.finishBroadcast();
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 237
diff changeset
   295
	}
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 237
diff changeset
   296
265
3ee7b8fdbddd L'ajout de contact ne necessite plus de remplir tous les champs
Da Risk <darisk972@gmail.com>
parents: 255
diff changeset
   297
	/**
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   298
	 * {@inheritDoc}
265
3ee7b8fdbddd L'ajout de contact ne necessite plus de remplir tous les champs
Da Risk <darisk972@gmail.com>
parents: 255
diff changeset
   299
	 */
69
cc06de2dfff0 test de merge et petit commit
nikita@nikita-rack
parents: 65
diff changeset
   300
	@Override
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   301
	public void presenceChanged(Presence presence) {
425
2e33fad3ec98 User info delete user.
Vincent Veronis <veroni_v@epitech.net>
parents: 402
diff changeset
   302
	    // Log.i(TAG, "presence Changed");
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   303
	    /* redispatch vers les IBeemRosterListener */
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   304
	    final int n = mRemoteRosListeners.beginBroadcast();
265
3ee7b8fdbddd L'ajout de contact ne necessite plus de remplir tous les champs
Da Risk <darisk972@gmail.com>
parents: 255
diff changeset
   305
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   306
	    for (int i = 0; i < n; i++) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   307
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   308
		try {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   309
		    listener.onPresenceChanged(new PresenceAdapter(presence));
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   310
		} catch (RemoteException e) {
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   311
		    // The RemoteCallbackList will take care of removing the
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   312
		    // dead listeners.
402
4684a42ae0ad pas mal de cleannance et aussi du debug sur les decos
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   313
		    Log.w(TAG, "Error while updating roster presence entries", e);
265
3ee7b8fdbddd L'ajout de contact ne necessite plus de remplir tous les champs
Da Risk <darisk972@gmail.com>
parents: 255
diff changeset
   314
		}
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   315
	    }
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   316
	    mRemoteRosListeners.finishBroadcast();
265
3ee7b8fdbddd L'ajout de contact ne necessite plus de remplir tous les champs
Da Risk <darisk972@gmail.com>
parents: 255
diff changeset
   317
	}
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 443
diff changeset
   318
    }
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   319
}