]>
nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/TextStyle.java
483163088738b1686d3056f65c546da1deebb00b
1 package org
.asamk
.signal
.manager
.api
;
3 import org
.whispersystems
.signalservice
.internal
.push
.SignalServiceProtos
;
5 public record TextStyle(Style style
, int start
, int length
) {
15 static Style
fromInternal(SignalServiceProtos
.BodyRange
.Style style
) {
16 return switch (style
) {
19 case ITALIC
-> ITALIC
;
20 case SPOILER
-> SPOILER
;
21 case STRIKETHROUGH
-> STRIKETHROUGH
;
22 case MONOSPACE
-> MONOSPACE
;
26 public static Style
from(String style
) {
27 return switch (style
) {
30 case "ITALIC" -> ITALIC
;
31 case "SPOILER" -> SPOILER
;
32 case "STRIKETHROUGH" -> STRIKETHROUGH
;
33 case "MONOSPACE" -> MONOSPACE
;
38 SignalServiceProtos
.BodyRange
.Style
toBodyRangeStyle() {
39 return switch (this) {
40 case NONE
-> SignalServiceProtos
.BodyRange
.Style
.NONE
;
41 case BOLD
-> SignalServiceProtos
.BodyRange
.Style
.BOLD
;
42 case ITALIC
-> SignalServiceProtos
.BodyRange
.Style
.ITALIC
;
43 case SPOILER
-> SignalServiceProtos
.BodyRange
.Style
.SPOILER
;
44 case STRIKETHROUGH
-> SignalServiceProtos
.BodyRange
.Style
.STRIKETHROUGH
;
45 case MONOSPACE
-> SignalServiceProtos
.BodyRange
.Style
.MONOSPACE
;
50 static TextStyle
from(SignalServiceProtos
.BodyRange bodyRange
) {
51 return new TextStyle(Style
.fromInternal(bodyRange
.getStyle()), bodyRange
.getStart(), bodyRange
.getLength());
54 public SignalServiceProtos
.BodyRange
toBodyRange() {
55 return SignalServiceProtos
.BodyRange
.newBuilder()
56 .setStart(this.start())
57 .setLength(this.length())
58 .setStyle(this.style().toBodyRangeStyle())