# HG changeset patch # User Nikita Kozlov # Date 1253901453 -7200 # Node ID 73e2c848e08d12c14f252785af29b386cecbad4e # Parent 1a8a0d152c280edaccbe917e66492b03901d3f04# Parent 172ed4d2b2c7ec80510e43d266138930c5b52f52 merge diff -r 1a8a0d152c28 -r 73e2c848e08d src/com/beem/project/beem/ui/ContactList.java --- a/src/com/beem/project/beem/ui/ContactList.java Fri Sep 25 19:57:04 2009 +0200 +++ b/src/com/beem/project/beem/ui/ContactList.java Fri Sep 25 19:57:33 2009 +0200 @@ -55,10 +55,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; @@ -85,7 +86,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(); } @@ -169,12 +171,6 @@ unbindService(mServConn); } - @Override - public void onContentChanged() { - super.onContentChanged(); - Log.i("OO", "CHANGED"); - } - /** * Comparator Contact by Name. */ @@ -233,13 +229,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); } /** @@ -336,7 +332,8 @@ @Override public void run() { sortBeemContactList(); - mAdapter.notifyDataSetChanged(); + mAdapterContactList.notifyDataSetChanged(); + mAdapterBanner.notifyDataSetChanged(); } } @@ -377,7 +374,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) { @@ -385,6 +382,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; } } @@ -610,7 +612,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(); @@ -625,11 +630,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(); }