From 64220d04c779c2f627a0053dc01cff62b68a2434 Mon Sep 17 00:00:00 2001 From: aikons Date: Sun, 2 Jun 2013 09:44:55 +0800 Subject: [PATCH] fix Easy Selector FC when you don't have any group --- src/com/android/mms/ui/AddRecipientsList.java | 64 ++++++++++++++----- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/src/com/android/mms/ui/AddRecipientsList.java b/src/com/android/mms/ui/AddRecipientsList.java index 3f9f20f0..ca03b3f6 100644 --- a/src/com/android/mms/ui/AddRecipientsList.java +++ b/src/com/android/mms/ui/AddRecipientsList.java @@ -275,27 +275,60 @@ private void initListAdapter() { // For each PhoneNumber, find its GID, and add it to correct Group int phoneNumbersCount = mPhoneNumbers.size(); - int groupsCount = mGroups.size(); - for (int i = 0; i < phoneNumbersCount; i++) { - PhoneNumber phoneNumber = mPhoneNumbers.get(i); - long cid = phoneNumber.getContactId(); - - Iterator iterator = groupIdWithContactsId.keySet().iterator(); - while (iterator.hasNext()) { - long gid = (Long)iterator.next(); - if (groupIdWithContactsId.get(gid).contains(cid)) { - for (int j = 0; j < groupsCount; j++) { - Group group = mGroups.get(j); - if (group.getId() == gid) { - group.addPhoneNumber(phoneNumber); - phoneNumber.addGroup(group); + if (mGroups == null) { + int groupsCount = 0; + for (int i = 0; i < phoneNumbersCount; i++) { + PhoneNumber phoneNumber = mPhoneNumbers.get(i); + long cid = phoneNumber.getContactId(); + + Iterator iterator = groupIdWithContactsId.keySet().iterator(); + while (iterator.hasNext()) { + long gid = (Long)iterator.next(); + if (groupIdWithContactsId.get(gid).contains(cid)) { + for (int j = 0; j < groupsCount; j++) { + Group group = mGroups.get(j); + if (group.getId() == gid) { + group.addPhoneNumber(phoneNumber); + phoneNumber.addGroup(group); + } } } } } + ArrayList items = new ArrayList(); + for (int i = 0; i < groupsCount; i++) { + Group group = mGroups.get(i); + items.add(i, new AddRecipientsListItem(this, group)); } + for (int i = 0; i < phoneNumbersCount; i++) { + PhoneNumber phoneNumber = mPhoneNumbers.get(i); + items.add(i + groupsCount, new AddRecipientsListItem(this, phoneNumber)); + } + mListAdapter = new AddRecipientsListAdapter(this, items); + setListAdapter(mListAdapter); +} + else{ + int groupsCount = mGroups.size(); + for (int i = 0; i < phoneNumbersCount; i++) { + PhoneNumber phoneNumber = mPhoneNumbers.get(i); + long cid = phoneNumber.getContactId(); + + Iterator iterator = groupIdWithContactsId.keySet().iterator(); + while (iterator.hasNext()) { + long gid = (Long)iterator.next(); + if (groupIdWithContactsId.get(gid).contains(cid)) { + for (int j = 0; j < groupsCount; j++) { + Group group = mGroups.get(j); + if (group.getId() == gid) { + group.addPhoneNumber(phoneNumber); + phoneNumber.addGroup(group); + } + } + } + } + } ArrayList items = new ArrayList(); for (int i = 0; i < groupsCount; i++) { Group group = mGroups.get(i); @@ -306,9 +339,10 @@ private void initListAdapter() { PhoneNumber phoneNumber = mPhoneNumbers.get(i); items.add(i + groupsCount, new AddRecipientsListItem(this, phoneNumber)); } - mListAdapter = new AddRecipientsListAdapter(this, items); setListAdapter(mListAdapter); + } + } @Override