void UsersPanel::BuildIndexForUser(JsonArray * friends) { /* String letter, prevLetter = L""; int currentGroup = 0; JsonArray * array = new JsonArray(); array->Construct(); for (int i=0; i<friends->GetCount(); i++) { JsonObject *user; JsonParseUtils::GetObject(friends, i, user); String name; JsonParseUtils::GetString(*user, L"first_name", name); name.SubString(0, 1, letter); if (letter != prevLetter) { _fastScrollIndex.Append(letter); _pCurrentModel->AddUserGroup(prevLetter, array); if (prevLetter.GetLength() > 0) { AppLog("Adding %ls to %d item", prevLetter.GetPointer(), currentGroup); _pLetterNav->Add(new String(prevLetter), new Integer(currentGroup)); currentGroup++; } prevLetter = letter; delete array; array = new JsonArray(); array->Construct(); } else { array->Add(user); } }*/ HashMap *letterMap = new HashMap(); letterMap->Construct(); for(int i = 0; i < friends->GetCount(); i++) { JsonObject *user; JsonParseUtils::GetObject(friends, i, user); String name; JsonParseUtils::GetString(*user, L"first_name", name); String letter; name.SubString(0, 1, letter); JsonArray *letterArray; if(!letterMap->ContainsKey(letter)) { letterArray = new JsonArray(); letterArray->Construct(); letterMap->Add(new String(letter), letterArray); } else { letterArray = static_cast<JsonArray*>(letterMap->GetValue(letter)); } letterArray->Add(user); } IList *letterList = letterMap->GetKeysN(); StringComparer comparer; letterList->Sort(comparer); for(int i = 0; i < letterList->GetCount(); i++) { String *letter = static_cast<String *>(letterList->GetAt(i)); _fastScrollIndex.Append(*letter); _pCurrentModel->AddUserGroup(*letter, static_cast<JsonArray *>(letterMap->GetValue(*letter))); _pLetterNav->Add(new String(*letter), new Integer(i)); } delete letterList; delete letterMap; }