src/com/beem/project/beem/service/XmppConnectionAdapter.java
author Nikita Kozlov <nikita@mbdsys.com>
Sun, 05 Dec 2010 18:45:47 +0100
changeset 811 6cbb9b3117b7
parent 809 2655ee22df9f
child 848 0d604b75d5ae
permissions -rwxr-xr-x
merge
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;
123
2c4be059fc8b debug du discovery
nikita@nikita-rack
parents: 118
diff changeset
    56
import org.jivesoftware.smackx.ChatStateManager;
35
8006e9ee734e ajout d'une fonction de SeviceDiscovery
nikita@nikita-rack
parents: 31
diff changeset
    57
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
    58
import org.jivesoftware.smackx.packet.DiscoverInfo;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 207
diff changeset
    59
375
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    60
import android.app.Notification;
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    61
import android.app.PendingIntent;
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
    62
import android.content.Context;
375
Nikita Kozlov <nikita@beem-project.com>
parents: 360
diff changeset
    63
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
    64
import android.content.SharedPreferences;
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
    65
import android.os.RemoteCallbackList;
30
7057a9d3657a Add some adapter for smack classes
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    66
import android.os.RemoteException;
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    67
import android.os.Environment;
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;
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    71
import java.io.File;
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;
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    86
import com.beem.project.beem.smack.avatar.FileAvatarCache;
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
    87
import com.beem.project.beem.smack.avatar.AvatarManager;
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;
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   116
    private AvatarManager mAvatarManager;
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   117
    private PepSubManager mPepManager;
704
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 696
diff changeset
   118
    private final RemoteCallbackList<IBeemConnectionListener> mRemoteConnListeners =
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 696
diff changeset
   119
	new RemoteCallbackList<IBeemConnectionListener>();
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   120
    private final SubscribePacketListener mSubscribePacketListener = new SubscribePacketListener();
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   121
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   122
    private final ConnexionListenerAdapter mConListener = new ConnexionListenerAdapter();
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   123
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   124
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   125
     * Constructor.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   126
     * @param config Configuration to use in order to connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   127
     * @param login login to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   128
     * @param password password to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   129
     * @param service the background service associated with the connection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   130
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   131
    public XmppConnectionAdapter(final ConnectionConfiguration config, final String login, final String password,
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   132
	final BeemService service) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   133
	this(new XMPPConnection(config), login, password, service);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   134
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   135
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   136
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   137
     * Constructor.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   138
     * @param serviceName name of the service to connect to
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   139
     * @param login login to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   140
     * @param password password to use on connect
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   141
     * @param service the background service associated with the connection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   142
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   143
    public XmppConnectionAdapter(final String serviceName, final String login, final String password,
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   144
	final BeemService service) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   145
	this(new XMPPConnection(serviceName), login, password, service);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   146
    }
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   147
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   148
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   149
     * Constructor.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   150
     * @param con The connection to adapt
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   151
     * @param login The login to use
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   152
     * @param password The password to use
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   153
     * @param service the background service associated with the connection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   154
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   155
    public XmppConnectionAdapter(final XMPPConnection con, final String login, final String password,
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   156
	final BeemService service) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   157
	mAdaptee = con;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   158
	PrivacyListManager.getInstanceFor(mAdaptee);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   159
	mLogin = login;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   160
	mPassword = password;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   161
	mService = service;
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   162
	Context ctx = mService.getApplicationContext();
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   163
	if (ctx instanceof BeemApplication) {
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   164
	    mApplication = (BeemApplication) ctx;
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   165
	}
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   166
	SharedPreferences pref = mService.getServicePreference();
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   167
	try {
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   168
	    mPreviousPriority = Integer.parseInt(pref.getString("settings_key_priority", "0"));
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   169
	    mResource = pref.getString("settings_key_resource", "BEEM");
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   170
	} catch (NumberFormatException ex) {
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   171
	    mPreviousPriority = 0;
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   172
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   173
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   174
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   175
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   176
     * {@inheritDoc}
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
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   179
    public void addConnectionListener(IBeemConnectionListener listen) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   180
	if (listen != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   181
	    mRemoteConnListeners.register(listen);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   182
    }
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   183
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   184
    @Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   185
    public boolean connect() throws RemoteException {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   186
	if (mAdaptee.isConnected())
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   187
	    return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   188
	else {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   189
	    try {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   190
		mAdaptee.connect();
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   191
		mAdaptee.addConnectionListener(mConListener);
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   192
		return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   193
	    } catch (XMPPException e) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   194
		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
   195
		try {
664
Da Risk <darisk972@gmail.com>
parents: 658
diff changeset
   196
		    //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
   197
		    String str = mService.getResources().getString(
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   198
			mService.getResources().getIdentifier(
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   199
			    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
   200
		    mErrorMsg = str;
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   201
		} catch (NullPointerException e2) {
658
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   202
		    if (!"".equals(e.getMessage()))
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   203
			mErrorMsg = e.getMessage();
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   204
		    else
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   205
			mErrorMsg = e.toString();
baaee1877b2b add more explicit error message during login
Nikita Kozlov <nikita@beem-project.com>
parents: 627
diff changeset
   206
		}
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   207
	    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   208
	    return false;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   209
	}
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   210
    }
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
    @Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   213
    public boolean login() throws RemoteException {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   214
	if (mAdaptee.isAuthenticated())
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   215
	    return true;
752
0e16dee2bd4c use a LevelListDrawable for status icon
Da Risk <darisk972@gmail.com>
parents: 708
diff changeset
   216
	if (!mAdaptee.isConnected())
0e16dee2bd4c use a LevelListDrawable for status icon
Da Risk <darisk972@gmail.com>
parents: 708
diff changeset
   217
	    return false;
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   218
	try {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   219
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   220
	    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
   221
	    // supporte
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   222
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   223
	    PacketFilter filter = new PacketFilter() {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   224
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   225
		@Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   226
		public boolean accept(Packet packet) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   227
		    if (packet instanceof Presence) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   228
			Presence pres = (Presence) packet;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   229
			if (pres.getType() == Presence.Type.subscribe)
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   230
			    return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   231
		    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   232
		    return false;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   233
		}
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   234
	    };
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
	    mAdaptee.addPacketListener(mSubscribePacketListener, filter);
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   237
793
4fb9df09ffdf #286 : Initial implementation of XEP-0115 : Entity Capabilities
Da Risk <darisk972@gmail.com>
parents: 762
diff changeset
   238
	    mAdaptee.login(mLogin, mPassword, mResource);
4fb9df09ffdf #286 : Initial implementation of XEP-0115 : Entity Capabilities
Da Risk <darisk972@gmail.com>
parents: 762
diff changeset
   239
	    mChatManager = new BeemChatManager(mAdaptee.getChatManager(), mService);
4fb9df09ffdf #286 : Initial implementation of XEP-0115 : Entity Capabilities
Da Risk <darisk972@gmail.com>
parents: 762
diff changeset
   240
	    mPrivacyListManager = new PrivacyListManagerAdapter(PrivacyListManager.getInstanceFor(mAdaptee));
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   241
	    mService.resetStatus();
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   242
	    mService.initJingle(mAdaptee);
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   243
	    discoverServerFeatures();
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   244
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   245
	    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
   246
	    mApplication.setConnected(true);
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   247
	    changeStatus(Status.CONTACT_STATUS_AVAILABLE, mService.getServicePreference().getString("status_text", ""));
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   248
	    return true;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   249
	} catch (XMPPException e) {
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   250
	    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
   251
	    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
   252
	    return false;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   253
	}
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   254
    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   255
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   256
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   257
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   258
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   259
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   260
    public final void connectAsync() throws RemoteException {
543
28d200758114 Le bouton cancel marche
Da Risk <darisk972@gmail.com>
parents: 532
diff changeset
   261
	if (mAdaptee.isConnected() || mAdaptee.isAuthenticated())
28d200758114 Le bouton cancel marche
Da Risk <darisk972@gmail.com>
parents: 532
diff changeset
   262
	    return;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   263
	Thread t = new Thread(new Runnable() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   264
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   265
	    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   266
	    public void run() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   267
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   268
		    connectSync();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   269
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   270
		    Log.e(TAG, "Error while connecting asynchronously", e);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   271
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   272
	    }
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
	t.start();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   275
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   276
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   277
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   278
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   279
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   280
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   281
    public boolean connectSync() throws RemoteException {
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   282
	if (connect())
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   283
	    return login();
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   284
	return false;
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
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   288
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   289
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   290
    @Override
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   291
    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
   292
	Presence pres = new Presence(Presence.Type.available);
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   293
	String m;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   294
	if (msg != null)
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   295
	    m = msg;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   296
	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
   297
	    m = mPreviousStatus;
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   298
	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
   299
	mPreviousStatus = m;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   300
	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
   301
	if (mode != null) {
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   302
	    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
   303
	    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
   304
	} else {
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   305
	    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
   306
	}
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   307
	int p = priority;
600
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   308
	if (priority < SMACK_PRIORITY_MIN)
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   309
	    p = SMACK_PRIORITY_MIN;
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   310
	if (priority > SMACK_PRIORITY_MAX)
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   311
	    p = SMACK_PRIORITY_MAX;
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   312
	mPreviousPriority = p;
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   313
	pres.setPriority(p);
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   314
	mAdaptee.sendPacket(pres);
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   315
	updateNotification(m);
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   316
    }
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   317
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   318
    /**
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   319
     * {@inheritDoc}
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   320
     */
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   321
    @Override
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   322
    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
   323
	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
   324
    }
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   325
809
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   326
    /**
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   327
     * Get the AvatarManager of this connection.
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   328
     *
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   329
     * @return the AvatarManager or null if there is not
2655ee22df9f checkstyle and javadoc
Da Risk <darisk972@gmail.com>
parents: 808
diff changeset
   330
     */
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   331
    public AvatarManager getAvatarManager() {
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   332
	return mAvatarManager;
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   333
    }
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   334
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   335
    /**
683
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   336
     * get the previous status.
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   337
     * @return previous status.
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   338
     */
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   339
    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
   340
	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
   341
    }
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   342
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   343
    /**
683
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   344
     * get the previous mode.
ec60b1bbeb79 some checkstyle
nikita@nikita-laptop
parents: 682
diff changeset
   345
     * @return previous mode.
682
9a7a89e5e966 some checkstyle
nikita@nikita-laptop
parents: 678
diff changeset
   346
     */
678
d1a599ccf879 Adding of an 'Auto-Away' option, there is still some more work/translation to do
nikita@nikita-laptop
parents: 666
diff changeset
   347
    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
   348
	return mPreviousMode;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   349
    }
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   350
530
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   351
    /**
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   352
     * Update the notification for the Beem status.
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   353
     * @param text the text to display.
25f834f8c264 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 526
diff changeset
   354
     */
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   355
    private void updateNotification(String text) {
528
a77a7b4e7f34 ClassCastException resolved, PrivacyList creation fixed.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 526
diff changeset
   356
	Notification mStatusNotification;
524
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   357
	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
   358
	    .currentTimeMillis());
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   359
	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
   360
	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
   361
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   362
	mStatusNotification.setLatestEventInfo(mService, "Beem Status", text, PendingIntent.getActivity(mService, 0,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   363
	    new Intent(mService, ChangeStatus.class), 0));
762
56d44e5c7081 Many little modifications.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   364
	// bypass the preferences for notification
56d44e5c7081 Many little modifications.
Da Risk <darisk972@gmail.com>
parents: 759
diff changeset
   365
	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
   366
    }
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   367
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   368
    /**
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   369
     * {@inheritDoc}
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   370
     */
e1a9ba4611dc Ajout d'options pour definir sa ressource et sa priorité
Da Risk <darisk972@gmail.com>
parents: 506
diff changeset
   371
    @Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   372
    public boolean disconnect() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   373
	if (mAdaptee != null && mAdaptee.isConnected())
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   374
	    mAdaptee.disconnect();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   375
	return true;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   376
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   377
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   378
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   379
     * Get the Smack XmppConnection.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   380
     * @return Smack XmppConnection
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   381
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   382
    public XMPPConnection getAdaptee() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   383
	return mAdaptee;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   384
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   385
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
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   388
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   389
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   390
    public IChatManager getChatManager() throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   391
	return mChatManager;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   392
    }
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
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   396
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   397
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   398
    public IRoster getRoster() throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   399
	if (mRoster != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   400
	    return mRoster;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   401
	Roster adap = mAdaptee.getRoster();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   402
	if (adap == null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   403
	    return null;
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   404
	mRoster = new RosterAdapter(adap, mService, mAvatarManager);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   405
	return mRoster;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   406
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   407
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   408
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   409
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   410
     * 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
   411
     * @return true when successfully authenticated
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   412
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   413
    public boolean isAuthentificated() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   414
	return mAdaptee.isAuthenticated();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   415
    }
262
0548b407992a debut de la gestion de la PrivacyList
nikita@localhost
parents: 261 258
diff changeset
   416
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   417
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   418
     * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   419
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   420
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   421
    public void removeConnectionListener(IBeemConnectionListener listen) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   422
	if (listen != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   423
	    mRemoteConnListeners.unregister(listen);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   424
    }
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
    /**
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
   427
     * PrivacyListManagerAdapter mutator.
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   428
     * @param privacyListManager the privacy list manager
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   429
     */
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
   430
    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
   431
	this.mPrivacyListManager = privacyListManager;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   432
    }
269
d78115a6b45b Feature #183
nikita@localhost
parents: 262
diff changeset
   433
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   434
    /**
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
   435
     * PrivacyListManagerAdapter accessor.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   436
     * @return the mPrivacyList
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   437
     */
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
   438
    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
   439
	return mPrivacyListManager;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   440
    }
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
    /**
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   443
     * {@inheritDoc}
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   444
     */
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   445
    @Override
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   446
    public String getErrorMessage() {
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   447
	return mErrorMsg;
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   448
    }
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   449
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   450
    /**
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   451
     * Initialize the features provided by beem.
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   452
     */
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   453
    private void initFeatures() {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   454
	ServiceDiscoveryManager.setIdentityName("Beem");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   455
	ServiceDiscoveryManager.setIdentityType("phone");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   456
	ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   457
	if (sdm == null)
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   458
	    sdm = new ServiceDiscoveryManager(mAdaptee);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   459
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   460
	sdm.addFeature("http://jabber.org/protocol/disco#info");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   461
	sdm.addFeature("jabber:iq:privacy");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   462
	sdm.addFeature("http://jabber.org/protocol/caps");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   463
	sdm.addFeature("urn:xmpp:avatar:metadata");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   464
	sdm.addFeature("urn:xmpp:avatar:metadata+notify");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   465
	sdm.addFeature("urn:xmpp:avatar:data");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   466
	sdm.addFeature("http://jabber.org/protocol/nick");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   467
	sdm.addFeature("http://jabber.org/protocol/nick+notify");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   468
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   469
	mChatStateManager = ChatStateManager.getInstance(mAdaptee);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   470
	BeemCapsManager caps = new BeemCapsManager(sdm, mAdaptee, mService);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   471
	caps.setNode("http://www.beem-project.com");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   472
    }
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   473
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   474
    /**
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   475
     * Discover the features provided by the server.
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
    private void discoverServerFeatures() {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   478
	try {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   479
	    // jid et server
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   480
	    ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(mAdaptee);
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   481
	    DiscoverInfo info = sdm.discoverInfo("elyzion.net");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   482
	    Iterator<DiscoverInfo.Identity> it = info.getIdentities();
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   483
	    while (it.hasNext()) {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   484
		DiscoverInfo.Identity identity = it.next();
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   485
		if ("pubsub".equals(identity.getCategory()) && "pep".equals(identity.getType())) {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   486
		    initPEP();
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   487
		}
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   488
	    }
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   489
	} catch (XMPPException e) {
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   490
	    // No Pep
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
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
     * Initialize PEP.
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   496
     */
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   497
    private void initPEP() {
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   498
	// Enable pep sending
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   499
	// API 8
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   500
	// mService.getExternalCacheDir()
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   501
	mPepManager = new PepSubManager(mAdaptee);
802
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   502
	File cacheDir = Environment.getExternalStorageDirectory();
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   503
	cacheDir = new File(cacheDir, "/Android/data/com.beem.project.beem/cache/");
20308ad77837 Checkstyle and javadoc.
Da Risk <darisk972@gmail.com>
parents: 800
diff changeset
   504
	AvatarCache avatarCache = new FileAvatarCache(cacheDir);
808
98d220b7fe9d Add a way to display the avatar of a contact.
Da Risk <darisk972@gmail.com>
parents: 807
diff changeset
   505
	mAvatarManager = new AvatarManager(mAdaptee, mPepManager, avatarCache, true);
799
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   506
    }
b2a796654230 Implementation of XEP-084 which loads avatar from http.
Da Risk <darisk972@gmail.com>
parents: 795
diff changeset
   507
545
0de3d7f3fa81 Debut du nouvel activite de Login.
Da Risk <darisk972@gmail.com>
parents: 543
diff changeset
   508
    /**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   509
     * 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
   510
     * @author darisk
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   511
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   512
    private class ConnexionListenerAdapter implements ConnectionListener {
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   513
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   514
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   515
	 * Defaut constructor.
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   516
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   517
	public ConnexionListenerAdapter() {
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   518
	}
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   519
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   520
	/**
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   521
	 * {@inheritDoc}
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   522
	 */
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   523
	@Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   524
	public void connectionClosed() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   525
	    Log.d(TAG, "closing connection");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   526
	    mRoster = null;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   527
	    Intent intent = new Intent(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   528
	    intent.putExtra("message", mService.getString(R.string.BeemBroadcastReceiverDisconnect));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   529
	    intent.putExtra("normally", true);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   530
	    mService.sendBroadcast(intent);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   531
	    mService.stopSelf();
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   532
	    mApplication.setConnected(false);
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   533
	}
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   534
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   535
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   536
	 * {@inheritDoc}
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 36
diff changeset
   537
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   538
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   539
	public void connectionClosedOnError(Exception exception) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   540
	    Log.d(TAG, "connectionClosedOnError");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   541
	    mRoster = null;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   542
	    Intent intent = new Intent(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   543
	    intent.putExtra("message", exception.getMessage());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   544
	    mService.sendBroadcast(intent);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   545
	    mService.stopSelf();
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   546
	    mApplication.setConnected(false);
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   547
	}
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   548
402
4684a42ae0ad pas mal de cleannance et aussi du debug sur les decos
Nikita Kozlov <nikita@beem-project.com>
parents: 396
diff changeset
   549
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   550
	 * Connection failed callback.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   551
	 * @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
   552
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   553
	public void connectionFailed(String errorMsg) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   554
	    Log.d(TAG, "Connection Failed");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   555
	    final int n = mRemoteConnListeners.beginBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   556
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   557
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   558
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   559
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   560
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   561
			listener.connectionFailed(errorMsg);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   562
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   563
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   564
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   565
		    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
   566
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   567
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   568
	    mRemoteConnListeners.finishBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   569
	    mService.stopSelf();
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   570
	    mApplication.setConnected(false);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   571
	}
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 207
diff changeset
   572
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   573
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   574
	 * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   575
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   576
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   577
	public void reconnectingIn(int arg0) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   578
	    Log.d(TAG, "reconnectingIn");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   579
	    final int n = mRemoteConnListeners.beginBroadcast();
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   580
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   581
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   582
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   583
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   584
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   585
			listener.reconnectingIn(arg0);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   586
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   587
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   588
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   589
		    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
   590
		}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   591
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   592
	    mRemoteConnListeners.finishBroadcast();
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   593
	}
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 30
diff changeset
   594
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   595
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   596
	 * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   597
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   598
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   599
	public void reconnectionFailed(Exception arg0) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   600
	    Log.d(TAG, "reconnectionFailed");
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   601
	    final int r = mRemoteConnListeners.beginBroadcast();
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
	    for (int i = 0; i < r; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   604
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   605
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   606
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   607
			listener.reconnectionFailed();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   608
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   609
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   610
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   611
		    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
   612
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   613
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   614
	    mRemoteConnListeners.finishBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   615
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   616
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   617
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   618
	 * {@inheritDoc}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   619
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   620
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   621
	public void reconnectionSuccessful() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   622
	    Log.d(TAG, "reconnectionSuccessful");
685
bd5bddda04dd Improve the launching of Beem when already connected.
Da Risk <darisk972@gmail.com>
parents: 666
diff changeset
   623
	    mApplication.setConnected(true);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   624
	    PacketFilter filter = new PacketFilter() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   625
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   626
		@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   627
		public boolean accept(Packet packet) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   628
		    if (packet instanceof Presence) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   629
			Presence pres = (Presence) packet;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   630
			if (pres.getType() == Presence.Type.subscribe)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   631
			    return true;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   632
		    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   633
		    return false;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   634
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   635
	    };
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   636
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   637
	    mAdaptee.addPacketListener(new PacketListener() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   638
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   639
		@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   640
		public void processPacket(Packet packet) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   641
		    String from = packet.getFrom();
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   642
		    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
   643
			R.string.AcceptContactRequest, from), System.currentTimeMillis());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   644
		    notif.flags = Notification.FLAG_AUTO_CANCEL;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   645
		    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
   646
		    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
a91db9ddc46f Fixes a little bug in contactlist activity.
Da Risk <darisk972@gmail.com>
parents: 708
diff changeset
   647
			.putExtra("from", from);
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   648
		    notif.setLatestEventInfo(mService, from, mService
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 559
diff changeset
   649
			.getString(R.string.AcceptContactRequestFrom, from), PendingIntent.getActivity(mService, 0,
600
53aef2227209 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   650
			    intent, PendingIntent.FLAG_ONE_SHOT));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   651
		    int id = packet.hashCode();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   652
		    mService.sendNotification(id, notif);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   653
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   654
	    }, filter);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   655
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   656
	    final int n = mRemoteConnListeners.beginBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   657
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   658
	    for (int i = 0; i < n; i++) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   659
		IBeemConnectionListener listener = mRemoteConnListeners.getBroadcastItem(i);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   660
		try {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   661
		    if (listener != null)
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   662
			listener.reconnectionSuccessful();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   663
		} catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   664
		    // The RemoteCallbackList will take care of removing the
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   665
		    // dead listeners.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   666
		    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
   667
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   668
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   669
	    mRemoteConnListeners.finishBroadcast();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   670
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   671
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   672
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   673
    /**
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   674
     * 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
   675
     * @author Da Risk <da_risk@elyzion.net>
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   676
     */
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   677
    private class SubscribePacketListener implements PacketListener {
627
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   678
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   679
	/**
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   680
	 * Constructor.
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   681
	 */
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   682
	public SubscribePacketListener() {
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   683
	}
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   684
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   685
	@Override
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   686
	public void processPacket(Packet packet) {
627
099e4279bf06 Javadoc
Da Risk <darisk972@gmail.com>
parents: 625
diff changeset
   687
	    if (!(packet instanceof Presence))
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   688
		return;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   689
	    Presence p = (Presence) packet;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   690
	    if (p.getType() != Presence.Type.subscribe)
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   691
		return;
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   692
	    String from = p.getFrom();
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   693
	    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
   694
		R.string.AcceptContactRequest, from), System.currentTimeMillis());
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   695
	    notification.flags = Notification.FLAG_AUTO_CANCEL;
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   696
	    Intent intent = new Intent(mService, Subscription.class);
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   697
	    intent.putExtra("from", from);
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   698
	    notification.setLatestEventInfo(mService, from, mService
625
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   699
		.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
   700
		    intent, PendingIntent.FLAG_ONE_SHOT));
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   701
	    int id = p.hashCode();
708
915b3dde9851 adding notification preference for invite notifications
Nikita Kozlov <nikita@beem-project.com>
parents: 704
diff changeset
   702
	    mService.sendNotification(id, notification);
625
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
    }
fd6d31c4460e Create an extern AsyncTask for the Login.
Da Risk <darisk972@gmail.com>
parents: 600
diff changeset
   705
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   706
}