src/com/beem/project/beem/BeemService.java
author Da Risk <darisk972@gmail.com>
Tue, 21 Apr 2009 23:41:09 +0200
changeset 133 190a55f30e11
parent 122 619465682697
child 140 f36049828552
permissions -rw-r--r--
tite modif avant merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     1
package com.beem.project.beem;
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     2
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
     3
import org.jivesoftware.smack.ConnectionConfiguration;
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
     4
import org.jivesoftware.smack.PacketListener;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
     5
import org.jivesoftware.smack.Roster;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
     6
import org.jivesoftware.smack.XMPPConnection;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
     7
import org.jivesoftware.smack.Roster.SubscriptionMode;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
     8
import org.jivesoftware.smack.filter.AndFilter;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
     9
import org.jivesoftware.smack.filter.PacketFilter;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    10
import org.jivesoftware.smack.filter.PacketTypeFilter;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    11
import org.jivesoftware.smack.packet.Packet;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    12
import org.jivesoftware.smack.packet.Presence;
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    13
import org.jivesoftware.smack.proxy.ProxyInfo;
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    14
import org.jivesoftware.smack.proxy.ProxyInfo.ProxyType;
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    15
import android.app.Notification;
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    16
import android.app.NotificationManager;
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    17
import android.app.Service;
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    18
import android.content.Intent;
19
213b84d2e743 Improve the service. It connect with a xmpp server running on the
Da Risk <darisk972@gmail.com>
parents: 18
diff changeset
    19
import android.content.SharedPreferences;
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    20
import android.os.IBinder;
18
1063d4bde1aa commit pour test avec barbu
Da Risk <darisk972@gmail.com>
parents: 17
diff changeset
    21
import android.os.RemoteException;
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    22
import android.util.Log;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    23
67
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    24
import com.beem.project.beem.service.XmppConnectionAdapter;
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    25
import com.beem.project.beem.service.XmppFacade;
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    26
import com.beem.project.beem.service.aidl.IBeemConnectionListener;
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    27
import com.beem.project.beem.service.aidl.IXmppConnection;
67
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    28
import com.beem.project.beem.service.aidl.IXmppFacade;
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    29
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    30
/**
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 33
diff changeset
    31
 * This class is for the Beem service.
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    32
 * The connection to the xmpp server will be made asynchronously when the service
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    33
 * will start.
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    34
 * @author darisk
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    35
 */
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    36
public class BeemService extends Service {
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    37
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    38
    /**
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    39
     * The id to use for status notification.
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    40
     */
118
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 108
diff changeset
    41
    public static final int NOTIFICATION_STATUS_ID = 100;
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    42
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    43
    private NotificationManager mNotificationManager;
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    44
    private XmppConnectionAdapter mConnection;
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    45
    private SharedPreferences mSettings;
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    46
    private String mLogin;
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    47
    private String mPassword;
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    48
    private String mHost;
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    49
    private ConnectionConfiguration mConnectionConfiguration;
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    50
    private ProxyInfo mProxyInfo;
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    51
    private boolean mUseProxy;
67
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    52
    private IXmppFacade.Stub mBind;
21
b9f4a0ef574a Contact List OK.
marseille@marseille-desktop
parents: 19
diff changeset
    53
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    54
    /**
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    55
     * Constructor.
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    56
     */
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    57
    public BeemService() {
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    58
    }
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    59
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    60
    /**
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    61
     * {@inheritDoc}
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    62
     */
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    63
    @Override
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents: 19
diff changeset
    64
    public IBinder onBind(Intent intent) {
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 33
diff changeset
    65
	return mBind;
31
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    66
	// to forbid a client to bind
85faac00d92c Asynchronous service almost perfect.
Da Risk <darisk972@gmail.com>
parents: 29
diff changeset
    67
	// return null;
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    68
    }
21
b9f4a0ef574a Contact List OK.
marseille@marseille-desktop
parents: 19
diff changeset
    69
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    70
    /**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    71
     * {@inheritDoc}
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    72
     */
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents: 19
diff changeset
    73
    @Override
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents: 19
diff changeset
    74
    public void onCreate() {
122
619465682697 ajout de la creation de compte, il faut encore rendre le message un peu plus verbose en cas d'echec.
nikita@nikita-rack
parents: 118
diff changeset
    75
	
29
a49d1556772c Starting work on the Service interface.
Da Risk <darisk972@gmail.com>
parents: 19
diff changeset
    76
	super.onCreate();
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    77
	mSettings = getSharedPreferences(getString(R.string.PreferenceFileName), MODE_PRIVATE);
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    78
	mLogin = mSettings.getString(getString(R.string.PreferenceLoginKey), "");
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    79
	mPassword = mSettings.getString(getString(R.string.PreferencePasswordKey), "");
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    80
	mHost = mSettings.getString(getString(R.string.PreferenceHostKey), "");
101
ccc48305bdeb toujours le probleme du rafraichissement lors de la reception d'un message
Philippe Lago <lago_p@epitech.net>
parents: 99
diff changeset
    81
	mHost = "10.0.2.2";
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    82
	initConnectionConfig();
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    83
	mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
118
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 108
diff changeset
    84
	mConnection = new XmppConnectionAdapter(mConnectionConfiguration, mLogin, mPassword, this);
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    85
	initRosterRequestListener();
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    86
	mBind = new XmppFacade(mConnection, this);
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    87
    }
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    88
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    89
    /**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    90
     * {@inheritDoc}
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    91
     */
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    92
    @Override
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    93
    public void onStart(Intent intent, int startId) {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    94
	try {
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    95
	    mConnection.connectAsync();
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    96
	} catch (RemoteException e) {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    97
	    // TODO Auto-generated catch block
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    98
	    e.printStackTrace();
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    99
	}
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   100
    }
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 33
diff changeset
   101
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   102
    /**
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   103
     * {@inheritDoc}
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   104
     */
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   105
    @Override
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   106
    public void onDestroy() {
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   107
	closeConnection();
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
   108
	mNotificationManager.cancel(NOTIFICATION_STATUS_ID);
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   109
    }
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   110
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   111
    /**
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
   112
     * Show a notification.
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
   113
     * @param id 	the id of the notification.
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
   114
     * @param notif	the notification to show
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
   115
     */
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
   116
    public void sendNotification(int id, Notification notif) {
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
   117
	mNotificationManager.notify(id, notif);
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   118
    }
118
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 108
diff changeset
   119
    
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   120
    /**
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   121
     * Initialise la configuration de la connexion.
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   122
     */
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   123
    private void initConnectionConfig() {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   124
	//TODO mettre a false par defaut et remplacer les valeurs par defaut
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   125
	mUseProxy = mSettings.getBoolean(getString(R.string.PreferenceUseProxy), false);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   126
	if (mUseProxy) {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   127
	    String stype = mSettings.getString(getString(R.string.PreferenceProxyType),
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   128
		getString(R.string.PreferenceProxyTypeHttp));
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   129
	    String phost = mSettings.getString(getString(R.string.PreferenceProxyHost), "");
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   130
	    String puser = mSettings.getString(getString(R.string.PreferenceProxyUser), "");
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   131
	    String ppass = mSettings.getString(getString(R.string.PreferenceProxyPassword), "");
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   132
	    int pport =  mSettings.getInt(getString(R.string.PreferenceProxyPort), 3128);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   133
	    ProxyInfo.ProxyType type = ProxyType.valueOf(stype);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   134
	    mProxyInfo = new ProxyInfo(type, phost, pport, puser, ppass);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   135
	    mConnectionConfiguration = new ConnectionConfiguration(mHost, mProxyInfo);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   136
	} else {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   137
	    mConnectionConfiguration = new ConnectionConfiguration(mHost);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   138
	}
133
190a55f30e11 tite modif avant merge
Da Risk <darisk972@gmail.com>
parents: 122
diff changeset
   139
	mConnectionConfiguration.setDebuggerEnabled(false);
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   140
	mConnectionConfiguration.setSendPresence(true);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   141
    }
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   142
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   143
    private void initRosterRequestListener() {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   144
	Roster.setDefaultSubscriptionMode(SubscriptionMode.manual);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   145
	final XMPPConnection con =  mConnection.getAdaptee();
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   146
	try {
95
da27ef678b0f I am thinking about a correct way to handle the PresenceRequestPacketFilter
Da Risk <darisk972@gmail.com>
parents: 94
diff changeset
   147
	    // l'ajout d'un packet listener ne peut etre effectuer que lorsqu'on est connecte au serveur
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   148
	    mConnection.addConnectionListener(new IBeemConnectionListener.Stub() {
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   149
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   150
		@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   151
		public void reconnectionSuccessful() throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   152
		    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   153
		    PacketFilter filter = new PacketFilter() {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   154
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   155
			@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   156
			public boolean accept(Packet packet) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   157
			    if (packet instanceof Presence) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   158
				Presence pres = (Presence) packet;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   159
				if (pres.getType() == Presence.Type.subscribe)
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   160
				    return true;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   161
			    }
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   162
			    return false;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   163
			}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   164
		    };
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   165
		    con.addPacketListener(new PacketListener() {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   166
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   167
			@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   168
			public void processPacket(Packet packet) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   169
			    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   170
			    Log.i("TEST", "Une demande recue");
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   171
			}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   172
		    }, filter);
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   173
		}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   174
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   175
		@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   176
		public void reconnectionFailed() throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   177
		    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   178
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   179
		}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   180
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   181
		@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   182
		public void reconnectingIn(int seconds) throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   183
		    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   184
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   185
		}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   186
122
619465682697 ajout de la creation de compte, il faut encore rendre le message un peu plus verbose en cas d'echec.
nikita@nikita-rack
parents: 118
diff changeset
   187
		
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   188
		@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   189
		public void onConnect() throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   190
		    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   191
		    PacketFilter filter = new PacketFilter() {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   192
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   193
			@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   194
			public boolean accept(Packet packet) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   195
			    if (packet instanceof Presence) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   196
				Presence pres = (Presence) packet;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   197
				if (pres.getType() == Presence.Type.subscribe)
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   198
				    return true;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   199
			    }
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   200
			    return false;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   201
			}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   202
		    };
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   203
		    con.addPacketListener(new PacketListener() {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   204
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   205
			@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   206
			public void processPacket(Packet packet) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   207
			    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   208
			    Log.i("TEST", "Une demande recue");
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   209
			}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   210
		    }, filter);
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   211
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   212
		}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   213
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   214
		@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   215
		public void connectionClosedOnError() throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   216
		    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   217
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   218
		}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   219
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   220
		@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   221
		public void connectionClosed() throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   222
		    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   223
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   224
		}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   225
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   226
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   227
		@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   228
		public void connectionFailed(String errorMsg) throws RemoteException {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   229
		    // TODO Auto-generated method stub
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   230
		    
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   231
		}
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   232
	    });
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   233
	} catch (RemoteException e) {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   234
	    // TODO Auto-generated catch block
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   235
	    e.printStackTrace();
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   236
	}
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   237
    }
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   238
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   239
    /**
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   240
     * Close the connection to the xmpp server.
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   241
     */
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   242
    private void closeConnection() {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   243
	if (mConnection != null)
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   244
	    mConnection.disconnect();
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   245
    }
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   246
118
8bbe46055004 fix some bugs. When you receive a new chat, a notification appears.
Da Risk <darisk972@gmail.com>
parents: 108
diff changeset
   247
    
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   248
}