src/com/beem/project/beem/BeemService.java
author Marseille
Tue, 23 Jun 2009 15:43:49 +0200
changeset 275 5a07bf00b2f8
parent 271 e5040078e3bb
child 283 ecd2cb5f618e
permissions -rw-r--r--
Suppression BeemApplication ! Correction qqls warning
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.PacketFilter;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
     9
import org.jivesoftware.smack.packet.Packet;
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    10
import org.jivesoftware.smack.packet.Presence;
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    11
import org.jivesoftware.smack.proxy.ProxyInfo;
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    12
import org.jivesoftware.smack.proxy.ProxyInfo.ProxyType;
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
    13
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    14
import android.app.Notification;
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    15
import android.app.NotificationManager;
147
472d56ba57c6 debut de la subscription
nikita@nikita-rack
parents: 140
diff changeset
    16
import android.app.PendingIntent;
17
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;
216
5d168a9b6b82 Correction bug textview.
marseille@marseille-desktop
parents: 212
diff changeset
    23
import android.widget.ArrayAdapter;
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    24
67
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    25
import com.beem.project.beem.service.XmppConnectionAdapter;
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 55
diff changeset
    26
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
    27
import com.beem.project.beem.service.aidl.IBeemConnectionListener;
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;
147
472d56ba57c6 debut de la subscription
nikita@nikita-rack
parents: 140
diff changeset
    29
import com.beem.project.beem.ui.Subscription;
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    30
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    31
/**
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    32
 * This class is for the Beem service. The connection to the xmpp server will be made asynchronously
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    33
 * when the service will start.
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    34
 * 
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    35
 * @author darisk
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    36
 */
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    37
public class BeemService extends Service {
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    38
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    39
    /**
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    40
     * 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
    41
     */
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    42
    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
    43
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    44
    private NotificationManager     mNotificationManager;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    45
    private XmppConnectionAdapter   mConnection;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    46
    private SharedPreferences       mSettings;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    47
    private String                  mLogin;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    48
    private String                  mPassword;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    49
    private String                  mHost;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    50
    private String                  mService;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    51
    private int                     mPort;
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 72
diff changeset
    52
    private ConnectionConfiguration mConnectionConfiguration;
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    53
    private ProxyInfo               mProxyInfo;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    54
    private boolean                 mUseProxy;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    55
    private IXmppFacade.Stub        mBind;
21
b9f4a0ef574a Contact List OK.
marseille@marseille-desktop
parents: 19
diff changeset
    56
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    57
    /**
72
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    58
     * Constructor.
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
    public BeemService() {
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    61
    }
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    62
cdedc3a25d39 Show a progress dialog during connection with the server
Da Risk <darisk972@gmail.com>
parents: 67
diff changeset
    63
    /**
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    64
     * Close the connection to the xmpp server.
55
66732dd2cb77 Add an interface for sending im message.
Da Risk <darisk972@gmail.com>
parents: 42
diff changeset
    65
     */
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    66
    private void closeConnection() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    67
	if (mConnection != null)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    68
	    mConnection.disconnect();
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    69
    }
147
472d56ba57c6 debut de la subscription
nikita@nikita-rack
parents: 140
diff changeset
    70
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    71
    /**
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    72
     * Initialise la configuration de la connexion.
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    73
     */
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    74
    private void initConnectionConfig() {
193
marseille@marseille-desktop
parents: 190
diff changeset
    75
	// TODO mettre a false par defaut et remplacer les valeurs par defaut
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    76
	mUseProxy = mSettings.getBoolean(getString(R.string.settings_key_proxy_use), false);
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    77
	if (mUseProxy) {
216
5d168a9b6b82 Correction bug textview.
marseille@marseille-desktop
parents: 212
diff changeset
    78
	    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.proxy_types,
5d168a9b6b82 Correction bug textview.
marseille@marseille-desktop
parents: 212
diff changeset
    79
		    android.R.layout.simple_spinner_item);
5d168a9b6b82 Correction bug textview.
marseille@marseille-desktop
parents: 212
diff changeset
    80
	    int pos = mSettings.getInt(getString(R.string.settings_key_proxy_type), 0);
5d168a9b6b82 Correction bug textview.
marseille@marseille-desktop
parents: 212
diff changeset
    81
	    String stype = adapter.getItem(pos).toString();
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    82
	    String phost = mSettings.getString(getString(R.string.settings_key_proxy_server), "");
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    83
	    String puser = mSettings.getString(getString(R.string.settings_key_proxy_username), "");
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    84
	    String ppass = mSettings.getString(getString(R.string.settings_key_proxy_password), "");
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
    85
	    int pport = Integer.parseInt(mSettings.getString(getString(R.string.settings_key_proxy_port), "1080"));
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    86
	    ProxyInfo.ProxyType type = ProxyType.valueOf(stype);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    87
	    mProxyInfo = new ProxyInfo(type, phost, pport, puser, ppass);
193
marseille@marseille-desktop
parents: 190
diff changeset
    88
	    if (mService != null)
marseille@marseille-desktop
parents: 190
diff changeset
    89
		mConnectionConfiguration = new ConnectionConfiguration(mHost, mPort, mService, mProxyInfo);
marseille@marseille-desktop
parents: 190
diff changeset
    90
	    else
marseille@marseille-desktop
parents: 190
diff changeset
    91
		mConnectionConfiguration = new ConnectionConfiguration(mHost, mPort, mProxyInfo);
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    92
	} else {
193
marseille@marseille-desktop
parents: 190
diff changeset
    93
	    if (mService != null)
marseille@marseille-desktop
parents: 190
diff changeset
    94
		mConnectionConfiguration = new ConnectionConfiguration(mHost, mPort, mService);
marseille@marseille-desktop
parents: 190
diff changeset
    95
	    else
marseille@marseille-desktop
parents: 190
diff changeset
    96
		mConnectionConfiguration = new ConnectionConfiguration(mHost, mPort);
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    97
	}
133
190a55f30e11 tite modif avant merge
Da Risk <darisk972@gmail.com>
parents: 122
diff changeset
    98
	mConnectionConfiguration.setDebuggerEnabled(false);
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
    99
	mConnectionConfiguration.setSendPresence(true);
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   100
    }
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   101
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   102
    private void initRosterRequestListener() {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   103
	Roster.setDefaultSubscriptionMode(SubscriptionMode.manual);
193
marseille@marseille-desktop
parents: 190
diff changeset
   104
	final XMPPConnection con = mConnection.getAdaptee();
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   105
	try {
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   106
	    // l'ajout d'un packet listener ne peut etre effectuer que lorsqu'on est connecte au
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   107
	    // serveur
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   108
	    mConnection.addConnectionListener(new IBeemConnectionListener.Stub() {
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   109
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   110
		@Override
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   111
		public void connectionClosed() throws RemoteException {
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
   112
		    Log.i("BeemService", "connectionClosed()");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   113
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   114
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   115
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   116
		@Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   117
		public void connectionClosedOnError() throws RemoteException {
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
   118
		    Log.i("BeemService", "connectionClosedOnError()");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   119
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   120
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   121
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   122
		@Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   123
		public void connectionFailed(String errorMsg) throws RemoteException {
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
   124
		    Log.i("BeemService", "connectionFailed()");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   125
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   126
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   127
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   128
		@Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   129
		public void onConnect() throws RemoteException {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   130
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   131
		    PacketFilter filter = new PacketFilter() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   132
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   133
			@Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   134
			public boolean accept(Packet packet) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   135
			    if (packet instanceof Presence) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   136
				Presence pres = (Presence) packet;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   137
				if (pres.getType() == Presence.Type.subscribe)
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   138
				    return true;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   139
			    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   140
			    return false;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   141
			}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   142
		    };
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   143
		    con.addPacketListener(new PacketListener() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   144
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   145
			@Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   146
			public void processPacket(Packet packet) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   147
			    String from = packet.getFrom();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   148
			    Notification notif = new Notification(com.beem.project.beem.R.drawable.signal,
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   149
				    "Demande d'ajout", System.currentTimeMillis());
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   150
			    notif.defaults = Notification.DEFAULT_ALL;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   151
			    notif.flags = Notification.FLAG_AUTO_CANCEL;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   152
			    Intent intent = new Intent(BeemService.this, Subscription.class);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   153
			    intent.putExtra("from", from);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   154
			    notif
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   155
				    .setLatestEventInfo(BeemService.this, from, "demande d'ajout de " + from,
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   156
				            PendingIntent.getActivity(BeemService.this, 0, intent,
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   157
				                    PendingIntent.FLAG_ONE_SHOT));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   158
			    int id = packet.hashCode();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   159
			    sendNotification(id, notif);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   160
			}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   161
		    }, filter);
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
   162
		    Log.i("BeemService", "onConnect()");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   163
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   164
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   165
		@Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   166
		public void reconnectingIn(int seconds) throws RemoteException {
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
   167
		    Log.i("BeemService", "reconnectingIn()");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   168
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   169
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   170
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   171
		@Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   172
		public void reconnectionFailed() throws RemoteException {
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
   173
		    Log.i("BeemService", "reconnectionFailed()");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   174
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   175
		}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   176
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   177
		@Override
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   178
		public void reconnectionSuccessful() throws RemoteException {
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 236
diff changeset
   179
		    Log.i("BeemService", "reconnectionSuccessful()");
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   180
		    PacketFilter filter = new PacketFilter() {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   181
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   182
			@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   183
			public boolean accept(Packet packet) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   184
			    if (packet instanceof Presence) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   185
				Presence pres = (Presence) packet;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   186
				if (pres.getType() == Presence.Type.subscribe)
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   187
				    return true;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   188
			    }
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   189
			    return false;
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   190
			}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   191
		    };
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   192
		    con.addPacketListener(new PacketListener() {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   193
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   194
			@Override
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   195
			public void processPacket(Packet packet) {
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   196
			    // TODO Auto-generated method stub
147
472d56ba57c6 debut de la subscription
nikita@nikita-rack
parents: 140
diff changeset
   197
			    Log.d("TEST", "Une demande recue");
99
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   198
			}
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   199
		    }, filter);
8de21ac527ce revert pour refaire un push propre
nikita@nikita-rack
parents: 98
diff changeset
   200
		}
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   201
	    });
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   202
	} catch (RemoteException e) {
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   203
	    // TODO Auto-generated catch block
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   204
	    e.printStackTrace();
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   205
	}
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   206
    }
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   207
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   208
    /**
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   209
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   210
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   211
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   212
    public IBinder onBind(Intent intent) {
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 239
diff changeset
   213
	Log.e("BEEMSERVICE", "ONBIND()");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   214
	return mBind;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   215
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   216
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   217
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   218
     * {@inheritDoc}
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   219
     */
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   220
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   221
    public void onCreate() {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   222
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   223
	super.onCreate();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   224
	mSettings = getSharedPreferences(getString(R.string.settings_filename), MODE_PRIVATE);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   225
	mLogin = mSettings.getString(getString(R.string.settings_key_account_username), "");
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   226
	mPassword = mSettings.getString(getString(R.string.settings_key_account_password), "");
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   227
	mHost = mSettings.getString(getString(R.string.settings_key_xmpp_server), "");
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   228
	mPort = Integer.parseInt(mSettings.getString(getString(R.string.settings_key_xmpp_port), "5222"));
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   229
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 239
diff changeset
   230
	Log.i("BEEEMSERVICE", mLogin);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   231
	if (mHost.equals("talk.google.com"))
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   232
	    mService = "gmail.com";
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   233
	else
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   234
	    mService = null;
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   235
	initConnectionConfig();
269
d78115a6b45b Feature #183
nikita@localhost
parents: 239
diff changeset
   236
	mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);	
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   237
	mConnection = new XmppConnectionAdapter(mConnectionConfiguration, mLogin, mPassword, this);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   238
	initRosterRequestListener();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   239
	mBind = new XmppFacade(mConnection, this);
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   240
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   241
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   242
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   243
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   244
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   245
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   246
    public void onDestroy() {
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 239
diff changeset
   247
	super.onDestroy();
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 239
diff changeset
   248
	Log.e("BEEEMSERVICE", "ONDESTROY");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   249
	closeConnection();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   250
	mNotificationManager.cancel(NOTIFICATION_STATUS_ID);
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 239
diff changeset
   251
	Log.e("BEEEMSERVICE", "ONDESTROY");
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   252
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   253
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   254
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   255
     * {@inheritDoc}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   256
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   257
    @Override
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   258
    public void onStart(Intent intent, int startId) {
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 239
diff changeset
   259
	super.onStart(intent, startId);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   260
	try {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   261
	    mConnection.connectAsync();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   262
	} catch (RemoteException e) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   263
	    // TODO Auto-generated catch block
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   264
	    e.printStackTrace();
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   265
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   266
    }
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   267
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   268
    /**
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   269
     * Show a notification.
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   270
     * 
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   271
     * @param id
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   272
     *            the id of the notification.
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   273
     * @param notif
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   274
     *            the notification to show
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   275
     */
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   276
    public void sendNotification(int id, Notification notif) {
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 193
diff changeset
   277
	mNotificationManager.notify(id, notif);
94
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   278
    }
904759c1bd62 Draft de reception d'une demande d'ajout.
Da Risk <darisk972@gmail.com>
parents: 83
diff changeset
   279
17
afd3a080d318 On a un service qui se lance.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   280
}