Skip to content

Commit 6447653

Browse files
author
Rob
committed
feat(outbound): add {trend_arrow_emoji} template token for white-on-grey emoji arrows
Adds a new template token {trend_arrow_emoji} that renders trend arrows as emoji: - ⬆️⬆️ for DoubleUp - ⬆️ for SingleUp - ↗️ for FortyFiveUp - ➡️ for Flat - ↘️ for FortyFiveDown - ⬇️ for SingleDown - ⬇️⬇️ for DoubleDown These render consistently across platforms as white arrows on grey squares, providing the visual consistency the user needs for Telegram messages. Users can now use {trend_arrow_emoji} in their message templates instead of {trend_arrow} to get the emoji style. Example: '{status_emoji} {value} {unit} {trend_arrow_emoji} {time}'
1 parent ec068ae commit 6447653

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

Common/src/main/java/tk/glucodata/OutboundApi.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ object OutboundApi {
462462
}
463463
}
464464
val trendArrow: String get() = trendArrow(trendName)
465+
val trendArrowEmoji: String get() = trendArrowEmoji(trendName)
465466
val iob: Float get() = runCatching { Natives.getIOBvalue(timeMillis) }.getOrDefault(Float.NaN)
466467
val journal: JournalSnapshot get() = loadJournalSnapshot(timeMillis)
467468
val displayText: String
@@ -541,6 +542,7 @@ object OutboundApi {
541542
})
542543
.replace("{trend}", reading.trendName)
543544
.replace("{trend_arrow}", reading.trendArrow)
545+
.replace("{trend_arrow_emoji}", reading.trendArrowEmoji)
544546
.replace("{rate_mgdl}", formatNumber(reading.rateMgdlPerMinute, 1))
545547
.replace("{rate_mmol}", formatNumber(reading.rateMmolPerMinute, 3))
546548
.replace("{timestamp}", reading.timeMillis.toString())
@@ -620,6 +622,18 @@ object OutboundApi {
620622
"DoubleDown" -> "\u2193\u2193"
621623
else -> "\u2192"
622624
}
625+
626+
private fun trendArrowEmoji(trendName: String): String =
627+
when (trendName) {
628+
"DoubleUp" -> "\u2b06\ufe0f\u2b06\ufe0f" // \u2b06\ufe0f\u2b06\ufe0f
629+
"SingleUp" -> "\u2b06\ufe0f" // \u2b06\ufe0f
630+
"FortyFiveUp" -> "\u2197\ufe0f" // \u2197\ufe0f
631+
"Flat" -> "\u27a1\ufe0f" // \u27a1\ufe0f
632+
"FortyFiveDown" -> "\u2198\ufe0f" // \u2198\ufe0f
633+
"SingleDown" -> "\u2b07\ufe0f" // \u2b07\ufe0f
634+
"DoubleDown" -> "\u2b07\ufe0f\u2b07\ufe0f" // \u2b07\ufe0f\u2b07\ufe0f
635+
else -> "\u27a1\ufe0f" // \u27a1\ufe0f
636+
}
623637
}
624638

625639
class OutboundApiWorker(

Common/src/main/java/tk/glucodata/OutboundApiSettings.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ object OutboundApiSettings {
6666
"{value} {unit} {trend_arrow} RAW:{raw} ({rate_mgdl} mg/dL/min) IOB:{iob} COB:{cob} {time}"
6767
const val DEFAULT_CHAT_TEMPLATE =
6868
"{status_emoji} {value} {unit} {trend_arrow} {time}"
69+
// Alternative with emoji trend arrows (renders as white arrows on grey squares)
70+
const val DEFAULT_CHAT_TEMPLATE_EMOJI_ARROWS =
71+
"{status_emoji} {value} {unit} {trend_arrow_emoji} {time}"
6972
// Old default before status tokens were added — used to migrate stored templates on load.
7073
private const val LEGACY_CHAT_TEMPLATE = "{value} {unit} {trend_arrow} {time}"
7174
const val DEFAULT_GLUCO_WATCH_TEMPLATE =

Common/src/mobile/java/tk/glucodata/ui/OutboundApiSettingsScreen.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1228,6 +1228,7 @@ private val templateTokens = listOf(
12281228
"{value}",
12291229
"{unit}",
12301230
"{trend_arrow}",
1231+
"{trend_arrow_emoji}",
12311232
"{time}",
12321233
"{mgdl}",
12331234
"{mmol}",

0 commit comments

Comments
 (0)