src/com/beem/project/beem/ui/ContactList.java
author Vincent Veronis <veroni_v@epitech.net>
Thu, 01 Oct 2009 17:43:56 +0200
changeset 427 ac5021ad2ac1
parent 423 32d2c5840a8c
child 438 051fa95b54f7
permissions -rw-r--r--
CheckStyle.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     1
package com.beem.project.beem.ui;
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     2
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
     3
import java.util.ArrayList;
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 238
diff changeset
     4
import java.util.Collections;
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 238
diff changeset
     5
import java.util.Comparator;
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
     6
import java.util.HashMap;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     7
import java.util.List;
379
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
     8
import java.util.Map;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
     9
191
cc21283865ad La liste marche, mais chut faut pas le dire a darkmouchefdeprojtyran
nikita@nikita-lab
parents: 185
diff changeset
    10
import org.jivesoftware.smack.util.StringUtils;
cc21283865ad La liste marche, mais chut faut pas le dire a darkmouchefdeprojtyran
nikita@nikita-lab
parents: 185
diff changeset
    11
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
    12
import android.app.Activity;
237
66ea747448ea Suppression de la beemapplication dans contactlist.
marseille@marseille-desktop
parents: 235
diff changeset
    13
import android.content.ComponentName;
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
    14
import android.content.Context;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    15
import android.content.Intent;
380
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
    16
import android.content.IntentFilter;
237
66ea747448ea Suppression de la beemapplication dans contactlist.
marseille@marseille-desktop
parents: 235
diff changeset
    17
import android.content.ServiceConnection;
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
    18
import android.graphics.drawable.Drawable;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    19
import android.os.Bundle;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
    20
import android.os.Handler;
237
66ea747448ea Suppression de la beemapplication dans contactlist.
marseille@marseille-desktop
parents: 235
diff changeset
    21
import android.os.IBinder;
33
0e65d5f55d2f Merge with ui. Synchronous connection worked.
Da Risk <darisk972@gmail.com>
parents: 22
diff changeset
    22
import android.os.RemoteException;
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    23
import android.util.Log;
191
cc21283865ad La liste marche, mais chut faut pas le dire a darkmouchefdeprojtyran
nikita@nikita-lab
parents: 185
diff changeset
    24
import android.view.LayoutInflater;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    25
import android.view.Menu;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    26
import android.view.MenuInflater;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    27
import android.view.MenuItem;
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
    28
import android.view.View;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
    29
import android.view.ViewGroup;
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
    30
import android.widget.AdapterView;
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
    31
import android.widget.BaseAdapter;
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
    32
import android.widget.Gallery;
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
    33
import android.widget.ImageView;
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
    34
import android.widget.ListView;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
    35
import android.widget.TextView;
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
    36
import android.widget.AdapterView.OnItemClickListener;
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
    37
import android.widget.AdapterView.OnItemLongClickListener;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    38
59
ff98ffba21f4 Merge avec bart.
marseille@KungFuh
parents: 52
diff changeset
    39
import com.beem.project.beem.R;
38
3e76846c48a9 We can now get the contact list of the user.
Da Risk <darisk972@gmail.com>
parents: 33
diff changeset
    40
import com.beem.project.beem.service.Contact;
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    41
import com.beem.project.beem.service.PresenceAdapter;
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    42
import com.beem.project.beem.service.aidl.IBeemRosterListener;
88
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    43
import com.beem.project.beem.service.aidl.IRoster;
67
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 48
diff changeset
    44
import com.beem.project.beem.service.aidl.IXmppFacade;
396
1a8a0d152c28 netoyage du broadcast et petit debug
Nikita Kozlov <nikita@beem-project.com>
parents: 392
diff changeset
    45
import com.beem.project.beem.utils.BeemBroadcastReceiver;
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
    46
import com.beem.project.beem.utils.Status;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    47
349
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
    48
/**
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
    49
 * The contact list activity displays the roster of the user.
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
    50
 */
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
    51
public class ContactList extends Activity {
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    52
427
ac5021ad2ac1 CheckStyle.
Vincent Veronis <veroni_v@epitech.net>
parents: 423
diff changeset
    53
    // private static final String TAG = "CONTACTLIST_ACT";
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
    54
    private static final Intent SERVICE_INTENT = new Intent();
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 341
diff changeset
    55
    private static final int REQUEST_CODE = 1;
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
    56
    private BeemContactList mAdapterContactList;
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
    57
    private BeemBanner mAdapterBanner;
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
    58
    private IRoster mRoster;
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    59
    private List<Contact> mListContact = new ArrayList<Contact>();
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
    60
    private List<String> mListGroup = new ArrayList<String>();
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    61
    private Map<String, List<Contact>> mContactOnGroup = new HashMap<String, List<Contact>>();
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    62
    private String mCurGroup;
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
    63
    private Handler mHandler;
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 341
diff changeset
    64
    private IXmppFacade mXmppFacade;
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
    65
    private final ServiceConnection mServConn = new BeemServiceConnection();
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    66
    private BeemBroadcastReceiver mReceiver;
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
    67
390
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 383
diff changeset
    68
    static {
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 383
diff changeset
    69
	SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService"));
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 383
diff changeset
    70
    }
d9737e4bc517 debut de la gestion du disconnect
Nikita Kozlov <nikita@beem-project.com>
parents: 383
diff changeset
    71
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
    72
    /**
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
    73
     * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
    74
     */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
    75
    public ContactList() {
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
    76
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
    77
    }
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
    78
392
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
    79
    /**
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
    80
     * {@inheritDoc}
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
    81
     */
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
    82
    @Override
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
    83
    protected void onCreate(Bundle saveBundle) {
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
    84
	super.onCreate(saveBundle);
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
    85
	setContentView(R.layout.contactlist);
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
    86
	mAdapterContactList = new BeemContactList(this);
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
    87
	mAdapterBanner = new BeemBanner(this);
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
    88
	mHandler = new Handler();
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    89
	mReceiver = new BeemBroadcastReceiver(mServConn);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    90
    }
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
    91
392
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
    92
    /**
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
    93
     * {@inheritDoc}
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
    94
     */
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    95
    @Override
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    96
    protected void onResume() {
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    97
	super.onResume();
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
    98
	this.registerReceiver(mReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED));
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
    99
    }
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   100
392
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
   101
    /**
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
   102
     * {@inheritDoc}
Nikita Kozlov <nikita@beem-project.com>
parents: 391
diff changeset
   103
     */
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   104
    @Override
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   105
    protected void onPause() {
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   106
	super.onPause();
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   107
	this.unregisterReceiver(mReceiver);
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   108
    }
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   109
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   110
    /**
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   111
     * Callback for menu creation.
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   112
     * @param menu the menu created
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   113
     * @return true on success, false otherwise
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   114
     */
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   115
    @Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   116
    public final boolean onCreateOptionsMenu(Menu menu) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   117
	super.onCreateOptionsMenu(menu);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   118
	MenuInflater inflater = getMenuInflater();
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   119
	inflater.inflate(R.menu.contact_list, menu);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   120
	return true;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   121
    }
238
ef8d8745894a Correction bug lors de la Fermeture de la contactlist
marseille@marseille-desktop
parents: 237
diff changeset
   122
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   123
    /**
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   124
     * Callback for menu item selected.
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   125
     * @param item the item selected
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   126
     * @return true on success, false otherwise
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   127
     */
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   128
    @Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   129
    public final boolean onOptionsItemSelected(MenuItem item) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   130
	switch (item.getItemId()) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   131
	    case R.id.contact_list_menu_settings:
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   132
		startActivityForResult(new Intent(this, Settings.class), REQUEST_CODE);
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   133
		return true;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   134
	    case R.id.contact_list_menu_add_contact:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   135
		startActivity(new Intent(ContactList.this, AddContact.class));
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   136
		return true;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   137
	    default:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   138
		return false;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   139
	}
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   140
    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   141
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   142
    @Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   143
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   144
	super.onActivityResult(requestCode, resultCode, data);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   145
	if (requestCode == REQUEST_CODE) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   146
	    if (resultCode == 69) {
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   147
		stopService(SERVICE_INTENT);
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   148
		finish();
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   149
		startActivity(new Intent(this, Login.class));
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   150
	    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   151
	}
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   152
    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   153
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   154
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   155
     * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   156
     */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   157
    @Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   158
    protected void onStart() {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   159
	super.onStart();
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   160
	bindService(SERVICE_INTENT, mServConn, BIND_AUTO_CREATE);
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
   161
	mReceiver.setBinded();
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   162
    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   163
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   164
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   165
     * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   166
     */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   167
    @Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   168
    protected void onStop() {
427
ac5021ad2ac1 CheckStyle.
Vincent Veronis <veroni_v@epitech.net>
parents: 423
diff changeset
   169
	Log.d("CONTACTLIST", "onStop");
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   170
	super.onStop();
412
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
   171
	if (mReceiver.isBinded())
5031fb756b29 gestion de ConnectionClosedOnError
Nikita Kozlov <nikita@beem-project.com>
parents: 404
diff changeset
   172
	    unbindService(mServConn);
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   173
    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   174
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   175
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   176
     * Comparator Contact by Name.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   177
     */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   178
    class ComparatorContactListByName<T> implements Comparator<T> {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   179
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   180
	 * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   181
	 */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   182
	public ComparatorContactListByName() {
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   183
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   184
	}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   185
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   186
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   187
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   188
	 */
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 238
diff changeset
   189
	@Override
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   190
	public int compare(T c1, T c2) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   191
	    return ((Contact) c1).getName().compareToIgnoreCase(((Contact) c2).getName());
240
f879726d6295 Contact List :
marseille@marseille-desktop
parents: 239
diff changeset
   192
	}
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   193
    }
239
65369afd96d3 Rajout de Log dans le beem service pour les reconnections etc.
marseille@marseille-desktop
parents: 238
diff changeset
   194
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   195
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   196
     * Comparator Contact by status and name.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   197
     */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   198
    class ComparatorContactListByStatusAndName<T> implements Comparator<T> {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   199
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   200
	 * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   201
	 */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   202
	public ComparatorContactListByStatusAndName() {
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   203
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   204
	}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   205
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   206
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   207
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   208
	 */
250
bce0846bc3ed Bug #178
nikita@nikita-lab
parents: 241
diff changeset
   209
	@Override
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   210
	public int compare(T c1, T c2) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   211
	    if (((Contact) c1).getStatus() < ((Contact) c2).getStatus()) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   212
		return 1;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   213
	    } else if (((Contact) c1).getStatus() > ((Contact) c2).getStatus()) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   214
		return -1;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   215
	    } else
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   216
		return ((Contact) c1).getName().compareToIgnoreCase(((Contact) c2).getName());
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   217
	}
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   218
    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   219
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   220
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   221
     * Contact List construction.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   222
     */
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   223
    private void buildContactList() {
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   224
	if (mCurGroup != null) {
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   225
	    mListContact = mContactOnGroup.get(mCurGroup);
363
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   226
	}
383
228b20eb8b44 Gestion banner dans la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 382
diff changeset
   227
	sortBeemContactList();
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   228
	ListView listView = (ListView) findViewById(R.id.contactlist);
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   229
	listView.setOnItemClickListener(new BeemContactListOnClick());
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   230
	listView.setOnItemLongClickListener(new BeemContactListOnLongClick());
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   231
	listView.setAdapter(mAdapterContactList);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   232
    }
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   233
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   234
    /**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   235
     * buildBanner.
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   236
     */
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   237
    private void buildBanner() {
423
32d2c5840a8c Ajout de la layout vcard
Vincent Veronis <veroni_v@epitech.net>
parents: 422
diff changeset
   238
	Gallery g = (Gallery) findViewById(R.id.contactlist_banner);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   239
	g.setOnItemClickListener(new OnItemClickGroupName());
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   240
	g.setAdapter(mAdapterBanner);
330
52e3cbc03730 MOdification de la classe ContactList.
Marseille
parents: 326
diff changeset
   241
    }
52e3cbc03730 MOdification de la classe ContactList.
Marseille
parents: 326
diff changeset
   242
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   243
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   244
     * Event simple click on item of the contact list.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   245
     */
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   246
    public class BeemContactListOnClick implements OnItemClickListener {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   247
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   248
	 * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   249
	 */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   250
	public BeemContactListOnClick() {
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   251
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   252
	}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   253
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   254
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   255
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   256
	 */
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   257
	@Override
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   258
	public void onItemClick(AdapterView<?> arg0, View v, int pos, long lpos) {
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   259
	    Contact c = mListContact.get(pos);
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   260
	    Intent i = new Intent(ContactList.this, SendIM.class);
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   261
	    i.setData(c.toUri());
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   262
	    startActivity(i);
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   263
	}
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   264
    }
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   265
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   266
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   267
     * Event long click on item of the contact list.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   268
     */
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   269
    public class BeemContactListOnLongClick implements OnItemLongClickListener {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   270
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   271
	 * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   272
	 */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   273
	public BeemContactListOnLongClick() {
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   274
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   275
	}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   276
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   277
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   278
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   279
	 */
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   280
	@Override
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   281
	public boolean onItemLongClick(AdapterView<?> arg0, View v, int pos, long lpos) {
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   282
	    Contact c = mListContact.get(pos);
427
ac5021ad2ac1 CheckStyle.
Vincent Veronis <veroni_v@epitech.net>
parents: 423
diff changeset
   283
	    ContactDialog dialogContact = new ContactDialog(ContactList.this, c);
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   284
	    dialogContact.setOwnerActivity(ContactList.this);
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   285
	    dialogContact.show();
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   286
	    return true;
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   287
	}
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   288
    }
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   289
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   290
    /**
423
32d2c5840a8c Ajout de la layout vcard
Vincent Veronis <veroni_v@epitech.net>
parents: 422
diff changeset
   291
     * Event simple click on middle groupe name.
379
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   292
     */
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   293
    private class OnItemClickGroupName implements OnItemClickListener {
379
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   294
404
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   295
	/**
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   296
	 * Constructor.
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   297
	 */
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   298
	public OnItemClickGroupName() {
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   299
	}
3c8ca2a1a327 changement de la gestion des settings.
Nikita Kozlov <nikita@beem-project.com>
parents: 402
diff changeset
   300
379
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   301
	@Override
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   302
	public void onItemClick(AdapterView<?> arg0, View v, int i, long l) {
383
228b20eb8b44 Gestion banner dans la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 382
diff changeset
   303
	    mCurGroup = mListGroup.get(i);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   304
	    buildContactList();
379
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   305
	}
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   306
    }
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   307
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   308
    /**
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   309
     * Sort the contact list.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   310
     */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   311
    private void sortBeemContactList() {
363
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   312
	Collections.sort(mListContact, new ComparatorContactListByStatusAndName<Contact>());
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   313
    }
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   314
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   315
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   316
     * Listener on service event.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   317
     */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   318
    private class BeemRosterListener extends IBeemRosterListener.Stub {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   319
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   320
	 * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   321
	 */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   322
	public BeemRosterListener() {
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   323
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   324
	}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   325
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   326
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   327
	 * Refresh the contact list.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   328
	 */
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   329
	private class RunnableChange implements Runnable {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   330
	    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   331
	     * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   332
	     */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   333
	    public RunnableChange() {
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   334
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   335
	    }
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   336
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   337
	    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   338
	     * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   339
	     */
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   340
	    @Override
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   341
	    public void run() {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   342
		sortBeemContactList();
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   343
		mAdapterContactList.notifyDataSetChanged();
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   344
		mAdapterBanner.notifyDataSetChanged();
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   345
	    }
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   346
	}
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   347
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   348
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   349
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   350
	 */
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   351
	@Override
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   352
	public void onEntriesAdded(List<String> addresses) throws RemoteException {
363
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   353
	    for (String newName : addresses) {
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   354
		Contact c = new Contact(newName);
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   355
		mListContact.add(c);
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   356
	    }
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   357
	    mHandler.post(new RunnableChange());
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   358
	}
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   359
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   360
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   361
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   362
	 */
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   363
	@Override
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   364
	public void onEntriesDeleted(List<String> addresses) throws RemoteException {
363
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   365
	    for (String cToDelete : addresses) {
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   366
		for (Contact c : mListContact) {
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   367
		    if (c.getJID().equals(cToDelete)) {
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   368
			mListContact.remove(c);
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   369
			break;
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   370
		    }
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   371
		}
c7ee14b65f39 Gestion du changement de group.
Vincent Veronis <veroni_v@epitech.net>
parents: 362
diff changeset
   372
	    }
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   373
	    mHandler.post(new RunnableChange());
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   374
	}
170
e892a47de086 Correction de 2 3 bugs.
marseille
parents: 166
diff changeset
   375
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   376
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   377
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   378
	 */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   379
	@Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   380
	public void onEntriesUpdated(List<String> addresses) throws RemoteException {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   381
	    mHandler.post(new RunnableChange());
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   382
	}
380
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   383
370
Da Risk <darisk972@gmail.com>
parents: 369 364
diff changeset
   384
	@Override
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   385
	public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException {
385
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   386
	    List<Contact> tmpContactList = mContactOnGroup.get(group);
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   387
	    Contact curContact = null;
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   388
	    for (Contact c : tmpContactList) {
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   389
		if (jid.equals(c.getJID())) {
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   390
		    curContact = c;
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   391
		    tmpContactList.remove(c);
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   392
		    c.getGroups().remove(group);
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   393
		    if (mContactOnGroup.get(group).size() == 0) {
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   394
			mContactOnGroup.remove(group);
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   395
			mListGroup.remove(group);
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   396
			mListContact = mContactOnGroup.get(getString(R.string.contact_list_all_contact));
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   397
		    }
385
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   398
		    break;
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   399
		}
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   400
	    }
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   401
	    if (curContact != null && curContact.getGroups().size() == 0) {
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   402
		mContactOnGroup.get(getString(R.string.contact_list_no_group)).add(curContact);
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   403
	    }
df1ad72832a4 Suppression des contacts dans un groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 384
diff changeset
   404
	    mHandler.post(new RunnableChange());
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   405
	}
380
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   406
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   407
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   408
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   409
	 */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   410
	@Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   411
	public void onPresenceChanged(PresenceAdapter presence) throws RemoteException {
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   412
	    String from = presence.getFrom();
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   413
	    boolean resfound = false;
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   414
	    for (Contact curContact : mListContact) {
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   415
		if (curContact.getJID().equals(StringUtils.parseBareAddress(from))) {
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   416
		    String pres = StringUtils.parseResource(from);
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   417
		    for (String res : curContact.getMRes()) {
380
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   418
			if (res.equals(pres)) {
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   419
			    resfound = true;
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   420
			    break;
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   421
			}
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   422
		    }
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   423
		    curContact.setStatus(mRoster.getPresence(StringUtils.parseBareAddress(presence.getFrom())));
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   424
		    int status = presence.getStatus();
378
735a00bd56cb MOdification contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 374
diff changeset
   425
		    if (!resfound
735a00bd56cb MOdification contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 374
diff changeset
   426
			&& (status != Status.CONTACT_STATUS_DISCONNECT && status != Status.CONTACT_STATUS_UNAVAILABLE))
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   427
			curContact.addRes(pres);
378
735a00bd56cb MOdification contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 374
diff changeset
   428
		    else if (resfound
735a00bd56cb MOdification contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 374
diff changeset
   429
			&& (status == Status.CONTACT_STATUS_DISCONNECT && status == Status.CONTACT_STATUS_UNAVAILABLE))
369
952c6eeb6493 Gestion des resources dans la contactList
Da Risk <darisk972@gmail.com>
parents: 349
diff changeset
   430
			curContact.delRes(pres);
362
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   431
		    mHandler.post(new RunnableChange());
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   432
		    return;
411222f0f758 Mise en place evenement long click et click.
marseille
parents: 361
diff changeset
   433
		}
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   434
	    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   435
	}
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   436
    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   437
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   438
    /**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   439
     * Adapter contact list.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   440
     */
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   441
    private class BeemContactList extends BaseAdapter {
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   442
	private LayoutInflater mInflater;
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   443
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   444
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   445
	 * Constructor.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   446
	 * @param context context activity.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   447
	 */
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   448
	public BeemContactList(final Context context) {
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   449
	    mInflater = LayoutInflater.from(context);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   450
	}
372
0a00323e7e5b Defilement des boutons dans la banniere.
Vincent Veronis <veroni_v@epitech.net>
parents: 364
diff changeset
   451
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   452
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   453
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   454
	 */
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   455
	@Override
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   456
	public int getCount() {
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   457
	    return mListContact.size();
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   458
	}
372
0a00323e7e5b Defilement des boutons dans la banniere.
Vincent Veronis <veroni_v@epitech.net>
parents: 364
diff changeset
   459
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   460
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   461
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   462
	 */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   463
	@Override
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   464
	public Object getItem(int position) {
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   465
	    return position;
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   466
	}
372
0a00323e7e5b Defilement des boutons dans la banniere.
Vincent Veronis <veroni_v@epitech.net>
parents: 364
diff changeset
   467
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   468
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   469
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   470
	 */
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   471
	@Override
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   472
	public long getItemId(int position) {
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   473
	    return position;
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   474
	}
372
0a00323e7e5b Defilement des boutons dans la banniere.
Vincent Veronis <veroni_v@epitech.net>
parents: 364
diff changeset
   475
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   476
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   477
	 * {@inheritDoc}
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   478
	 */
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   479
	@Override
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   480
	public View getView(int position, View convertView, ViewGroup parent) {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   481
	    View v = convertView;
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   482
	    if (convertView == null) {
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   483
		v = mInflater.inflate(R.layout.contactlistcontact, null);
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   484
	    }
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   485
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   486
	    Contact c = mListContact.get(position);
422
1385ea631852 Gestion alias dans la user info.
Vincent Veronis <veroni_v@epitech.net>
parents: 412
diff changeset
   487
	    if (mRoster != null) {
1385ea631852 Gestion alias dans la user info.
Vincent Veronis <veroni_v@epitech.net>
parents: 412
diff changeset
   488
		try {
1385ea631852 Gestion alias dans la user info.
Vincent Veronis <veroni_v@epitech.net>
parents: 412
diff changeset
   489
		    c = mRoster.getContact(c.getJID());
1385ea631852 Gestion alias dans la user info.
Vincent Veronis <veroni_v@epitech.net>
parents: 412
diff changeset
   490
		} catch (RemoteException e) {
1385ea631852 Gestion alias dans la user info.
Vincent Veronis <veroni_v@epitech.net>
parents: 412
diff changeset
   491
		    e.printStackTrace();
1385ea631852 Gestion alias dans la user info.
Vincent Veronis <veroni_v@epitech.net>
parents: 412
diff changeset
   492
		}
1385ea631852 Gestion alias dans la user info.
Vincent Veronis <veroni_v@epitech.net>
parents: 412
diff changeset
   493
	    }
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   494
	    bindView(v, c);
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   495
	    return v;
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   496
	}
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   497
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   498
	/**
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   499
	 * Adapte curContact to the view.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   500
	 * @param view the row view.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   501
	 * @param curContact the current contact.
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   502
	 */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   503
	private void bindView(View view, Contact curContact) {
250
bce0846bc3ed Bug #178
nikita@nikita-lab
parents: 241
diff changeset
   504
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   505
	    if (curContact != null) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   506
		ImageView imgV = (ImageView) view.findViewById(R.id.contactliststatus);
276
673ee3896d50 Petite modification couleur texte
Philippe Lago <lago_p@epitech.net>
parents: 267
diff changeset
   507
		TextView v = (TextView) view.findViewById(R.id.contactlistpseudo);
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   508
		Drawable imageDrawable = null;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   509
		switch (curContact.getStatus()) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   510
		    case Status.CONTACT_STATUS_AVAILABLE:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   511
			imageDrawable = getResources().getDrawable(R.drawable.online);
276
673ee3896d50 Petite modification couleur texte
Philippe Lago <lago_p@epitech.net>
parents: 267
diff changeset
   512
			v.setTextColor(getResources().getColor(R.color.white));
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   513
			break;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   514
		    case Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   515
			imageDrawable = getResources().getDrawable(R.drawable.chat);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   516
			break;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   517
		    case Status.CONTACT_STATUS_AWAY:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   518
			imageDrawable = getResources().getDrawable(R.drawable.away);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   519
			break;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   520
		    case Status.CONTACT_STATUS_BUSY:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   521
			imageDrawable = getResources().getDrawable(R.drawable.dnd);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   522
			break;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   523
		    case Status.CONTACT_STATUS_DISCONNECT:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   524
			imageDrawable = getResources().getDrawable(R.drawable.offline);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   525
			break;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   526
		    case Status.CONTACT_STATUS_UNAVAILABLE:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   527
			imageDrawable = getResources().getDrawable(R.drawable.requested);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   528
			break;
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   529
		    default:
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   530
			imageDrawable = getResources().getDrawable(R.drawable.error);
427
ac5021ad2ac1 CheckStyle.
Vincent Veronis <veroni_v@epitech.net>
parents: 423
diff changeset
   531
			break;
250
bce0846bc3ed Bug #178
nikita@nikita-lab
parents: 241
diff changeset
   532
		}
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   533
		imgV.setImageDrawable(imageDrawable);
326
c5f000965df8 Reconnection
Marseille
parents: 314
diff changeset
   534
303
5427deeda4e0 bug des blanks contacts
nikita@localhost
parents: 301
diff changeset
   535
		String mContactName = curContact.getName();
5427deeda4e0 bug des blanks contacts
nikita@localhost
parents: 301
diff changeset
   536
		if ("".equals(mContactName)) {
5427deeda4e0 bug des blanks contacts
nikita@localhost
parents: 301
diff changeset
   537
		    mContactName = curContact.getJID();
5427deeda4e0 bug des blanks contacts
nikita@localhost
parents: 301
diff changeset
   538
		    mContactName = StringUtils.parseName(mContactName);
5427deeda4e0 bug des blanks contacts
nikita@localhost
parents: 301
diff changeset
   539
		    if ("".equals(mContactName))
5427deeda4e0 bug des blanks contacts
nikita@localhost
parents: 301
diff changeset
   540
			mContactName = curContact.getJID();
250
bce0846bc3ed Bug #178
nikita@nikita-lab
parents: 241
diff changeset
   541
		}
303
5427deeda4e0 bug des blanks contacts
nikita@localhost
parents: 301
diff changeset
   542
		v.setText(mContactName);
212
bbc0b169cdf0 Issues #124, #67, #88
dasilvj
parents: 209
diff changeset
   543
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   544
		v = (TextView) view.findViewById(R.id.contactlistmsgperso);
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   545
		if (v != null) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   546
		    v.setText(curContact.getMsgState());
250
bce0846bc3ed Bug #178
nikita@nikita-lab
parents: 241
diff changeset
   547
		}
bce0846bc3ed Bug #178
nikita@nikita-lab
parents: 241
diff changeset
   548
293
597ee98a6477 Suppression de l'avatar !
Marseille
parents: 289
diff changeset
   549
		/*
364
ed2f2e30c2fc Correction checkstyle
Vincent Veronis <veroni_v@epitech.net>
parents: 363
diff changeset
   550
		 * Rajouter l'avatar du contact getAvatar() dans la classe imgV = (ImageView)
293
597ee98a6477 Suppression de l'avatar !
Marseille
parents: 289
diff changeset
   551
		 * view.findViewById(R.id.contactlistavatar); if (imgV != null) { imageDrawable =
597ee98a6477 Suppression de l'avatar !
Marseille
parents: 289
diff changeset
   552
		 * getResources().getDrawable(R.drawable.avatar); imgV.setImageDrawable(imageDrawable); }
597ee98a6477 Suppression de l'avatar !
Marseille
parents: 289
diff changeset
   553
		 */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   554
	    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   555
	}
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   556
    }
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   557
349
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   558
    /**
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   559
     * Adapter banner list.
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   560
     */
379
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   561
    public class BeemBanner extends BaseAdapter {
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   562
	private Context mContext;
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   563
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   564
	/**
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   565
	 * Constructor.
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   566
	 * @param c context activity.
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   567
	 */
379
5f82c315ebd9 Debut gestion click dans la banner
Vincent Veronis <veroni_v@epitech.net>
parents: 378
diff changeset
   568
	public BeemBanner(final Context c) {
373
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   569
	    mContext = c;
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   570
	}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   571
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   572
	/**
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   573
	 * {@inheritDoc}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   574
	 */
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   575
	@Override
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   576
	public int getCount() {
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   577
	    return mListGroup.size();
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   578
	}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   579
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   580
	/**
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   581
	 * {@inheritDoc}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   582
	 */
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   583
	@Override
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   584
	public Object getItem(int position) {
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   585
	    return position;
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   586
	}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   587
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   588
	/**
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   589
	 * {@inheritDoc}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   590
	 */
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   591
	@Override
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   592
	public long getItemId(int position) {
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   593
	    return position;
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   594
	}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   595
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   596
	/**
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   597
	 * {@inheritDoc}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   598
	 */
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   599
	@Override
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   600
	public View getView(int position, View convertView, ViewGroup parent) {
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   601
	    TextView i = new TextView(mContext);
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   602
	    i.setText(mListGroup.get(position));
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   603
	    return i;
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   604
	}
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   605
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   606
    }
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   607
da35534975cd Modification de la banner.
Vincent Veronis <veroni_v@epitech.net>
parents: 372
diff changeset
   608
    /**
349
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   609
     * The service connection used to connect to the Beem service.
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   610
     */
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   611
    private class BeemServiceConnection implements ServiceConnection {
342
2b489d4a7917 Some checkstyle rules
darisk@kaaliyah
parents: 341
diff changeset
   612
	private BeemRosterListener mBeemRosterListener = new BeemRosterListener();
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   613
349
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   614
	/**
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   615
	 * Constructor.
84d45a88699f Checkstyle rules
darisk@kaaliyah
parents: 342
diff changeset
   616
	 */
361
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   617
	public BeemServiceConnection() {
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   618
	}
8ec622caf8d8 Integration nouvelle contact list.
marseille
parents: 349
diff changeset
   619
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   620
	@Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   621
	public void onServiceConnected(ComponentName name, IBinder service) {
340
5dee5c1e4a29 Some checkstyle rules
darisk@kaaliyah
parents: 336
diff changeset
   622
	    mXmppFacade = IXmppFacade.Stub.asInterface(service);
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   623
	    try {
340
5dee5c1e4a29 Some checkstyle rules
darisk@kaaliyah
parents: 336
diff changeset
   624
		mRoster = mXmppFacade.getRoster();
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   625
		if (mRoster != null) {
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   626
		    mRoster.addRosterListener(mBeemRosterListener);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   627
		    List<Contact> tmpContactList = mRoster.getContactList();
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   628
		    List<String> tmpGroupList = mRoster.getGroupsNames();
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   629
		    Collections.sort(tmpGroupList);
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   630
		    if (mListGroup.size() > 0)
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   631
			mListGroup.clear();
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   632
		    mListGroup.add(getString(R.string.contact_list_all_contact));
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   633
		    mListGroup.addAll(tmpGroupList);
384
0909c0428116 Gestion des contacts sans groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 383
diff changeset
   634
		    mListGroup.add(getString(R.string.contact_list_no_group));
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   635
		    if (tmpGroupList.size() > 0) {
384
0909c0428116 Gestion des contacts sans groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 383
diff changeset
   636
			List<Contact> tmpNoGroup = new ArrayList<Contact>();
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   637
			for (String s : tmpGroupList) {
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   638
			    List<Contact> tmpList = new ArrayList<Contact>();
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   639
			    for (Contact c : tmpContactList) {
384
0909c0428116 Gestion des contacts sans groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 383
diff changeset
   640
				if (c.getGroups().size() == 0 && !tmpNoGroup.contains(c))
0909c0428116 Gestion des contacts sans groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 383
diff changeset
   641
				    tmpNoGroup.add(c);
0909c0428116 Gestion des contacts sans groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 383
diff changeset
   642
				else if (c.getGroups().contains(s))
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   643
				    tmpList.add(c);
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   644
			    }
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   645
			    mContactOnGroup.put(s, tmpList);
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   646
			}
384
0909c0428116 Gestion des contacts sans groupe.
Vincent Veronis <veroni_v@epitech.net>
parents: 383
diff changeset
   647
			mContactOnGroup.put(getString(R.string.contact_list_no_group), tmpNoGroup);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   648
		    } else {
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   649
			mContactOnGroup.put(getString(R.string.contact_list_no_group), tmpContactList);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   650
		    }
394
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   651
		    mContactOnGroup.put(getString(R.string.contact_list_all_contact), tmpContactList);
1bc22fb59ff0 Tri de la contact list.
Vincent Veronis <veroni_v@epitech.net>
parents: 386
diff changeset
   652
		    mCurGroup = getString(R.string.contact_list_all_contact);
382
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   653
		    buildBanner();
Vincent Veronis <veroni_v@epitech.net>
parents: 381
diff changeset
   654
		    buildContactList();
250
bce0846bc3ed Bug #178
nikita@nikita-lab
parents: 241
diff changeset
   655
		}
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   656
	    } catch (RemoteException e) {
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   657
		e.printStackTrace();
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   658
	    }
380
9416b5711edd petit commit pour bundle
Nikita Kozlov <nikita@beem-project.com>
parents: 374
diff changeset
   659
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   660
	}
191
cc21283865ad La liste marche, mais chut faut pas le dire a darkmouchefdeprojtyran
nikita@nikita-lab
parents: 185
diff changeset
   661
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   662
	@Override
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   663
	public void onServiceDisconnected(ComponentName name) {
286
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   664
	    try {
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   665
		mRoster.removeRosterListener(mBeemRosterListener);
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   666
	    } catch (RemoteException e) {
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   667
		e.printStackTrace();
8979375c19f0 Suppression de contact.
Marseille
parents: 285
diff changeset
   668
	    }
340
5dee5c1e4a29 Some checkstyle rules
darisk@kaaliyah
parents: 336
diff changeset
   669
	    mXmppFacade = null;
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   670
	    mRoster = null;
191
cc21283865ad La liste marche, mais chut faut pas le dire a darkmouchefdeprojtyran
nikita@nikita-lab
parents: 185
diff changeset
   671
	}
263
ff0b4790a5ed La gestion de la connection et des changement de settings a ete revu.
marseille@marseille-desktop
parents: 260
diff changeset
   672
    }
184
e9d73490be9b Ajout du message d'etat dans la contact list
marseille
parents: 175 179
diff changeset
   673
}