src/com/beem/project/beem/ui/Chat.java
author "Vincent Veronis"
Sun, 27 Feb 2011 12:42:19 +0100
changeset 867 11136daa9e81
parent 866 0173963643d1
child 885 7b5e29b3603b
permissions -rw-r--r--
Fix crash on chat with disconnected contact Bug #345
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
577
29ac85113420 fix some headers
Da Risk <darisk972@gmail.com>
parents: 573
diff changeset
     1
/*
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
     2
    BEEM is a videoconference application on the Android Platform.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
     3
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
     4
    Copyright (C) 2009 by Frederic-Charles Barthelery,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
     5
                          Jean-Manuel Da Silva,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
     6
                          Nikita Kozlov,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
     7
                          Philippe Lago,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
     8
                          Jean Baptiste Vergely,
577
29ac85113420 fix some headers
Da Risk <darisk972@gmail.com>
parents: 573
diff changeset
     9
                          Vincent Veronis.
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    10
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    11
    This file is part of BEEM.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    12
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    13
    BEEM is free software: you can redistribute it and/or modify
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    14
    it under the terms of the GNU General Public License as published by
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    15
    the Free Software Foundation, either version 3 of the License, or
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    16
    (at your option) any later version.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    17
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    18
    BEEM is distributed in the hope that it will be useful,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    19
    but WITHOUT ANY WARRANTY; without even the implied warranty of
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    20
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    21
    GNU General Public License for more details.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    22
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    23
    You should have received a copy of the GNU General Public License
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    24
    along with BEEM.  If not, see <http://www.gnu.org/licenses/>.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    25
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    26
    Please send bug reports with examples or suggestions to
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    27
    contact@beem-project.com or http://dev.beem-project.com/
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    28
577
29ac85113420 fix some headers
Da Risk <darisk972@gmail.com>
parents: 573
diff changeset
    29
    Epitech, hereby disclaims all copyright interest in the program "Beem"
567
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    30
    written by Frederic-Charles Barthelery,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    31
               Jean-Manuel Da Silva,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    32
               Nikita Kozlov,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    33
               Philippe Lago,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    34
               Jean Baptiste Vergely,
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    35
               Vincent Veronis.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    36
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    37
    Nicolas Sadirac, November 26, 2009
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    38
    President of Epitech.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    39
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    40
    Flavien Astraud, November 26, 2009
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    41
    Head of the EIP Laboratory.
896533b277d5 ajout des headers
Nikita Kozlov <nikita@beem-project.com>
parents: 550
diff changeset
    42
833
97a429f938ae CheckStyle
"Vincent Veronis"
parents: 832
diff changeset
    43
*/
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    44
package com.beem.project.beem.ui;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    45
789
236c54f9145d Feature #255: adding a chat list button in contact list menu
Nikita Kozlov <nikita@mbdsys.com>
parents: 774
diff changeset
    46
import java.text.DateFormat;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    47
import java.util.ArrayList;
789
236c54f9145d Feature #255: adding a chat list button in contact list menu
Nikita Kozlov <nikita@mbdsys.com>
parents: 774
diff changeset
    48
import java.util.Date;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    49
import java.util.HashMap;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    50
import java.util.List;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    51
import java.util.Map;
866
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
    52
import java.io.InputStream;
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
    53
import java.io.IOException;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    54
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
    55
import org.jivesoftware.smack.packet.Presence.Mode;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    56
import org.jivesoftware.smack.util.StringUtils;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    57
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    58
import android.app.Activity;
789
236c54f9145d Feature #255: adding a chat list button in contact list menu
Nikita Kozlov <nikita@mbdsys.com>
parents: 774
diff changeset
    59
import android.app.Dialog;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    60
import android.content.ComponentName;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    61
import android.content.Intent;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    62
import android.content.IntentFilter;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    63
import android.content.ServiceConnection;
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
    64
import android.content.SharedPreferences;
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
    65
import android.graphics.drawable.Drawable;
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
    66
import android.graphics.drawable.LayerDrawable;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    67
import android.graphics.Bitmap;
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    68
import android.graphics.BitmapFactory;
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
    69
import android.graphics.Color;
866
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
    70
import android.net.Uri;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    71
import android.os.Bundle;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    72
import android.os.Handler;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    73
import android.os.IBinder;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    74
import android.os.RemoteException;
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
    75
import android.preference.PreferenceManager;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    76
import android.text.util.Linkify;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    77
import android.util.Log;
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
    78
import android.view.KeyEvent;
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
    79
import android.view.LayoutInflater;
508
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
    80
import android.view.Menu;
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
    81
import android.view.MenuInflater;
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
    82
import android.view.MenuItem;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    83
import android.view.View;
827
2db1305b4279 Checkstyle
"Vincent Veronis"
parents: 826
diff changeset
    84
import android.view.ViewGroup;
517
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
    85
import android.view.View.OnClickListener;
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
    86
import android.view.View.OnKeyListener;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    87
import android.widget.BaseAdapter;
517
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
    88
import android.widget.Button;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    89
import android.widget.EditText;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    90
import android.widget.ImageView;
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
    91
import android.widget.ListView;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    92
import android.widget.TextView;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    93
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
    94
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    95
import com.beem.project.beem.R;
866
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
    96
import com.beem.project.beem.providers.AvatarProvider;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    97
import com.beem.project.beem.service.Contact;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    98
import com.beem.project.beem.service.Message;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
    99
import com.beem.project.beem.service.PresenceAdapter;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   100
import com.beem.project.beem.service.aidl.IBeemRosterListener;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   101
import com.beem.project.beem.service.aidl.IChat;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
   102
import com.beem.project.beem.service.aidl.IChatManager;
789
236c54f9145d Feature #255: adding a chat list button in contact list menu
Nikita Kozlov <nikita@mbdsys.com>
parents: 774
diff changeset
   103
import com.beem.project.beem.service.aidl.IChatManagerListener;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   104
import com.beem.project.beem.service.aidl.IMessageListener;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   105
import com.beem.project.beem.service.aidl.IRoster;
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   106
import com.beem.project.beem.service.aidl.IXmppFacade;
789
236c54f9145d Feature #255: adding a chat list button in contact list menu
Nikita Kozlov <nikita@mbdsys.com>
parents: 774
diff changeset
   107
import com.beem.project.beem.ui.dialogs.builders.ChatList;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   108
import com.beem.project.beem.utils.BeemBroadcastReceiver;
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
   109
import com.beem.project.beem.utils.Status;
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   110
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   111
/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   112
 * This class represents an activity which allows the user to chat with his/her contacts.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   113
 * @author Jean-Manuel Da Silva <dasilvj at beem-project dot com>
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   114
 */
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   115
public class Chat extends Activity implements OnKeyListener {
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
   116
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   117
    private static final String TAG = "Chat";
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   118
    private static final Intent SERVICE_INTENT = new Intent();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   119
    static {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   120
	SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   121
    }
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   122
    private Handler mHandler = new Handler();
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   123
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   124
    private IRoster mRoster;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   125
    private Contact mContact;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   126
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   127
    private TextView mContactNameTextView;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   128
    private TextView mContactStatusMsgTextView;
704
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   129
    private TextView mContactChatState;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   130
    private ImageView mContactStatusIcon;
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   131
    private LayerDrawable mAvatarStatusDrawable;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   132
    private ListView mMessagesListView;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   133
    private EditText mInputField;
517
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   134
    private Button mSendButton;
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   135
    private final Map<Integer, Bitmap> mStatusIconsMap = new HashMap<Integer, Bitmap>();
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   136
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   137
    private final List<MessageText> mListMessages = new ArrayList<MessageText>();
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   138
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   139
    private IChat mChat;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   140
    private IChatManager mChatManager;
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   141
    private final IMessageListener mMessageListener = new OnMessageListener();
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   142
    private final IChatManagerListener mChatManagerListener = new ChatManagerListener();
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   143
    private MessagesListAdapter mMessagesListAdapter = new MessagesListAdapter();
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   144
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   145
    private final ServiceConnection mConn = new BeemServiceConnection();
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   146
    private final BeemBroadcastReceiver mBroadcastReceiver = new BeemBroadcastReceiver();
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   147
    private final BeemRosterListener mBeemRosterListener = new BeemRosterListener();
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   148
    private IXmppFacade mXmppFacade;
866
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   149
    private String mCurrentAvatarId;
741
af1c21ab7ab9 refactor and clean up
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   150
    private boolean mBinded;
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   151
    private boolean mCompact;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   152
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   153
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   154
     * Constructor.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   155
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   156
    public Chat() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   157
	super();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   158
    }
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   159
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   160
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   161
     * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   162
     */
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   163
    @Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   164
    protected void onCreate(Bundle savedBundle) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   165
	super.onCreate(savedBundle);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   166
	this.registerReceiver(mBroadcastReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED));
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   167
	SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   168
	mCompact = settings.getBoolean("settings_chat_compact_key", false);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   169
	// UI
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   170
	if (!mCompact) {
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   171
	    setContentView(R.layout.chat);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   172
	    mContactNameTextView = (TextView) findViewById(R.id.chat_contact_name);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   173
	    mContactStatusMsgTextView = (TextView) findViewById(R.id.chat_contact_status_msg);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   174
	    mContactChatState = (TextView) findViewById(R.id.chat_contact_chat_state);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   175
	    mContactStatusIcon = (ImageView) findViewById(R.id.chat_contact_status_icon);
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   176
	    mAvatarStatusDrawable = (LayerDrawable) mContactStatusIcon.getDrawable();
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   177
	    mAvatarStatusDrawable.setLayerInset(1, 36, 36, 0, 0);
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   178
	} else {
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   179
	    setContentView(R.layout.chat_compact);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   180
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   181
	mMessagesListView = (ListView) findViewById(R.id.chat_messages);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   182
	mMessagesListView.setAdapter(mMessagesListAdapter);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   183
	mInputField = (EditText) findViewById(R.id.chat_input);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   184
	mInputField.setOnKeyListener(this);
766
ca06684fb92f Make chat input area grab focus by default.
Nolan Darilek <nolan@thewordnerd.info>
parents: 761
diff changeset
   185
	mInputField.requestFocus();
517
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   186
	mSendButton = (Button) findViewById(R.id.chat_send_message);
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   187
	mSendButton.setOnClickListener(new OnClickListener() {
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   188
	    @Override
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   189
	    public void onClick(View v) {
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   190
		sendMessage();
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   191
	    }
fd6c52c23165 Ajout du bouton "Envoyer" dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 514
diff changeset
   192
	});
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   193
	prepareIconsStatus();
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   194
    }
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   195
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   196
    @Override
629
d92cd8659e1f Fix bug #231
Da Risk <darisk972@gmail.com>
parents: 624
diff changeset
   197
    protected void onResume() {
d92cd8659e1f Fix bug #231
Da Risk <darisk972@gmail.com>
parents: 624
diff changeset
   198
	super.onResume();
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   199
	mContact = new Contact(getIntent().getData());
741
af1c21ab7ab9 refactor and clean up
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   200
	if (!mBinded) {
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   201
	    bindService(SERVICE_INTENT, mConn, BIND_AUTO_CREATE);
741
af1c21ab7ab9 refactor and clean up
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   202
	    mBinded = true;
af1c21ab7ab9 refactor and clean up
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   203
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   204
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   205
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   206
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   207
     * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   208
     */
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   209
    @Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   210
    protected void onDestroy() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   211
	super.onDestroy();
573
a67f46ac98b1 Modification de la gestion des Dialogs dans l'activité PrivacyList.
jamu@gaia
parents: 567
diff changeset
   212
	this.unregisterReceiver(mBroadcastReceiver);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   213
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   214
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   215
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   216
     * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   217
     */
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   218
    @Override
629
d92cd8659e1f Fix bug #231
Da Risk <darisk972@gmail.com>
parents: 624
diff changeset
   219
    protected void onPause() {
d92cd8659e1f Fix bug #231
Da Risk <darisk972@gmail.com>
parents: 624
diff changeset
   220
	super.onPause();
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   221
	try {
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   222
	    if (mChat != null) {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   223
		mChat.setOpen(false);
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   224
		mChat.removeMessageListener(mMessageListener);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   225
	    }
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   226
	    if (mRoster != null)
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   227
		mRoster.removeRosterListener(mBeemRosterListener);
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   228
	    if (mChatManager != null)
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   229
		mChatManager.removeChatCreationListener(mChatManagerListener);
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   230
	} catch (RemoteException e) {
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   231
	    Log.e(TAG, e.getMessage());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   232
	}
741
af1c21ab7ab9 refactor and clean up
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   233
	if (mBinded) {
698
887ac14c045b add a little check when unbinding the service.
Da Risk <darisk972@gmail.com>
parents: 691
diff changeset
   234
	    unbindService(mConn);
741
af1c21ab7ab9 refactor and clean up
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   235
	    mBinded = false;
af1c21ab7ab9 refactor and clean up
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   236
	}
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   237
	mXmppFacade = null;
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   238
	mRoster = null;
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   239
	mChat = null;
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   240
	mChatManager = null;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   241
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   242
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   243
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   244
     * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   245
     */
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   246
    @Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   247
    protected void onNewIntent(Intent intent) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   248
	super.onNewIntent(intent);
629
d92cd8659e1f Fix bug #231
Da Risk <darisk972@gmail.com>
parents: 624
diff changeset
   249
	setIntent(intent);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   250
    }
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   251
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   252
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   253
     * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   254
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   255
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   256
    protected void onSaveInstanceState(Bundle savedInstanceState) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   257
	super.onSaveInstanceState(savedInstanceState);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   258
    }
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   259
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   260
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   261
     * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   262
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   263
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   264
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   265
	super.onRestoreInstanceState(savedInstanceState);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   266
    }
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   267
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   268
    /**
508
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   269
     * {@inheritDoc}.
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   270
     */
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   271
    @Override
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   272
    public final boolean onCreateOptionsMenu(Menu menu) {
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   273
	super.onCreateOptionsMenu(menu);
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   274
	MenuInflater inflater = getMenuInflater();
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   275
	inflater.inflate(R.menu.chat, menu);
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   276
	return true;
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   277
    }
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   278
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   279
    /**
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   280
     * {@inheritDoc}.
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   281
     */
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   282
    @Override
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   283
    public final boolean onOptionsItemSelected(MenuItem item) {
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   284
	switch (item.getItemId()) {
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   285
	    case R.id.chat_menu_contacts_list:
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   286
		Intent contactListIntent = new Intent(this, ContactList.class);
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   287
		contactListIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP);
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   288
		startActivity(contactListIntent);
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   289
		break;
508
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   290
	    case R.id.chat_menu_change_chat:
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   291
		try {
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   292
		    final List<Contact> openedChats = mChatManager.getOpenedChatList();
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   293
		    Log.d(TAG, "opened chats = " + openedChats);
789
236c54f9145d Feature #255: adding a chat list button in contact list menu
Nikita Kozlov <nikita@mbdsys.com>
parents: 774
diff changeset
   294
		    Dialog chatList = new ChatList(Chat.this, openedChats).create();
236c54f9145d Feature #255: adding a chat list button in contact list menu
Nikita Kozlov <nikita@mbdsys.com>
parents: 774
diff changeset
   295
		    chatList.show();
508
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   296
		} catch (RemoteException e) {
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   297
		    Log.e(TAG, e.getMessage());
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   298
		}
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   299
		break;
509
18217d0805d7 Ajout d'une petite gestion d'erreur
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 508
diff changeset
   300
	    case R.id.chat_menu_close_chat:
18217d0805d7 Ajout d'une petite gestion d'erreur
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 508
diff changeset
   301
		try {
18217d0805d7 Ajout d'une petite gestion d'erreur
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 508
diff changeset
   302
		    mChatManager.destroyChat(mChat);
18217d0805d7 Ajout d'une petite gestion d'erreur
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 508
diff changeset
   303
		} catch (RemoteException e) {
18217d0805d7 Ajout d'une petite gestion d'erreur
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 508
diff changeset
   304
		    Log.e(TAG, e.getMessage());
18217d0805d7 Ajout d'une petite gestion d'erreur
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 508
diff changeset
   305
		}
18217d0805d7 Ajout d'une petite gestion d'erreur
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 508
diff changeset
   306
		this.finish();
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   307
		break;
508
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   308
	    default:
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   309
		return false;
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   310
	}
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   311
	return true;
508
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   312
    }
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   313
7d8da3df2907 Ajout d'un chat switcher dans l'activite Chat.
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 503
diff changeset
   314
    /**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   315
     * Change the displayed chat.
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   316
     * @param contact the targeted contact of the new chat
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   317
     * @throws RemoteException If a Binder remote-invocation error occurred.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   318
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   319
    private void changeCurrentChat(Contact contact) throws RemoteException {
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   320
	if (mChat != null) {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   321
	    mChat.setOpen(false);
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   322
	    mChat.removeMessageListener(mMessageListener);
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   323
	}
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   324
	mChat = mChatManager.getChat(contact);
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   325
	if (mChat != null) {
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   326
	    mChat.setOpen(true);
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   327
	    mChat.addMessageListener(mMessageListener);
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   328
	    mChatManager.deleteChatNotification(mChat);
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   329
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   330
	mContact = mRoster.getContact(contact.getJID());
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   331
	String res = contact.getSelectedRes();
643
335e1eb21cec Fix a bug when the contact is not in your roster.
Da Risk <darisk972@gmail.com>
parents: 642
diff changeset
   332
	if (mContact == null)
335e1eb21cec Fix a bug when the contact is not in your roster.
Da Risk <darisk972@gmail.com>
parents: 642
diff changeset
   333
	    mContact = contact;
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   334
	if (!"".equals(res)) {
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   335
	    mContact.setSelectedRes(res);
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   336
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   337
	updateContactInformations();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   338
	updateContactStatusIcon();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   339
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   340
	playRegisteredTranscript();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   341
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   342
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   343
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   344
     * Get all messages from the current chat and refresh the activity with them.
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   345
     * @throws RemoteException If a Binder remote-invocation error occurred.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   346
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   347
    private void playRegisteredTranscript() throws RemoteException {
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   348
	mListMessages.clear();
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   349
	if (mChat != null) {
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   350
	    List<MessageText> msgList = convertMessagesList(mChat.getMessages());
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   351
	    mListMessages.addAll(msgList);
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   352
	    mMessagesListAdapter.notifyDataSetChanged();
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   353
	}
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   354
    }
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   355
654
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   356
    /**
714
40190c2be90b some improvement in resource management, ready to test
Nikita Kozlov <nikita@beem-project.com>
parents: 713
diff changeset
   357
     * Convert a list of Message coming from the service to a list of MessageText that can be displayed in UI.
654
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   358
     * @param chatMessages the list of Message
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   359
     * @return a list of message that can be displayed.
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   360
     */
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   361
    private List<MessageText> convertMessagesList(List<Message> chatMessages) {
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   362
	List<MessageText> result = new ArrayList<MessageText>(chatMessages.size());
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   363
	String remoteName = mContact.getName();
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   364
	String localName = getString(R.string.chat_self);
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   365
	MessageText lastMessage = null;
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   366
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   367
	for (Message m : chatMessages) {
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   368
	    String name = remoteName;
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   369
	    String fromBareJid = StringUtils.parseBareAddress(m.getFrom());
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   370
	    if (m.getType() == Message.MSG_TYPE_ERROR) {
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   371
		lastMessage = null;
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   372
		result.add(new MessageText(fromBareJid, name, m.getBody(), true, m.getTimestamp()));
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   373
	    } else if (m.getType() == Message.MSG_TYPE_CHAT) {
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   374
		if (fromBareJid == null) { //nofrom or from == yours
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   375
		    name = localName;
661
c6f9f2fcaf06 fix some bugs in the chat activity
Da Risk <darisk972@gmail.com>
parents: 659
diff changeset
   376
		    fromBareJid = "";
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   377
		}
661
c6f9f2fcaf06 fix some bugs in the chat activity
Da Risk <darisk972@gmail.com>
parents: 659
diff changeset
   378
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   379
		if (m.getBody() != null) {
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   380
		    if (lastMessage == null || !fromBareJid.equals(lastMessage.getBareJid())) {
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   381
			lastMessage = new MessageText(fromBareJid, name, m.getBody(), false, m.getTimestamp());
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   382
			result.add(lastMessage);
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   383
		    } else {
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   384
			lastMessage.setMessage(lastMessage.getMessage().concat("\n" + m.getBody()));
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   385
		    }
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   386
		}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   387
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   388
	}
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   389
	return result;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   390
    }
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   391
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   392
    /**
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   393
     * {@inheritDoc}.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   394
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   395
    private final class BeemServiceConnection implements ServiceConnection {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   396
599
cdadf4e39f99 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 592
diff changeset
   397
	/**
cdadf4e39f99 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 592
diff changeset
   398
	 * Constructor.
cdadf4e39f99 Checkstyle
Da Risk <darisk972@gmail.com>
parents: 592
diff changeset
   399
	 */
691
c775b32927ed * Added some Javadoc to fix the checkstyle issues
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 677
diff changeset
   400
	public BeemServiceConnection() {
c775b32927ed * Added some Javadoc to fix the checkstyle issues
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 677
diff changeset
   401
	}
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   402
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   403
	/**
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   404
	 * {@inheritDoc}.
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   405
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   406
	@Override
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   407
	public void onServiceConnected(ComponentName name, IBinder service) {
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   408
	    mXmppFacade = IXmppFacade.Stub.asInterface(service);
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   409
	    try {
691
c775b32927ed * Added some Javadoc to fix the checkstyle issues
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 677
diff changeset
   410
		mRoster = mXmppFacade.getRoster();
c775b32927ed * Added some Javadoc to fix the checkstyle issues
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 677
diff changeset
   411
		if (mRoster != null)
634
bac4b1927a08 Use relative layout in chat activity.
Da Risk <darisk972@gmail.com>
parents: 629
diff changeset
   412
		    mRoster.addRosterListener(mBeemRosterListener);
691
c775b32927ed * Added some Javadoc to fix the checkstyle issues
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 677
diff changeset
   413
		mChatManager = mXmppFacade.getChatManager();
c775b32927ed * Added some Javadoc to fix the checkstyle issues
Jean-Manuel Da Silva <dasilvj at gmail dot com>
parents: 677
diff changeset
   414
		if (mChatManager != null) {
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   415
		    mChatManager.addChatCreationListener(mChatManagerListener);
634
bac4b1927a08 Use relative layout in chat activity.
Da Risk <darisk972@gmail.com>
parents: 629
diff changeset
   416
		    changeCurrentChat(mContact);
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   417
		}
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   418
	    } catch (RemoteException e) {
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   419
		Log.e(TAG, e.getMessage());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   420
	    }
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   421
	}
501
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   422
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   423
	/**
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   424
	 * {@inheritDoc}.
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   425
	 */
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   426
	@Override
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   427
	public void onServiceDisconnected(ComponentName name) {
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   428
	    mXmppFacade = null;
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   429
	    try {
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   430
		mRoster.removeRosterListener(mBeemRosterListener);
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   431
		mChatManager.removeChatCreationListener(mChatManagerListener);
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   432
	    } catch (RemoteException e) {
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   433
		Log.e(TAG, e.getMessage());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   434
	    }
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   435
	}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   436
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   437
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   438
    /**
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   439
     * {@inheritDoc}.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   440
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   441
    private class BeemRosterListener extends IBeemRosterListener.Stub {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   442
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   443
	/**
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   444
	 * Constructor.
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   445
	 */
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   446
	public BeemRosterListener() {
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   447
	}
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   448
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   449
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   450
	 * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   451
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   452
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   453
	public void onEntriesAdded(List<String> addresses) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   454
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   455
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   456
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   457
	 * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   458
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   459
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   460
	public void onEntriesDeleted(List<String> addresses) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   461
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   462
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   463
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   464
	 * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   465
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   466
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   467
	public void onEntriesUpdated(List<String> addresses) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   468
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   469
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   470
	/**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   471
	 * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   472
	 */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   473
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   474
	public void onPresenceChanged(final PresenceAdapter presence) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   475
	    if (mContact.getJID().equals(StringUtils.parseBareAddress(presence.getFrom()))) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   476
		mHandler.post(new Runnable() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   477
		    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   478
		    public void run() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   479
			mContact.setStatus(presence.getStatus());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   480
			mContact.setMsgState(presence.getStatusText());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   481
			updateContactInformations();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   482
			updateContactStatusIcon();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   483
		    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   484
		});
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   485
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   486
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   487
    }
501
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   488
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   489
    /**
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   490
     * {@inheritDoc}.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   491
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   492
    private class OnMessageListener extends IMessageListener.Stub {
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 501
diff changeset
   493
501
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   494
	/**
589
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   495
	 * Constructor.
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   496
	 */
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   497
	public OnMessageListener() {
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   498
	}
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   499
990edb6c07fd Just a little checkstyle
Da Risk <darisk972@gmail.com>
parents: 588
diff changeset
   500
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   501
	 * {@inheritDoc}.
501
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   502
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   503
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   504
	public void processMessage(IChat chat, final Message msg) throws RemoteException {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   505
	    final String fromBareJid = StringUtils.parseBareAddress(msg.getFrom());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   506
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   507
	    if (mContact.getJID().equals(fromBareJid)) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   508
		mHandler.post(new Runnable() {
502
3091acfe31f4 Ajout d´un status par default quelque soit l´activité.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 501
diff changeset
   509
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   510
		    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   511
		    public void run() {
661
c6f9f2fcaf06 fix some bugs in the chat activity
Da Risk <darisk972@gmail.com>
parents: 659
diff changeset
   512
			if (msg.getType() == Message.MSG_TYPE_ERROR) {
828
e6c399134a47 CheckStyle
"Vincent Veronis"
parents: 827
diff changeset
   513
			    mListMessages.add(new MessageText(fromBareJid, mContact.getName(),
e6c399134a47 CheckStyle
"Vincent Veronis"
parents: 827
diff changeset
   514
				msg.getBody(), true, msg.getTimestamp()));
661
c6f9f2fcaf06 fix some bugs in the chat activity
Da Risk <darisk972@gmail.com>
parents: 659
diff changeset
   515
			    mMessagesListAdapter.notifyDataSetChanged();
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   516
			} else if (msg.getBody() != null) {
705
2850c2c88d9a checkstyle
Da Risk <darisk972@gmail.com>
parents: 704
diff changeset
   517
			    MessageText lastMessage = null;
2850c2c88d9a checkstyle
Da Risk <darisk972@gmail.com>
parents: 704
diff changeset
   518
			    if (mListMessages.size() != 0)
2850c2c88d9a checkstyle
Da Risk <darisk972@gmail.com>
parents: 704
diff changeset
   519
				lastMessage = mListMessages.get(mListMessages.size() - 1);
501
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   520
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   521
			    if (lastMessage != null && lastMessage.getBareJid().equals(fromBareJid)) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   522
				lastMessage.setMessage(lastMessage.getMessage().concat("\n" + msg.getBody()));
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   523
				lastMessage.setTimestamp(msg.getTimestamp());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   524
				mListMessages.set(mListMessages.size() - 1, lastMessage);
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   525
			    } else if (msg.getBody() != null)
828
e6c399134a47 CheckStyle
"Vincent Veronis"
parents: 827
diff changeset
   526
				mListMessages.add(new MessageText(fromBareJid, mContact.getName(),
e6c399134a47 CheckStyle
"Vincent Veronis"
parents: 827
diff changeset
   527
				    msg.getBody(), false, msg.getTimestamp()));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   528
			    mMessagesListAdapter.notifyDataSetChanged();
501
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   529
			}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   530
		    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   531
		});
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   532
	    }
501
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   533
	}
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   534
d52918cfaba7 Corrections des problèmes de l´activité Chat.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 500
diff changeset
   535
	/**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   536
	 * {@inheritDoc}.
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   537
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   538
	@Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   539
	public void stateChanged(IChat chat) throws RemoteException {
704
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   540
	    final String state = chat.getState();
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   541
	    mHandler.post(new Runnable() {
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   542
		@Override
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   543
		public void run() {
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   544
		    String text = null;
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   545
		    if ("active".equals(state)) {
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   546
			text = Chat.this.getString(R.string.chat_state_active);
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   547
		    } else if ("composing".equals(state)) {
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   548
			text = Chat.this.getString(R.string.chat_state_composing);
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   549
		    } else if ("gone".equals(state)) {
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   550
			text = Chat.this.getString(R.string.chat_state_gone);
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   551
		    } else if ("inactive".equals(state)) {
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   552
			text = Chat.this.getString(R.string.chat_state_inactive);
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   553
		    } else if ("paused".equals(state)) {
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   554
			text = Chat.this.getString(R.string.chat_state_active);
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   555
		    }
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   556
		    if (!mCompact)
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   557
			mContactChatState.setText(text);
704
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   558
		}
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   559
	    });
e310d3275d5d Finish reception of Chat State message.
Da Risk <darisk972@gmail.com>
parents: 698
diff changeset
   560
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   561
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   562
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   563
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   564
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   565
     * Update the contact informations.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   566
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   567
    private void updateContactInformations() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   568
	// Check for a contact name update
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   569
	String name = mContact.getName();
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   570
	String res = mContact.getSelectedRes();
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   571
	if (!"".equals(res))
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   572
	    name += "(" + res + ")";
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   573
	if (!mCompact) {
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   574
	    if (!(mContactNameTextView.getText().toString().equals(name)))
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   575
		mContactNameTextView.setText(name);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   576
	    //Check for a contact status message update
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   577
	    if (!(mContactStatusMsgTextView.getText().toString().equals(mContact.getMsgState()))) {
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   578
		mContactStatusMsgTextView.setText(mContact.getMsgState());
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   579
		Linkify.addLinks(mContactStatusMsgTextView, Linkify.WEB_URLS);
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   580
	    }
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   581
	} else {
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   582
	    Mode m = Status.getPresenceModeFromStatus(mContact.getStatus());
867
11136daa9e81 Fix crash on chat with disconnected contact
"Vincent Veronis"
parents: 866
diff changeset
   583
	    if (m == null)
11136daa9e81 Fix crash on chat with disconnected contact
"Vincent Veronis"
parents: 866
diff changeset
   584
		setTitle(getString(R.string.chat_name) + " " + name
11136daa9e81 Fix crash on chat with disconnected contact
"Vincent Veronis"
parents: 866
diff changeset
   585
		    + " (" + getString(R.string.contact_status_msg_offline) + ")");
11136daa9e81 Fix crash on chat with disconnected contact
"Vincent Veronis"
parents: 866
diff changeset
   586
	    else
11136daa9e81 Fix crash on chat with disconnected contact
"Vincent Veronis"
parents: 866
diff changeset
   587
		setTitle(getString(R.string.chat_name) + " " + name + " (" + m.name() + ")");
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   588
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   589
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   590
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   591
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   592
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   593
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   594
     * Update the contact status icon.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   595
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   596
    private void updateContactStatusIcon() {
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   597
	if (mCompact)
841
b5a404ef40f6 checkstyle
Da Risk <darisk972@gmail.com>
parents: 840
diff changeset
   598
	    return;
866
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   599
	String id = mContact.getAvatarId();
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   600
	if (id == null)
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   601
	    id = "";
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   602
	Log.d(TAG, "update contact icon  : " + id);
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   603
	if (!id.equals(mCurrentAvatarId)) {
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   604
	    Drawable avatar = getAvatarDrawable(mContact.getAvatarId());
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   605
	    mAvatarStatusDrawable.setDrawableByLayerId(R.id.avatar, avatar);
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   606
	    mCurrentAvatarId = id;
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   607
	}
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   608
	mContactStatusIcon.setImageLevel(mContact.getStatus());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   609
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   610
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   611
    /**
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   612
     * Get a Drawable containing the avatar icon.
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   613
     *
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   614
     * @param avatarId the avatar id to retrieve or null to get default
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   615
     * @return a Drawable
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   616
     */
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   617
    private Drawable getAvatarDrawable(String avatarId) {
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   618
	Drawable avatarDrawable = null;
866
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   619
	if (avatarId != null) {
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   620
	    Uri uri = AvatarProvider.CONTENT_URI.buildUpon().appendPath(avatarId).build();
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   621
	    InputStream in = null;
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   622
	    try {
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   623
		try {
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   624
		    in = getContentResolver().openInputStream(uri);
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   625
	    avatarDrawable = Drawable.createFromStream(in, avatarId);
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   626
		} finally {
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   627
		    if (in != null)
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   628
			in.close();
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   629
		}
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   630
	    } catch (IOException e) {
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   631
		Log.w(TAG, "Error while setting the avatar", e);
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   632
	    }
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   633
	}
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   634
	if (avatarDrawable == null)
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   635
	    avatarDrawable = getResources().getDrawable(R.drawable.beem_launcher_icon_silver);
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   636
	return avatarDrawable;
866
0173963643d1 Use a content resolver to get the avatar in UI.
Da Risk <darisk972@gmail.com>
parents: 859
diff changeset
   637
    }
840
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   638
01807f5df796 Reinsert avatar on chat activity. the support was removed in a bad merge.
Da Risk <darisk972@gmail.com>
parents: 833
diff changeset
   639
    /**
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   640
     * Prepare the status icons map.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   641
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   642
    private void prepareIconsStatus() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   643
	mStatusIconsMap.put(Status.CONTACT_STATUS_AVAILABLE, BitmapFactory.decodeResource(getResources(),
605
bccd99644eac Change the image for status in the chat activity.
Da Risk <darisk972@gmail.com>
parents: 603
diff changeset
   644
	    android.R.drawable.presence_online));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   645
	mStatusIconsMap.put(Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT, BitmapFactory.decodeResource(getResources(),
605
bccd99644eac Change the image for status in the chat activity.
Da Risk <darisk972@gmail.com>
parents: 603
diff changeset
   646
	    android.R.drawable.presence_online));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   647
	mStatusIconsMap.put(Status.CONTACT_STATUS_AWAY, BitmapFactory.decodeResource(getResources(),
605
bccd99644eac Change the image for status in the chat activity.
Da Risk <darisk972@gmail.com>
parents: 603
diff changeset
   648
	    android.R.drawable.presence_away));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   649
	mStatusIconsMap.put(Status.CONTACT_STATUS_BUSY, BitmapFactory.decodeResource(getResources(),
605
bccd99644eac Change the image for status in the chat activity.
Da Risk <darisk972@gmail.com>
parents: 603
diff changeset
   650
	    android.R.drawable.presence_busy));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   651
	mStatusIconsMap.put(Status.CONTACT_STATUS_DISCONNECT, BitmapFactory.decodeResource(getResources(),
605
bccd99644eac Change the image for status in the chat activity.
Da Risk <darisk972@gmail.com>
parents: 603
diff changeset
   652
	    android.R.drawable.presence_offline));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   653
	mStatusIconsMap.put(Status.CONTACT_STATUS_UNAVAILABLE, BitmapFactory.decodeResource(getResources(),
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   654
	    R.drawable.status_requested));
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   655
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   656
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   657
    /**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   658
     * {@inheritDoc}.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   659
     */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   660
    private class MessagesListAdapter extends BaseAdapter {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   661
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   662
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   663
	 * Constructor.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   664
	 */
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   665
	public MessagesListAdapter() {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   666
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   667
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   668
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   669
	 * Returns the number of messages contained in the messages list.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   670
	 * @return The number of messages contained in the messages list.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   671
	 */
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   672
	@Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   673
	public int getCount() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   674
	    return mListMessages.size();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   675
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   676
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   677
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   678
	 * Return an item from the messages list that is positioned at the position passed by parameter.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   679
	 * @param position The position of the requested item.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   680
	 * @return The item from the messages list at the requested position.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   681
	 */
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   682
	@Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   683
	public Object getItem(int position) {
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   684
	    return mListMessages.get(position);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   685
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   686
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   687
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   688
	 * Return the id of an item from the messages list that is positioned at the position passed by parameter.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   689
	 * @param position The position of the requested item.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   690
	 * @return The id of an item from the messages list at the requested position.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   691
	 */
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   692
	@Override
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   693
	public long getItemId(int position) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   694
	    return position;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   695
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   696
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   697
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   698
	 * Return the view of an item from the messages list.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   699
	 * @param position The position of the requested item.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   700
	 * @param convertView The old view to reuse if possible.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   701
	 * @param parent The parent that this view will eventually be attached to.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   702
	 * @return A View corresponding to the data at the specified position.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   703
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   704
	public View getView(int position, View convertView, ViewGroup parent) {
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   705
	    View sv;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   706
	    if (convertView == null) {
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   707
		LayoutInflater inflater = Chat.this.getLayoutInflater();
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   708
		    sv = inflater.inflate(R.layout.chat_msg_row, null);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   709
	    } else {
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   710
		sv = convertView;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   711
	    }
826
ac719bcb0f25 Compact Chat window support + options in settings
"Vincent Veronis"
parents: 789
diff changeset
   712
	    DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.MEDIUM);
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   713
	    MessageText msg = mListMessages.get(position);
859
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   714
	    TextView msgName = (TextView) sv.findViewById(R.id.chatmessagename);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   715
	    msgName.setText(msg.getName());
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   716
	    msgName.setTextColor(Color.WHITE);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   717
	    msgName.setError(null);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   718
	    TextView msgText = (TextView) sv.findViewById(R.id.chatmessagetext);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   719
	    msgText.setText(msg.getMessage());
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   720
	    registerForContextMenu(msgText);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   721
	    TextView msgDate = (TextView) sv.findViewById(R.id.chatmessagedate);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   722
	    String date = df.format(msg.getTimestamp());
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   723
	    msgDate.setText(date);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   724
	    if (msg.isError()) {
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   725
		String err = getString(R.string.chat_error);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   726
		msgName.setText(err);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   727
		msgName.setTextColor(Color.RED);
136dc663f6d5 Compact chat layout modification
"Vincent Veronis"
parents: 841
diff changeset
   728
		msgName.setError(err);
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   729
	    }
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   730
	    return sv;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   731
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   732
    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   733
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   734
    /**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   735
     * Class which simplify an Xmpp text message.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   736
     * @author Jean-Manuel Da Silva <dasilvj at beem-project dot com>
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   737
     */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   738
    private class MessageText {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   739
	private String mBareJid;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   740
	private String mName;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   741
	private String mMessage;
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   742
	private boolean mIsError;
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   743
	private Date mTimestamp;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   744
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   745
	/**
518
6b8089c9b834 Creation de l'activite PrivacyList et d'une interface PrivacyListListener ainsi que son implementation.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 517
diff changeset
   746
	 * Constructor.
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   747
	 * @param bareJid A String containing the bare JID of the message's author.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   748
	 * @param name A String containing the name of the message's author.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   749
	 * @param message A String containing the message.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   750
	 */
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   751
	public MessageText(final String bareJid, final String name, final String message) {
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   752
	    mBareJid = bareJid;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   753
	    mName = name;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   754
	    mMessage = message;
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   755
	    mIsError = false;
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   756
	}
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   757
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   758
	/**
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   759
	 * Constructor.
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   760
	 * @param bareJid A String containing the bare JID of the message's author.
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   761
	 * @param name A String containing the name of the message's author.
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   762
	 * @param message A String containing the message.
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   763
	 * @param isError if the message is an error message.
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   764
	 */
829
f179ba8098f1 CheckStyle
"Vincent Veronis"
parents: 828
diff changeset
   765
	public MessageText(final String bareJid, final String name, final String message,
828
e6c399134a47 CheckStyle
"Vincent Veronis"
parents: 827
diff changeset
   766
	    final boolean isError) {
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   767
	    mBareJid = bareJid;
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   768
	    mName = name;
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   769
	    mMessage = message;
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   770
	    mIsError = isError;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   771
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   772
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   773
	/**
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   774
	 * Constructor.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   775
	 * @param bareJid A String containing the bare JID of the message's author.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   776
	 * @param name A String containing the name of the message's author.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   777
	 * @param message A String containing the message.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   778
	 * @param isError if the message is an error message.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   779
	 * @param date the time of the message.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   780
	 */
829
f179ba8098f1 CheckStyle
"Vincent Veronis"
parents: 828
diff changeset
   781
	public MessageText(final String bareJid, final String name, final String message,
828
e6c399134a47 CheckStyle
"Vincent Veronis"
parents: 827
diff changeset
   782
	    final boolean isError, Date date) {
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   783
	    mBareJid = bareJid;
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   784
	    mName = name;
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   785
	    mMessage = message;
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   786
	    mIsError = isError;
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   787
	    mTimestamp = date;
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   788
	}
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   789
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   790
	/**
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   791
	 * JID attribute accessor.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   792
	 * @return A String containing the bare JID of the message's author.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   793
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   794
	public String getBareJid() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   795
	    return mBareJid;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   796
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   797
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   798
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   799
	 * Name attribute accessor.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   800
	 * @return A String containing the name of the message's author.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   801
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   802
	public String getName() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   803
	    return mName;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   804
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   805
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   806
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   807
	 * Message attribute accessor.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   808
	 * @return A String containing the message.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   809
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   810
	public String getMessage() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   811
	    return mMessage;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   812
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   813
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   814
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   815
	 * JID attribute mutator.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   816
	 * @param bareJid A String containing the author's bare JID of the message.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   817
	 */
573
a67f46ac98b1 Modification de la gestion des Dialogs dans l'activité PrivacyList.
jamu@gaia
parents: 567
diff changeset
   818
	@SuppressWarnings("unused")
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   819
	public void setBareJid(String bareJid) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   820
	    mBareJid = bareJid;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   821
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   822
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   823
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   824
	 * Name attribute mutator.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   825
	 * @param name A String containing the author's name of the message.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   826
	 */
573
a67f46ac98b1 Modification de la gestion des Dialogs dans l'activité PrivacyList.
jamu@gaia
parents: 567
diff changeset
   827
	@SuppressWarnings("unused")
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   828
	public void setName(String name) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   829
	    mName = name;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   830
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   831
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   832
	/**
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   833
	 * Message attribute mutator.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   834
	 * @param message A String containing a message.
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   835
	 */
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   836
	public void setMessage(String message) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   837
	    mMessage = message;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   838
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   839
654
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   840
	/**
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   841
	 * Get the message type.
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   842
	 * @return true if the message is an error message.
6f4814eb7951 Checkstyle.
Da Risk <darisk972@gmail.com>
parents: 653
diff changeset
   843
	 */
653
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   844
	public boolean isError() {
e94abef6120c Add some displaying of error in chat activity
Da Risk <darisk972@gmail.com>
parents: 643
diff changeset
   845
	    return mIsError;
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   846
	}
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   847
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   848
	/**
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   849
	 * Set the Date of the message.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   850
	 * @param date date of the message.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   851
	 */
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   852
	public void setTimestamp(Date date) {
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   853
	    mTimestamp = date;
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   854
	}
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   855
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   856
	/**
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   857
	 * Get the Date of the message.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   858
	 * @return if it is a delayed message get the date the message was sended.
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   859
	 */
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   860
	public Date getTimestamp() {
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   861
	    return mTimestamp;
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   862
	}
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   863
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   864
    }
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
   865
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   866
    /**
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   867
     * {@inheritDoc}.
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   868
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   869
    @Override
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   870
    public boolean onKey(View v, int keyCode, KeyEvent event) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   871
	if (event.getAction() == KeyEvent.ACTION_DOWN) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   872
	    switch (keyCode) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   873
		case KeyEvent.KEYCODE_ENTER:
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   874
		    sendMessage();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   875
		    return true;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   876
		default:
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   877
		    return false;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   878
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   879
	}
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   880
	return false;
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   881
    }
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   882
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   883
    /**
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   884
     * Send an XMPP message.
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   885
     */
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   886
    private void sendMessage() {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   887
	final String inputContent = mInputField.getText().toString();
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   888
514
c5d0b38dd35f Mise a jour de la JavaDoc et corrections des erreurs de CheckStyle.
Jean-Manuel Da Silva <dasilvj@gmail.com>
parents: 512
diff changeset
   889
	if (!"".equals(inputContent)) {
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   890
	    Message msgToSend = new Message(mContact.getJIDWithRes(), Message.MSG_TYPE_CHAT);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   891
	    msgToSend.setBody(inputContent);
493
56af5554a081 Save of the work on activity Chat.
dasilvj
parents: 480
diff changeset
   892
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   893
	    try {
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   894
		if (mChat == null) {
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   895
		    mChat = mChatManager.createChat(mContact, mMessageListener);
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   896
		    mChat.setOpen(true);
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   897
		}
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   898
		mChat.sendMessage(msgToSend);
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   899
	    } catch (RemoteException e) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   900
		Log.e(TAG, e.getMessage());
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   901
	    }
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   902
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   903
	    final String self = getString(R.string.chat_self);
705
2850c2c88d9a checkstyle
Da Risk <darisk972@gmail.com>
parents: 704
diff changeset
   904
	    MessageText lastMessage = null;
2850c2c88d9a checkstyle
Da Risk <darisk972@gmail.com>
parents: 704
diff changeset
   905
	    if (mListMessages.size() != 0)
2850c2c88d9a checkstyle
Da Risk <darisk972@gmail.com>
parents: 704
diff changeset
   906
		lastMessage = mListMessages.get(mListMessages.size() - 1);
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   907
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   908
	    if (lastMessage != null && lastMessage.getName().equals(self)) {
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   909
		lastMessage.setMessage(lastMessage.getMessage().concat("\n" + inputContent));
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   910
		lastMessage.setTimestamp(new Date());
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   911
	    } else
772
d1db49d18275 fix #263
Da Risk <darisk972@gmail.com>
parents: 714
diff changeset
   912
		mListMessages.add(new MessageText(self, self, inputContent, false, new Date()));
503
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   913
	    mMessagesListAdapter.notifyDataSetChanged();
93e5d2d9953f Le formatter a encore frappé.
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 502
diff changeset
   914
	    mInputField.setText(null);
500
4da77df8f950 Intégration de l´activité Chat à la place de l´activité SendIM
Jean-Manuel ¨dasilvj¨ Da Silva
parents: 493
diff changeset
   915
	}
584
72d9d76900af Fix many bugs and memory leak
Da Risk <darisk972@gmail.com>
parents: 577
diff changeset
   916
    }
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   917
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   918
    /**
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   919
     * This class is in charge of getting the new chat in the activity if someone talk to you.
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   920
     */
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   921
    private class ChatManagerListener extends IChatManagerListener.Stub {
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   922
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   923
	/**
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   924
	 * Constructor.
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   925
	 */
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   926
	public ChatManagerListener() {
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   927
	}
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   928
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   929
	@Override
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   930
	public void chatCreated(IChat chat, boolean locally) {
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   931
	    if (locally)
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   932
		return;
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   933
	    try {
713
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   934
		String contactJid = mContact.getJIDWithRes();
b4333628a4a3 beginning on chat by resource integration and a small fix for the TrustStore
Nikita Kozlov <nikita@beem-project.com>
parents: 705
diff changeset
   935
		String chatJid = chat.getParticipant().getJIDWithRes();
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   936
		if (chatJid.equals(contactJid)) {
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   937
		    // This should not be happened but to be sure
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   938
		    if (mChat != null) {
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   939
			mChat.setOpen(false);
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   940
			mChat.removeMessageListener(mMessageListener);
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   941
		    }
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   942
		    mChat = chat;
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   943
		    mChat.setOpen(true);
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   944
		    mChat.addMessageListener(mMessageListener);
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   945
		    mChatManager.deleteChatNotification(mChat);
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   946
		}
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   947
	    } catch (RemoteException ex) {
677
b8d5e0378bcb Checkstyle et checkstyle plus mechant ^^
Da Risk <darisk972@gmail.com>
parents: 675
diff changeset
   948
		Log.e(TAG, "A remote exception occurs during the creation of a chat", ex);
674
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   949
	    }
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   950
	}
af23f43cf6e3 Create the Chat only when we send or receive a message
Da Risk <darisk972@gmail.com>
parents: 661
diff changeset
   951
    }
480
eb6f1fbea903 Premier jet de l'activite chat, devant remplacer par la suite SendIM.
dasilvj
parents:
diff changeset
   952
}