@ -14,8 +14,8 @@ import org.telegram.telegrambots.api.objects.Message;
import org.telegram.telegrambots.api.objects.Update ;
import org.telegram.telegrambots.api.objects.Update ;
import org.telegram.telegrambots.api.objects.replykeyboard.ForceReplyKeyboard ;
import org.telegram.telegrambots.api.objects.replykeyboard.ForceReplyKeyboard ;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboard ;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboard ;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardHide ;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup ;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup ;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardRemove ;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow ;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow ;
import org.telegram.telegrambots.bots.TelegramLongPollingBot ;
import org.telegram.telegrambots.bots.TelegramLongPollingBot ;
import org.telegram.telegrambots.exceptions.TelegramApiException ;
import org.telegram.telegrambots.exceptions.TelegramApiException ;
@ -24,6 +24,7 @@ import org.telegram.telegrambots.logging.BotLogger;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.List ;
import java.util.stream.Collectors ;
/ * *
/ * *
* @author Ruben Bermudez
* @author Ruben Bermudez
@ -130,7 +131,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . enableMarkdown ( true ) ;
sendMessage . enableMarkdown ( true ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyMarkup ( replyKeyboard ) ;
sendMessage . setReplyMarkup ( replyKeyboard ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "backToMainMenu" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "backToMainMenu" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , MAINMENU ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , MAINMENU ) ;
return sendMessage ;
return sendMessage ;
@ -193,9 +194,9 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setText ( Emoji . WAVING_HAND_SIGN . toString ( ) ) ;
sendMessage . setText ( Emoji . WAVING_HAND_SIGN . toString ( ) ) ;
ReplyKeyboardHide replyKeyboardHide = new ReplyKeyboardHid e ( ) ;
ReplyKeyboardRemove replyKeyboardRemove = new ReplyKeyboardRemov e ( ) ;
replyKeyboardHid e . setSelective ( true ) ;
replyKeyboardRemov e . setSelective ( true ) ;
sendMessage . setReplyMarkup ( replyKeyboardHid e ) ;
sendMessage . setReplyMarkup ( replyKeyboardRemov e ) ;
sendMessage ( sendMessage ) ;
sendMessage ( sendMessage ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , STARTSTATE ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , STARTSTATE ) ;
@ -249,7 +250,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "alertDeleted" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "alertDeleted" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
return sendMessage ;
return sendMessage ;
@ -261,7 +262,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "alertsMenuMessage" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "alertsMenuMessage" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
return sendMessage ;
return sendMessage ;
@ -276,7 +277,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "alertsMenuMessage" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "alertsMenuMessage" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
sendMessageRequest = sendMessage ;
sendMessageRequest = sendMessage ;
} else {
} else {
@ -361,11 +362,11 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = getAlertsListKeyboard ( message . getFrom ( ) . getId ( ) , language ) ;
ReplyKeyboardMarkup replyKeyboardMarkup = getAlertsListKeyboard ( message . getFrom ( ) . getId ( ) , language ) ;
if ( replyKeyboardMarkup ! = null ) {
if ( replyKeyboardMarkup ! = null ) {
sendMessage . setReplyMarkup ( replyKeyboardMarkup ) ;
sendMessage . setReplyMarkup ( replyKeyboardMarkup ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "chooseNewAlertCity" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "chooseNewAlertCity" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERTDELETE ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERTDELETE ) ;
} else {
} else {
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "noAlertList" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "noAlertList" , language ) ) ;
}
}
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
@ -378,7 +379,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setReplyMarkup ( getRecentsKeyboard ( message . getFrom ( ) . getId ( ) , language , false ) ) ;
sendMessage . setReplyMarkup ( getRecentsKeyboard ( message . getFrom ( ) . getId ( ) , language , false ) ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "chooseNewAlertCity" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "chooseNewAlertCity" , language ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERTNEW ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERTNEW ) ;
@ -415,7 +416,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setReplyMarkup ( getAlertsKeyboard ( language ) ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "alertsMenuMessage" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "alertsMenuMessage" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , ALERT ) ;
return sendMessage ;
return sendMessage ;
@ -456,10 +457,10 @@ public class WeatherHandlers extends TelegramLongPollingBot {
if ( message . hasText ( ) ) {
if ( message . hasText ( ) ) {
if ( message . getText ( ) . trim ( ) . equals ( getCancelCommand ( language ) ) ) {
if ( message . getText ( ) . trim ( ) . equals ( getCancelCommand ( language ) ) ) {
sendMessageRequest = onBackUnitsCommand ( message , language ) ;
sendMessageRequest = onBackUnitsCommand ( message , language ) ;
} else if ( message . getText ( ) . trim ( ) . equals ( LocalisationService . getInstance ( ) . get String ( "metricSystem" , language ) ) ) {
} else if ( message . getText ( ) . trim ( ) . equals ( LocalisationService . getString ( "metricSystem" , language ) ) ) {
sendMessageRequest = onUnitsChosen ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) ,
sendMessageRequest = onUnitsChosen ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) ,
message . getMessageId ( ) , WeatherService . METRICSYSTEM , language ) ;
message . getMessageId ( ) , WeatherService . METRICSYSTEM , language ) ;
} else if ( message . getText ( ) . trim ( ) . equals ( LocalisationService . getInstance ( ) . get String ( "imperialSystem" , language ) ) ) {
} else if ( message . getText ( ) . trim ( ) . equals ( LocalisationService . getString ( "imperialSystem" , language ) ) ) {
sendMessageRequest = onUnitsChosen ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) ,
sendMessageRequest = onUnitsChosen ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) ,
message . getMessageId ( ) , WeatherService . IMPERIALSYSTEM , language ) ;
message . getMessageId ( ) , WeatherService . IMPERIALSYSTEM , language ) ;
} else {
} else {
@ -488,7 +489,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setReplyMarkup ( getUnitsKeyboard ( language ) ) ;
sendMessageRequest . setReplyMarkup ( getUnitsKeyboard ( language ) ) ;
sendMessageRequest . setText ( LocalisationService . getInstance ( ) . get String ( "errorUnitsNotFound" , language ) ) ;
sendMessageRequest . setText ( LocalisationService . getString ( "errorUnitsNotFound" , language ) ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
return sendMessageRequest ;
return sendMessageRequest ;
@ -500,7 +501,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
SendMessage sendMessageRequest = new SendMessage ( ) ;
SendMessage sendMessageRequest = new SendMessage ( ) ;
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setText ( LocalisationService . getInstance ( ) . get String ( "unitsUpdated" , language ) ) ;
sendMessageRequest . setText ( LocalisationService . getString ( "unitsUpdated" , language ) ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
sendMessageRequest . setReplyMarkup ( getMainMenuKeyboard ( language ) ) ;
sendMessageRequest . setReplyMarkup ( getMainMenuKeyboard ( language ) ) ;
@ -517,7 +518,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
if ( message . hasText ( ) ) {
if ( message . hasText ( ) ) {
if ( message . getText ( ) . trim ( ) . equals ( getCancelCommand ( language ) ) ) {
if ( message . getText ( ) . trim ( ) . equals ( getCancelCommand ( language ) ) ) {
sendMessageRequest = onBackLanguageCommand ( message , language ) ;
sendMessageRequest = onBackLanguageCommand ( message , language ) ;
} else if ( LocalisationService . getInstance ( ) . getSupportedLanguages ( ) . values ( ) . contains ( message . getText ( ) . trim ( ) ) ) {
} else if ( LocalisationService . getLanguageByName ( message . getText ( ) . trim ( ) ) ! = null ) {
sendMessageRequest = onLanguageChosen ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) ,
sendMessageRequest = onLanguageChosen ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) ,
message . getMessageId ( ) , message . getText ( ) . trim ( ) ) ;
message . getMessageId ( ) , message . getText ( ) . trim ( ) ) ;
} else {
} else {
@ -546,20 +547,20 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setReplyMarkup ( getLanguagesKeyboard ( language ) ) ;
sendMessageRequest . setReplyMarkup ( getLanguagesKeyboard ( language ) ) ;
sendMessageRequest . setText ( LocalisationService . getInstance ( ) . get String ( "errorLanguageNotFound" , language ) ) ;
sendMessageRequest . setText ( LocalisationService . getString ( "errorLanguageNotFound" , language ) ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
return sendMessageRequest ;
return sendMessageRequest ;
}
}
private static SendMessage onLanguageChosen ( Integer userId , Long chatId , Integer messageId , String language ) {
private static SendMessage onLanguageChosen ( Integer userId , Long chatId , Integer messageId , String language ) {
String languageCode = LocalisationService . getInstance ( ) . get LanguageCodeByName ( language ) ;
String languageCode = LocalisationService . getLanguageCodeByName ( language ) ;
DatabaseManager . getInstance ( ) . putUserWeatherLanguageOption ( userId , languageCode ) ;
DatabaseManager . getInstance ( ) . putUserWeatherLanguageOption ( userId , languageCode ) ;
SendMessage sendMessageRequest = new SendMessage ( ) ;
SendMessage sendMessageRequest = new SendMessage ( ) ;
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . enableMarkdown ( true ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setChatId ( chatId . toString ( ) ) ;
sendMessageRequest . setText ( LocalisationService . getInstance ( ) . get String ( "languageUpdated" , languageCode ) ) ;
sendMessageRequest . setText ( LocalisationService . getString ( "languageUpdated" , languageCode ) ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
sendMessageRequest . setReplyToMessageId ( messageId ) ;
sendMessageRequest . setReplyMarkup ( getMainMenuKeyboard ( languageCode ) ) ;
sendMessageRequest . setReplyMarkup ( getMainMenuKeyboard ( languageCode ) ) ;
@ -640,7 +641,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onWeatherLocationCommand" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onWeatherLocationCommand" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , FORECASTLOCATIONWEATHER ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , FORECASTLOCATIONWEATHER ) ;
return sendMessage ;
return sendMessage ;
@ -654,7 +655,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onWeatherNewCommand" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onWeatherNewCommand" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , FORECASTNEWWEATHER ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , FORECASTNEWWEATHER ) ;
return sendMessage ;
return sendMessage ;
@ -741,7 +742,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onWeatherLocationCommand" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onWeatherLocationCommand" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , CURRENTLOCATIONWEATHER ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , CURRENTLOCATIONWEATHER ) ;
return sendMessage ;
return sendMessage ;
@ -755,7 +756,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setReplyMarkup ( forceReplyKeyboard ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onWeatherNewCommand" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onWeatherNewCommand" , language ) ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , CURRENTNEWWEATHER ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( userId , chatId , CURRENTNEWWEATHER ) ;
return sendMessage ;
return sendMessage ;
@ -819,9 +820,9 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
if ( replyKeyboardMarkup . getKeyboard ( ) . size ( ) > 3 ) {
if ( replyKeyboardMarkup . getKeyboard ( ) . size ( ) > 3 ) {
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onForecastCommandFromHistory" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onForecastCommandFromHistory" , language ) ) ;
} else {
} else {
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onForecastCommandWithoutHistory" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onForecastCommandWithoutHistory" , language ) ) ;
}
}
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , FORECASTWEATHER ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , FORECASTWEATHER ) ;
@ -837,9 +838,9 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setReplyToMessageId ( message . getMessageId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
sendMessage . setChatId ( message . getChatId ( ) ) ;
if ( replyKeyboardMarkup . getKeyboard ( ) . size ( ) > 3 ) {
if ( replyKeyboardMarkup . getKeyboard ( ) . size ( ) > 3 ) {
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onCurrentCommandFromHistory" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onCurrentCommandFromHistory" , language ) ) ;
} else {
} else {
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "onCurrentCommandWithoutHistory" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "onCurrentCommandWithoutHistory" , language ) ) ;
}
}
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , CURRENTWEATHER ) ;
DatabaseManager . getInstance ( ) . insertWeatherState ( message . getFrom ( ) . getId ( ) , message . getChatId ( ) , CURRENTWEATHER ) ;
@ -851,31 +852,31 @@ public class WeatherHandlers extends TelegramLongPollingBot {
// region Get Messages
// region Get Messages
private static String getSettingsMessage ( String language ) {
private static String getSettingsMessage ( String language ) {
String baseString = LocalisationService . getInstance ( ) . get String ( "onSettingsCommand" , language ) ;
String baseString = LocalisationService . getString ( "onSettingsCommand" , language ) ;
return String . format ( baseString , Emoji . GLOBE_WITH_MERIDIANS . toString ( ) ,
return String . format ( baseString , Emoji . GLOBE_WITH_MERIDIANS . toString ( ) ,
Emoji . STRAIGHT_RULER . toString ( ) , Emoji . ALARM_CLOCK . toString ( ) ,
Emoji . STRAIGHT_RULER . toString ( ) , Emoji . ALARM_CLOCK . toString ( ) ,
Emoji . BACK_WITH_LEFTWARDS_ARROW_ABOVE . toString ( ) ) ;
Emoji . BACK_WITH_LEFTWARDS_ARROW_ABOVE . toString ( ) ) ;
}
}
private static String getHelpMessage ( String language ) {
private static String getHelpMessage ( String language ) {
String baseString = LocalisationService . getInstance ( ) . get String ( "helpWeatherMessage" , language ) ;
String baseString = LocalisationService . getString ( "helpWeatherMessage" , language ) ;
return String . format ( baseString , Emoji . BLACK_RIGHT_POINTING_TRIANGLE . toString ( ) ,
return String . format ( baseString , Emoji . BLACK_RIGHT_POINTING_TRIANGLE . toString ( ) ,
Emoji . BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE . toString ( ) , Emoji . ALARM_CLOCK . toString ( ) ,
Emoji . BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE . toString ( ) , Emoji . ALARM_CLOCK . toString ( ) ,
Emoji . EARTH_GLOBE_EUROPE_AFRICA . toString ( ) , Emoji . STRAIGHT_RULER . toString ( ) ) ;
Emoji . EARTH_GLOBE_EUROPE_AFRICA . toString ( ) , Emoji . STRAIGHT_RULER . toString ( ) ) ;
}
}
private static String getLanguageMessage ( String language ) {
private static String getLanguageMessage ( String language ) {
String baseString = LocalisationService . getInstance ( ) . get String ( "selectLanguage" , language ) ;
String baseString = LocalisationService . getString ( "selectLanguage" , language ) ;
return String . format ( baseString , language ) ;
return String . format ( baseString , language ) ;
}
}
private static String getUnitsMessage ( Integer userId , String language ) {
private static String getUnitsMessage ( Integer userId , String language ) {
String baseString = LocalisationService . getInstance ( ) . get String ( "selectUnits" , language ) ;
String baseString = LocalisationService . getString ( "selectUnits" , language ) ;
return String . format ( baseString , DatabaseManager . getInstance ( ) . getUserWeatherOptions ( userId ) [ 1 ] ) ;
return String . format ( baseString , DatabaseManager . getInstance ( ) . getUserWeatherOptions ( userId ) [ 1 ] ) ;
}
}
private static String getChooseNewAlertSetMessage ( String city , String language ) {
private static String getChooseNewAlertSetMessage ( String city , String language ) {
String baseString = LocalisationService . getInstance ( ) . get String ( "newAlertSaved" , language ) ;
String baseString = LocalisationService . getString ( "newAlertSaved" , language ) ;
return String . format ( baseString , Emoji . THUMBS_UP_SIGN . toString ( ) , city ) ;
return String . format ( baseString , Emoji . THUMBS_UP_SIGN . toString ( ) , city ) ;
}
}
@ -884,15 +885,15 @@ public class WeatherHandlers extends TelegramLongPollingBot {
List < String > alertCities = DatabaseManager . getInstance ( ) . getAlertCitiesNameByUser ( userId ) ;
List < String > alertCities = DatabaseManager . getInstance ( ) . getAlertCitiesNameByUser ( userId ) ;
if ( alertCities . size ( ) > 0 ) {
if ( alertCities . size ( ) > 0 ) {
String baseAlertListString = LocalisationService . getInstance ( ) . get String ( "initialAlertList" , language ) ;
String baseAlertListString = LocalisationService . getString ( "initialAlertList" , language ) ;
String partialAlertListString = LocalisationService . getInstance ( ) . get String ( "partialAlertList" , language ) ;
String partialAlertListString = LocalisationService . getString ( "partialAlertList" , language ) ;
String fullListOfAlerts = "" ;
String fullListOfAlerts = "" ;
for ( String alertCity : alertCities ) {
for ( String alertCity : alertCities ) {
fullListOfAlerts + = String . format ( partialAlertListString , Emoji . ALARM_CLOCK . toString ( ) , alertCity ) ;
fullListOfAlerts + = String . format ( partialAlertListString , Emoji . ALARM_CLOCK . toString ( ) , alertCity ) ;
}
}
alertListMessage = String . format ( baseAlertListString , alertCities . size ( ) , fullListOfAlerts ) ;
alertListMessage = String . format ( baseAlertListString , alertCities . size ( ) , fullListOfAlerts ) ;
} else {
} else {
alertListMessage = LocalisationService . getInstance ( ) . get String ( "noAlertList" , language ) ;
alertListMessage = LocalisationService . getString ( "noAlertList" , language ) ;
}
}
return alertListMessage ;
return alertListMessage ;
@ -907,7 +908,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboad ( false ) ;
replyKeyboardMarkup . setOneTimeKeyboar d ( false ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
KeyboardRow keyboardFirstRow = new KeyboardRow ( ) ;
KeyboardRow keyboardFirstRow = new KeyboardRow ( ) ;
@ -927,10 +928,11 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboad ( false ) ;
replyKeyboardMarkup . setOneTimeKeyboar d ( false ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
for ( String languageName : LocalisationService . getInstance ( ) . getSupportedLanguages ( ) . values ( ) ) {
for ( String languageName : LocalisationService . getSupportedLanguages ( ) . stream ( ) . map (
LocalisationService . Language : : getName ) . collect ( Collectors . toList ( ) ) ) {
KeyboardRow row = new KeyboardRow ( ) ;
KeyboardRow row = new KeyboardRow ( ) ;
row . add ( languageName ) ;
row . add ( languageName ) ;
keyboard . add ( row ) ;
keyboard . add ( row ) ;
@ -948,14 +950,14 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboad ( false ) ;
replyKeyboardMarkup . setOneTimeKeyboar d ( false ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
KeyboardRow row = new KeyboardRow ( ) ;
KeyboardRow row = new KeyboardRow ( ) ;
row . add ( LocalisationService . getInstance ( ) . get String ( "metricSystem" , language ) ) ;
row . add ( LocalisationService . getString ( "metricSystem" , language ) ) ;
keyboard . add ( row ) ;
keyboard . add ( row ) ;
row = new KeyboardRow ( ) ;
row = new KeyboardRow ( ) ;
row . add ( LocalisationService . getInstance ( ) . get String ( "imperialSystem" , language ) ) ;
row . add ( LocalisationService . getString ( "imperialSystem" , language ) ) ;
keyboard . add ( row ) ;
keyboard . add ( row ) ;
row = new KeyboardRow ( ) ;
row = new KeyboardRow ( ) ;
row . add ( getCancelCommand ( language ) ) ;
row . add ( getCancelCommand ( language ) ) ;
@ -969,7 +971,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboad ( false ) ;
replyKeyboardMarkup . setOneTimeKeyboar d ( false ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
KeyboardRow keyboardFirstRow = new KeyboardRow ( ) ;
KeyboardRow keyboardFirstRow = new KeyboardRow ( ) ;
@ -993,7 +995,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboad ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboar d ( true ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
for ( String recentWeather : DatabaseManager . getInstance ( ) . getRecentWeather ( userId ) ) {
for ( String recentWeather : DatabaseManager . getInstance ( ) . getRecentWeather ( userId ) ) {
@ -1025,7 +1027,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboad ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboar d ( true ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
@ -1052,7 +1054,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup = new ReplyKeyboardMarkup ( ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setSelective ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setResizeKeyboard ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboad ( true ) ;
replyKeyboardMarkup . setOneTimeKeyboar d ( true ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
List < KeyboardRow > keyboard = new ArrayList < > ( ) ;
for ( String alertCityName : alertCitiesNames ) {
for ( String alertCityName : alertCitiesNames ) {
@ -1081,67 +1083,67 @@ public class WeatherHandlers extends TelegramLongPollingBot {
// region getCommnads
// region getCommnads
private static String getRateCommand ( String language ) {
private static String getRateCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "rateMe" , language ) ,
return String . format ( LocalisationService . getString ( "rateMe" , language ) ,
Emoji . HUNDRED_POINTS_SYMBOL . toString ( ) ) ;
Emoji . HUNDRED_POINTS_SYMBOL . toString ( ) ) ;
}
}
private static String getListCommand ( String language ) {
private static String getListCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "showList" , language ) ,
return String . format ( LocalisationService . getString ( "showList" , language ) ,
Emoji . CLIPBOARD . toString ( ) ) ;
Emoji . CLIPBOARD . toString ( ) ) ;
}
}
private static String getDeleteCommand ( String language ) {
private static String getDeleteCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "delete" , language ) ,
return String . format ( LocalisationService . getString ( "delete" , language ) ,
Emoji . HEAVY_MINUS_SIGN . toString ( ) ) ;
Emoji . HEAVY_MINUS_SIGN . toString ( ) ) ;
}
}
private static String getLanguagesCommand ( String language ) {
private static String getLanguagesCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "languages" , language ) ,
return String . format ( LocalisationService . getString ( "languages" , language ) ,
Emoji . GLOBE_WITH_MERIDIANS . toString ( ) ) ;
Emoji . GLOBE_WITH_MERIDIANS . toString ( ) ) ;
}
}
private static String getUnitsCommand ( String language ) {
private static String getUnitsCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "units" , language ) ,
return String . format ( LocalisationService . getString ( "units" , language ) ,
Emoji . STRAIGHT_RULER . toString ( ) ) ;
Emoji . STRAIGHT_RULER . toString ( ) ) ;
}
}
private static String getAlertsCommand ( String language ) {
private static String getAlertsCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "alerts" , language ) ,
return String . format ( LocalisationService . getString ( "alerts" , language ) ,
Emoji . ALARM_CLOCK . toString ( ) ) ;
Emoji . ALARM_CLOCK . toString ( ) ) ;
}
}
private static String getBackCommand ( String language ) {
private static String getBackCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "back" , language ) ,
return String . format ( LocalisationService . getString ( "back" , language ) ,
Emoji . BACK_WITH_LEFTWARDS_ARROW_ABOVE . toString ( ) ) ;
Emoji . BACK_WITH_LEFTWARDS_ARROW_ABOVE . toString ( ) ) ;
}
}
private static String getNewCommand ( String language ) {
private static String getNewCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "new" , language ) ,
return String . format ( LocalisationService . getString ( "new" , language ) ,
Emoji . HEAVY_PLUS_SIGN . toString ( ) ) ;
Emoji . HEAVY_PLUS_SIGN . toString ( ) ) ;
}
}
private static String getLocationCommand ( String language ) {
private static String getLocationCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "location" , language ) ,
return String . format ( LocalisationService . getString ( "location" , language ) ,
Emoji . ROUND_PUSHPIN . toString ( ) ) ;
Emoji . ROUND_PUSHPIN . toString ( ) ) ;
}
}
private static String getSettingsCommand ( String language ) {
private static String getSettingsCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "settings" , language ) ,
return String . format ( LocalisationService . getString ( "settings" , language ) ,
Emoji . WRENCH . toString ( ) ) ;
Emoji . WRENCH . toString ( ) ) ;
}
}
private static String getCurrentCommand ( String language ) {
private static String getCurrentCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "current" , language ) ,
return String . format ( LocalisationService . getString ( "current" , language ) ,
Emoji . BLACK_RIGHT_POINTING_TRIANGLE . toString ( ) ) ;
Emoji . BLACK_RIGHT_POINTING_TRIANGLE . toString ( ) ) ;
}
}
private static String getForecastCommand ( String language ) {
private static String getForecastCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "forecast" , language ) ,
return String . format ( LocalisationService . getString ( "forecast" , language ) ,
Emoji . BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE . toString ( ) ) ;
Emoji . BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE . toString ( ) ) ;
}
}
private static String getCancelCommand ( String language ) {
private static String getCancelCommand ( String language ) {
return String . format ( LocalisationService . getInstance ( ) . get String ( "cancel" , language ) ,
return String . format ( LocalisationService . getString ( "cancel" , language ) ,
Emoji . CROSS_MARK . toString ( ) ) ;
Emoji . CROSS_MARK . toString ( ) ) ;
}
}
// endregion getCommnads
// endregion getCommnads
@ -1161,7 +1163,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setChatId ( chatId . toString ( ) ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyToMessageId ( messageId ) ;
sendMessage . setReplyMarkup ( replyKeyboard ) ;
sendMessage . setReplyMarkup ( replyKeyboard ) ;
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "chooseOption" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "chooseOption" , language ) ) ;
return sendMessage ;
return sendMessage ;
}
}
@ -1186,7 +1188,7 @@ public class WeatherHandlers extends TelegramLongPollingBot {
if ( replyKeyboardMarkup ! = null ) {
if ( replyKeyboardMarkup ! = null ) {
sendMessage . setReplyMarkup ( replyKeyboardMarkup ) ;
sendMessage . setReplyMarkup ( replyKeyboardMarkup ) ;
}
}
sendMessage . setText ( LocalisationService . getInstance ( ) . get String ( "rateMeMessage" , language ) ) ;
sendMessage . setText ( LocalisationService . getString ( "rateMeMessage" , language ) ) ;
return sendMessage ;
return sendMessage ;
}
}