src/com/beem/project/beem/service/XmppConnectionAdapter.java
author Da Risk <darisk972@gmail.com>
Fri, 25 Mar 2011 23:02:04 +0100
changeset 890 1f3c76bf3756
parent 885 bfb4326524f8
child 903 7b5e29b3603b
permissions -rw-r--r--
Use the user jid send by the server cause it can be different than the user requested ji.
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
665
01f3b7160f4b add a hide group options
Nikita Kozlov <nikita@beem-project.com>
parents: 658
diff changeset
    43
*/
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    44
package com.beem.project.beem.service;
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    45
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    46
import org.jivesoftware.smack.ConnectionConfiguration;
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
    47
import org.jivesoftware.smack.ConnectionListener;
375
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    48
import org.jivesoftware.smack.PacketListener;
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
    49
import org.jivesoftware.smack.PrivacyListManager;
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
    50
import org.jivesoftware.smack.Roster;
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    51
import org.jivesoftware.smack.XMPPConnection;
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    52
import org.jivesoftware.smack.XMPPException;
377
5f60caa9f85c deplacement de l'eventListener cote service
Nikita Kozlov <nikita@beem-project.com>
parents: 376
diff changeset
    53
import org.jivesoftware.smack.filter.PacketFilter;
375
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    54
import org.jivesoftware.smack.packet.Packet;
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    55
import org.jivesoftware.smack.packet.Presence;
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
    56
import org.jivesoftware.smack.util.StringUtils;
123
2c4be059fc8b debug du discovery
nikita@nikita-rack
parents: 118
diff changeset
    57
import org.jivesoftware.smackx.ChatStateManager;
35
8006e9ee734e ajout d'une fonction de SeviceDiscovery
nikita@nikita-rack
parents: 31
diff changeset
    58
import org.jivesoftware.smackx.ServiceDiscoveryManager;
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    59
import org.jivesoftware.smackx.packet.DiscoverInfo;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 207
diff changeset
    60
375
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    61
import android.app.Notification;
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    62
import android.app.PendingIntent;
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
    63
import android.content.Context;
375
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    64
import android.content.Intent;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
    65
import android.content.SharedPreferences;
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
    66
import android.os.RemoteCallbackList;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    67
import android.os.RemoteException;
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
    68
import android.util.Log;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 207
diff changeset
    69
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    70
import java.util.Iterator;
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
    71
import java.util.List;
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    72
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 411
diff changeset
    73
import com.beem.project.beem.BeemService;
402
4684a42ae0ad pas mal de cleannance et aussi du debug sur les decos
Nikita Kozlov <nikita@beem-project.com>
parents: 396
diff changeset
    74
import com.beem.project.beem.R;
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
    75
import com.beem.project.beem.BeemApplication;
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
    76
import com.beem.project.beem.service.aidl.IBeemConnectionListener;
57
c91278dda166 La facade et la connexion permette de recuperer une instance de ChatManager
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    77
import com.beem.project.beem.service.aidl.IChatManager;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    78
import com.beem.project.beem.service.aidl.IRoster;
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 38
diff changeset
    79
import com.beem.project.beem.service.aidl.IXmppConnection;
550
443a5937ad7a Finitions modification login de bart.
Vincent Veronis <veroni_v@epitech.net>
parents: 545
diff changeset
    80
import com.beem.project.beem.ui.ChangeStatus;
375
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    81
import com.beem.project.beem.ui.Subscription;
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 411
diff changeset
    82
import com.beem.project.beem.utils.BeemBroadcastReceiver;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
    83
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: 807
diff changeset
    84
import com.beem.project.beem.smack.pep.PepSubManager;
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    85
import com.beem.project.beem.smack.avatar.AvatarCache;
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
    86
import com.beem.project.beem.smack.avatar.AvatarListener;
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
    87
import com.beem.project.beem.smack.avatar.AvatarMetadataExtension;
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    88
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    89
/**
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
    90
 * This class implements an adapter for XMPPConnection.
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    91
 * @author darisk
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    92
 */
67
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 57
diff changeset
    93
public class XmppConnectionAdapter extends IXmppConnection.Stub {
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
    94
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    95
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
    96
     * Beem connection closed Intent name.
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
600
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
    99
    private static final int SMACK_PRIORITY_MIN = -128;
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   100
    private static final int SMACK_PRIORITY_MAX = 128;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   101
    private static final String TAG = "XMPPConnectionAdapter";
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   102
    private final XMPPConnection mAdaptee;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   103
    private IChatManager mChatManager;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   104
    private final String mLogin;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   105
    private final String mPassword;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   106
    private String mResource;
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   107
    private String mErrorMsg;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   108
    private RosterAdapter mRoster;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   109
    private int mPreviousPriority;
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   110
    private int mPreviousMode;
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   111
    private String mPreviousStatus;
518
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 506
diff changeset
   112
    private PrivacyListManagerAdapter mPrivacyListManager;
704
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 696
diff changeset
   113
    private ChatStateManager mChatStateManager;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   114
    private final BeemService mService;
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   115
    private BeemApplication mApplication;
880
d23d8ad3b9ba Add a basic way to publish avatar.
Da Risk <darisk972@gmail.com>
parents: 878
diff changeset
   116
    private BeemAvatarManager mAvatarManager;
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   117
    private PepSubManager mPepManager;
852
71bb53b42419 Feature #316
Nikita Kozlov <nikita@beem-project.com>
parents: 848
diff changeset
   118
    private SharedPreferences mPref;
704
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 696
diff changeset
   119
    private final RemoteCallbackList<IBeemConnectionListener> mRemoteConnListeners =
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 696
diff changeset
   120
	new RemoteCallbackList<IBeemConnectionListener>();
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   121
    private final SubscribePacketListener mSubscribePacketListener = new SubscribePacketListener();
503
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
    private final ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter();
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   124
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   125
    private UserInfo mUserInfo;
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   126
    private final UserInfoManager mUserInfoManager = new UserInfoManager();
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   127
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   128
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   129
     * Constructor.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   130
     * @param config Configuration to use in order to connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   131
     * @param login login to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   132
     * @param password password to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   133
     * @param service the background service associated with the connection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   134
     */
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   135
    public XmppConnectionAdapter(final ConnectionConfiguration config,
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   136
	    final String login, final String password, final BeemService service) {
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   137
	this(new XMPPConnection(config), login, password, service);
503
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
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   141
     * Constructor.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   142
     * @param serviceName name of the service to connect to
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   143
     * @param login login to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   144
     * @param password password to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   145
     * @param service the background service associated with the connection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   146
     */
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   147
    public XmppConnectionAdapter(final String serviceName,
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   148
	    final String login, final String password, final BeemService service) {
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   149
	this(new XMPPConnection(serviceName), login, password, service);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   150
    }
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   151
503
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
     * Constructor.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   154
     * @param con The connection to adapt
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   155
     * @param login The login to use
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   156
     * @param password The password to use
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   157
     * @param service the background service associated with the connection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   158
     */
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   159
    public XmppConnectionAdapter(final XMPPConnection con,
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   160
	    final String login, final String password, final BeemService service) {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   161
	mAdaptee = con;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   162
	PrivacyListManager.getInstanceFor(mAdaptee);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   163
	mLogin = login;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   164
	mPassword = password;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   165
	mService = service;
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   166
	Context ctx = mService.getApplicationContext();
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   167
	if (ctx instanceof BeemApplication) {
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   168
	    mApplication = (BeemApplication) ctx;
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   169
	}
852
71bb53b42419 Feature #316
Nikita Kozlov <nikita@beem-project.com>
parents: 848
diff changeset
   170
	mPref = mService.getServicePreference();
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   171
	try {
852
71bb53b42419 Feature #316
Nikita Kozlov <nikita@beem-project.com>
parents: 848
diff changeset
   172
	    mPreviousPriority = Integer.parseInt(mPref.getString("settings_key_priority", "0"));
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   173
	} catch (NumberFormatException ex) {
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   174
	    mPreviousPriority = 0;
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   175
	}
852
71bb53b42419 Feature #316
Nikita Kozlov <nikita@beem-project.com>
parents: 848
diff changeset
   176
	mResource = mPref.getString("settings_key_resource", "BEEM");
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   177
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   178
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   179
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   180
     * {@inheritDoc}
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
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   183
    public void addConnectionListener(IBeemConnectionListener listen) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   184
	if (listen != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   185
	    mRemoteConnListeners.register(listen);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   186
    }
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   187
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   188
    @Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   189
    public boolean connect() throws RemoteException {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   190
	if (mAdaptee.isConnected())
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   191
	    return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   192
	else {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   193
	    try {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   194
		mAdaptee.connect();
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   195
		mAdaptee.addConnectionListener(mConListener);
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   196
		return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   197
	    } catch (XMPPException e) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   198
		Log.e(TAG, "Error while connecting", e);
658
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   199
		try {
664
Da Risk <darisk972@gmail.com>
parents: 658
diff changeset
   200
		    //TODO NIKITA DOES SOME SHIT !!! Fix this monstruosity
658
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   201
		    String str = mService.getResources().getString(
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   202
			mService.getResources().getIdentifier(
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   203
			    e.getXMPPError().getCondition().replace("-", "_"), "string", "com.beem.project.beem"));
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   204
		    mErrorMsg = str;
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   205
		} catch (NullPointerException e2) {
658
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   206
		    if (!"".equals(e.getMessage()))
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   207
			mErrorMsg = e.getMessage();
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   208
		    else
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   209
			mErrorMsg = e.toString();
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   210
		}
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   211
	    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   212
	    return false;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   213
	}
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   214
    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   215
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   216
    @Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   217
    public boolean login() throws RemoteException {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   218
	if (mAdaptee.isAuthenticated())
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   219
	    return true;
752
0e16dee2bd4c use a LevelListDrawable for status icon
Da Risk <darisk972@gmail.com>
parents: 708
diff changeset
   220
	if (!mAdaptee.isConnected())
0e16dee2bd4c use a LevelListDrawable for status icon
Da Risk <darisk972@gmail.com>
parents: 708
diff changeset
   221
	    return false;
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   222
	try {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   223
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   224
	    this.initFeatures(); // pour declarer les features xmpp qu'on
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   225
	    // supporte
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   226
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   227
	    PacketFilter filter = new PacketFilter() {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   228
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   229
		@Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   230
		public boolean accept(Packet packet) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   231
		    if (packet instanceof Presence) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   232
			Presence pres = (Presence) packet;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   233
			if (pres.getType() == Presence.Type.subscribe)
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   234
			    return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   235
		    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   236
		    return false;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   237
		}
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   238
	    };
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   239
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   240
	    mAdaptee.addPacketListener(mSubscribePacketListener, filter);
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   241
793
4fb9df09ffdf #286 : Initial implementation of XEP-0115 : Entity Capabilities
Da Risk <darisk972@gmail.com>
parents: 762
diff changeset
   242
	    mAdaptee.login(mLogin, mPassword, mResource);
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   243
	    mUserInfo = new UserInfo(mAdaptee.getUser());
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   244
793
4fb9df09ffdf #286 : Initial implementation of XEP-0115 : Entity Capabilities
Da Risk <darisk972@gmail.com>
parents: 762
diff changeset
   245
	    mChatManager = new BeemChatManager(mAdaptee.getChatManager(), mService);
855
8e627c5cae73 checkstyle
Nikita Kozlov <nikita@beem-project.com>
parents: 854
diff changeset
   246
	    //nikita: I commented this line because of the logs provided in http://www.beem-project.com/issues/321
854
30d32b73be7c fix Bug #321
Nikita Kozlov <nikita@beem-project.com>
parents: 852
diff changeset
   247
	    //Also, since the privacylistmanager isn't finished and used, it will be safer to not initialize it
30d32b73be7c fix Bug #321
Nikita Kozlov <nikita@beem-project.com>
parents: 852
diff changeset
   248
	    //mPrivacyListManager = new PrivacyListManagerAdapter(PrivacyListManager.getInstanceFor(mAdaptee));
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   249
	    mService.initJingle(mAdaptee);
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   250
	    discoverServerFeatures();
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   251
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   252
	    mRoster = new RosterAdapter(mAdaptee.getRoster(), mService, mAvatarManager);
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   253
	    mApplication.setConnected(true);
852
71bb53b42419 Feature #316
Nikita Kozlov <nikita@beem-project.com>
parents: 848
diff changeset
   254
	    int mode = mPref.getInt(BeemApplication.STATUS_KEY, 0);
71bb53b42419 Feature #316
Nikita Kozlov <nikita@beem-project.com>
parents: 848
diff changeset
   255
	    String status = mPref.getString(BeemApplication.STATUS_TEXT_KEY, "");
71bb53b42419 Feature #316
Nikita Kozlov <nikita@beem-project.com>
parents: 848
diff changeset
   256
	    changeStatus(mode, status);
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   257
	    return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   258
	} catch (XMPPException e) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   259
	    Log.e(TAG, "Error while connecting", e);
658
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   260
	    mErrorMsg = mService.getString(R.string.error_login_authentication);
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   261
	    return false;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   262
	}
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   263
    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   264
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   265
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   266
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   267
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   268
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   269
    public final void connectAsync() throws RemoteException {
543
28d200758114 Le bouton cancel marche
Da Risk <darisk972@gmail.com>
parents: 532
diff changeset
   270
	if (mAdaptee.isConnected() || mAdaptee.isAuthenticated())
28d200758114 Le bouton cancel marche
Da Risk <darisk972@gmail.com>
parents: 532
diff changeset
   271
	    return;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   272
	Thread t = new Thread(new Runnable() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   273
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   274
	    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   275
	    public void run() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   276
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   277
		    connectSync();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   278
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   279
		    Log.e(TAG, "Error while connecting asynchronously", e);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   280
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   281
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   282
	});
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   283
	t.start();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   284
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   285
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   286
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   287
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   288
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   289
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   290
    public boolean connectSync() throws RemoteException {
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   291
	if (connect())
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   292
	    return login();
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   293
	return false;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   294
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   295
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   296
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   297
     * {@inheritDoc}
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
    @Override
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   300
    public void changeStatusAndPriority(int status, String msg, int priority) {
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   301
	Presence pres = new Presence(Presence.Type.available);
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   302
	String m;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   303
	if (msg != null)
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   304
	    m = msg;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   305
	else
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   306
	    m = mPreviousStatus;
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   307
	pres.setStatus(m);
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   308
	mPreviousStatus = m;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   309
	Presence.Mode mode = Status.getPresenceModeFromStatus(status);
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   310
	if (mode != null) {
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   311
	    pres.setMode(mode);
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   312
	    mPreviousMode = status;
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   313
	} else {
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   314
	    pres.setMode(Status.getPresenceModeFromStatus(mPreviousMode));
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   315
	}
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   316
	int p = priority;
600
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   317
	if (priority < SMACK_PRIORITY_MIN)
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   318
	    p = SMACK_PRIORITY_MIN;
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   319
	if (priority > SMACK_PRIORITY_MAX)
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   320
	    p = SMACK_PRIORITY_MAX;
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   321
	mPreviousPriority = p;
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   322
	pres.setPriority(p);
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   323
	mAdaptee.sendPacket(pres);
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   324
	updateNotification(m);
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   325
    }
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   326
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   327
    /**
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   328
     * {@inheritDoc}
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   329
     */
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   330
    @Override
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   331
    public void changeStatus(int status, String msg) {
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   332
	changeStatusAndPriority(status, msg, mPreviousPriority);
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   333
    }
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   334
809
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   335
    /**
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   336
     * Get the AvatarManager of this connection.
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   337
     *
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   338
     * @return the AvatarManager or null if there is not
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   339
     */
880
d23d8ad3b9ba Add a basic way to publish avatar.
Da Risk <darisk972@gmail.com>
parents: 878
diff changeset
   340
    public BeemAvatarManager getAvatarManager() {
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   341
	return mAvatarManager;
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   342
    }
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   343
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   344
    /**
683
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   345
     * get the previous status.
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   346
     * @return previous status.
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   347
     */
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   348
    public String getPreviousStatus() {
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   349
	return mPreviousStatus;
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   350
    }
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   351
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   352
    /**
683
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   353
     * get the previous mode.
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   354
     * @return previous mode.
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   355
     */
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   356
    public int getPreviousMode() {
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   357
	return mPreviousMode;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   358
    }
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   359
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   360
    /**
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   361
     * Update the notification for the Beem status.
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   362
     * @param text the text to display.
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   363
     */
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   364
    private void updateNotification(String text) {
528
a77a7b4e7f34 ClassCastException resolved, PrivacyList creation fixed.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 526
diff changeset
   365
	Notification mStatusNotification;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   366
	mStatusNotification = new Notification(com.beem.project.beem.R.drawable.beem_status_icon, text, System
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   367
	    .currentTimeMillis());
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   368
	mStatusNotification.defaults = Notification.DEFAULT_LIGHTS;
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   369
	mStatusNotification.flags = Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   370
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   371
	mStatusNotification.setLatestEventInfo(mService, "Beem Status", text, PendingIntent.getActivity(mService, 0,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   372
	    new Intent(mService, ChangeStatus.class), 0));
762
56d44e5c7081 Many little modifications.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   373
	// bypass the preferences for notification
56d44e5c7081 Many little modifications.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   374
	mService.getNotificationManager().notify(BeemService.NOTIFICATION_STATUS_ID, mStatusNotification);
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   375
    }
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   376
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   377
    /**
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   378
     * {@inheritDoc}
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   379
     */
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   380
    @Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   381
    public boolean disconnect() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   382
	if (mAdaptee != null && mAdaptee.isConnected())
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   383
	    mAdaptee.disconnect();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   384
	return true;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   385
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   386
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   387
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   388
     * Get the Smack XmppConnection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   389
     * @return Smack XmppConnection
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   390
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   391
    public XMPPConnection getAdaptee() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   392
	return mAdaptee;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   393
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   394
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   395
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   396
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   397
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   398
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   399
    public IChatManager getChatManager() throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   400
	return mChatManager;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   401
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   402
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   403
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   404
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   405
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   406
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   407
    public IRoster getRoster() throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   408
	if (mRoster != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   409
	    return mRoster;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   410
	Roster adap = mAdaptee.getRoster();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   411
	if (adap == null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   412
	    return null;
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   413
	mRoster = new RosterAdapter(adap, mService, mAvatarManager);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   414
	return mRoster;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   415
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   416
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   417
    /**
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   418
     * Get the user informations.
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   419
     *
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   420
     * @return the user infos
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   421
     */
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   422
    public UserInfo getUserInfo() {
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   423
	return mUserInfo;
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   424
    }
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   425
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   426
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   427
     * Returns true if currently authenticated by successfully calling the login method.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   428
     * @return true when successfully authenticated
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   429
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   430
    public boolean isAuthentificated() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   431
	return mAdaptee.isAuthenticated();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   432
    }
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   433
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   434
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   435
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   436
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   437
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   438
    public void removeConnectionListener(IBeemConnectionListener listen) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   439
	if (listen != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   440
	    mRemoteConnListeners.unregister(listen);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   441
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   442
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   443
    /**
518
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 506
diff changeset
   444
     * PrivacyListManagerAdapter mutator.
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   445
     * @param privacyListManager the privacy list manager
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   446
     */
518
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 506
diff changeset
   447
    public void setPrivacyListManager(PrivacyListManagerAdapter privacyListManager) {
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 506
diff changeset
   448
	this.mPrivacyListManager = privacyListManager;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   449
    }
269
d78115a6b45b Feature #183
nikita@localhost
parents: 262
diff changeset
   450
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   451
    /**
518
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 506
diff changeset
   452
     * PrivacyListManagerAdapter accessor.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   453
     * @return the mPrivacyList
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   454
     */
518
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 506
diff changeset
   455
    public PrivacyListManagerAdapter getPrivacyListManager() {
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 506
diff changeset
   456
	return mPrivacyListManager;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   457
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   458
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   459
    /**
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   460
     * {@inheritDoc}
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   461
     */
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   462
    @Override
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   463
    public String getErrorMessage() {
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   464
	return mErrorMsg;
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   465
    }
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   466
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   467
    /**
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   468
     * Initialize the features provided by beem.
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   469
     */
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   470
    private void initFeatures() {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   471
	ServiceDiscoveryManager.setIdentityName("Beem");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   472
	ServiceDiscoveryManager.setIdentityType("phone");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   473
	ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   474
	if (sdm == null)
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   475
	    sdm = new ServiceDiscoveryManager(mAdaptee);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   476
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   477
	sdm.addFeature("http://jabber.org/protocol/disco#info");
855
8e627c5cae73 checkstyle
Nikita Kozlov <nikita@beem-project.com>
parents: 854
diff changeset
   478
	//nikita: must be uncommented when the feature will be enabled
854
30d32b73be7c fix Bug #321
Nikita Kozlov <nikita@beem-project.com>
parents: 852
diff changeset
   479
	//sdm.addFeature("jabber:iq:privacy");
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   480
	sdm.addFeature("http://jabber.org/protocol/caps");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   481
	sdm.addFeature("urn:xmpp:avatar:metadata");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   482
	sdm.addFeature("urn:xmpp:avatar:metadata+notify");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   483
	sdm.addFeature("urn:xmpp:avatar:data");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   484
	sdm.addFeature("http://jabber.org/protocol/nick");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   485
	sdm.addFeature("http://jabber.org/protocol/nick+notify");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   486
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   487
	mChatStateManager = ChatStateManager.getInstance(mAdaptee);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   488
	BeemCapsManager caps = new BeemCapsManager(sdm, mAdaptee, mService);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   489
	caps.setNode("http://www.beem-project.com");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   490
    }
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   491
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   492
    /**
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   493
     * Discover the features provided by the server.
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   494
     */
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   495
    private void discoverServerFeatures() {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   496
	try {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   497
	    // jid et server
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   498
	    ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee);
878
d051db285d7e fix discovesServerFeatures
Da Risk <darisk972@gmail.com>
parents: 875
diff changeset
   499
	    DiscoverInfo info = sdm.discoverInfo(mAdaptee.getServiceName());
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   500
	    Iterator<DiscoverInfo.Identity> it = info.getIdentities();
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   501
	    while (it.hasNext()) {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   502
		DiscoverInfo.Identity identity = it.next();
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   503
		if ("pubsub".equals(identity.getCategory()) && "pep".equals(identity.getType())) {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   504
		    initPEP();
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   505
		}
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   506
	    }
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   507
	} catch (XMPPException e) {
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   508
	    Log.w(TAG, "Unable to discover server features", e);
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   509
	}
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   510
    }
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   511
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   512
    /**
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   513
     * Initialize PEP.
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   514
     */
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   515
    private void initPEP() {
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   516
	// Enable pep sending
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   517
	Log.d(TAG, "Pep enabled");
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   518
	// API 8
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   519
	// mService.getExternalCacheDir()
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   520
	mPepManager = new PepSubManager(mAdaptee);
875
70ca3ab6e459 Use a content provider to store the avatars
Da Risk <darisk972@gmail.com>
parents: 855
diff changeset
   521
	AvatarCache avatarCache = new BeemAvatarCache(mService);
880
d23d8ad3b9ba Add a basic way to publish avatar.
Da Risk <darisk972@gmail.com>
parents: 878
diff changeset
   522
	mAvatarManager = new BeemAvatarManager(mService, mAdaptee, mPepManager, avatarCache, true);
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   523
	mAvatarManager.addAvatarListener(mUserInfoManager);
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   524
	mApplication.setPepEnabled(true);
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   525
    }
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   526
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   527
    /**
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   528
     * Reset the application state.
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   529
     */
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   530
    private void resetApplication() {
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   531
	mApplication.setConnected(false);
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   532
	mApplication.setPepEnabled(false);
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   533
    }
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   534
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   535
    /**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   536
     * Listener for XMPP connection events. It will calls the remote listeners for connection events.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   537
     * @author darisk
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   538
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   539
    private class ConnexionListenerAdapter implements ConnectionListener {
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   540
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   541
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   542
	 * Defaut constructor.
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   543
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   544
	public ConnexionListenerAdapter() {
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   545
	}
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   546
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   547
	/**
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   548
	 * {@inheritDoc}
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   549
	 */
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   550
	@Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   551
	public void connectionClosed() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   552
	    Log.d(TAG, "closing connection");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   553
	    mRoster = null;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   554
	    Intent intent = new Intent(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   555
	    intent.putExtra("message", mService.getString(R.string.BeemBroadcastReceiverDisconnect));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   556
	    intent.putExtra("normally", true);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   557
	    mService.sendBroadcast(intent);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   558
	    mService.stopSelf();
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   559
	    resetApplication();
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   560
	}
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   561
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   562
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   563
	 * {@inheritDoc}
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   564
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   565
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   566
	public void connectionClosedOnError(Exception exception) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   567
	    Log.d(TAG, "connectionClosedOnError");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   568
	    mRoster = null;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   569
	    Intent intent = new Intent(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   570
	    intent.putExtra("message", exception.getMessage());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   571
	    mService.sendBroadcast(intent);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   572
	    mService.stopSelf();
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   573
	    resetApplication();
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   574
	}
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   575
402
4684a42ae0ad pas mal de cleannance et aussi du debug sur les decos
Nikita Kozlov <nikita@beem-project.com>
parents: 396
diff changeset
   576
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   577
	 * Connection failed callback.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   578
	 * @param errorMsg smack failure message
402
4684a42ae0ad pas mal de cleannance et aussi du debug sur les decos
Nikita Kozlov <nikita@beem-project.com>
parents: 396
diff changeset
   579
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   580
	public void connectionFailed(String errorMsg) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   581
	    Log.d(TAG, "Connection Failed");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   582
	    final int n = mRemoteConnListeners.beginBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   583
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   584
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   585
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   586
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   587
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   588
			listener.connectionFailed(errorMsg);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   589
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   590
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   591
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   592
		    Log.w(TAG, "Error while triggering remote connection listeners", e);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   593
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   594
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   595
	    mRemoteConnListeners.finishBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   596
	    mService.stopSelf();
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   597
	    resetApplication();
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   598
	}
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 207
diff changeset
   599
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   600
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   601
	 * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   602
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   603
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   604
	public void reconnectingIn(int arg0) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   605
	    Log.d(TAG, "reconnectingIn");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   606
	    final int n = mRemoteConnListeners.beginBroadcast();
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   607
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   608
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   609
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   610
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   611
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   612
			listener.reconnectingIn(arg0);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   613
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   614
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   615
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   616
		    Log.w(TAG, "Error while triggering remote connection listeners", e);
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   617
		}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   618
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   619
	    mRemoteConnListeners.finishBroadcast();
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   620
	}
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   621
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   622
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   623
	 * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   624
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   625
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   626
	public void reconnectionFailed(Exception arg0) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   627
	    Log.d(TAG, "reconnectionFailed");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   628
	    final int r = mRemoteConnListeners.beginBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   629
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   630
	    for (int i = 0; i < r; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   631
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   632
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   633
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   634
			listener.reconnectionFailed();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   635
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   636
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   637
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   638
		    Log.w(TAG, "Error while triggering remote connection listeners", e);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   639
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   640
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   641
	    mRemoteConnListeners.finishBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   642
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   643
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   644
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   645
	 * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   646
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   647
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   648
	public void reconnectionSuccessful() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   649
	    Log.d(TAG, "reconnectionSuccessful");
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   650
	    mApplication.setConnected(true);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   651
	    PacketFilter filter = new PacketFilter() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   652
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   653
		@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   654
		public boolean accept(Packet packet) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   655
		    if (packet instanceof Presence) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   656
			Presence pres = (Presence) packet;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   657
			if (pres.getType() == Presence.Type.subscribe)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   658
			    return true;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   659
		    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   660
		    return false;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   661
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   662
	    };
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   663
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   664
	    mAdaptee.addPacketListener(new PacketListener() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   665
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   666
		@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   667
		public void processPacket(Packet packet) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   668
		    String from = packet.getFrom();
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   669
		    Notification notif = new Notification(android.R.drawable.stat_notify_more, mService.getString(
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   670
			R.string.AcceptContactRequest, from), System.currentTimeMillis());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   671
		    notif.flags = Notification.FLAG_AUTO_CANCEL;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   672
		    Intent intent = new Intent(mService, Subscription.class);
740
a91db9ddc46f Fixes a little bug in contactlist activity.
Da Risk <darisk972@gmail.com>
parents: 708
diff changeset
   673
		    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
a91db9ddc46f Fixes a little bug in contactlist activity.
Da Risk <darisk972@gmail.com>
parents: 708
diff changeset
   674
			.putExtra("from", from);
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   675
		    notif.setLatestEventInfo(mService, from, mService
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   676
			.getString(R.string.AcceptContactRequestFrom, from), PendingIntent.getActivity(mService, 0,
600
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   677
			    intent, PendingIntent.FLAG_ONE_SHOT));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   678
		    int id = packet.hashCode();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   679
		    mService.sendNotification(id, notif);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   680
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   681
	    }, filter);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   682
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   683
	    final int n = mRemoteConnListeners.beginBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   684
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   685
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   686
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   687
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   688
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   689
			listener.reconnectionSuccessful();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   690
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   691
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   692
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   693
		    Log.w(TAG, "Error while triggering remote connection listeners", e);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   694
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   695
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   696
	    mRemoteConnListeners.finishBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   697
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   698
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   699
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   700
    /**
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   701
     * This PacketListener will set a notification when you got a subscribtion request.
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   702
     * @author Da Risk <da_risk@elyzion.net>
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   703
     */
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   704
    private class SubscribePacketListener implements PacketListener {
627
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   705
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   706
	/**
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   707
	 * Constructor.
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   708
	 */
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   709
	public SubscribePacketListener() {
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   710
	}
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   711
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   712
	@Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   713
	public void processPacket(Packet packet) {
627
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   714
	    if (!(packet instanceof Presence))
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   715
		return;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   716
	    Presence p = (Presence) packet;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   717
	    if (p.getType() != Presence.Type.subscribe)
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   718
		return;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   719
	    String from = p.getFrom();
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   720
	    Notification notification = new Notification(android.R.drawable.stat_notify_more, mService.getString(
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   721
		R.string.AcceptContactRequest, from), System.currentTimeMillis());
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   722
	    notification.flags = Notification.FLAG_AUTO_CANCEL;
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   723
	    Intent intent = new Intent(mService, Subscription.class);
848
0d604b75d5ae Send an unsubscribed presence when refusing subscription
Da Risk <darisk972@gmail.com>
parents: 809
diff changeset
   724
	    intent.setData(Contact.makeXmppUri(from));
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   725
	    notification.setLatestEventInfo(mService, from, mService
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   726
		.getString(R.string.AcceptContactRequestFrom, from), PendingIntent.getActivity(mService, 0,
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   727
		    intent, PendingIntent.FLAG_ONE_SHOT));
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   728
	    int id = p.hashCode();
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   729
	    mService.sendNotification(id, notification);
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   730
	}
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   731
    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   732
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   733
    /**
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   734
     * The UserInfoManager listen to XMPP events and update the user information accoldingly.
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   735
     */
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   736
    private class UserInfoManager implements AvatarListener {
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   737
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   738
	/**
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   739
	 * Constructor.
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   740
	 */
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   741
	public UserInfoManager() {
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   742
	}
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   743
885
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   744
	@Override
bfb4326524f8 Check if pep is enabled before showing ui to select an avatar.
Da Risk <darisk972@gmail.com>
parents: 883
diff changeset
   745
	public void onAvatarChange(String from, String avatarId, List<AvatarMetadataExtension.Info> avatarInfos) {
890
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   746
	    String jid = StringUtils.parseBareAddress(mUserInfo.getJid());
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   747
	    String mfrom = StringUtils.parseBareAddress(from);
1f3c76bf3756 Use the user jid send by the server cause it can be different than the user
Da Risk <darisk972@gmail.com>
parents: 885
diff changeset
   748
	    if (jid.equalsIgnoreCase(mfrom)) {
881
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   749
		mUserInfo.setAvatarId(avatarId);
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   750
	    }
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   751
	}
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   752
    }
0ceee1f2b829 Show current avatar in ChangeStatus.
Da Risk <darisk972@gmail.com>
parents: 880
diff changeset
   753
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   754
}