# HG changeset patch # User Vincent Veronis # Date 1253898648 -7200 # Node ID 1bc22fb59ff09201ce9d67b3fca5d90e48c4fb09 # Parent 928e9403f8c195eb2856fb7b96ecd30feec0228e Tri de la contact list. diff -r 928e9403f8c1 -r 1bc22fb59ff0 src/com/beem/project/beem/ui/ContactList.java --- a/src/com/beem/project/beem/ui/ContactList.java Fri Sep 25 15:59:02 2009 +0200 +++ b/src/com/beem/project/beem/ui/ContactList.java Fri Sep 25 19:10:48 2009 +0200 @@ -1,6 +1,5 @@ package com.beem.project.beem.ui; -import java.security.spec.MGF1ParameterSpec; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -55,10 +54,11 @@ private static final String TAG = "CONTACTLIST_ACT"; private static final int REQUEST_CODE = 1; - private BeemContactList mAdapter; + private BeemContactList mAdapterContactList; + private BeemBanner mAdapterBanner; private IRoster mRoster; private List mListContact = new ArrayList(); - private List mListGroup; + private List mListGroup = new ArrayList(); private Map> mContactOnGroup = new HashMap>(); private String mCurGroup; private Handler mHandler; @@ -77,7 +77,8 @@ protected void onCreate(Bundle saveBundle) { super.onCreate(saveBundle); setContentView(R.layout.contactlist); - mAdapter = new BeemContactList(this); + mAdapterContactList = new BeemContactList(this); + mAdapterBanner = new BeemBanner(this); mHandler = new Handler(); mReceiver = new BeemBroadcastReceiver(); } @@ -157,12 +158,6 @@ unbindService(mServConn); } - @Override - public void onContentChanged() { - super.onContentChanged(); - Log.i("OO", "CHANGED"); - } - /** * Comparator Contact by Name. */ @@ -221,13 +216,13 @@ ListView listView = (ListView) findViewById(R.id.contactlist); listView.setOnItemClickListener(new BeemContactListOnClick()); listView.setOnItemLongClickListener(new BeemContactListOnLongClick()); - listView.setAdapter(mAdapter); + listView.setAdapter(mAdapterContactList); } private void buildBanner() { Gallery g = (Gallery) findViewById(R.id.gallery); g.setOnItemClickListener(new OnItemClickGroupName()); - g.setAdapter(new BeemBanner(this)); + g.setAdapter(mAdapterBanner); } /** @@ -324,7 +319,8 @@ @Override public void run() { sortBeemContactList(); - mAdapter.notifyDataSetChanged(); + mAdapterContactList.notifyDataSetChanged(); + mAdapterBanner.notifyDataSetChanged(); } } @@ -365,7 +361,7 @@ } @Override - public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException { + public void onEntryDeleteFromGroup(String group, String jid) throws RemoteException { List tmpContactList = mContactOnGroup.get(group); Contact curContact = null; for (Contact c : tmpContactList) { @@ -373,6 +369,11 @@ curContact = c; tmpContactList.remove(c); c.getGroups().remove(group); + if (mContactOnGroup.get(group).size() == 0) { + mContactOnGroup.remove(group); + mListGroup.remove(group); + mListContact = mContactOnGroup.get(getString(R.string.contact_list_all_contact)); + } break; } } @@ -598,7 +599,10 @@ List tmpContactList = mRoster.getContactList(); List tmpGroupList = mRoster.getGroupsNames(); Collections.sort(tmpGroupList); - mListGroup = tmpGroupList; + if (mListGroup.size() > 0) + mListGroup.clear(); + mListGroup.add(getString(R.string.contact_list_all_contact)); + mListGroup.addAll(tmpGroupList); mListGroup.add(getString(R.string.contact_list_no_group)); if (tmpGroupList.size() > 0) { List tmpNoGroup = new ArrayList(); @@ -613,11 +617,11 @@ mContactOnGroup.put(s, tmpList); } mContactOnGroup.put(getString(R.string.contact_list_no_group), tmpNoGroup); - mCurGroup = tmpGroupList.get(0); } else { - mCurGroup = null; - mListContact = tmpContactList; + mContactOnGroup.put(getString(R.string.contact_list_no_group), tmpContactList); } + mContactOnGroup.put(getString(R.string.contact_list_all_contact), tmpContactList); + mCurGroup = getString(R.string.contact_list_all_contact); buildBanner(); buildContactList(); }