src/com/beem/project/beem/ui/ContactList.java
author marseille
Thu, 23 Apr 2009 17:03:53 +0200
changeset 148 c169121bd07e
parent 145 70b67bdac4fc
parent 146 89bbb1c560ad
child 154 60c5f4d64a2b
child 163 52e96a8a743d
permissions -rw-r--r--
merge
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
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     3
import java.util.ArrayList;
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     4
import java.util.HashMap;
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     5
import java.util.List;
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     6
import java.util.Map;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
     7
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
     8
import android.app.ExpandableListActivity;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
     9
import android.content.Context;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    10
import android.content.Intent;
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
    11
import android.graphics.drawable.Drawable;
146
89bbb1c560ad Pre release
Da Risk <darisk972@gmail.com>
parents: 135
diff changeset
    12
import android.net.Uri;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    13
import android.os.Bundle;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
    14
import android.os.Handler;
33
0e65d5f55d2f Merge with ui. Synchronous connection worked.
Da Risk <darisk972@gmail.com>
parents: 22
diff changeset
    15
import android.os.RemoteException;
0e65d5f55d2f Merge with ui. Synchronous connection worked.
Da Risk <darisk972@gmail.com>
parents: 22
diff changeset
    16
import android.util.Log;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    17
import android.view.Menu;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    18
import android.view.MenuInflater;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    19
import android.view.MenuItem;
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
    20
import android.view.View;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
    21
import android.view.ViewGroup;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    22
import android.widget.ExpandableListAdapter;
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
    23
import android.widget.ExpandableListView;
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
    24
import android.widget.ImageView;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    25
import android.widget.SimpleExpandableListAdapter;
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
    26
import android.widget.TextView;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    27
45
ae035477b6aa Utilisation d'une application qui gere les informations globales.
Da Risk <darisk972@gmail.com>
parents: 41
diff changeset
    28
import com.beem.project.beem.BeemApplication;
59
ff98ffba21f4 Merge avec bart.
marseille@KungFuh
parents: 52
diff changeset
    29
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
    30
import com.beem.project.beem.service.Contact;
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    31
import com.beem.project.beem.service.PresenceAdapter;
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    32
import com.beem.project.beem.service.aidl.IBeemRosterListener;
88
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    33
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
    34
import com.beem.project.beem.service.aidl.IXmppFacade;
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
    35
import com.beem.project.beem.utils.Status;
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    36
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    37
public class ContactList extends ExpandableListActivity {
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    38
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    39
    private static final String TAG = "CONTACTLIST_ACT";
120
nikita@nikita-rack
parents: 109
diff changeset
    40
    private static final int PREFERENCECHANGED = 0;
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    41
    private static final String CHILD = "CHILD";
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    42
    private static final String GROUP = "GROUP";
67
8c3870db8e31 Rename some XMPP* classes in Xmpp*
Da Risk <darisk972@gmail.com>
parents: 48
diff changeset
    43
    private IXmppFacade mService = null;
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    44
    private BeemApplication mBeemApplication;
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    45
    private BeemRosterListener mRosterListener;
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    46
    private IRoster mRoster;
33
0e65d5f55d2f Merge with ui. Synchronous connection worked.
Da Risk <darisk972@gmail.com>
parents: 22
diff changeset
    47
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
    48
    @SuppressWarnings("unchecked")
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    49
    @Override
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    50
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    51
	Map<String, Contact> child = (HashMap<String, Contact>) parent.getExpandableListAdapter().getChild(
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    52
	    groupPosition, childPosition);
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    53
	Intent i = new Intent(this, SendIM.class);
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    54
	i.putExtra("contact", child.get(CHILD));
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    55
	startActivity(i);
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    56
	return true;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    57
    }
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    58
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
    59
    @Override
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    60
    protected void onCreate(Bundle saveBundle) {
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
    61
	super.onCreate(saveBundle);
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    62
	mBeemApplication = BeemApplication.getApplication(this);
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    63
	mRosterListener = new BeemRosterListener();
130
eb0c7004090c Besoin de changement sur BeemApplication
Da Risk <darisk972@gmail.com>
parents: 127
diff changeset
    64
	mBeemApplication.startBeemService();
144
3dd605c7c71f Le status de la liste de contact est maintenu.
marseille
parents: 135
diff changeset
    65
	mBeemApplication.callWhenConnectedToServer(new Handler(), new Runnable() {
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    66
	    @Override
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    67
	    public void run() {
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    68
		mService = mBeemApplication.getXmppFacade();
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    69
		try {
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    70
		    mRoster = mService.getRoster();
88
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    71
		} catch (RemoteException e1) {
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    72
		    e1.printStackTrace();
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    73
		}
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    74
		if (mRoster != null) {
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    75
		    try {
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
    76
			mRoster.addConnectionListener(mRosterListener);
88
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    77
		    } catch (RemoteException e) {
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
    78
			e.printStackTrace();
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
    79
		    }
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
    80
		}
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    81
		callbackShowContactList();
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    82
	    }
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    83
	});
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
    84
    }
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
    85
144
3dd605c7c71f Le status de la liste de contact est maintenu.
marseille
parents: 135
diff changeset
    86
    @Override
3dd605c7c71f Le status de la liste de contact est maintenu.
marseille
parents: 135
diff changeset
    87
    protected void onDestroy() {
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    88
	// TODO Auto-generated method stub
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    89
	super.onDestroy();
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    90
	mBeemApplication.unbindBeemService();
144
3dd605c7c71f Le status de la liste de contact est maintenu.
marseille
parents: 135
diff changeset
    91
    }
3dd605c7c71f Le status de la liste de contact est maintenu.
marseille
parents: 135
diff changeset
    92
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    93
    private void callbackShowContactList() {
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    94
	/*
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    95
	 * @TODO: A ameliorer apres listener de nikita
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    96
	 */
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
    97
	if (mRoster != null)
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
    98
	    try {
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
    99
		showContactList(mRoster.getGroupsNames(), mRoster.getContactList());
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   100
	    } catch (RemoteException e) {
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   101
		e.printStackTrace();
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   102
	    }
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   103
    }
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   104
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   105
    /**
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   106
     * Callback for menu creation.
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   107
     * @param menu the menu created
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   108
     * @return true on success, false otherwise
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   109
     */
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   110
    @Override
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   111
    public final boolean onCreateOptionsMenu(Menu menu) {
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   112
	super.onCreateOptionsMenu(menu);
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   113
	MenuInflater inflater = getMenuInflater();
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   114
	inflater.inflate(R.menu.contactlistmenu, menu);
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   115
	return true;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   116
    }
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   117
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   118
    /**
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   119
     * Callback for menu item selected.
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   120
     * @param item the item selected
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   121
     * @return true on success, false otherwise
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   122
     */
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   123
    @Override
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   124
    public final boolean onOptionsItemSelected(MenuItem item) {
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   125
	switch (item.getItemId()) {
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   126
	    case R.id.account_edit:
88
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
   127
		startActivityForResult(new Intent(this, ContactListSettings.class), PREFERENCECHANGED);
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   128
		return true;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   129
	    case R.id.account_about:
146
89bbb1c560ad Pre release
Da Risk <darisk972@gmail.com>
parents: 135
diff changeset
   130
		Intent t = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.beem-project.com"));
89bbb1c560ad Pre release
Da Risk <darisk972@gmail.com>
parents: 135
diff changeset
   131
		startActivity(t);
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   132
		return true;
120
nikita@nikita-rack
parents: 109
diff changeset
   133
	    case R.id.account_create:
nikita@nikita-rack
parents: 109
diff changeset
   134
		startActivity(new Intent(this, AccountCreation.class));
nikita@nikita-rack
parents: 109
diff changeset
   135
		return true;
132
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   136
	    case R.id.add_contact:
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   137
		startActivity(new Intent(this, AddContact.class));
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   138
		return true;
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   139
	    default:
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   140
		return false;
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   141
	}
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   142
    }
132
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   143
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   144
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
132
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   145
	if (requestCode == PREFERENCECHANGED) {
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   146
	    if (resultCode == RESULT_OK) {
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   147
		mBeemApplication.stopBeemService();
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   148
		mBeemApplication.startBeemService();
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   149
	    }
132
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   150
	}
88
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
   151
    }
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
   152
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   153
    private boolean isStatusOK(int status) {
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   154
	if (status == Status.CONTACT_STATUS_AVAILABLE || status == Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   155
	    || status == Status.CONTACT_STATUS_AWAY || status == Status.CONTACT_STATUS_BUSY)
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   156
	    return true;
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   157
	return false;
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   158
    }
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   159
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   160
    private void showContactList(List<String> listGroup, List<Contact> listContact) {
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   161
	ExpandableListAdapter Adapter;
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   162
	List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   163
	List<List<Map<String, Contact>>> childData = new ArrayList<List<Map<String, Contact>>>();
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   164
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   165
	if (listGroup.size() == 0)
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   166
	    listGroup.add("Default");
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   167
	for (int i = 0; i < listGroup.size(); i++) {
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   168
	    Map<String, String> curGroupMap = new HashMap<String, String>();
47
743ccc7961dc Contact liste recuperer.
marseille@KungFuh
parents: 45
diff changeset
   169
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   170
	    groupData.add(curGroupMap);
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   171
	    curGroupMap.put("GROUP", listGroup.get(i));
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   172
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   173
	    List<Map<String, Contact>> children = new ArrayList<Map<String, Contact>>();
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   174
	    for (int j = 0; j < listContact.size(); ++j) {
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   175
		Contact c = listContact.get(j);
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   176
		Log.i(TAG, c.getID() + " " + c.getJID());
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   177
		Map<String, Contact> curChildMap = new HashMap<String, Contact>();
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   178
		children.add(curChildMap);
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   179
		curChildMap.put(CHILD, c);
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   180
	    }
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   181
	    childData.add(children);
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   182
	}
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   183
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   184
	Adapter = new ContactExpandableListAdapter(this, groupData, R.layout.contactlistgroup,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   185
	    new String[] { GROUP }, new int[] { R.id.textgroup }, childData, R.layout.contactlistcontact,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   186
	    new String[] { CHILD }, new int[] { R.id.contactliststatus, R.id.contactlistpseudo,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   187
		R.id.contactlistmsgperso, R.id.contactlistavatar });
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   188
	setListAdapter(Adapter);
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   189
    }
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   190
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   191
    /**
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   192
     * A simple adapter which allows you to bind data to specific Views defined within the layout of an Expandable Lists
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   193
     * children (Implement getGroupView() to define the layout of parents)
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   194
     */
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   195
    private class ContactExpandableListAdapter extends SimpleExpandableListAdapter {
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   196
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   197
	private List<? extends List<? extends Map<String, ?>>> mChildData;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   198
	private String[] mChildFrom;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   199
	private int[] mChildTo;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   200
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   201
	public ContactExpandableListAdapter(Context context, List<? extends Map<String, ?>> groupData, int groupLayout,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   202
	    String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   203
	    int childLayout, String[] childFrom, int[] childTo) {
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   204
	    super(context, groupData, groupLayout, groupFrom, groupTo, childData, childLayout, childFrom, childTo);
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   205
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   206
	    mChildData = childData;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   207
	    mChildFrom = childFrom;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   208
	    mChildTo = childTo;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   209
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   210
	}
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   211
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   212
	@Override
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   213
	public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   214
	    ViewGroup parent) {
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   215
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   216
	    View v;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   217
	    if (convertView == null) {
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   218
		v = newChildView(isLastChild, parent);
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   219
	    } else {
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   220
		v = convertView;
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   221
	    }
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   222
	    bindView(v, mChildData.get(groupPosition).get(childPosition), mChildFrom, mChildTo, groupPosition,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   223
		childPosition);
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   224
	    return v;
42
a0baf41c24a1 Ajout de la partie de barbu. Mais c'est en dur.
marseille@KungFuh
parents: 41
diff changeset
   225
	}
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   226
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   227
	private void bindView(View view, Map<String, ?> data, String[] from, int[] to, int groupPosition,
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   228
	    int childPosition) {
52
375194dc3bca Gros menage dans les views.
marseille@KungFuh
parents: 48
diff changeset
   229
	    Contact c = (Contact) data.get(from[0]);
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   230
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   231
	    if (c != null) {
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   232
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   233
		ImageView imgV = (ImageView) view.findViewById(to[0]);
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   234
		Drawable imageDrawable = null;
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   235
		switch (c.getStatus()) {
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
   236
		    case Status.CONTACT_STATUS_AVAILABLE:
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   237
			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.online);
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   238
			break;
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
   239
		    case Status.CONTACT_STATUS_AVAILABLE_FOR_CHAT:
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   240
			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.chat);
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   241
			break;
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
   242
		    case Status.CONTACT_STATUS_AWAY:
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   243
			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.away);
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   244
			break;
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
   245
		    case Status.CONTACT_STATUS_BUSY:
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   246
			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.dnd);
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   247
			break;
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
   248
		    case Status.CONTACT_STATUS_DISCONNECT:
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   249
			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.offline);
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   250
			break;
106
a9bc9297dff7 Amelioration de la methode change status.
Da Risk <darisk972@gmail.com>
parents: 105
diff changeset
   251
		    case Status.CONTACT_STATUS_UNAVAILABLE:
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   252
			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.requested);
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   253
			break;
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   254
		    default:
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   255
			imageDrawable = (Drawable) getResources().getDrawable(R.drawable.error);
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   256
			break;
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   257
		}
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   258
		imgV.setImageDrawable(imageDrawable);
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   259
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   260
		TextView v = (TextView) view.findViewById(to[1]);
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   261
		if (v != null) {
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   262
		    v.setText(c.getJID());
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   263
		}
88
7b2a869e9ef8 Changement du dialogsettings en activity.
marseille@KungFuh
parents: 87
diff changeset
   264
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   265
		v = (TextView) view.findViewById(to[2]);
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   266
		if (v != null) {
80
29f0d6a23321 Le proxy devrait marcher a peu pres.
Da Risk <darisk972@gmail.com>
parents: 76
diff changeset
   267
		    v.setText(c.getMsgState());
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   268
		}
132
728adc0feb4e debut du addcontact
nikita@nikita-rack
parents: 131
diff changeset
   269
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   270
		/*
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   271
		 * TODO: Rajouter l'avatar du contact getAvatar() dans la classe
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   272
		 */
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   273
		imgV = (ImageView) view.findViewById(to[3]);
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   274
		if (imgV != null) {
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   275
		    imageDrawable = (Drawable) getResources().getDrawable(R.drawable.avatar);
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   276
		    imgV.setImageDrawable(imageDrawable);
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   277
		}
48
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   278
	    }
e7a787b81100 merge avec marseille
Da Risk <darisk972@gmail.com>
parents: 47 42
diff changeset
   279
	}
22
280112cd9602 Reorganisation des fichiers de linterface.
marseille@marseille-desktop
parents:
diff changeset
   280
    }
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   281
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   282
    private class BeemRosterListener extends IBeemRosterListener.Stub {
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   283
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   284
	@Override
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   285
	public void onEntriesAdded(List<String> addresses) throws RemoteException {
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   286
	    Log.i(TAG, "ENTRIES ADDED");
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   287
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   288
	}
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   289
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   290
	@Override
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   291
	public void onEntriesDeleted(List<String> addresses) throws RemoteException {
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   292
	    Log.i(TAG, "ENTRIES DEL");
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   293
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   294
	}
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   295
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   296
	@Override
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   297
	public void onEntriesUpdated(List<String> addresses) throws RemoteException {
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   298
	    Log.i(TAG, "ENTRIES UPD");
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   299
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   300
	}
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   301
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   302
	@Override
145
70b67bdac4fc Qqls modification. Mise en anglais...
marseille
parents: 144
diff changeset
   303
	public void onPresenceChanged(PresenceAdapter presence) throws RemoteException {
78
a02d227ac5a6 ptit bug.
marseille@KungFuh
parents: 77
diff changeset
   304
	    Log.i(TAG, "PRESENCE CHANGED");
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   305
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   306
	}
86
23a0dfdff589 Little Clean.
marseille@KungFuh
parents: 78
diff changeset
   307
77
0f474a0c4e93 Hop petit commit pour que popop puisse debugger.
marseille@KungFuh
parents: 76
diff changeset
   308
    }
60
aa70a805da17 Ajout de nombreux icones pour la gestion des status.
marseille@KungFuh
parents: 59
diff changeset
   309
}