Search in sources :

Example 41 with User

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

the class PickUserFragment method onContactListUserClicked.

@Override
public void onContactListUserClicked(User user) {
    if (getStoreFactory() == null || getStoreFactory().isTornDown() || user == null) {
        return;
    }
    // ACCEPTED user connection status handled by onUserClicked callback
    switch(user.getConnectionStatus()) {
        case UNCONNECTED:
            User me = getStoreFactory().getProfileStore().getSelfUser();
            String myName = me != null ? me.getName() : "";
            String message = getString(R.string.connect__message, user.getName(), myName);
            user.connect(message);
            ((BaseScalaActivity) getActivity()).injectJava(GlobalTrackingController.class).tagEvent(new SentConnectRequestEvent(SentConnectRequestEvent.EventContext.INVITE_CONTACT_LIST, user.getCommonConnectionsCount()));
            break;
    }
}
Also used : SelectedTopUser(com.waz.zclient.controllers.tracking.events.connect.SelectedTopUser) User(com.waz.api.User) GlobalTrackingController(com.waz.zclient.tracking.GlobalTrackingController) SentConnectRequestEvent(com.waz.zclient.controllers.tracking.events.connect.SentConnectRequestEvent)

Example 42 with User

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

the class PickUserFragment method showUser.

private void showUser(User user, View anchorView) {
    switch(user.getConnectionStatus()) {
        case ACCEPTED:
            if (isAddingToConversation()) {
                ArrayList<User> users = new ArrayList<>();
                users.add(user);
                getContainer().onSelectedUsers(users, ConversationChangeRequester.START_CONVERSATION);
            } else {
                // Go to 1:1 conversation
                IConversation conversation = user.getConversation();
                if (conversation != null) {
                    KeyboardUtils.hideKeyboard(getActivity());
                    getStoreFactory().getConversationStore().setCurrentConversation(conversation, ConversationChangeRequester.START_CONVERSATION);
                }
            }
            break;
        case PENDING_FROM_USER:
        case BLOCKED:
        case IGNORED:
        case CANCELLED:
        case UNCONNECTED:
            KeyboardUtils.hideKeyboard(getActivity());
            getControllerFactory().getConversationScreenController().setPopoverLaunchedMode(DialogLaunchMode.SEARCH);
            getControllerFactory().getPickUserController().showUserProfile(user, anchorView);
            break;
        case PENDING_FROM_OTHER:
            // Show inbox
            KeyboardUtils.hideKeyboard(getActivity());
            // Load inbox requests to retrieve conversation
            pendingFromUser = user;
            getStoreFactory().getConversationStore().loadConnectRequestInboxConversations(this, InboxLoadRequester.INBOX_SHOW_SPECIFIC);
            break;
    }
}
Also used : SelectedTopUser(com.waz.zclient.controllers.tracking.events.connect.SelectedTopUser) User(com.waz.api.User) ArrayList(java.util.ArrayList) IConversation(com.waz.api.IConversation)

Example 43 with User

use of com.waz.api.User 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)

Example 44 with User

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

the class ParticipantHeaderFragment method onStart.

@Override
public void onStart() {
    super.onStart();
    if (userRequester == IConnectStore.UserRequester.POPOVER) {
        getStoreFactory().getConnectStore().addConnectRequestObserver(this);
        final User user = getStoreFactory().getSingleParticipantStore().getUser();
        getStoreFactory().getConnectStore().loadUser(user.getId(), userRequester);
    } else {
        getStoreFactory().getParticipantsStore().addParticipantsStoreObserver(this);
    }
    getControllerFactory().getConversationScreenController().addConversationControllerObservers(this);
    getControllerFactory().getAccentColorController().addAccentColorObserver(this);
    if (!getControllerFactory().getThemeController().isDarkTheme()) {
        headerEditText.setAccentColor(getControllerFactory().getAccentColorController().getColor());
    }
}
Also used : User(com.waz.api.User)

Example 45 with User

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

the class ParticipantsChatheadAdapter method updated.

@Override
public void updated() {
    userListVerified.clear();
    userListUnverified.clear();
    if (usersList != null) {
        for (User user : usersList) {
            switch(user.getVerified()) {
                case VERIFIED:
                    userListVerified.add(user);
                    break;
                default:
                    userListUnverified.add(user);
                    break;
            }
        }
    }
    // fill up with empty spaces
    if (userListUnverified.size() > 0) {
        int rest = userListUnverified.size() % numOfColumns;
        if (rest != 0) {
            int fillupCount = numOfColumns - rest;
            for (int i = 0; i < fillupCount; i++) {
                userListUnverified.add(null);
            }
        }
    }
    if (!userListVerified.isEmpty()) {
        separatorPos = userListUnverified.size();
    } else {
        separatorPos = -1;
    }
    notifyDataSetChanged();
}
Also used : User(com.waz.api.User)

Aggregations

User (com.waz.api.User)46 Test (org.junit.Test)15 IConversation (com.waz.api.IConversation)9 UserDetailsView (com.waz.zclient.ui.views.UserDetailsView)9 OtrClient (com.waz.api.OtrClient)8 ViewTest (com.waz.zclient.testutils.ViewTest)8 FragmentTest (com.waz.zclient.testutils.FragmentTest)7 SelectedTopUser (com.waz.zclient.controllers.tracking.events.connect.SelectedTopUser)5 View (android.view.View)4 GlobalTrackingController (com.waz.zclient.tracking.GlobalTrackingController)4 ArrayList (java.util.ArrayList)4 Intent (android.content.Intent)3 ContactDetails (com.waz.api.ContactDetails)3 AbsListView (android.widget.AbsListView)2 TextView (android.widget.TextView)2 OpenedGenericInviteMenuEvent (com.waz.zclient.controllers.tracking.events.connect.OpenedGenericInviteMenuEvent)2 FooterMenuCallback (com.waz.zclient.views.menus.FooterMenuCallback)2 SuppressLint (android.annotation.SuppressLint)1 Handler (android.os.Handler)1 ActionMenuView (android.support.v7.widget.ActionMenuView)1