/** * @param update a Telegram {@link Update} * @return <tt>true</tt> if the update contains contains a private user message */ public static boolean isUserMessage(Update update) { if (MESSAGE.test(update)) { return update.getMessage().isUserMessage(); } else if (CALLBACK_QUERY.test(update)) { return update.getCallbackQuery().getMessage().isUserMessage(); } else if (CHANNEL_POST.test(update)) { return update.getChannelPost().isUserMessage(); } else if (EDITED_CHANNEL_POST.test(update)) { return update.getEditedChannelPost().isUserMessage(); } else if (EDITED_MESSAGE.test(update)) { return update.getEditedMessage().isUserMessage(); } else if (CHOSEN_INLINE_QUERY.test(update) || INLINE_QUERY.test(update)) { return true; } else { throw new IllegalStateException("Could not retrieve update context origin (user/group)"); } }
@Override public void onUpdateReceived(Update update) { try { if (update.hasInlineQuery()) { handleIncomingInlineQuery(update.getInlineQuery()); } else if (update.hasMessage() && update.getMessage().isUserMessage()) { try { execute(getHelpMessage(update.getMessage())); } catch (TelegramApiException e) { BotLogger.error(LOGTAG, e); } } } catch (Exception e) { BotLogger.error(LOGTAG, e); } }
private void handleIncomingMessage(Message message) throws TelegramApiException { final int state = DatabaseManager.getInstance().getWeatherState(message.getFrom().getId(), message.getChatId()); final String language = DatabaseManager.getInstance().getUserWeatherOptions(message.getFrom().getId())[0]; if (!message.isUserMessage() && message.hasText()) { if (isCommandForOther(message.getText())) { return;