use of com.waz.api.User in project wire-android by wireapp.
the class RootPreferences method sendGenericInvite.
private void sendGenericInvite() {
if (getControllerFactory() == null || getControllerFactory().isTornDown() || getStoreFactory() == null || getStoreFactory().isTornDown()) {
return;
}
User self = getStoreFactory().getProfileStore().getSelfUser();
String name = self != null && self.getDisplayName() != null ? self.getDisplayName() : "";
String username = self != null && self.getUsername() != null ? self.getUsername() : "";
Intent sharingIntent = IntentUtils.getInviteIntent(getString(R.string.people_picker__invite__share_text__header, name), getString(R.string.people_picker__invite__share_text__body, StringUtils.formatHandle(username)));
startActivity(Intent.createChooser(sharingIntent, getString(R.string.people_picker__invite__share_details_dialog)));
((BaseScalaActivity) getActivity()).injectJava(GlobalTrackingController.class).tagEvent(new OpenedGenericInviteMenuEvent(OpenedGenericInviteMenuEvent.EventContext.SETTINGS));
((BaseScalaActivity) getActivity()).injectJava(GlobalTrackingController.class).onApplicationScreen(ApplicationScreen.SEND_GENERIC_INVITE_MENU);
}
use of com.waz.api.User in project wire-android by wireapp.
the class ConversationFragment method onErrorCanNotSentMessageToUnverifiedConversation.
private void onErrorCanNotSentMessageToUnverifiedConversation(final ErrorsList.ErrorDescription errorDescription) {
if (getControllerFactory().getNavigationController().getCurrentPage() != Page.MESSAGE_STREAM) {
return;
}
KeyboardUtils.hideKeyboard(getActivity());
final IConversation currentConversation = errorDescription.getConversation();
final Iterable<? extends User> users = currentConversation.getUsers();
final Map<User, String> userNameMap = new HashMap<>();
int tmpUnverifiedDevices = 0;
int userCount = 0;
final boolean onlySelfChanged;
for (User user : users) {
if (user.getVerified() == Verification.VERIFIED) {
continue;
}
userCount++;
userNameMap.put(user, user.getDisplayName());
for (OtrClient client : user.getOtrClients()) {
if (client.getVerified() == Verification.VERIFIED) {
continue;
}
tmpUnverifiedDevices++;
}
}
if (self != null && self.getUser().getVerified() != Verification.VERIFIED) {
onlySelfChanged = userCount == 0;
userCount++;
userNameMap.put(self.getUser(), getString(R.string.conversation_degraded_confirmation__header__you));
for (OtrClient client : self.getUser().getOtrClients()) {
if (client.getVerified() == Verification.VERIFIED) {
continue;
}
tmpUnverifiedDevices++;
}
} else {
onlySelfChanged = false;
}
final List<String> userNameList = new ArrayList<>(userNameMap.values());
final int userNameCount = userNameList.size();
final String header;
if (userNameCount == 0) {
header = getResources().getString(R.string.conversation__degraded_confirmation__header__someone);
} else if (userNameCount == 1) {
final int unverifiedDevices = Math.max(1, tmpUnverifiedDevices);
header = getResources().getQuantityString(R.plurals.conversation__degraded_confirmation__header__single_user, unverifiedDevices, userNameList.get(0));
} else {
header = getString(R.string.conversation__degraded_confirmation__header__multiple_user, TextUtils.join(", ", userNameList.subList(0, userNameCount - 1)), userNameList.get(userNameCount - 1));
}
int tmpMessageCount = 0;
for (Message m : errorDescription.getMessages()) {
tmpMessageCount++;
}
final int messageCount = Math.max(1, tmpMessageCount);
final String message = getResources().getQuantityString(R.plurals.conversation__degraded_confirmation__message, messageCount);
final ConfirmationCallback callback = new ConfirmationCallback() {
@Override
public void positiveButtonClicked(boolean checkboxIsSelected) {
final Iterable<? extends Message> messages = errorDescription.getMessages();
for (Message message : messages) {
errorDescription.dismiss();
message.retry();
}
}
@Override
public void negativeButtonClicked() {
}
@Override
public void canceled() {
}
@Override
public void onHideAnimationEnd(boolean confirmed, boolean canceled, boolean checkboxIsSelected) {
if (confirmed || canceled) {
return;
}
if (onlySelfChanged) {
getContext().startActivity(ZetaPreferencesActivity.getOtrDevicesPreferencesIntent(getContext()));
} else {
final View anchorView = ViewUtils.getView(getActivity(), R.id.cursor_menu_item_participant);
getControllerFactory().getConversationScreenController().showParticipants(anchorView, true);
}
}
};
final String positiveButton = getString(R.string.conversation__degraded_confirmation__positive_action);
final String negativeButton = onlySelfChanged ? getString(R.string.conversation__degraded_confirmation__negative_action_self) : getResources().getQuantityString(R.plurals.conversation__degraded_confirmation__negative_action, userCount);
final ConfirmationRequest request = new ConfirmationRequest.Builder().withHeader(header).withMessage(message).withPositiveButton(positiveButton).withNegativeButton(negativeButton).withConfirmationCallback(callback).withCancelButton().withHeaderIcon(R.drawable.shield_half).withWireTheme(getControllerFactory().getThemeController().getThemeDependentOptionsTheme()).build();
getControllerFactory().getConfirmationController().requestConfirmation(request, IConfirmationController.CONVERSATION);
}
use of com.waz.api.User in project wire-android by wireapp.
the class SendConnectRequestFragment method onConnectUserUpdated.
//////////////////////////////////////////////////////////////////////////////////////////
//
// IConnectStoreObserver
//
//////////////////////////////////////////////////////////////////////////////////////////
@Override
public void onConnectUserUpdated(final User user, final IConnectStore.UserRequester userRequester) {
if (this.userRequester != userRequester) {
return;
}
imageAssetImageViewProfile.connectImageAsset(user.getPicture());
displayNameTextView.setText(user.getName());
userDetailsView.setUser(user);
connectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (user == null || getStoreFactory() == null || getStoreFactory().isTornDown()) {
return;
}
User me = getStoreFactory().getProfileStore().getSelfUser();
String myName = me != null ? me.getName() : "";
String otherName = user.getName();
String message = getString(R.string.connect__message, otherName, myName);
IConversation conversation = getStoreFactory().getConnectStore().connectToNewUser(user, message);
trackSendConnectRequest(user);
if (conversation != null) {
KeyboardUtils.hideKeyboard(getActivity());
getContainer().onConnectRequestWasSentToUser();
}
}
});
if (userRequester == IConnectStore.UserRequester.PARTICIPANTS) {
footerMenu.setRightActionText(getString(R.string.glyph__minus));
}
footerMenu.setCallback(new FooterMenuCallback() {
@Override
public void onLeftActionClicked() {
showConnectButtonInsteadOfFooterMenu();
}
@Override
public void onRightActionClicked() {
if (userRequester == IConnectStore.UserRequester.PARTICIPANTS) {
getContainer().showRemoveConfirmation(user);
}
}
});
if (userRequester == IConnectStore.UserRequester.PARTICIPANTS) {
footerMenu.setVisibility(View.VISIBLE);
connectButton.setVisibility(View.GONE);
} else {
footerMenu.setVisibility(View.GONE);
connectButton.setVisibility(View.VISIBLE);
}
}
use of com.waz.api.User in project wire-android by wireapp.
the class ParticipantBodyFragment method conversationUpdated.
@Override
public void conversationUpdated(final IConversation conversation) {
footerMenu.setVisibility(View.VISIBLE);
if (conversation.getType() == IConversation.Type.ONE_TO_ONE) {
footerMenu.setLeftActionText(getString(R.string.glyph__plus));
topBorder.setVisibility(View.INVISIBLE);
footerMenu.setRightActionText(getString(R.string.glyph__more));
getStoreFactory().getSingleParticipantStore().setUser(conversation.getOtherParticipant());
} else {
imageAssetImageView.setVisibility(View.GONE);
// Check if self user is member for group conversation
if (conversation.isMemberOfConversation()) {
footerMenu.setLeftActionText(getString(R.string.glyph__add_people));
footerMenu.setRightActionText(getString(R.string.glyph__more));
footerMenu.setLeftActionLabelText(getString(R.string.conversation__action__add_people));
} else {
footerMenu.setLeftActionText("");
footerMenu.setRightActionText("");
footerMenu.setLeftActionLabelText("");
}
if (lastParticipantAboveFooter()) {
topBorder.setVisibility(View.INVISIBLE);
} else {
topBorder.setVisibility(View.VISIBLE);
}
}
footerMenu.setCallback(new FooterMenuCallback() {
@Override
public void onLeftActionClicked() {
if (userRequester == IConnectStore.UserRequester.POPOVER) {
final User user = getStoreFactory().getSingleParticipantStore().getUser();
if (user.isMe()) {
getControllerFactory().getConversationScreenController().hideParticipants(true, false);
// Go to conversation with this user
getControllerFactory().getPickUserController().hidePickUserWithoutAnimations(getContainer().getCurrentPickerDestination());
getStoreFactory().getConversationStore().setCurrentConversation(user.getConversation(), ConversationChangeRequester.START_CONVERSATION);
return;
}
}
if (!conversation.isMemberOfConversation()) {
return;
}
((BaseScalaActivity) getActivity()).injectJava(GlobalTrackingController.class).tagEvent(new OpenedGroupActionEvent());
getControllerFactory().getConversationScreenController().addPeopleToConversation();
}
@Override
public void onRightActionClicked() {
getStoreFactory().getNetworkStore().doIfHasInternetOrNotifyUser(new NetworkAction() {
@Override
public void execute(NetworkMode networkMode) {
if (!conversation.isMemberOfConversation()) {
return;
}
if (userRequester == IConnectStore.UserRequester.POPOVER) {
User otherUser = conversation.getOtherParticipant();
getContainer().toggleBlockUser(otherUser, otherUser.getConnectionStatus() != User.ConnectionStatus.BLOCKED);
} else {
getControllerFactory().getConversationScreenController().showConversationMenu(IConversationScreenController.CONVERSATION_DETAILS, conversation, null);
}
}
@Override
public void onNoNetwork() {
ViewUtils.showAlertDialog(getActivity(), R.string.alert_dialog__no_network__header, R.string.leave_conversation_failed__message, R.string.alert_dialog__confirmation, null, true);
}
});
}
});
}
use of com.waz.api.User in project wire-android by wireapp.
the class ParticipantBodyFragment method onItemClick.
//////////////////////////////////////////////////////////////////////////////////////////
//
// Notifications
//
//////////////////////////////////////////////////////////////////////////////////////////
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
User user = participantsAdapter.getItem(position);
getControllerFactory().getConversationScreenController().showUser(user);
}
Aggregations