Notify of pokes and private messages on Android, with TeamSpeak's sounds
While the app is out of sight, a poke or a private message posts a notification; a message's one gathers the conversation, takes a reply inline and opens its chat. The notifications are silent, as the sound pack already plays TeamSpeak's own sound for either. The build bundles the sound packs of the TeamSpeak 3 client found next to the checkout (or at ts3.client.dir / TS3_CLIENT_DIR), unpacked into the profile once per app version. Sound Settings picks the pack and its volume, and speech packs talk through the phone's text-to-speech. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -74,6 +74,11 @@ public final class BBCode {
|
||||
return out.toString();
|
||||
}
|
||||
|
||||
/** The text BBCode reads as, markup dropped, for places that show no formatting. */
|
||||
public static String toPlain(String input) {
|
||||
return HtmlText.plain(toHtml(input));
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders text carrying {@code [url=…]…[/url]} links and nothing else: everything
|
||||
* outside those tags stays literal. The server log is written this way, so that a
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ts3client.text;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
/** Messages shown where no formatting renders, such as a system notification. */
|
||||
class BBCodePlainTest {
|
||||
|
||||
@Test
|
||||
void dropsMarkupAndKeepsText() {
|
||||
assertEquals("Hello bold & <tags> and a link",
|
||||
BBCode.toPlain("Hello [b]bold[/b] & <tags> and [url=https://x.y]a link[/url]"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user