src/com/beem/project/beem/service/RosterAdapter.java
author Nikita Kozlov <nikita@elyzion.net>
Sat, 05 Nov 2011 23:49:30 +0100
changeset 956 6b30719f4de6
parent 951 a4bbcfbd0a91
child 984 f27ce0166608
permissions -rw-r--r--
merge otr repo with trunk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
577
29ac85113420 fix some headers
Da Risk <darisk972@gmail.com>
parents: 567
diff changeset
     1
/*
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
     2
    BEEM is a videoconference application on the Android Platform.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
     3
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
     4
    Copyright (C) 2009 by Frederic-Charles Barthelery,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
     5
                          Jean-Manuel Da Silva,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
     6
                          Nikita Kozlov,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
     7
                          Philippe Lago,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
     8
                          Jean Baptiste Vergely,
577
29ac85113420 fix some headers
Da Risk <darisk972@gmail.com>
parents: 567
diff changeset
     9
                          Vincent Veronis.
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    10
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    11
    This file is part of BEEM.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    12
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    13
    BEEM is free software: you can redistribute it and/or modify
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    14
    it under the terms of the GNU General Public License as published by
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    15
    the Free Software Foundation, either version 3 of the License, or
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    16
    (at your option) any later version.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    17
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    18
    BEEM is distributed in the hope that it will be useful,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    19
    but WITHOUT ANY WARRANTY; without even the implied warranty of
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    20
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    21
    GNU General Public License for more details.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    22
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    23
    You should have received a copy of the GNU General Public License
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    24
    along with BEEM.  If not, see <http://www.gnu.org/licenses/>.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    25
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    26
    Please send bug reports with examples or suggestions to
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    27
    contact@beem-project.com or http://dev.beem-project.com/
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    28
577
29ac85113420 fix some headers
Da Risk <darisk972@gmail.com>
parents: 567
diff changeset
    29
    Epitech, hereby disclaims all copyright interest in the program "Beem"
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    30
    written by Frederic-Charles Barthelery,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    31
               Jean-Manuel Da Silva,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    32
               Nikita Kozlov,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    33
               Philippe Lago,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    34
               Jean Baptiste Vergely,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    35
               Vincent Veronis.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    36
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    37
    Nicolas Sadirac, November 26, 2009
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    38
    President of Epitech.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    39
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    40
    Flavien Astraud, November 26, 2009
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    41
    Head of the EIP Laboratory.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
    42
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
    43
*/
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    44
package com.beem.project.beem.service;
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    45
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    46
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
    47
import java.util.Collection;
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
    48
import java.util.HashMap;
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
    49
import java.util.Iterator;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    50
import java.util.List;
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
    51
import java.util.Map;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    52
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    53
import org.jivesoftware.smack.Roster;
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    54
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
    55
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
    56
import org.jivesoftware.smack.RosterListener;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    57
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
    58
import org.jivesoftware.smack.packet.Presence;
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
    59
import org.jivesoftware.smack.util.StringUtils;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    60
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
    61
import android.content.Context;
61
08cfba11099a Ajout du IBeemRosterListener
nikita@nikita-rack
parents: 58
diff changeset
    62
import android.os.RemoteCallbackList;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    63
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
    64
import android.util.Log;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    65
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
    66
import com.beem.project.beem.R;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
    67
import com.beem.project.beem.service.aidl.IBeemRosterListener;
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
    68
import com.beem.project.beem.utils.Status;
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
    69
import com.beem.project.beem.smack.avatar.AvatarMetadataExtension.Info;
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
    70
import com.beem.project.beem.smack.avatar.AvatarManager;
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
    71
import com.beem.project.beem.smack.avatar.AvatarListener;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
    72
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    73
/**
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
    74
 * This class implement a Roster adapter for BEEM.
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    75
 */
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    76
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
    77
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    78
    private static final String TAG = "RosterAdapter";
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
    79
    private final Roster mAdaptee;
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
    80
    private final RemoteCallbackList<IBeemRosterListener> mRemoteRosListeners =
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
    81
	new RemoteCallbackList<IBeemRosterListener>();
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
    82
    private final Map<Integer, String> mDefaultStatusMessages;
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
    83
    private final RosterListenerAdapter mRosterListener = new RosterListenerAdapter();
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
    84
    private Map<String, String> mAvatarIdmap = new HashMap<String, String>();
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
    85
    private AvatarManager mAvatarManager;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    86
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    87
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    88
     * Constructor.
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
    89
     * @param roster The roster to adapt.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
    90
     * @param context The context of the RosterAdapter.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    91
     */
599
cdadf4e39f99 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
    92
    public RosterAdapter(final Roster roster, final Context context) {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    93
	mAdaptee = roster;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    94
	roster.addRosterListener(mRosterListener);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    95
	mDefaultStatusMessages = createDefaultStatusMessagesMap(context);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    96
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    97
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    98
    /**
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
    99
     * Constructor.
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   100
     * @param roster The roster to adapt.
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   101
     * @param context The context of the RosterAdapter.
809
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   102
     * @param avatarMgr The AvatarManager of the connection
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   103
     */
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   104
    public RosterAdapter(final Roster roster, final Context context, final AvatarManager avatarMgr) {
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   105
	mAdaptee = roster;
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   106
	roster.addRosterListener(mRosterListener);
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   107
	mDefaultStatusMessages = createDefaultStatusMessagesMap(context);
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   108
	mAvatarManager = avatarMgr;
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   109
	if (mAvatarManager != null)
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   110
	    mAvatarManager.addAvatarListener(new AvatarEventListener());
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   111
    }
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   112
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   113
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   114
    /**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   115
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   116
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   117
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   118
    public void addRosterListener(IBeemRosterListener listen) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   119
	if (listen != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   120
	    mRemoteRosListeners.register(listen);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   121
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   122
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   123
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   124
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   125
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   126
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   127
    public Contact addContact(String user, String name, String[] groups) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   128
	RosterEntry contact = mAdaptee.getEntry(user);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   129
	try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   130
	    mAdaptee.createEntry(user, name, groups);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   131
	    contact = mAdaptee.getEntry(user);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   132
	} catch (XMPPException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   133
	    Log.e(TAG, "Error while adding new contact", e);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   134
	    return null;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   135
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   136
	return getContactFromRosterEntry(contact);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   137
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   138
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   139
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   140
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   141
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   142
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   143
    public void deleteContact(Contact contact) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   144
	try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   145
	    RosterEntry entry = mAdaptee.getEntry(contact.getJID());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   146
	    mAdaptee.removeEntry(entry);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   147
	} catch (XMPPException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   148
	    e.printStackTrace();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   149
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   150
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   151
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   152
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   153
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   154
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   155
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   156
    public void createGroup(String groupname) throws RemoteException {
740
a91db9ddc46f Fixes a little bug in contactlist activity.
Da Risk <darisk972@gmail.com>
parents: 716
diff changeset
   157
	if (mAdaptee.getGroup(groupname) == null)
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   158
	    mAdaptee.createGroup(groupname);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   159
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   160
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   161
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   162
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   163
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   164
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   165
    public Contact getContact(String jid) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   166
	if (mAdaptee.contains(jid))
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   167
	    return getContactFromRosterEntry(mAdaptee.getEntry(jid));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   168
	return null;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   169
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   170
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   171
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   172
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   173
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   174
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   175
    public List<Contact> getContactList() throws RemoteException {
521
0444ac5038a0 Correction bug. Doublons du contact lors de l'ajout dans plusieurs groupes.
Vincent Veronis <veroni_v@epitech.net>
parents: 514
diff changeset
   176
	boolean add = true;
740
a91db9ddc46f Fixes a little bug in contactlist activity.
Da Risk <darisk972@gmail.com>
parents: 716
diff changeset
   177
	Collection<RosterEntry> list = mAdaptee.getEntries();
a91db9ddc46f Fixes a little bug in contactlist activity.
Da Risk <darisk972@gmail.com>
parents: 716
diff changeset
   178
	List<Contact> coList = new ArrayList<Contact>(list.size());
a91db9ddc46f Fixes a little bug in contactlist activity.
Da Risk <darisk972@gmail.com>
parents: 716
diff changeset
   179
	for (RosterEntry entry : list) {
747
22969380eb13 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 740
diff changeset
   180
	    coList.add(getContactFromRosterEntry(entry));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   181
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   182
	return coList;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   183
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   184
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   185
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   186
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   187
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   188
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   189
    public List<String> getGroupsNames() throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   190
	Collection<RosterGroup> groups = mAdaptee.getGroups();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   191
	List<String> result = new ArrayList<String>(groups.size());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   192
	for (RosterGroup rosterGroup : groups) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   193
	    result.add(rosterGroup.getName());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   194
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   195
	return result;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   196
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   197
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   198
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   199
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   200
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   201
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   202
    public void removeRosterListener(IBeemRosterListener listen) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   203
	if (listen != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   204
	    mRemoteRosListeners.unregister(listen);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   205
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   206
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   207
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   208
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   209
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   210
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   211
    public void setContactName(String jid, String name) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   212
	mAdaptee.getEntry(jid).setName(name);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   213
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   214
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   215
    /* (non-Javadoc)
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   216
     * @see com.beem.project.beem.service.aidl.IRoster#getPresence(java.lang.String)
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   217
     */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   218
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   219
    public PresenceAdapter getPresence(String jid) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   220
	return new PresenceAdapter(mAdaptee.getPresence(jid));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   221
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   222
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   223
    /* (non-Javadoc)
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   224
     * @see com.beem.project.beem.service.aidl.IRoster#addContactToGroup(java.lang.String, java.lang.String)
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   225
     */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   226
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   227
    public void addContactToGroup(String groupName, String jid) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   228
	createGroup(groupName);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   229
	RosterGroup group = mAdaptee.getGroup(groupName);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   230
	try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   231
	    group.addEntry(mAdaptee.getEntry(jid));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   232
	} catch (XMPPException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   233
	    e.printStackTrace();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   234
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   235
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   236
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   237
    /* (non-Javadoc)
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   238
     * @see com.beem.project.beem.service.aidl.IRoster#removeContactFromGroup(java.lang.String, java.lang.String)
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   239
     */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   240
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   241
    public void removeContactFromGroup(String groupName, String jid) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   242
	RosterGroup group = mAdaptee.getGroup(groupName);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   243
	try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   244
	    group.removeEntry(mAdaptee.getEntry(jid));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   245
	} catch (XMPPException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   246
	    e.printStackTrace();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   247
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   248
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   249
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   250
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   251
     * Get a contact from a RosterEntry.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   252
     * @param entry a roster entry containing information for the contact.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   253
     * @return a contact for this entry.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   254
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   255
    private Contact getContactFromRosterEntry(RosterEntry entry) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   256
	String user = entry.getUser();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   257
	Contact c = new Contact(user);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   258
	Presence p = mAdaptee.getPresence(user);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   259
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
   260
	if (p.getStatus() == null || "".equals(p.getStatus()))
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   261
	    p.setStatus(mDefaultStatusMessages.get(Status.getStatusFromPresence(p)));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   262
	c.setStatus(p);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   263
	try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   264
	    c.setGroups(entry.getGroups());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   265
	} catch (NullPointerException e) {
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   266
	    Log.d(TAG, "Group list not ready", e);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   267
	}
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
   268
	Iterator<Presence> iPres = mAdaptee.getPresences(user);
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
   269
	while (iPres.hasNext()) {
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
   270
	    p = iPres.next();
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
   271
	    if (!p.getType().equals(Presence.Type.unavailable))
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
   272
		c.addRes(StringUtils.parseResource(p.getFrom()));
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 708
diff changeset
   273
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   274
	c.setName(entry.getName());
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   275
	c.setAvatarId(mAvatarIdmap.get(user));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   276
	return c;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   277
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   278
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   279
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   280
     * Create a map which contains default status messages.
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
   281
     * @param context The context of the roster adapter.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
   282
     * @return A Map<Integer, String> which assigns a status to a message.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   283
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   284
    private Map<Integer, String> createDefaultStatusMessagesMap(Context context) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   285
	Map<Integer, String> defaultStatusMessages = new HashMap<Integer, String>();
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   286
	defaultStatusMessages.put(Status.CONTACT_STATUS_AVAILABLE, context
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   287
	    .getString(R.string.contact_status_msg_available));
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   288
	defaultStatusMessages.put(Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT, context
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   289
	    .getString(R.string.contact_status_msg_available_chat));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   290
	defaultStatusMessages.put(Status.CONTACT_STATUS_AWAY, context.getString(R.string.contact_status_msg_away));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   291
	defaultStatusMessages.put(Status.CONTACT_STATUS_BUSY, context.getString(R.string.contact_status_msg_dnd));
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   292
	defaultStatusMessages.put(Status.CONTACT_STATUS_DISCONNECT, context
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   293
	    .getString(R.string.contact_status_msg_offline));
521
0444ac5038a0 Correction bug. Doublons du contact lors de l'ajout dans plusieurs groupes.
Vincent Veronis <veroni_v@epitech.net>
parents: 514
diff changeset
   294
	defaultStatusMessages.put(Status.CONTACT_STATUS_UNAVAILABLE, context.getString(R.string.contact_status_msg_xa));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   295
599
cdadf4e39f99 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   296
	return defaultStatusMessages;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   297
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   298
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   299
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   300
     * Listener for the roster events. It will call the remote listeners registered.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   301
     * @author darisk
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   302
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   303
    private class RosterListenerAdapter implements RosterListener {
61
08cfba11099a Ajout du IBeemRosterListener
nikita@nikita-rack
parents: 58
diff changeset
   304
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   305
	/**
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   306
	 * Constructor.
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   307
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   308
	public RosterListenerAdapter() {
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   309
	}
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   310
351
718557c6c309 Checkstyle rules
darisk@kaaliyah
parents: 350
diff changeset
   311
	/**
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   312
	 * {@inheritDoc}
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   313
	 */
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   314
	@Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   315
	public void entriesAdded(Collection<String> addresses) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   316
	    final int n = mRemoteRosListeners.beginBroadcast();
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
   317
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   318
	    List<String> tab = new ArrayList<String>();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   319
	    tab.addAll(addresses);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   320
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   321
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   322
		try {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   323
		    listener.onEntriesAdded(tab);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   324
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   325
		    Log.w(TAG, "Error while adding roster entries", e);
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   326
		}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   327
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   328
	    mRemoteRosListeners.finishBroadcast();
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   329
	}
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   330
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   331
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   332
	 * {@inheritDoc}
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 69
diff changeset
   333
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   334
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   335
	public void entriesDeleted(Collection<String> addresses) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   336
	    final int n = mRemoteRosListeners.beginBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   337
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   338
	    List<String> tab = new ArrayList<String>();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   339
	    tab.addAll(addresses);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   340
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   341
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
   342
		try {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   343
		    listener.onEntriesDeleted(tab);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   344
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   345
		    Log.w(TAG, "Error while deleting roster entries", e);
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 497
diff changeset
   346
		}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   347
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   348
	    mRemoteRosListeners.finishBroadcast();
58
ae9ca6ed9095 Add a listner for presence message in the RosterAdapter class
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
   349
	}
51
85705bdb77ab Ajout d'une methode pour recuperer les groups du roster
Da Risk <darisk972@gmail.com>
parents: 38
diff changeset
   350
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   351
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   352
	 * {@inheritDoc}
255
8d0efe92412b Bug #170
nikita@nikita-lab
parents: 251
diff changeset
   353
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   354
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   355
	public void entriesUpdated(Collection<String> addresses) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   356
	    final int n = mRemoteRosListeners.beginBroadcast();
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   357
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   358
	    List<String> tab = new ArrayList<String>();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   359
	    tab.addAll(addresses);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   360
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   361
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   362
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   363
		    listener.onEntriesUpdated(tab);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   364
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   365
		    Log.w(TAG, "Error while updating roster entries", e);
267
ab5493f08c57 Suppression du contact.
marseille@marseille-desktop
parents: 255
diff changeset
   366
		}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   367
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   368
	    mRemoteRosListeners.finishBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   369
	}
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 237
diff changeset
   370
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   371
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   372
	 * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   373
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   374
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   375
	public void presenceChanged(Presence presence) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   376
	    final int n = mRemoteRosListeners.beginBroadcast();
756
c86eb188de1c Correct Status.statusOnline() method. Extended away is online.
Da Risk <darisk972@gmail.com>
parents: 716
diff changeset
   377
	    Log.v(TAG, ">>> Presence changed for " + presence.getFrom());
265
3ee7b8fdbddd L'ajout de contact ne necessite plus de remplir tous les champs
Da Risk <darisk972@gmail.com>
parents: 255
diff changeset
   378
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   379
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   380
		IBeemRosterListener listener = mRemoteRosListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   381
		try {
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 503
diff changeset
   382
		    if (presence.getStatus() == null || "".equals(presence.getStatus())) {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   383
			presence.setStatus(mDefaultStatusMessages.get(Status.getStatusFromPresence(presence)));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   384
		    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   385
		    listener.onPresenceChanged(new PresenceAdapter(presence));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   386
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   387
		    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
   388
		}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   389
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   390
	    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
   391
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   392
    }
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   393
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   394
    /**
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   395
     * Listener on avatar metadata event.
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   396
     *
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   397
     */
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   398
    private class AvatarEventListener implements AvatarListener {
809
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   399
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   400
	/**
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   401
	 * Constructor.
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   402
	 */
956
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 951
diff changeset
   403
	public AvatarEventListener() { }
809
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   404
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   405
	@Override
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   406
	public void onAvatarChange(String from, String avatarId, List<Info> avatarInfos) {
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   407
	    String bare = StringUtils.parseBareAddress(from);
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   408
	    if (avatarId == null)
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   409
		mAvatarIdmap.remove(bare);
909
25d96cc298d0 Ignore avatar metadata with no valid avatar information.
Da Risk <da_risk@beem-project.com>
parents: 809
diff changeset
   410
	    else if (avatarInfos.size() > 0) {
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   411
		mAvatarIdmap.put(bare, avatarId);
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   412
	    }
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   413
	}
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   414
    }
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   415
}