#2 trim strings
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2021-09-14 23:47:04 +03:00
parent 1765abbdfd
commit f2320ff2af
4 changed files with 31 additions and 5 deletions

View File

@@ -68,7 +68,8 @@
</keyboard>
</screen>
<screen id="20005" name="inline-test-2-screen">
<text>Inline Screen #2</text>
<text>Inline Screen #2
================</text>
<keyboard>
<row>
<button actionRef="inline1-action"></button>

View File

@@ -2,9 +2,14 @@ package ru.penkrat.stbf.templates.utils;
import lombok.experimental.UtilityClass;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@UtilityClass
public class StringUtils {
public static final String NL_DELIMITER = "\n";
public boolean isEmpty(String string) {
return string == null || string.isEmpty();
}
@@ -12,4 +17,13 @@ public class StringUtils {
public boolean isNotEmpty(String string) {
return !isEmpty(string);
}
public String ltrim(String text) {
if (text == null) {
return null;
}
return Stream.of(text.split(NL_DELIMITER))
.map(string -> string.trim())
.collect(Collectors.joining(NL_DELIMITER));
}
}

View File

@@ -44,27 +44,35 @@ class FlowScreenResolverDelegate implements ScreenResolver {
public Screen getScreen(String name) {
ScreenItem item = resolver.get(name);
String text = item.getText();
if (!item.isPreserve()) {
text = StringUtils.ltrim(text);
}
if (StringUtils.isNotEmpty(item.getMediaRef())) {
final Media media = mediaResolver.getMedia(item.getMediaRef());
final MediaScreen mediaScreen = new MediaScreen(item.getText(), media, buildKeyboard(item.getKeyboard(), null));
final MediaScreen mediaScreen = new MediaScreen(text, media, buildKeyboard(item.getKeyboard(), null));
return new RamFileIdStorageMediaScreen(mediaScreen);
}
return new TextScreen(item.getText(), buildKeyboard(item.getKeyboard(), null));
return new TextScreen(text, buildKeyboard(item.getKeyboard(), null));
}
@Override
public Screen getScreen(String name, Object context) {
ScreenItem item = resolver.get(name);
String text = item.getText();
if (!item.isPreserve()) {
text = StringUtils.ltrim(text);
}
if (StringUtils.isNotEmpty(item.getMediaRef())) {
final Media media = mediaResolver.getMedia(item.getMediaRef());
final MediaScreen mediaScreen = new MediaScreen(templateRenderer.render(item.getText(), context), media,
final MediaScreen mediaScreen = new MediaScreen(templateRenderer.render(text, context), media,
resolveKeyboard(item.getKeyboard(), context));
return new RamFileIdStorageMediaScreen(mediaScreen);
}
return new TextScreen(templateRenderer.render(item.getText(), context),
return new TextScreen(templateRenderer.render(text, context),
resolveKeyboard(item.getKeyboard(), context));
}

View File

@@ -15,4 +15,7 @@ class ScreenItem extends NamedItem {
private KeyboardWrapper keyboard = new KeyboardWrapper();
@JacksonXmlProperty(isAttribute = true)
private boolean preserve;
}