Skip to content

Commit d5de5bd

Browse files
committed
Add simple constructors for InlineKeyboardMarkup, ReplyKeyboardMarkup
1 parent 1d3629a commit d5de5bd

File tree

6 files changed

+47
-52
lines changed

6 files changed

+47
-52
lines changed

library/src/main/java/com/pengrad/telegrambot/UpdatesListener.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ public interface UpdatesListener {
1818
*
1919
* @param updates available updates
2020
* @return id of the last processed update which should not be re-delivered
21-
* There are 2 convienient values:
22-
* @see #CONFIRMED_UPDATES_ALL
23-
* @see #CONFIRMED_UPDATES_NONE
21+
* There are 2 convenient values:
22+
* @see #CONFIRMED_UPDATES_ALL
23+
* @see #CONFIRMED_UPDATES_NONE
2424
*/
2525
int process(List<Update> updates);
2626

library/src/main/java/com/pengrad/telegrambot/model/request/InlineKeyboardMarkup.java

+11-5
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,21 @@ public class InlineKeyboardMarkup extends Keyboard implements Serializable {
1515

1616
private final List<List<InlineKeyboardButton>> inline_keyboard;
1717

18-
public InlineKeyboardMarkup(InlineKeyboardButton[]... keyboard) {
18+
public InlineKeyboardMarkup() {
1919
this.inline_keyboard = new ArrayList<>();
20-
if(keyboard!=null) {
21-
for (InlineKeyboardButton[] row : keyboard) {
22-
addRow(row);
23-
}
20+
}
21+
22+
public InlineKeyboardMarkup(InlineKeyboardButton[]... keyboard) {
23+
this();
24+
for (InlineKeyboardButton[] row : keyboard) {
25+
addRow(row);
2426
}
2527
}
2628

29+
public InlineKeyboardMarkup(InlineKeyboardButton... keyboard) {
30+
this(new InlineKeyboardButton[][]{keyboard});
31+
}
32+
2733
public InlineKeyboardMarkup addRow(InlineKeyboardButton... keyboard) {
2834
this.inline_keyboard.add(Arrays.asList(keyboard));
2935
return this;

library/src/main/java/com/pengrad/telegrambot/model/request/ReplyKeyboardMarkup.java

+11-13
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,6 @@ public class ReplyKeyboardMarkup extends Keyboard implements Serializable {
1717
private boolean one_time_keyboard;
1818
private boolean selective;
1919

20-
public ReplyKeyboardMarkup() {
21-
this.keyboard = new ArrayList<>();
22-
this.resize_keyboard = false;
23-
this.one_time_keyboard = false;
24-
this.selective = false;
25-
}
26-
2720
public ReplyKeyboardMarkup(String[][] keyboard, boolean resize_keyboard, boolean one_time_keyboard, boolean selective) {
2821
this.keyboard = new ArrayList<>();
2922
this.resize_keyboard = resize_keyboard;
@@ -35,27 +28,32 @@ public ReplyKeyboardMarkup(String[][] keyboard, boolean resize_keyboard, boolean
3528
}
3629

3730
public ReplyKeyboardMarkup(String[]... keyboard) {
38-
this();
39-
for (String[] row : keyboard) {
40-
addRow(row);
41-
}
31+
this(keyboard, false, false, false);
4232
}
4333

4434
public ReplyKeyboardMarkup(KeyboardButton[]... keyboard) {
45-
this();
35+
this(new String[0][]);
4636
for (KeyboardButton[] row : keyboard) {
4737
addRow(row);
4838
}
4939
}
5040

41+
public ReplyKeyboardMarkup(String... keyboard) {
42+
this(new String[][]{keyboard});
43+
}
44+
45+
public ReplyKeyboardMarkup(KeyboardButton... keyboard) {
46+
this(new KeyboardButton[][]{keyboard});
47+
}
48+
5149
public ReplyKeyboardMarkup addRow(KeyboardButton... buttons) {
5250
this.keyboard.add(Arrays.asList(buttons));
5351
return this;
5452
}
5553

5654
public ReplyKeyboardMarkup addRow(String... buttons) {
5755
List<KeyboardButton> newRow = new ArrayList<>();
58-
for(String button: buttons) {
56+
for (String button : buttons) {
5957
newRow.add(new KeyboardButton(button));
6058
}
6159
this.keyboard.add(newRow);

library/src/test/java/com/pengrad/telegrambot/PaymentsTest.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,9 @@ public void sendInvoice() {
3131
.photoUrl("https://telegram.org/img/t_logo.png").photoSize(100).photoHeight(100).photoWidth(100)
3232
.needPhoneNumber(true).needShippingAddress(true).needEmail(true).needName(true)
3333
.isFlexible(true)
34-
.replyMarkup(new InlineKeyboardMarkup(new InlineKeyboardButton[]{
34+
.replyMarkup(new InlineKeyboardMarkup(
3535
new InlineKeyboardButton("just pay").pay(),
36-
new InlineKeyboardButton("google it").url("www.google.com")
37-
38-
}))
36+
new InlineKeyboardButton("google it").url("www.google.com")))
3937
);
4038
Invoice invoice = response.message().invoice();
4139
InvoiceCheck.check(response.message().invoice());

library/src/test/java/com/pengrad/telegrambot/TelegramBotTest.java

+19-26
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@
214214
*/
215215
public class TelegramBotTest {
216216

217-
private static Properties props = new Properties();
217+
private static final Properties props = new Properties();
218218

219219
static String getProp(String key) {
220220
return props.getProperty(key, System.getenv(key));
@@ -223,7 +223,8 @@ static String getProp(String key) {
223223
static {
224224
try {
225225
props.load(new FileInputStream("local.properties"));
226-
} catch (Exception ignored) {}
226+
} catch (Exception ignored) {
227+
}
227228

228229
String chat = getProp("CHAT_ID");
229230
String group = getProp("GROUP_ID");
@@ -455,11 +456,8 @@ public void editMessageCaption() {
455456
public void editMessageReplyMarkup() {
456457
String text = "Update" + System.currentTimeMillis();
457458

458-
InlineKeyboardMarkup keyboard = new InlineKeyboardMarkup(new InlineKeyboardButton[]{
459-
new InlineKeyboardButton(text).url("https://google.com")});
460-
461-
InlineKeyboardMarkup gameKeyboard = new InlineKeyboardMarkup(new InlineKeyboardButton[]{
462-
new InlineKeyboardButton(text).callbackGame("test game")});
459+
InlineKeyboardMarkup keyboard = new InlineKeyboardMarkup(new InlineKeyboardButton(text).url("https://google.com"));
460+
InlineKeyboardMarkup gameKeyboard = new InlineKeyboardMarkup(new InlineKeyboardButton(text).callbackGame("test game"));
463461

464462
BaseResponse response = bot.execute(new EditMessageReplyMarkup(chatId, 8124).replyMarkup(keyboard));
465463
assertTrue(response.isOk());
@@ -488,16 +486,15 @@ public void answerInline() {
488486
assertNull(inlineQuery.location());
489487

490488

491-
InlineKeyboardMarkup keyboardMarkup = new InlineKeyboardMarkup(new InlineKeyboardButton[]{
489+
InlineKeyboardMarkup keyboardMarkup = new InlineKeyboardMarkup(
492490
new InlineKeyboardButton("inline game").callbackGame("pengrad test game description"),
493491
new InlineKeyboardButton("inline ok").callbackData("callback ok"),
494492
new InlineKeyboardButton("cancel").callbackData("callback cancel"),
495493
new InlineKeyboardButton("url").url(someUrl),
496494
new InlineKeyboardButton("switch inline").switchInlineQuery("query"),
497-
new InlineKeyboardButton("switch inline current").switchInlineQueryCurrentChat("query"),
498-
});
495+
new InlineKeyboardButton("switch inline current").switchInlineQueryCurrentChat("query"));
499496

500-
InlineQueryResult[] results = new InlineQueryResult[]{
497+
InlineQueryResult<?>[] results = new InlineQueryResult[]{
501498
new InlineQueryResultArticle("1", "title",
502499
new InputTextMessageContent("message").disableWebPagePreview(false).parseMode(ParseMode.HTML))
503500
.url(someUrl).hideUrl(true).description("desc").thumbUrl(someUrl).thumbHeight(100).thumbWidth(100),
@@ -697,16 +694,16 @@ public void sendMessage() {
697694
sendResponse = bot.execute(new SendMessage(chatId, "message with keyboard")
698695
.parseMode(ParseMode.HTML)
699696
.disableWebPagePreview(false)
700-
.replyMarkup(new ReplyKeyboardMarkup(new KeyboardButton[]{
697+
.replyMarkup(new ReplyKeyboardMarkup(
701698
new KeyboardButton("contact").requestContact(true),
702-
new KeyboardButton("location").requestLocation(true)})
699+
new KeyboardButton("location").requestLocation(true))
703700
.oneTimeKeyboard(true)
704701
.resizeKeyboard(true)
705702
.selective(true)));
706703
MessageTest.checkTextMessage(sendResponse.message());
707704

708705
sendResponse = bot.execute(new SendMessage(chatId, "simple buttons")
709-
.replyMarkup(new ReplyKeyboardMarkup(new String[]{"ok", "cancel"})));
706+
.replyMarkup(new ReplyKeyboardMarkup("ok", "cancel")));
710707
MessageTest.checkTextMessage(sendResponse.message());
711708
}
712709

@@ -1318,12 +1315,12 @@ public void getStickerSet() {
13181315
StickerTest.check(sticker, true, true);
13191316
}
13201317
assertTrue(stickerSet.containsMasks());
1321-
assertEquals(this.stickerSet, stickerSet.name());
1318+
assertEquals(TelegramBotTest.stickerSet, stickerSet.name());
13221319
assertEquals("test1", stickerSet.title());
13231320
assertFalse(stickerSet.isAnimated());
13241321

13251322
Sticker sticker = stickerSet.stickers()[0];
1326-
assertEquals(this.stickerSet, sticker.setName());
1323+
assertEquals(TelegramBotTest.stickerSet, sticker.setName());
13271324
MaskPosition maskPosition = sticker.maskPosition();
13281325
assertEquals(MaskPosition.Point.forehead.name(), maskPosition.point());
13291326
assertEquals(0f, maskPosition.xShift(), 0);
@@ -1424,9 +1421,7 @@ public void editMessageLiveLocation() {
14241421
String buttonText = "btn_" + System.currentTimeMillis();
14251422
response = bot.execute(
14261423
new EditMessageLiveLocation("AgAAAPrwAQCj_Q4D2s-51_8jsuU", 21, 102)
1427-
.replyMarkup(new InlineKeyboardMarkup(
1428-
new InlineKeyboardButton[]{new InlineKeyboardButton(buttonText).callbackGame(buttonText)}
1429-
))
1424+
.replyMarkup(new InlineKeyboardMarkup(new InlineKeyboardButton(buttonText).callbackGame(buttonText)))
14301425
);
14311426
assertTrue(response.isOk());
14321427
}
@@ -1653,7 +1648,7 @@ public void decryptPassport() throws Exception {
16531648
if (encElement.translation() != null) {
16541649
files.addAll(Arrays.asList(encElement.translation()));
16551650
}
1656-
for (PassportFile file:files) {
1651+
for (PassportFile file : files) {
16571652
if (file == null) continue;
16581653
byte[] data = encElement.decryptFile(file, credentials, bot);
16591654
assertTrue(data.length > 0);
@@ -1708,11 +1703,10 @@ public void sendPollWithKeyboard() {
17081703
new SendPoll(chatId, question, answers)
17091704
.type("regular")
17101705
.allowsMultipleAnswers(true)
1711-
.replyMarkup(new ReplyKeyboardMarkup(new KeyboardButton[]{
1706+
.replyMarkup(new ReplyKeyboardMarkup(
17121707
new KeyboardButton("all polls").requestPoll(new KeyboardButtonPollType()),
17131708
new KeyboardButton("quiz").requestPoll(new KeyboardButtonPollType(Poll.Type.quiz)),
1714-
new KeyboardButton("regular").requestPoll(new KeyboardButtonPollType("regular"))
1715-
}))
1709+
new KeyboardButton("regular").requestPoll(new KeyboardButtonPollType("regular"))))
17161710
.closeDate(closeDate)
17171711
);
17181712
Poll poll = sendResponse.message().poll();
@@ -1800,12 +1794,11 @@ public void loginButton() {
18001794
String text = "login";
18011795
String url = "http://pengrad.herokuapp.com/hello";
18021796
SendResponse response = bot.execute(
1803-
new SendMessage(chatId, "Login button").replyMarkup(new InlineKeyboardMarkup(new InlineKeyboardButton[]{
1797+
new SendMessage(chatId, "Login button").replyMarkup(new InlineKeyboardMarkup(
18041798
new InlineKeyboardButton(text).loginUrl(new LoginUrl(url)
18051799
.forwardText("forwarded login")
18061800
.botUsername("pengrad_test_bot")
1807-
.requestWriteAccess(true))
1808-
})));
1801+
.requestWriteAccess(true)))));
18091802
assertTrue(response.isOk());
18101803
InlineKeyboardButton button = response.message().replyMarkup().inlineKeyboard()[0][0];
18111804
assertEquals(text, button.text());

sample/src/main/java/com/pengrad/telegrambot/sample/spark/AqivnBot.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private String getAqi() {
5252
}
5353

5454
private Keyboard simpleKeyboard() {
55-
return new ReplyKeyboardMarkup(new String[]{"Get!"});
55+
return new ReplyKeyboardMarkup("Get!");
5656
}
5757

5858
private String documentToAqiString(Document document) {

0 commit comments

Comments
 (0)