]>
nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/TextStyle.java
1 package org
.asamk
.signal
.manager
.api
;
3 import org
.whispersystems
.signalservice
.internal
.push
.BodyRange
;
5 public record TextStyle(Style style
, Integer start
, Integer length
) {
15 static Style
fromInternal(BodyRange
.Style style
) {
19 return switch (style
) {
22 case ITALIC
-> ITALIC
;
23 case SPOILER
-> SPOILER
;
24 case STRIKETHROUGH
-> STRIKETHROUGH
;
25 case MONOSPACE
-> MONOSPACE
;
29 public static Style
from(String style
) {
30 return switch (style
) {
33 case "ITALIC" -> ITALIC
;
34 case "SPOILER" -> SPOILER
;
35 case "STRIKETHROUGH" -> STRIKETHROUGH
;
36 case "MONOSPACE" -> MONOSPACE
;
41 BodyRange
.Style
toBodyRangeStyle() {
42 return switch (this) {
43 case NONE
-> BodyRange
.Style
.NONE
;
44 case BOLD
-> BodyRange
.Style
.BOLD
;
45 case ITALIC
-> BodyRange
.Style
.ITALIC
;
46 case SPOILER
-> BodyRange
.Style
.SPOILER
;
47 case STRIKETHROUGH
-> BodyRange
.Style
.STRIKETHROUGH
;
48 case MONOSPACE
-> BodyRange
.Style
.MONOSPACE
;
53 static TextStyle
from(BodyRange bodyRange
) {
54 return new TextStyle(Style
.fromInternal(bodyRange
.style
), bodyRange
.start
, bodyRange
.length
);
57 public BodyRange
toBodyRange() {
58 return new BodyRange
.Builder().start(this.start())
59 .length(this.length())
60 .style(this.style().toBodyRangeStyle())