@Override public void hideOptions() { removeUserFromChatOnExit = true; if(optionsHandler != null) { optionsHandler.hide(); } }
@Override public void showOptions() { removeUserFromChatOnExit = false; optionsHandler = ChatSDK.ui().getChatOptionsHandler(this); optionsHandler.show(this); }
public void executeOption (ChatOption option) { if(delegate != null) { delegate.get().executeChatOption(option); } }
@Override public AbstractMessageViewHolder onCreateViewHolder(ViewGroup parent, int type) { int viewType = (int) Math.ceil(type / MessageType.Max); int messageType = type - viewType * MessageType.Max; MessageDisplayHandler handler = ChatSDK.ui().getMessageHandler(new MessageType(messageType)); return handler.newViewHolder(viewType == ViewTypeReply, activity); }
public static String payloadAsString (Message message) { MessageDisplayHandler handler = ChatSDK.ui().getMessageHandler(message.getMessageType()); if (handler != null) { return handler.displayName(message); } return t(R.string.unknown_message); }
protected void afterLogin() { // We pass the extras in case this activity was laucned by a push. In that case // we can load up the thread the message belongs to ChatSDK.ui().startMainActivity(this, extras); }
@Override public boolean show(Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); final List<ChatOption> options = ChatSDK.ui().getChatOptions(); String [] items = new String [options.size()]; int i = 0; for(ChatOption option : options) { items[i++] = option.getTitle(); } hasExecuted = false; builder.setTitle(context.getString(R.string.actions)).setItems(items, (dialogInterface, i1) -> { if(!hasExecuted) { executeOption(options.get(i1)); } hasExecuted = true; }); dialog = builder.show(); return true; }
public void startProfilePicturesActivity(Context context, String userEntityID) { Intent intent = new Intent(context, getProfilePicturesActivity()); intent.putExtra(InterfaceManager.USER_ENTITY_ID, userEntityID); intent.putExtra(KeyGridPadding, gridPadding); intent.putExtra(KeyPictureMargin, pictureMargin); intent.putExtra(KeyPicturesPerRow, picturesPerRow); intent.putExtra(KeyMaxPictures, maxPictures); intent.putExtra(KeyHideButton, hideButton); intent.putExtra(KeyLimitWarning, getLimitWarning()); ChatSDK.ui().startActivity(context, intent); }
@Override public void onBindViewHolder(AbstractMessageViewHolder holder, int position) { MessageListItem messageItem = getMessageItems().get(position); Message message = messageItem.getMessage(); holder.setMessage(message); if (message.getMessageStatus().equals(MessageSendStatus.Uploading) || (messageItem.progress > 0 && messageItem.progress < 1)) { holder.showProgressBar(messageItem.progress); } else { holder.hideProgressBar(); } for(MessageDisplayHandler handler : ChatSDK.ui().getMessageHandlers()) { handler.updateMessageCellView(messageItem.message, holder, activity); } }
/** * Sorting a given list using the internal comparator. * * This will be used each time after setting the user item * * */ protected void sortList(List<UserListItem> list){ Comparator comparator = (Comparator<UserListItem>) (u1, u2) -> { String s1 = ""; if(u1 != null && u1.getName() != null) { s1 = u1.getName(); } String s2 = ""; if(u2 != null && u2.getName() != null) { s2 = u2.getName(); } return s1.compareToIgnoreCase(s2); }; Collections.sort(list, comparator); }
@Override public boolean showLocalNotifications(Thread thread) { if (localNotificationHandler != null) { return localNotificationHandler.showLocalNotification(thread); } else { return ChatSDK.config().showLocalNotifications; } }
@Override public ChatOptionsHandler getChatOptionsHandler(ChatOptionsDelegate delegate) { chatOptionsHandler = new DialogChatOptionsHandler(delegate); chatOptionsHandler.setDelegate(delegate); return chatOptionsHandler; }
protected void onActivityResult(int requestCode, int resultCode, Intent data) { for(ChatOption option : ChatSDK.ui().getChatOptions()) { } }
public PagerAdapterTabs(FragmentManager fm) { super(fm); tabs = ChatSDK.ui().defaultTabs(); }
public static void logError (Exception e) { if (config().debug) { e.printStackTrace(); } if (config().crashHandler != null) { config().crashHandler.log(e); } }
/** * Open the thread details context, Admin user can change thread name an messageImageView there. */ protected void openThreadDetailsActivity() { // Showing the pick friends context. Intent intent = new Intent(this, ChatSDK.ui().getThreadDetailsActivity()); intent.putExtra(InterfaceManager.THREAD_ENTITY_ID, thread.getEntityID()); intent.putExtra(LIST_POS, listPos); intent.putExtra(ANIMATE_EXIT, true); startActivityForResult(intent, SHOW_DETAILS); overridePendingTransition(R.anim.slide_bottom_top, R.anim.dummy); }
@Override public boolean onOptionsItemSelected(MenuItem item){ /* Cant use switch in the library*/ int id = item.getItemId(); if (id == R.id.action_chat_sdk_add) { ChatSDK.ui().startSelectContactsActivity(getContext()); return true; } return super.onOptionsItemSelected(item); }
public void updateLocalNotificationsForTab () { TabLayout.Tab tab = tabLayout.getTabAt(tabLayout.getSelectedTabPosition()); ChatSDK.ui().setLocalNotificationHandler(thread -> showLocalNotificationsForTab(tab)); }
public void showSettings() { ChatSDK.ui().startEditProfileActivity(getContext(), ChatSDK.currentUser().getEntityID()); }