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;
}
}
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;
}
}
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;
}
}
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());
}
}
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();
}
Aggregations