Search in sources :

Example 1 with Contact

use of com.waz.api.Contact in project wire-android by wireapp.

the class SearchResultAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    @ItemType int itemType = getItemViewType(position);
    switch(itemType) {
        case ITEM_TYPE_TOP_USER:
            ((TopUsersViewHolder) holder).bind(topUsers);
            ((TopUsersViewHolder) holder).bindOnItemTouchListener(topUsersOnItemTouchListener);
            break;
        case ITEM_TYPE_CONVERSATION:
            IConversation conversation = conversations[getConversationInternalPosition(position) - ROW_COUNT_SECTION_HEADER];
            ((ConversationViewHolder) holder).bind(conversation);
            break;
        case ITEM_TYPE_OTHER_USER:
            User otherUser = otherUsers[getOtherUserInternalPosition(position) - ROW_COUNT_SECTION_HEADER];
            boolean otherIsSelected = callback.getSelectedUsers().contains(otherUser);
            ((UserViewHolder) holder).bind(otherUser, otherIsSelected);
            break;
        case ITEM_TYPE_CONNECTED_USER:
            int index = mergedContacts.get(position - ROW_COUNT_SECTION_HEADER).index;
            User connectedUser = connectedUsers[index];
            boolean contactIsSelected = callback.getSelectedUsers().contains(connectedUser);
            ((UserViewHolder) holder).bind(connectedUser, contactIsSelected);
            break;
        case ITEM_TYPE_SECTION_HEADER:
            int type = getSectionItemType(position);
            ((SectionHeaderViewHolder) holder).bind(type);
            break;
        case ITEM_TYPE_INITIAL:
            if (contacts == null || contacts.getInitials() == null || contacts.getInitials().isEmpty()) {
                break;
            }
            position = showSearch ? position - ROW_COUNT_SECTION_HEADER : position;
            String initial = getContactInitial(position);
            ((AddressBookSectionHeaderViewHolder) holder).bind(initial);
            break;
        case ITEM_TYPE_CONTACT:
            if (contacts == null || contacts.getInitials() == null || contacts.getInitials().isEmpty()) {
                break;
            }
            if (showSearch) {
                position = mergedContacts.get(position - ROW_COUNT_SECTION_HEADER).index;
                Contact contact = contacts.get(position);
                ((AddressBookContactViewHolder) holder).bind(contact, contactsCallback, accentColor);
            } else {
                int[] contactMapping = getContactMapping(position);
                String contactInitial = getContactInitial(position);
                int contactInternalPosition = contactMapping[2];
                Contact contact = contacts.getContactForInitial(contactInitial, contactInternalPosition);
                ((AddressBookContactViewHolder) holder).bind(contact, contactsCallback, accentColor);
            }
            break;
        case ITEM_TYPE_EXPAND_BUTTON:
            if (getSectionForPosition(position) == ITEM_TYPE_CONNECTED_USER) {
                ((SectionExpanderViewHolder) holder).bind(mergedContacts.size(), new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        setContactsCollapsed(false);
                    }
                });
            } else {
                ((SectionExpanderViewHolder) holder).bind(conversations.length, new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        setGroupsCollapsed(false);
                    }
                });
            }
            break;
    }
}
Also used : User(com.waz.api.User) ConversationViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.ConversationViewHolder) TopUsersViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.TopUsersViewHolder) IConversation(com.waz.api.IConversation) View(android.view.View) ContactRowView(com.waz.zclient.pages.main.pickuser.views.ContactRowView) RecyclerView(android.support.v7.widget.RecyclerView) UserViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.UserViewHolder) Contact(com.waz.api.Contact) AddressBookSectionHeaderViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.AddressBookSectionHeaderViewHolder) SectionHeaderViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.SectionHeaderViewHolder) AddressBookSectionHeaderViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.AddressBookSectionHeaderViewHolder) SectionExpanderViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.SectionExpanderViewHolder) AddressBookContactViewHolder(com.waz.zclient.pages.main.pickuser.views.viewholders.AddressBookContactViewHolder)

Aggregations

RecyclerView (android.support.v7.widget.RecyclerView)1 View (android.view.View)1 Contact (com.waz.api.Contact)1 IConversation (com.waz.api.IConversation)1 User (com.waz.api.User)1 ContactRowView (com.waz.zclient.pages.main.pickuser.views.ContactRowView)1 AddressBookContactViewHolder (com.waz.zclient.pages.main.pickuser.views.viewholders.AddressBookContactViewHolder)1 AddressBookSectionHeaderViewHolder (com.waz.zclient.pages.main.pickuser.views.viewholders.AddressBookSectionHeaderViewHolder)1 ConversationViewHolder (com.waz.zclient.pages.main.pickuser.views.viewholders.ConversationViewHolder)1 SectionExpanderViewHolder (com.waz.zclient.pages.main.pickuser.views.viewholders.SectionExpanderViewHolder)1 SectionHeaderViewHolder (com.waz.zclient.pages.main.pickuser.views.viewholders.SectionHeaderViewHolder)1 TopUsersViewHolder (com.waz.zclient.pages.main.pickuser.views.viewholders.TopUsersViewHolder)1 UserViewHolder (com.waz.zclient.pages.main.pickuser.views.viewholders.UserViewHolder)1