@Override public void showOptionsMenu(final User user) { @IConversationScreenController.ConversationMenuRequester int menuRequester = (userRequester == IConnectStore.UserRequester.SEARCH) ? IConversationScreenController.USER_PROFILE_SEARCH : IConversationScreenController.CONVERSATION_DETAILS; optionsMenuControl.setTitle(user.getDisplayName()); optionsMenuControl.createMenu( user.getConversation(), menuRequester, getControllerFactory().getThemeController().getThemeDependentOptionsTheme()); optionsMenuControl.open(); }
@Override public void onOptionsItemClicked(IConversation conversation, User user, OptionsMenuItem item) { switch (item) { case BLOCK: showBlockUserConfirmation(user); break; case UNBLOCK: user.unblock(); break; case ARCHIVE: getStoreFactory().getConversationStore().archive(conversation, true); getControllerFactory() .getTrackingController() .tagEvent(new ArchivedConversationEvent(conversation.getType().toString())); break; case UNARCHIVE: getStoreFactory().getConversationStore().archive(conversation, false); getControllerFactory() .getTrackingController() .tagEvent(new UnarchivedConversationEvent(conversation.getType().toString())); break; case SILENCE: conversation.setMuted(true); break; case UNSILENCE: conversation.setMuted(false); break; } optionsMenuControl.close(); }
private void showBlockUserConfirmation(final User user) { getControllerFactory().getNavigationController().setRightPage(Page.CONFIRMATION_DIALOG, TAG); ConfirmationCallback callback = new TwoButtonConfirmationCallback() { @Override public void positiveButtonClicked(boolean checkboxIsSelected) { getStoreFactory().getConnectStore().blockUser(user); final IConnectStore.UserRequester userRequester = IConnectStore.UserRequester.valueOf( getArguments().getString(ARGUMENT_USER_REQUESTER)); getStoreFactory().getConnectStore().blockUser(user); switch (userRequester) { case CONVERSATION: getStoreFactory() .getConversationStore() .setCurrentConversationToNext(ConversationChangeRequester.BLOCK_USER); break; case SEARCH: case POPOVER: getControllerFactory().getPickUserController().hideUserProfile(); break; } getControllerFactory() .getTrackingController() .tagEvent(new BlockingEvent(BlockingEvent.ConformationResponse.BLOCK)); } @Override public void negativeButtonClicked() {} @Override public void onHideAnimationEnd( boolean confirmed, boolean canceled, boolean checkboxIsSelected) { restoreCurrentPageAfterClosingOverlay(); } }; String header = getString(R.string.confirmation_menu__block_header); String text = getString(R.string.confirmation_menu__block_text_with_name, user.getDisplayName()); String confirm = getString(R.string.confirmation_menu__confirm_block); String cancel = getString(R.string.confirmation_menu__cancel); ConfirmationRequest request = new ConfirmationRequest.Builder(IConfirmationController.BLOCK_PENDING) .withHeader(header) .withMessage(text) .withPositiveButton(confirm) .withNegativeButton(cancel) .withConfirmationCallback(callback) .withWireTheme( getControllerFactory().getThemeController().getThemeDependentOptionsTheme()) .build(); getControllerFactory() .getConfirmationController() .requestConfirmation(request, IConfirmationController.USER_PROFILE); getStoreFactory().getMediaStore().playSound(R.raw.alert); getControllerFactory().getVibratorController().vibrate(R.array.alert); }