#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> </keyboard>
</screen> </screen>
<screen id="20005" name="inline-test-2-screen"> <screen id="20005" name="inline-test-2-screen">
<text>Inline Screen #2</text> <text>Inline Screen #2
================</text>
<keyboard> <keyboard>
<row> <row>
<button actionRef="inline1-action"></button> <button actionRef="inline1-action"></button>

View File

@@ -2,9 +2,14 @@ package ru.penkrat.stbf.templates.utils;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@UtilityClass @UtilityClass
public class StringUtils { public class StringUtils {
public static final String NL_DELIMITER = "\n";
public boolean isEmpty(String string) { public boolean isEmpty(String string) {
return string == null || string.isEmpty(); return string == null || string.isEmpty();
} }
@@ -12,4 +17,13 @@ public class StringUtils {
public boolean isNotEmpty(String string) { public boolean isNotEmpty(String string) {
return !isEmpty(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) { public Screen getScreen(String name) {
ScreenItem item = resolver.get(name); ScreenItem item = resolver.get(name);
String text = item.getText();
if (!item.isPreserve()) {
text = StringUtils.ltrim(text);
}
if (StringUtils.isNotEmpty(item.getMediaRef())) { if (StringUtils.isNotEmpty(item.getMediaRef())) {
final Media media = mediaResolver.getMedia(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 RamFileIdStorageMediaScreen(mediaScreen);
} }
return new TextScreen(item.getText(), buildKeyboard(item.getKeyboard(), null)); return new TextScreen(text, buildKeyboard(item.getKeyboard(), null));
} }
@Override @Override
public Screen getScreen(String name, Object context) { public Screen getScreen(String name, Object context) {
ScreenItem item = resolver.get(name); ScreenItem item = resolver.get(name);
String text = item.getText();
if (!item.isPreserve()) {
text = StringUtils.ltrim(text);
}
if (StringUtils.isNotEmpty(item.getMediaRef())) { if (StringUtils.isNotEmpty(item.getMediaRef())) {
final Media media = mediaResolver.getMedia(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)); resolveKeyboard(item.getKeyboard(), context));
return new RamFileIdStorageMediaScreen(mediaScreen); return new RamFileIdStorageMediaScreen(mediaScreen);
} }
return new TextScreen(templateRenderer.render(item.getText(), context), return new TextScreen(templateRenderer.render(text, context),
resolveKeyboard(item.getKeyboard(), context)); resolveKeyboard(item.getKeyboard(), context));
} }

View File

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