@Override public void onIncomingMessage(final Message message) { if (message.getMessageType() == Message.Type.KNOCK || message.getMessageType() == Message.Type.MEMBER_JOIN || message.getMessageType() == Message.Type.MEMBER_LEAVE || message.getMessageType() == Message.Type.RENAME || message.getMessageType() == Message.Type.MISSED_CALL) { return; } IConversation currentConversation = getStoreFactory().getConversationStore().getCurrentConversation(); if (getStoreFactory() .getInAppNotificationStore() .shouldShowChatheads(currentConversation, message)) { notificationDisplayPrioritizer.onNewIncomingMessage(message); } // Play sound for incoming connect request if (message.getMessageType() == Message.Type.CONNECT_REQUEST && message.getConversation().getType() == IConversation.Type.INCOMING_CONNECTION) { getStoreFactory().getMediaStore().playSound(R.raw.first_message); } else if (message.getMessageType() == Message.Type.TEXT || message.getMessageType() == Message.Type.ASSET || message.getMessageType() == Message.Type.RICH_MEDIA) { if (message.isFirstMessage()) { getStoreFactory().getMediaStore().playSound(R.raw.first_message); } else { getStoreFactory().getMediaStore().playSound(R.raw.new_message); } } getControllerFactory().getVibratorController().vibrate(R.array.new_message); }