|
|
|
@ -58,181 +58,217 @@ public class WeatherHandlers implements UpdatesCallback { |
|
|
|
Message message = update.getMessage(); |
|
|
|
if (message != null && message.hasText()) { |
|
|
|
if (languageMessages.contains(message.getFrom().getId())) { |
|
|
|
String[] parts = message.getText().split("-->", 2); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
if (LocalisationService.getInstance().supportedLanguages.containsKey(parts[0].trim())) { |
|
|
|
DatabaseManager.getInstance().putUserLanguage(message.getFrom().getId(), parts[0].trim()); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("languageModified", parts[0].trim())); |
|
|
|
} else { |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("errorLanguage")); |
|
|
|
} |
|
|
|
sendMessageRequest.setReplayToMessageId(message.getMessageId()); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
languageMessages.remove(message.getFrom().getId()); |
|
|
|
onLanguageReceived(message); |
|
|
|
} else { |
|
|
|
String language = DatabaseManager.getInstance().getUserLanguage(update.getMessage().getFrom().getId()); |
|
|
|
String text = message.getText(); |
|
|
|
String[] parts = text.split(" ", 2); |
|
|
|
if (message.getText().startsWith(Commands.setLanguageCommand)) { |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(); |
|
|
|
HashMap<String, String> languages = LocalisationService.getInstance().supportedLanguages; |
|
|
|
List<List<String>> commands = new ArrayList<>(); |
|
|
|
for (Map.Entry<String, String> entry : languages.entrySet()) { |
|
|
|
List<String> commandRow = new ArrayList<>(); |
|
|
|
commandRow.add(entry.getKey() + " --> " + entry.getValue()); |
|
|
|
commands.add(commandRow); |
|
|
|
} |
|
|
|
replyKeyboardMarkup.setResizeKeyboard(true); |
|
|
|
replyKeyboardMarkup.setOneTimeKeyboad(true); |
|
|
|
replyKeyboardMarkup.setKeyboard(commands); |
|
|
|
replyKeyboardMarkup.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardMarkup); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("chooselanguage", language)); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
languageMessages.add(message.getFrom().getId()); |
|
|
|
onSetLanguageCommand(message, language); |
|
|
|
} else if (parts[0].startsWith(Commands.WEATHERCOMMAND)) { |
|
|
|
if (parts.length == 2) { |
|
|
|
String citywithoutdescription = parts[1].split("-->", 2)[0].trim(); |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherForecast(citywithoutdescription, |
|
|
|
message.getFrom().getId(), language); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
onWeatherWithParameter(update, message, language, parts[1].split("-->", 2)[0]); |
|
|
|
} else { |
|
|
|
HashMap<Integer, String> recentWeather = DatabaseManager.getInstance().getRecentWeather(message.getFrom().getId()); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
if (recentWeather.size() > 0) { |
|
|
|
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(); |
|
|
|
List<List<String>> commands = new ArrayList<>(); |
|
|
|
for (Map.Entry<Integer, String> entry : recentWeather.entrySet()) { |
|
|
|
List<String> commandRow = new ArrayList<>(); |
|
|
|
commandRow.add(Commands.WEATHERCOMMAND + " " + entry.getKey() + " --> " + entry.getValue()); |
|
|
|
commands.add(commandRow); |
|
|
|
} |
|
|
|
replyKeyboardMarkup.setResizeKeyboard(true); |
|
|
|
replyKeyboardMarkup.setOneTimeKeyboad(true); |
|
|
|
replyKeyboardMarkup.setSelective(true); |
|
|
|
replyKeyboardMarkup.setKeyboard(commands); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardMarkup); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("chooseFromRecentWeather", language)); |
|
|
|
} else { |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("pleaseSendMeCityWeather", language)); |
|
|
|
ForceReply forceReply = new ForceReply(); |
|
|
|
forceReply.setForceReply(true); |
|
|
|
forceReply.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(forceReply); |
|
|
|
} |
|
|
|
sendMessageRequest.setReplayToMessageId(message.getMessageId()); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
Message sentMessage = SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
try { |
|
|
|
listOfSentMessages.put(sentMessage.getMessageId(), FORECASTWEATHERID); |
|
|
|
} catch (NullPointerException e) { |
|
|
|
log.error(e); |
|
|
|
} |
|
|
|
onWeatherWithoutParameters(message, language); |
|
|
|
} |
|
|
|
} else if (parts[0].startsWith(Commands.CURRENTWEATHERCOMMAND)) { |
|
|
|
if (parts.length == 2) { |
|
|
|
String citywithoutdescription = parts[1].split("-->", 2)[0].trim(); |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherCurrent(citywithoutdescription, |
|
|
|
message.getFrom().getId(), language); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
onCurrentWithParameters(update, message, language, parts[1].split("-->", 2)[0]); |
|
|
|
} else { |
|
|
|
HashMap<Integer, String> recentWeather = DatabaseManager.getInstance().getRecentWeather(message.getFrom().getId()); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
if (recentWeather.size() > 0) { |
|
|
|
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(); |
|
|
|
List<List<String>> commands = new ArrayList<>(); |
|
|
|
for (Map.Entry<Integer, String> entry : recentWeather.entrySet()) { |
|
|
|
List<String> commandRow = new ArrayList<>(); |
|
|
|
commandRow.add(Commands.CURRENTWEATHERCOMMAND + " " + entry.getKey() + " --> " + entry.getValue()); |
|
|
|
commands.add(commandRow); |
|
|
|
} |
|
|
|
replyKeyboardMarkup.setResizeKeyboard(true); |
|
|
|
replyKeyboardMarkup.setOneTimeKeyboad(true); |
|
|
|
replyKeyboardMarkup.setSelective(true); |
|
|
|
replyKeyboardMarkup.setKeyboard(commands); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardMarkup); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("chooseFromRecentWeather", language)); |
|
|
|
} else { |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("pleaseSendMeCityWeather", language)); |
|
|
|
ForceReply forceReply = new ForceReply(); |
|
|
|
forceReply.setForceReply(true); |
|
|
|
forceReply.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(forceReply); |
|
|
|
} |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
sendMessageRequest.setReplayToMessageId(message.getMessageId()); |
|
|
|
Message sentMessage = SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
try { |
|
|
|
listOfSentMessages.put(sentMessage.getMessageId(), CURRENTWEATHERID); |
|
|
|
} catch (NullPointerException e) { |
|
|
|
log.error(e); |
|
|
|
} |
|
|
|
onCurrentWithoutParameters(message, language); |
|
|
|
} |
|
|
|
} else if (message.isReply() && listOfSentMessages.containsKey(message.getReplyToMessage().getMessageId())) { |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
if (listOfSentMessages.remove(message.getReplyToMessage().getMessageId()) == CURRENTWEATHERID) { |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherCurrent(message.getText(), |
|
|
|
message.getFrom().getId(), language); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
} else { |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherForecast(message.getText(), |
|
|
|
message.getFrom().getId(), language); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
} |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
onReplyForPreviousCommnad(update, message, language); |
|
|
|
} else if (parts[0].startsWith(Commands.help) || |
|
|
|
(message.getText().startsWith(Commands.startCommand) || !message.isGroupMessage())) { |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
String formatedHelp = String.format( |
|
|
|
LocalisationService.getInstance().getString("helpWeather", language), |
|
|
|
Commands.WEATHERCOMMAND, Commands.CURRENTWEATHERCOMMAND); |
|
|
|
sendMessageRequest.setText(formatedHelp); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
sendHelpMessage(message, language); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (message != null && message.hasLocation()) { |
|
|
|
String language = DatabaseManager.getInstance().getUserLanguage(update.getMessage().getFrom().getId()); |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherForecastByLocation(message.getLocation().getLongitude(), |
|
|
|
message.getLocation().getLatitude(), message.getFrom().getId(), language); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
onLocationReceived(update, message); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void onLocationReceived(Update update, Message message) { |
|
|
|
String language = DatabaseManager.getInstance().getUserLanguage(update.getMessage().getFrom().getId()); |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherForecastByLocation(message.getLocation().getLongitude(), |
|
|
|
message.getLocation().getLatitude(), message.getFrom().getId(), language); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
} |
|
|
|
|
|
|
|
private void sendHelpMessage(Message message, String language) { |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
String formatedHelp = String.format( |
|
|
|
LocalisationService.getInstance().getString("helpWeather", language), |
|
|
|
Commands.WEATHERCOMMAND, Commands.CURRENTWEATHERCOMMAND); |
|
|
|
sendMessageRequest.setText(formatedHelp); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
} |
|
|
|
|
|
|
|
private void onReplyForPreviousCommnad(Update update, Message message, String language) { |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
if (listOfSentMessages.remove(message.getReplyToMessage().getMessageId()) == CURRENTWEATHERID) { |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherCurrent(message.getText(), |
|
|
|
message.getFrom().getId(), language); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
} else { |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherForecast(message.getText(), |
|
|
|
message.getFrom().getId(), language); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
} |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
} |
|
|
|
|
|
|
|
private void onCurrentWithoutParameters(Message message, String language) { |
|
|
|
HashMap<Integer, String> recentWeather = DatabaseManager.getInstance().getRecentWeather(message.getFrom().getId()); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
if (recentWeather.size() > 0) { |
|
|
|
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(); |
|
|
|
List<List<String>> commands = new ArrayList<>(); |
|
|
|
for (Map.Entry<Integer, String> entry : recentWeather.entrySet()) { |
|
|
|
List<String> commandRow = new ArrayList<>(); |
|
|
|
commandRow.add(Commands.CURRENTWEATHERCOMMAND + " " + entry.getKey() + " --> " + entry.getValue()); |
|
|
|
commands.add(commandRow); |
|
|
|
} |
|
|
|
replyKeyboardMarkup.setResizeKeyboard(true); |
|
|
|
replyKeyboardMarkup.setOneTimeKeyboad(true); |
|
|
|
replyKeyboardMarkup.setSelective(true); |
|
|
|
replyKeyboardMarkup.setKeyboard(commands); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardMarkup); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("chooseFromRecentWeather", language)); |
|
|
|
} else { |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("pleaseSendMeCityWeather", language)); |
|
|
|
ForceReply forceReply = new ForceReply(); |
|
|
|
forceReply.setForceReply(true); |
|
|
|
forceReply.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(forceReply); |
|
|
|
} |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
sendMessageRequest.setReplayToMessageId(message.getMessageId()); |
|
|
|
Message sentMessage = SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
try { |
|
|
|
listOfSentMessages.put(sentMessage.getMessageId(), CURRENTWEATHERID); |
|
|
|
} catch (NullPointerException e) { |
|
|
|
log.error(e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void onCurrentWithParameters(Update update, Message message, String language, String s) { |
|
|
|
String citywithoutdescription = s.trim(); |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherCurrent(citywithoutdescription, |
|
|
|
message.getFrom().getId(), language); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
} |
|
|
|
|
|
|
|
private void onWeatherWithoutParameters(Message message, String language) { |
|
|
|
HashMap<Integer, String> recentWeather = DatabaseManager.getInstance().getRecentWeather(message.getFrom().getId()); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
if (recentWeather.size() > 0) { |
|
|
|
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(); |
|
|
|
List<List<String>> commands = new ArrayList<>(); |
|
|
|
for (Map.Entry<Integer, String> entry : recentWeather.entrySet()) { |
|
|
|
List<String> commandRow = new ArrayList<>(); |
|
|
|
commandRow.add(Commands.WEATHERCOMMAND + " " + entry.getKey() + " --> " + entry.getValue()); |
|
|
|
commands.add(commandRow); |
|
|
|
} |
|
|
|
replyKeyboardMarkup.setResizeKeyboard(true); |
|
|
|
replyKeyboardMarkup.setOneTimeKeyboad(true); |
|
|
|
replyKeyboardMarkup.setSelective(true); |
|
|
|
replyKeyboardMarkup.setKeyboard(commands); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardMarkup); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("chooseFromRecentWeather", language)); |
|
|
|
} else { |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("pleaseSendMeCityWeather", language)); |
|
|
|
ForceReply forceReply = new ForceReply(); |
|
|
|
forceReply.setForceReply(true); |
|
|
|
forceReply.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(forceReply); |
|
|
|
} |
|
|
|
sendMessageRequest.setReplayToMessageId(message.getMessageId()); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
Message sentMessage = SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
try { |
|
|
|
listOfSentMessages.put(sentMessage.getMessageId(), FORECASTWEATHERID); |
|
|
|
} catch (NullPointerException e) { |
|
|
|
log.error(e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private void onWeatherWithParameter(Update update, Message message, String language, String s) { |
|
|
|
String citywithoutdescription = s.trim(); |
|
|
|
String weather = WeatherService.getInstance().fetchWeatherForecast(citywithoutdescription, |
|
|
|
message.getFrom().getId(), language); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
sendMessageRequest.setReplayToMessageId(update.getMessage().getMessageId()); |
|
|
|
sendMessageRequest.setText(weather); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
} |
|
|
|
|
|
|
|
private void onSetLanguageCommand(Message message, String language) { |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(); |
|
|
|
HashMap<String, String> languages = LocalisationService.getInstance().supportedLanguages; |
|
|
|
List<List<String>> commands = new ArrayList<>(); |
|
|
|
for (Map.Entry<String, String> entry : languages.entrySet()) { |
|
|
|
List<String> commandRow = new ArrayList<>(); |
|
|
|
commandRow.add(entry.getKey() + " --> " + entry.getValue()); |
|
|
|
commands.add(commandRow); |
|
|
|
} |
|
|
|
replyKeyboardMarkup.setResizeKeyboard(true); |
|
|
|
replyKeyboardMarkup.setOneTimeKeyboad(true); |
|
|
|
replyKeyboardMarkup.setKeyboard(commands); |
|
|
|
replyKeyboardMarkup.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardMarkup); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("chooselanguage", language)); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
languageMessages.add(message.getFrom().getId()); |
|
|
|
} |
|
|
|
|
|
|
|
private void onLanguageReceived(Message message) { |
|
|
|
String[] parts = message.getText().split("-->", 2); |
|
|
|
SendMessage sendMessageRequest = new SendMessage(); |
|
|
|
sendMessageRequest.setChatId(message.getChatId()); |
|
|
|
if (LocalisationService.getInstance().supportedLanguages.containsKey(parts[0].trim())) { |
|
|
|
DatabaseManager.getInstance().putUserLanguage(message.getFrom().getId(), parts[0].trim()); |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("languageModified", parts[0].trim())); |
|
|
|
} else { |
|
|
|
sendMessageRequest.setText(LocalisationService.getInstance().getString("errorLanguage")); |
|
|
|
} |
|
|
|
sendMessageRequest.setReplayToMessageId(message.getMessageId()); |
|
|
|
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHide(); |
|
|
|
replyKeyboardHide.setHideKeyboard(true); |
|
|
|
replyKeyboardHide.setSelective(true); |
|
|
|
sendMessageRequest.setReplayMarkup(replyKeyboardHide); |
|
|
|
SenderHelper.SendMessage(sendMessageRequest, TOKEN); |
|
|
|
languageMessages.remove(message.getFrom().getId()); |
|
|
|
} |
|
|
|
} |
|
|
|
|