src/com/beem/project/beem/ui/SendIM.java
author Da Risk <darisk972@gmail.com>
Wed, 28 Oct 2009 20:17:04 +0100
changeset 472 4acc4947d6bc
parent 468 f2f16274b696
child 474 dd6d3c09d0d1
permissions -rw-r--r--
Fixes #207 Use the BroadcastReceiver to closes activities on disconnection event.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
     1
package com.beem.project.beem.ui;
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
     2
219
79ccbe331695 Les conversations sont retenues dans les chats du service.
Da Risk <darisk972@gmail.com>
parents: 188
diff changeset
     3
import java.util.List;
79ccbe331695 Les conversations sont retenues dans les chats du service.
Da Risk <darisk972@gmail.com>
parents: 188
diff changeset
     4
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
     5
import org.jivesoftware.smack.util.StringUtils;
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
     6
103
2320ab48e829 Bug d'affichage fixé et autre feature implementées
Philippe Lago <lago_p@epitech.net>
parents: 102
diff changeset
     7
import android.app.Activity;
243
644ead6eaf67 Suppression beemapplication dans SendIM.
marseille@marseille-desktop
parents: 239
diff changeset
     8
import android.content.ComponentName;
219
79ccbe331695 Les conversations sont retenues dans les chats du service.
Da Risk <darisk972@gmail.com>
parents: 188
diff changeset
     9
import android.content.Intent;
390
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
    10
import android.content.IntentFilter;
243
644ead6eaf67 Suppression beemapplication dans SendIM.
marseille@marseille-desktop
parents: 239
diff changeset
    11
import android.content.ServiceConnection;
43
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    12
import android.content.SharedPreferences;
101
ccc48305bdeb toujours le probleme du rafraichissement lors de la reception d'un message
Philippe Lago <lago_p@epitech.net>
parents: 84
diff changeset
    13
import android.graphics.drawable.Drawable;
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
    14
import android.os.Bundle;
84
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    15
import android.os.Handler;
243
644ead6eaf67 Suppression beemapplication dans SendIM.
marseille@marseille-desktop
parents: 239
diff changeset
    16
import android.os.IBinder;
84
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    17
import android.os.RemoteException;
252
f9bbba863298 Feature #181
nikita@nikita-lab
parents: 251
diff changeset
    18
import android.text.util.Linkify;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 43
diff changeset
    19
import android.util.Log;
43
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    20
import android.view.KeyEvent;
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    21
import android.view.Menu;
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    22
import android.view.MenuInflater;
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    23
import android.view.MenuItem;
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
    24
import android.view.View;
43
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    25
import android.view.View.OnClickListener;
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    26
import android.view.View.OnKeyListener;
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
    27
import android.widget.EditText;
143
6f6f5838aef9 skin skin skin joli pas beau
Philippe Lago <lago_p@epitech.net>
parents: 141
diff changeset
    28
import android.widget.ImageView;
103
2320ab48e829 Bug d'affichage fixé et autre feature implementées
Philippe Lago <lago_p@epitech.net>
parents: 102
diff changeset
    29
import android.widget.ScrollView;
101
ccc48305bdeb toujours le probleme du rafraichissement lors de la reception d'un message
Philippe Lago <lago_p@epitech.net>
parents: 84
diff changeset
    30
import android.widget.TextView;
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
    31
243
644ead6eaf67 Suppression beemapplication dans SendIM.
marseille@marseille-desktop
parents: 239
diff changeset
    32
import com.beem.project.beem.BeemService;
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
    33
import com.beem.project.beem.R;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 43
diff changeset
    34
import com.beem.project.beem.service.Contact;
84
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    35
import com.beem.project.beem.service.Message;
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
    36
import com.beem.project.beem.service.PresenceAdapter;
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
    37
import com.beem.project.beem.service.aidl.IBeemRosterListener;
84
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    38
import com.beem.project.beem.service.aidl.IChat;
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    39
import com.beem.project.beem.service.aidl.IChatManager;
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    40
import com.beem.project.beem.service.aidl.IChatManagerListener;
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    41
import com.beem.project.beem.service.aidl.IMessageListener;
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
    42
import com.beem.project.beem.service.aidl.IRoster;
84
9a4dbd7fe546 Super mercurial le retour du commit oublié apres le merge du pull -f -r19
Philippe Lago <lago_p@epitech.net>
parents: 62
diff changeset
    43
import com.beem.project.beem.service.aidl.IXmppFacade;
396
1a8a0d152c28 netoyage du broadcast et petit debug
Nikita Kozlov <nikita@beem-project.com>
parents: 390
diff changeset
    44
import com.beem.project.beem.utils.BeemBroadcastReceiver;
461
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
    45
import com.beem.project.beem.utils.Status;
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
    46
43
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    47
/**
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
    48
 * This activity class provides the view for instant messaging after selecting a correspondant.
127
395f1beb409f deconnexion et fin du service presque ok
Da Risk <darisk972@gmail.com>
parents: 126
diff changeset
    49
 * @author barbu
43
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    50
 */
4e7c6918b092 classe dialog pour integrer des smiley dans un message a terminer, un fichier color a nourrir et utiliser des modif un peu partout
Philippe Lago <lago_p@epitech.net>
parents: 27
diff changeset
    51
117
40a48262a670 Un petit skin pour l'im à travailler
Philippe Lago <lago_p@epitech.net>
parents: 110
diff changeset
    52
public class SendIM extends Activity implements OnClickListener, OnKeyListener {
219
79ccbe331695 Les conversations sont retenues dans les chats du service.
Da Risk <darisk972@gmail.com>
parents: 188
diff changeset
    53
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    54
    private static final String TAG = "SEND_IM";
420
ecddfb6c0e2a Checkstyle
Da Risk <darisk972@gmail.com>
parents: 419
diff changeset
    55
    private static final Intent SERVICE_INTENT = new Intent();
ecddfb6c0e2a Checkstyle
Da Risk <darisk972@gmail.com>
parents: 419
diff changeset
    56
    static {
ecddfb6c0e2a Checkstyle
Da Risk <darisk972@gmail.com>
parents: 419
diff changeset
    57
	SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
ecddfb6c0e2a Checkstyle
Da Risk <darisk972@gmail.com>
parents: 419
diff changeset
    58
    }
ecddfb6c0e2a Checkstyle
Da Risk <darisk972@gmail.com>
parents: 419
diff changeset
    59
365
c90f06cae09e Checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
    60
    private IRoster mRoster;
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    61
    private EditText mToSend;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    62
    private SendIMDialogSmiley mSmyDialog;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    63
    private SharedPreferences mSet;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    64
    private Handler mHandler;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    65
    private Contact mContact;
461
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
    66
    private ImageView mStatusIcon;
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    67
    private IChatManager mChatManager;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    68
    private IChatManagerListener mChatManagerListener;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    69
    private IMessageListener mMessageListener;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    70
    private IChat mChat;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    71
    private TextView mText;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    72
    private TextView mLogin;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    73
    private ScrollView mScrolling;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    74
    private char mSpeak;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    75
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    76
    private final ServiceConnection mServConn = new BeemServiceConnection();
339
c57c94a97ff2 Applied some checkstyle rules
darisk@kaaliyah
parents: 329
diff changeset
    77
    private IXmppFacade mXmppFacade;
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    78
    private TextView mStatusText;
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 396
diff changeset
    79
    private BeemBroadcastReceiver mReceiver;
390
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
    80
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    81
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    82
     * Constructor.
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    83
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    84
    public SendIM() {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    85
	super();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    86
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    87
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    88
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    89
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    90
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    91
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    92
    public void onClick(View view) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    93
	sendText();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    94
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    95
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    96
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    97
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    98
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
    99
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   100
    protected void onCreate(Bundle saveBundle) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   101
	super.onCreate(saveBundle);
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   102
	// setTheme(R.style.OldTheme);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   103
	setContentView(R.layout.sendim);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   104
	mHandler = new Handler();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   105
	mChatManagerListener = new OnChatListener();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   106
	mMessageListener = new OnMessageListener();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   107
	mToSend = (EditText) findViewById(R.id.userText);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   108
	mSet = getSharedPreferences("lol", MODE_PRIVATE);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   109
	mSmyDialog = new SendIMDialogSmiley(this, mSet);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   110
	mToSend.setOnClickListener(this);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   111
	mToSend.setOnKeyListener(this);
461
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   112
	mStatusIcon = (ImageView) findViewById(R.id.sendimstatus);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   113
	mLogin = (TextView) findViewById(R.id.sendimlogin);
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   114
	mContact = new Contact(getIntent().getData());
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   115
	mText = (TextView) findViewById(R.id.sendimlist);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   116
	mScrolling = (ScrollView) findViewById(R.id.sendimscroll);
461
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   117
	mStatusText = (TextView) findViewById(R.id.sendimstatusmsg);
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 396
diff changeset
   118
	mReceiver = new BeemBroadcastReceiver(mServConn);
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   119
	this.registerReceiver(mReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED));
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   120
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   121
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   122
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   123
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   124
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   125
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   126
    public final boolean onCreateOptionsMenu(Menu menu) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   127
	super.onCreateOptionsMenu(menu);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   128
	MenuInflater inflater = getMenuInflater();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   129
	inflater.inflate(R.menu.sendimmenu, menu);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   130
	return true;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   131
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   132
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   133
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   134
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   135
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   136
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   137
    protected void onDestroy() {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   138
	super.onDestroy();
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   139
	this.unregisterReceiver(mReceiver);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   140
	if (mChatManager != null) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   141
	    try {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   142
		mChatManager.removeChatCreationListener(mChatManagerListener);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   143
		// TODO trouver quand detruire le chat
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   144
		// mChatManager.destroyChat(mChat);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   145
	    } catch (RemoteException e) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   146
		Log.e(TAG, "mchat manager and SendIM destroy", e);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   147
	    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   148
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   149
    }
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 194
diff changeset
   150
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   151
    /**
461
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   152
     * Update the status icon of our contact.
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   153
     */
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   154
    protected void updateStatusIcon() {
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   155
	Drawable statusIcon = null;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   156
	switch (mContact.getStatus()) {
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   157
	    case Status.CONTACT_STATUS_AVAILABLE:
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   158
		statusIcon = getResources().getDrawable(R.drawable.status_available);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   159
		break;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   160
	    case Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT:
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   161
		statusIcon = getResources().getDrawable(R.drawable.status_available);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   162
		break;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   163
	    case Status.CONTACT_STATUS_AWAY:
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   164
		statusIcon = getResources().getDrawable(R.drawable.status_away);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   165
		break;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   166
	    case Status.CONTACT_STATUS_BUSY:
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   167
		statusIcon = getResources().getDrawable(R.drawable.status_dnd);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   168
		break;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   169
	    case Status.CONTACT_STATUS_DISCONNECT:
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   170
		statusIcon = getResources().getDrawable(R.drawable.status_offline);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   171
		break;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   172
	    case Status.CONTACT_STATUS_UNAVAILABLE:
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   173
		statusIcon = getResources().getDrawable(R.drawable.status_requested);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   174
		break;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   175
	    default:
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   176
		statusIcon = getResources().getDrawable(R.drawable.status_error);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   177
		break;
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   178
	}
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   179
	Log.d("SENDIM -- UPDATE STATUS ICON", "Contact current status: " + mContact.getStatus() + "");
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   180
	mStatusIcon.setImageDrawable(statusIcon);
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   181
    }
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   182
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   183
    /**
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   184
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   185
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   186
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   187
    public boolean onKey(View v, int keyCode, KeyEvent event) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   188
	if (event.getAction() == KeyEvent.ACTION_DOWN) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   189
	    switch (keyCode) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   190
		case KeyEvent.KEYCODE_DPAD_CENTER:
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   191
		case KeyEvent.KEYCODE_ENTER:
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   192
		    sendText();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   193
		    return true;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   194
		default:
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   195
		    return false;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   196
	    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   197
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   198
	return false;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   199
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   200
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   201
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   202
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   203
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   204
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   205
    protected void onNewIntent(Intent intent) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   206
	super.onNewIntent(intent);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   207
	mContact = new Contact(intent.getData());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   208
	try {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   209
	    if (mRoster != null)
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   210
		mContact = mRoster.getContact(mContact.getJID());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   211
	} catch (RemoteException e) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   212
	    // TODO Auto-generated catch block
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   213
	    e.printStackTrace();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   214
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   215
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   216
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   217
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   218
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   219
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   220
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   221
    public final boolean onOptionsItemSelected(MenuItem item) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   222
	switch (item.getItemId()) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   223
	    case R.id.sendim_smiley:
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   224
		mSmyDialog.show();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   225
		return true;
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 346
diff changeset
   226
	    case R.id.sendim_call:
414
79e07130a059 de la doc en plus
Nikita Kozlov <nikita@beem-project.com>
parents: 412
diff changeset
   227
		// TODO start the jingle call
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 346
diff changeset
   228
		// Bug a besoin du jid complet (resource compris)
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 346
diff changeset
   229
		try {
390
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   230
		    mXmppFacade.call(mContact.getJID());
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   231
		} catch (RemoteException e) {
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   232
		    // TODO Auto-generated catch block
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   233
		    e.printStackTrace();
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   234
		}
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 346
diff changeset
   235
		return true;
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   236
	    default:
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   237
		return false;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   238
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   239
    }
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 194
diff changeset
   240
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   241
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   242
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   243
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   244
    @Override
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   245
    protected void onStop() {
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   246
	super.onStop();
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   247
	try {
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   248
	    if (mChat != null)
299
2fae05fe318c Fixes #164
Da Risk <darisk972@gmail.com>
parents: 298
diff changeset
   249
		mChat.setOpen(false);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   250
	} catch (RemoteException e) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   251
	    Log.d(TAG, "Error while closing chat", e);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   252
	}
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   253
	if (mReceiver.isBinded()){
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 396
diff changeset
   254
	    unbindService(mServConn);
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   255
	    mReceiver.setBinded(false);
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   256
	}
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   257
	mRoster = null;
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   258
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   259
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   260
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   261
     * {@inheritDoc}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   262
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   263
    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   264
    protected void onStart() {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   265
	super.onStart();
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   266
	bindService(new Intent(this, BeemService.class), mServConn, BIND_AUTO_CREATE);
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   267
	mScrolling.fullScroll(ScrollView.FOCUS_DOWN);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   268
	try {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   269
	    if (mRoster != null)
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   270
		mContact = mRoster.getContact(mContact.getJID());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   271
	} catch (RemoteException e) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   272
	    // TODO Auto-generated catch block
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   273
	    e.printStackTrace();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   274
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   275
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   276
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   277
   
343
e5f7b0c943e0 Some checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   278
    /**
e5f7b0c943e0 Some checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   279
     * The service connection used to connect with the BeemService.
e5f7b0c943e0 Some checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   280
     */
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   281
    private final class BeemServiceConnection implements ServiceConnection {
451
63cffd88721d Normalisation de certaines parties du code.
dasilvj
parents: 450
diff changeset
   282
	private final BeemRosterListener mBeemRosterListener = new BeemRosterListener();
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   283
346
864baf8d79ee Checkstyle rules
darisk@kaaliyah
parents: 345
diff changeset
   284
	/**
864baf8d79ee Checkstyle rules
darisk@kaaliyah
parents: 345
diff changeset
   285
	 * Constructor.
864baf8d79ee Checkstyle rules
darisk@kaaliyah
parents: 345
diff changeset
   286
	 */
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   287
	public BeemServiceConnection() {
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   288
	}
343
e5f7b0c943e0 Some checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   289
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   290
	@Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   291
	public void onServiceConnected(ComponentName name, IBinder service) {
339
c57c94a97ff2 Applied some checkstyle rules
darisk@kaaliyah
parents: 329
diff changeset
   292
	    mXmppFacade = IXmppFacade.Stub.asInterface(service);
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   293
	    mReceiver.setBinded(true);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   294
	    try {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   295
		if (mChatManager == null) {
339
c57c94a97ff2 Applied some checkstyle rules
darisk@kaaliyah
parents: 329
diff changeset
   296
		    mChatManager = mXmppFacade.getChatManager();
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   297
		    mChatManager.addChatCreationListener(mChatManagerListener);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   298
		}
339
c57c94a97ff2 Applied some checkstyle rules
darisk@kaaliyah
parents: 329
diff changeset
   299
		mRoster = mXmppFacade.getRoster();
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   300
		if (mRoster != null) {
286
8979375c19f0 Suppression de contact.
Marseille
parents: 280
diff changeset
   301
		    mRoster.addRosterListener(mBeemRosterListener);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   302
		    // mContact.setStatus(mRoster.getPresence(mContact.getJID()));
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   303
		    if (mRoster.getContact(mContact.getJID()) != null) {
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   304
			mContact = mRoster.getContact(mContact.getJID());
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   305
			mStatusText.setText(mContact.getMsgState());
468
f2f16274b696 - Modification de la methode setName dans la classe Contact afin de gerer le cas ou le contact n'aurait pas d'alias.
dasilvj
parents: 466
diff changeset
   306
			mLogin.setText(mContact.getName());
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   307
		    }
461
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   308
		    updateStatusIcon();
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   309
		}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   310
		switchChat(mContact);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   311
	    } catch (RemoteException e) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   312
		Log.e(TAG, "Error during chat manager creation", e);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   313
	    }
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 194
diff changeset
   314
	}
243
644ead6eaf67 Suppression beemapplication dans SendIM.
marseille@marseille-desktop
parents: 239
diff changeset
   315
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   316
	@Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   317
	public void onServiceDisconnected(ComponentName name) {
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   318
	    mReceiver.setBinded(false);
339
c57c94a97ff2 Applied some checkstyle rules
darisk@kaaliyah
parents: 329
diff changeset
   319
	    mXmppFacade = null;
286
8979375c19f0 Suppression de contact.
Marseille
parents: 280
diff changeset
   320
	    try {
8979375c19f0 Suppression de contact.
Marseille
parents: 280
diff changeset
   321
		mRoster.removeRosterListener(mBeemRosterListener);
8979375c19f0 Suppression de contact.
Marseille
parents: 280
diff changeset
   322
	    } catch (RemoteException e) {
8979375c19f0 Suppression de contact.
Marseille
parents: 280
diff changeset
   323
		e.printStackTrace();
8979375c19f0 Suppression de contact.
Marseille
parents: 280
diff changeset
   324
	    }
472
4acc4947d6bc Fixes #207
Da Risk <darisk972@gmail.com>
parents: 468
diff changeset
   325
	    mRoster = null;
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   326
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   327
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   328
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   329
    /**
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   330
     * Send a message to the contact over the XMPP connection. Also display it on activity view. TODO : Gerer
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   331
     * l'exception si la connexion se coupe pendant la conversation
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   332
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   333
    private void sendText() {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   334
	String text = mToSend.getText().toString();
343
e5f7b0c943e0 Some checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   335
	if (!"".equals(text)) {
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   336
	    Message msg = new Message(mContact.getJID(), Message.MSG_TYPE_CHAT);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   337
	    msg.setBody(text);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   338
	    try {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   339
		mChat.sendMessage(msg);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   340
		if (mSpeak != 1)
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   341
		    mText.append(getString(R.string.SendIMYouSay, text));
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   342
		else
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   343
		    mText.append(getString(R.string.SendIMSameSpeaker, text));
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   344
		mToSend.setText(null);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   345
		mScrolling.fullScroll(ScrollView.FOCUS_DOWN);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   346
		mToSend.requestFocus();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   347
		mSpeak = 1;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   348
	    } catch (RemoteException e) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   349
		e.printStackTrace();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   350
	    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   351
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   352
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   353
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   354
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   355
     * Show the message history.
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   356
     * @param messages list of message to display
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   357
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   358
    private void showMessageList(List<Message> messages) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   359
	mText.setText("");
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   360
	mSpeak = 0;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   361
	for (Message message : messages) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   362
	    String from = message.getFrom();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   363
	    if (from == null) {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   364
		if (mSpeak != 1)
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   365
		    mText.append(getString(R.string.SendIMYouSay, message.getBody()));
295
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   366
		else
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   367
		    mText.append(getString(R.string.SendIMYouSay, message.getBody()));
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   368
		mSpeak = 1;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   369
	    } else {
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   370
		if (mSpeak != 2)
468
f2f16274b696 - Modification de la methode setName dans la classe Contact afin de gerer le cas ou le contact n'aurait pas d'alias.
dasilvj
parents: 466
diff changeset
   371
		    mText.append(getString(R.string.SendIMSays, mContact.getName(), message.getBody()));
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   372
		else
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   373
		    mText.append(getString(R.string.SendIMSameSpeaker, message.getBody()));
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   374
		mSpeak = 2;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   375
	    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   376
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   377
	mScrolling.fullScroll(ScrollView.FOCUS_DOWN);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   378
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   379
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   380
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   381
     * Change the correspondant of the chat.
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   382
     * @param newContact New contact to chat with
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   383
     * @throws RemoteException if an errors occurs in the connection with the service
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   384
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   385
    private void switchChat(Contact newContact) throws RemoteException {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   386
	if (mChat != null)
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   387
	    mChat.setOpen(false);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   388
	mChat = mChatManager.createChat(newContact, mMessageListener);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   389
	showMessageList(mChat.getMessages());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   390
	mChat.setOpen(true);
419
88e1a96ee8da Retrait des notifications quand on ouvre le chat d'une personne qui vient
Da Risk <darisk972@gmail.com>
parents: 414
diff changeset
   391
	mChatManager.deleteChatNotification(mChat);
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   392
	mContact = newContact;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   393
	mToSend.requestFocus();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   394
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   395
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   396
    /**
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   397
     * Listener for chat creation. (maybe not necessary).
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   398
     * @author darisk
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   399
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   400
    private class OnChatListener extends IChatManagerListener.Stub {
346
864baf8d79ee Checkstyle rules
darisk@kaaliyah
parents: 345
diff changeset
   401
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   402
	/**
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   403
	 * Constructor.
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   404
	 */
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   405
	public OnChatListener() {
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   406
	}
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   407
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   408
	/**
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   409
	 * {@inheritDoc}
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   410
	 */
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   411
	@Override
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   412
	public void chatCreated(IChat chat, boolean locally) throws RemoteException {
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   413
	    Log.i("LOG", "chatCreated");
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   414
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   415
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   416
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   417
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   418
    /**
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   419
     * Listener use to change the status displayed.
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   420
     */
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   421
    private class BeemRosterListener extends IBeemRosterListener.Stub {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   422
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   423
	/**
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   424
	 * Constructor.
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   425
	 */
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   426
	public BeemRosterListener() {
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   427
	}
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   428
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   429
	@Override
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   430
	public void onEntriesAdded(List<String> addresses) throws RemoteException {
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   431
	    // TODO Auto-generated method stub
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   432
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   433
	}
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   434
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
   435
	@Override
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   436
	public void onEntriesDeleted(List<String> addresses) throws RemoteException {
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   437
	    // TODO Auto-generated method stub
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   438
252
f9bbba863298 Feature #181
nikita@nikita-lab
parents: 251
diff changeset
   439
	}
f9bbba863298 Feature #181
nikita@nikita-lab
parents: 251
diff changeset
   440
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   441
	@Override
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   442
	public void onEntriesUpdated(List<String> addresses) throws RemoteException {
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   443
	    // TODO Auto-generated method stub
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   444
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   445
	}
371
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
   446
370
Da Risk <darisk972@gmail.com>
parents: 369 365
diff changeset
   447
	@Override
390
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   448
	public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException {
370
Da Risk <darisk972@gmail.com>
parents: 369 365
diff changeset
   449
	    // TODO Auto-generated method stub
371
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
   450
390
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 371
diff changeset
   451
	}
371
f2c9564a3cc7 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 370
diff changeset
   452
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   453
	@Override
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   454
	public void onPresenceChanged(PresenceAdapter presence) throws RemoteException {
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   455
	    if (mContact.getJID().equals(StringUtils.parseBareAddress(presence.getFrom()))) {
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   456
		mContact.setStatus(mRoster.getPresence(StringUtils.parseBareAddress(presence.getFrom())));
461
17300b201cf5 Modification de l'UI de la contact list et de sendim.
dasilvj
parents: 451
diff changeset
   457
		Log.d("SENDIM -- onPresenceChanged", "Contact current status: " + mContact.getStatus() + "");
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   458
		mHandler.post(new RunnableChange());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   459
	    }
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
   460
	}
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   461
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   462
	/**
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   463
	 * Runnable to change the status displayed.
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   464
	 */
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   465
	private class RunnableChange implements Runnable {
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   466
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   467
	    /**
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   468
	     * Constructor.
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   469
	     */
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   470
	    public RunnableChange() {
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   471
	    }
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   472
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   473
	    @Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   474
	    public void run() {
466
c689a113b9f8 - Changement des icones du launcher et de la status bar.
dasilvj
parents: 461
diff changeset
   475
		updateStatusIcon();
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   476
		mStatusText.setText(mContact.getMsgState());
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   477
		Linkify.addLinks(mStatusText, Linkify.WEB_URLS);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   478
	    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   479
	}
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   480
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   481
    }
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   482
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   483
    /**
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   484
     * Listener for new chat messages.
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   485
     * @author darisk
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   486
     */
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   487
    private class OnMessageListener extends IMessageListener.Stub {
346
864baf8d79ee Checkstyle rules
darisk@kaaliyah
parents: 345
diff changeset
   488
345
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   489
	/**
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   490
	 * Constructor.
16f3847a7db7 Checkstyle rules
darisk@kaaliyah
parents: 343
diff changeset
   491
	 */
450
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   492
	public OnMessageListener() {
fe0ba62ee3ff Correction de l'ensemble des erreurs de CheckStyle.
dasilvj
parents: 420
diff changeset
   493
	}
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   494
251
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
   495
	/**
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
   496
	 * {@inheritDoc}
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
   497
	 */
fae2a16a1f28 Feature #169
nikita@nikita-lab
parents: 243
diff changeset
   498
	@Override
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   499
	public void processMessage(IChat chat, Message msg) throws RemoteException {
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   500
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   501
	    if (chat != mChat)
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   502
		return;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   503
	    final Message m = msg;
295
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   504
	    Log.d("Message Type", "Le type du message : " + m.getType());
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   505
	    mHandler.post(new Runnable() {
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   506
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   507
		@Override
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   508
		public void run() {
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   509
		    if (m.getBody() != null) {
295
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   510
			if (m.getType() == Message.MSG_TYPE_ERROR) {
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   511
			    mText.append(getString(R.string.SendIMErrorMsg, m.getBody()));
295
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   512
			    mSpeak = 0;
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   513
			} else if (mSpeak == 2)
309
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   514
			    mText.append(getString(R.string.SendIMSameSpeaker, m.getBody()));
5c39c01e2a42 Fixes a little problem with internationalization
Da Risk <darisk972@gmail.com>
parents: 299
diff changeset
   515
			else
468
f2f16274b696 - Modification de la methode setName dans la classe Contact afin de gerer le cas ou le contact n'aurait pas d'alias.
dasilvj
parents: 466
diff changeset
   516
			    mText.append(getString(R.string.SendIMSays, mContact.getName(), m.getBody()));
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   517
			mScrolling.fullScroll(ScrollView.FOCUS_DOWN);
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   518
			mToSend.requestFocus();
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   519
			mSpeak = 2;
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   520
		    }
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   521
		}
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   522
	    });
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   523
	}
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   524
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   525
	/**
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   526
	 * {@inheritDoc}
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   527
	 */
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   528
	@Override
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   529
	public void stateChanged(IChat chat) throws RemoteException {
295
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   530
	    if (chat != mChat)
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   531
		return;
326
c5f000965df8 Reconnection
Marseille
parents: 309
diff changeset
   532
	    Log.d("ChatState", "Action du correspondant : <--- " + chat.getState() + " --->");
295
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   533
	    mHandler.post(new Runnable() {
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   534
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   535
		@Override
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   536
		public void run() {
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   537
		}
66c7566e4caa Affichage du ChatState dans IM pas terrible
Philippe Lago <lago_p@epitech.net>
parents: 286
diff changeset
   538
	    });
236
23647e075321 Re arrangemetn de certains fichiers !!
marseille@marseille-desktop
parents: 233
diff changeset
   539
	}
279
af993bc754a5 Affichage userfriendly du login dans im
Philippe Lago <lago_p@epitech.net>
parents: 252
diff changeset
   540
    }
25
1e044613960c Activite envoi de messages
Philippe Lago <lago_p@epitech.net>
parents:
diff changeset
   541
}