From ebb3d8dab499116ec68a7799e705c83b03bcc9c8 Mon Sep 17 00:00:00 2001
From: LeonardSEO <130681849+LeonardSEO@users.noreply.github.com>
Date: Wed, 21 Oct 2026 16:30:55 +0200
Subject: [PATCH] Describe a 5/MG offload that served no history instead of
calling history sync experimental
The history chip now states the observed fact, and the Android add-device note uses the text and translations Apple already ships. Copy only.
---
Strand/Resources/Localizable.xcstrings | 122 +-----------------
Strand/Screens/TodayView.swift | 4 +-
.../main/java/com/noop/ui/AddDeviceWizard.kt | 7 +-
.../app/src/main/res/values-de/strings.xml | 4 +-
.../app/src/main/res/values-es/strings.xml | 4 +-
.../app/src/main/res/values-fr/strings.xml | 4 +-
.../app/src/main/res/values-it/strings.xml | 4 +-
.../app/src/main/res/values-pl/strings.xml | 4 +-
.../src/main/res/values-pt-rPT/strings.xml | 4 +-
.../app/src/main/res/values-ru/strings.xml | 4 +-
.../app/src/main/res/values-zh/strings.xml | 4 +-
android/app/src/main/res/values/strings.xml | 4 +-
12 files changed, 30 insertions(+), 139 deletions(-)
diff --git a/Strand/Resources/Localizable.xcstrings b/Strand/Resources/Localizable.xcstrings
index 7f227851a7..ec9202e607 100644
--- a/Strand/Resources/Localizable.xcstrings
+++ b/Strand/Resources/Localizable.xcstrings
@@ -55795,64 +55795,9 @@
}
}
},
- "Connected. History sync is experimental on 5.0.": {
- "localizations": {
- "de": {
- "stringUnit": {
- "state": "translated",
- "value": "Verbunden. Verlaufssynchronisierung ist auf 5.0 experimentell."
- }
- },
- "es": {
- "stringUnit": {
- "state": "translated",
- "value": "Conectada. La sincronización del historial es experimental en la 5.0."
- }
- },
- "fr": {
- "stringUnit": {
- "state": "translated",
- "value": "Connecté. La synchronisation de l'historique est expérimentale sur la 5.0."
- }
- },
- "it": {
- "stringUnit": {
- "state": "translated",
- "value": "Connessa. La sincronizzazione della cronologia è sperimentale su 5.0."
- }
- },
- "pt-PT": {
- "stringUnit": {
- "state": "translated",
- "value": "Ligado. A sincronização do histórico é experimental na versão 5.0."
- }
- },
- "ru": {
- "stringUnit": {
- "state": "translated",
- "value": "Подключено. Синхронизация истории на 5.0 экспериментальная."
- }
- },
- "zh-Hans": {
- "stringUnit": {
- "state": "translated",
- "value": "已连接。5.0 上的历史同步为实验性功能。"
- }
- },
- "zh-Hant": {
- "stringUnit": {
- "state": "translated",
- "value": "已連接。歷史同步在 5.0 上仍屬實驗性。"
- }
- },
- "pl": {
- "stringUnit": {
- "state": "translated",
- "value": "Połączony. Synchronizacja historii jest eksperymentalna w wersji 5.0."
- }
- }
- }
- },
+ "Connected. The last sync brought no history from this 5.0 strap.": { "localizations": {
+ "de": {"stringUnit": {"state": "translated", "value": "Verbunden. Die letzte Synchronisierung brachte keinen Verlauf von diesem 5.0-Armband."}}, "es": {"stringUnit": {"state": "translated", "value": "Conectado. La última sincronización no trajo historial de esta pulsera 5.0."}}, "fr": {"stringUnit": {"state": "translated", "value": "Connecté. La dernière synchronisation n'a rapporté aucun historique de ce bracelet 5.0."}}, "it": {"stringUnit": {"state": "translated", "value": "Connesso. L'ultima sincronizzazione non ha portato cronologia da questa fascia 5.0."}}, "pl": {"stringUnit": {"state": "translated", "value": "Połączono. Ostatnia synchronizacja nie przyniosła historii z tej opaski 5.0."}}, "pt-PT": {"stringUnit": {"state": "translated", "value": "Ligado. A última sincronização não trouxe histórico desta pulseira 5.0."}}, "ru": {"stringUnit": {"state": "translated", "value": "Подключено. Последняя синхронизация не принесла истории с этого браслета 5.0."}}, "zh-Hans": {"stringUnit": {"state": "translated", "value": "已连接。上次同步未从这条 5.0 手环获取到历史记录。"}}, "zh-Hant": {"stringUnit": {"state": "translated", "value": "已連線。上次同步未從這條 5.0 手環取得歷史記錄。"}}
+ } },
"Connected. New strap data is written automatically, with periodic background refresh when iOS allows it.": {
"localizations": {
"de": {
@@ -83383,64 +83328,9 @@
}
}
},
- "History sync is experimental on 5.0.": {
- "localizations": {
- "de": {
- "stringUnit": {
- "state": "translated",
- "value": "Verlaufssynchronisierung ist auf 5.0 experimentell."
- }
- },
- "es": {
- "stringUnit": {
- "state": "translated",
- "value": "La sincronización del historial es experimental en la 5.0."
- }
- },
- "fr": {
- "stringUnit": {
- "state": "translated",
- "value": "La synchronisation de l'historique est expérimentale sur 5.0."
- }
- },
- "it": {
- "stringUnit": {
- "state": "translated",
- "value": "La sincronizzazione della cronologia è sperimentale su 5.0."
- }
- },
- "pt-PT": {
- "stringUnit": {
- "state": "translated",
- "value": "A sincronização do histórico é experimental na versão 5.0."
- }
- },
- "ru": {
- "stringUnit": {
- "state": "translated",
- "value": "Синхронизация истории экспериментальна на 5.0."
- }
- },
- "zh-Hans": {
- "stringUnit": {
- "state": "translated",
- "value": "历史同步在 5.0 上属实验性。"
- }
- },
- "zh-Hant": {
- "stringUnit": {
- "state": "translated",
- "value": "歷史同步在 5.0 上屬實驗性。"
- }
- },
- "pl": {
- "stringUnit": {
- "state": "translated",
- "value": "Synchronizacja historii jest eksperymentalna w wersji 5.0."
- }
- }
- }
- },
+ "The last sync brought no history from this 5.0 strap.": { "localizations": {
+ "de": {"stringUnit": {"state": "translated", "value": "Die letzte Synchronisierung brachte keinen Verlauf von diesem 5.0-Armband."}}, "es": {"stringUnit": {"state": "translated", "value": "La última sincronización no trajo historial de esta pulsera 5.0."}}, "fr": {"stringUnit": {"state": "translated", "value": "La dernière synchronisation n'a rapporté aucun historique de ce bracelet 5.0."}}, "it": {"stringUnit": {"state": "translated", "value": "L'ultima sincronizzazione non ha portato cronologia da questa fascia 5.0."}}, "pl": {"stringUnit": {"state": "translated", "value": "Ostatnia synchronizacja nie przyniosła historii z tej opaski 5.0."}}, "pt-PT": {"stringUnit": {"state": "translated", "value": "A última sincronização não trouxe histórico desta pulseira 5.0."}}, "ru": {"stringUnit": {"state": "translated", "value": "Последняя синхронизация не принесла истории с этого браслета 5.0."}}, "zh-Hans": {"stringUnit": {"state": "translated", "value": "上次同步未从这条 5.0 手环获取到历史记录。"}}, "zh-Hant": {"stringUnit": {"state": "translated", "value": "上次同步未從這條 5.0 手環取得歷史記錄。"}}
+ } },
"History synced": {
"localizations": {
"de": {
diff --git a/Strand/Screens/TodayView.swift b/Strand/Screens/TodayView.swift
index 4935abfd9c..ea9ea78224 100644
--- a/Strand/Screens/TodayView.swift
+++ b/Strand/Screens/TodayView.swift
@@ -5917,7 +5917,7 @@ enum RecordingState: Equatable {
case .recording: return "Your strap is connected and saving data."
case .lastSynced: return "Reconnect to pull the latest."
case .notRecording: return "Strap not connected. Tap to connect."
- case .historyExperimental: return "History sync is experimental on 5.0."
+ case .historyExperimental: return "The last sync brought no history from this 5.0 strap."
case .connectedNoData: return "No live heart rate or synced history yet this session."
}
}
@@ -5932,7 +5932,7 @@ enum RecordingState: Equatable {
case .notRecording:
return String(localized: "Not recording. Strap not connected. Tap to connect.")
case .historyExperimental:
- return String(localized: "Connected. History sync is experimental on 5.0.")
+ return String(localized: "Connected. The last sync brought no history from this 5.0 strap.")
case .connectedNoData:
return String(localized: "Connected. No live heart rate or synced history yet this session.")
}
diff --git a/android/app/src/main/java/com/noop/ui/AddDeviceWizard.kt b/android/app/src/main/java/com/noop/ui/AddDeviceWizard.kt
index bf3d5a9c72..408239bd7d 100644
--- a/android/app/src/main/java/com/noop/ui/AddDeviceWizard.kt
+++ b/android/app/src/main/java/com/noop/ui/AddDeviceWizard.kt
@@ -27,6 +27,7 @@ import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.filled.FavoriteBorder
import androidx.compose.material.icons.filled.FileDownload
import androidx.compose.material.icons.filled.GraphicEq
+import androidx.compose.material.icons.filled.Info
import androidx.compose.material.icons.filled.PhonelinkErase
import androidx.compose.material.icons.filled.Science
import androidx.compose.material.icons.filled.Warning
@@ -862,16 +863,16 @@ private fun PrepStep(type: DeviceType, onScan: () -> Unit) {
modifier = Modifier
.fillMaxWidth()
.clip(RoundedCornerShape(12.dp))
- .background(Palette.statusWarning.copy(alpha = 0.10f))
+ .background(Palette.accent.copy(alpha = 0.10f))
.padding(12.dp),
horizontalArrangement = Arrangement.spacedBy(10.dp),
verticalAlignment = Alignment.Top,
) {
- Icon(Icons.Filled.Science, contentDescription = null, tint = Palette.statusWarning, modifier = Modifier.size(18.dp))
+ Icon(Icons.Filled.Info, contentDescription = null, tint = Palette.accent, modifier = Modifier.size(18.dp))
Text(
uiString(R.string.l10n_add_device_wizard_whoop_5_0_mg_support_is_e452e686),
style = NoopType.footnote,
- color = Palette.statusWarning,
+ color = Palette.textSecondary,
)
}
} else if (type.isExperimental) {
diff --git a/android/app/src/main/res/values-de/strings.xml b/android/app/src/main/res/values-de/strings.xml
index 8399bc377c..96770bdb5c 100644
--- a/android/app/src/main/res/values-de/strings.xml
+++ b/android/app/src/main/res/values-de/strings.xml
@@ -227,7 +227,7 @@
Erneut versuchen
Dateiimport verwenden
Wir konnten diesen Ring nicht übernehmen.
- Die Unterstützung für WHOOP 5.0 / MG ist neuer und in NOOP noch experimentell.
+ WHOOP 5.0/MG unterstützt Live-Daten und Bandverlauf. Protokollwerkzeuge sind separat im Testcenter.
WHOOP ist NOOPs primäres, voll unterstütztes Band. Andere Herzfrequenzgurte streamen Live-Herzfrequenz und HRV, aber nicht WHOOPs tiefere Schlaf- und Erholungsdaten.
Mehr
moreGroupChevron
@@ -1987,7 +1987,7 @@
Dein Strap ist verbunden und speichert Daten.
Verbinde neu, um das Neueste zu laden.
Strap nicht verbunden. Tippe zum Verbinden.
- Verlaufssynchronisierung ist auf 5.0 experimentell.
+ Die letzte Synchronisierung brachte keinen Verlauf von diesem 5.0-Armband.
Noch keine Live-Herzfrequenz und kein synchronisierter Verlauf in dieser Sitzung.
Kalibrierung
Wird morgens fortgesetzt
diff --git a/android/app/src/main/res/values-es/strings.xml b/android/app/src/main/res/values-es/strings.xml
index 20aed28131..c31ae0835a 100644
--- a/android/app/src/main/res/values-es/strings.xml
+++ b/android/app/src/main/res/values-es/strings.xml
@@ -45,7 +45,7 @@
Inténtalo de nuevo
Usar importación de archivos
No pudimos tomar el control de este anillo.
- La compatibilidad con WHOOP 5.0 / MG es más nueva y sigue siendo experimental en NOOP.
+ WHOOP 5.0/MG admite datos en directo e historial. Las herramientas de protocolo están aparte en el Centro de pruebas.
WHOOP es la banda principal y totalmente compatible de NOOP. Otras bandas de frecuencia cardíaca transmiten frecuencia cardíaca y VFC en vivo, pero no los datos más profundos de sueño y recuperación de WHOOP.
Más
másGroupChevron
@@ -1955,7 +1955,7 @@
Tu pulsera está conectada y guardando datos.
Reconecta para extraer lo más reciente.
Pulsera no conectada. Toca para conectar.
- La sincronización del historial es experimental en la 5.0.
+ La última sincronización no trajo historial de esta pulsera 5.0.
Aún no hay frecuencia cardíaca en vivo ni historial sincronizado en esta sesión.
Calibrando
Se reanuda por la mañana
diff --git a/android/app/src/main/res/values-fr/strings.xml b/android/app/src/main/res/values-fr/strings.xml
index bd1c4cc3b1..5459f79331 100644
--- a/android/app/src/main/res/values-fr/strings.xml
+++ b/android/app/src/main/res/values-fr/strings.xml
@@ -45,7 +45,7 @@
Réessayer
Utiliser l\'import de fichier
Nous n\'avons pas pu prendre le contrôle de cet anneau.
- La prise en charge du WHOOP 5.0 / MG est plus récente et encore expérimentale dans NOOP.
+ WHOOP 5.0/MG gère les données en direct et l’historique. Les outils de protocole sont séparés dans le Centre de test.
WHOOP est le bracelet principal et entièrement pris en charge par NOOP. Les autres bracelets de fréquence cardiaque diffusent la fréquence cardiaque et la VFC en direct, mais pas les données plus poussées de sommeil et de récupération de WHOOP.
Plus
plus de GroupeChevron
@@ -1973,7 +1973,7 @@
Votre bracelet est connecté et enregistre les données.
Reconnectez-vous pour récupérer les dernières données.
Bracelet non connecté. Touchez pour vous connecter.
- La synchronisation de l\'historique est expérimentale sur 5.0.
+ La dernière synchronisation n\'a rapporté aucun historique de ce bracelet 5.0.
Aucune fréquence cardiaque en direct ni historique synchronisé durant cette session.
Calibration en cours
Reprend le matin
diff --git a/android/app/src/main/res/values-it/strings.xml b/android/app/src/main/res/values-it/strings.xml
index 1a47561f99..ca9ccfccbc 100644
--- a/android/app/src/main/res/values-it/strings.xml
+++ b/android/app/src/main/res/values-it/strings.xml
@@ -296,7 +296,7 @@
Riprova
Usa l\'importazione da file
Non siamo riusciti a prendere il controllo di questo anello.
- Il supporto per WHOOP 5.0 / MG è più recente e ancora sperimentale in NOOP.
+ WHOOP 5.0/MG supporta i dati in tempo reale e la cronologia della fascia. Gli strumenti di ricerca sul protocollo sono separati nel Centro test.
WHOOP è la fascia principale e pienamente supportata di NOOP. Le altre fasce per la frequenza cardiaca trasmettono la frequenza cardiaca in diretta e l\'HRV, ma non i dati più approfonditi sul sonno e sul recupero di WHOOP.
Altro
moreGroupChevron
@@ -2042,7 +2042,7 @@
La tua fascia è connessa e sta salvando i dati.
Riconnettiti per recuperare i dati più recenti.
Fascia non connessa. Tocca per connettere.
- La sincronizzazione della cronologia è sperimentale su 5.0.
+ L\'ultima sincronizzazione non ha portato cronologia da questa fascia 5.0.
Ancora nessuna frequenza cardiaca in diretta né cronologia sincronizzata in questa sessione.
Calibrazione
Riprende al mattino
diff --git a/android/app/src/main/res/values-pl/strings.xml b/android/app/src/main/res/values-pl/strings.xml
index b5e9c52de8..43a5aba26c 100644
--- a/android/app/src/main/res/values-pl/strings.xml
+++ b/android/app/src/main/res/values-pl/strings.xml
@@ -210,7 +210,7 @@
Spróbuj ponownie
Użyj importu plików
Nie mogliśmy przejąć tego pierścienia.
- Obsługa WHOOP 5.0 / MG jest nowsza i wciąż eksperymentalna w NOOP.
+ WHOOP 5.0/MG obsługuje dane na żywo i historię paska. Narzędzia badawcze protokołu są dostępne osobno w Centrum Testowym.
WHOOP jest głównym, w pełni obsługiwanym pasmem NOOP. Inne paski do pomiaru tętna przesyłają na żywo tętno i dane HRV, ale nie dane dotyczące głębszego snu i regeneracji WHOOP.
Więcej
więcejGrupaChevron
@@ -1944,7 +1944,7 @@
Twój pasek jest podłączony i zapisuje dane.
Połącz się ponownie, aby pobrać najnowsze.
Pasek nie jest podłączony. Kliknij, aby się połączyć.
- Synchronizacja historii jest eksperymentalna w wersji 5.0.
+ Ostatnia synchronizacja nie przyniosła historii z tej opaski 5.0.
W tej sesji nie ma jeszcze tętna na żywo ani zsynchronizowanej historii.
Kalibracja
Wznowi się rano
diff --git a/android/app/src/main/res/values-pt-rPT/strings.xml b/android/app/src/main/res/values-pt-rPT/strings.xml
index b64877aeb3..110165698c 100644
--- a/android/app/src/main/res/values-pt-rPT/strings.xml
+++ b/android/app/src/main/res/values-pt-rPT/strings.xml
@@ -210,7 +210,7 @@
Tente novamente
Usar importação de ficheiros
Não poderíamos assumir este anel.
- O suporte ao WHOOP 5.0/MG é mais recente e ainda experimental no NOOP.
+ WHOOP 5.0/MG suporta dados em direto e histórico. As ferramentas de protocolo estão separadas no Centro de testes.
WHOOP é a banda principal e totalmente suportada do NOOP. Outras gamas de frequência cardíaca transmitem a frequência cardíaca e a VFC em direto, mas não os dados de sono e recuperação mais profundos do WHOOP.
Mais
moreGroupChevron
@@ -1948,7 +1948,7 @@
A tua bracelete está conectada e a guardar dados.
Volte a ligar para obter o mais recente.
Correia não ligada. Toque para ligar.
- A sincronização do histórico é experimental na versão 5.0.
+ A última sincronização não trouxe histórico desta bracelete 5.0.
Ainda não há frequência cardíaca em direto nem histórico sincronizado nesta sessão.
A calibrar
Retoma de manhã
diff --git a/android/app/src/main/res/values-ru/strings.xml b/android/app/src/main/res/values-ru/strings.xml
index 6fbec7268f..bfd45cd0a4 100644
--- a/android/app/src/main/res/values-ru/strings.xml
+++ b/android/app/src/main/res/values-ru/strings.xml
@@ -287,7 +287,7 @@
Повторить
Использовать импорт файла
Не удалось перехватить управление этим кольцом.
- Поддержка WHOOP 5.0 / MG в NOOP новее и всё ещё экспериментальна.
+ WHOOP 5.0/MG поддерживает данные в реальном времени и историю браслета. Инструменты исследования протокола вынесены в Тестовый центр.
WHOOP — основной, полностью поддерживаемый браслет NOOP. Другие пульсометры передают живой пульс и ВСР, но не более глубокие данные WHOOP о сне и восстановлении.
Ещё
Пока нет записанных измерений.
@@ -1947,7 +1947,7 @@
Ваш браслет подключён и сохраняет данные.
Переподключитесь, чтобы получить последние данные.
Браслет не подключён. Нажмите, чтобы подключить.
- Синхронизация истории экспериментальна на 5.0.
+ Последняя синхронизация не принесла истории с этого браслета 5.0.
Пока нет ни пульса в реальном времени, ни синхронизированной истории в этой сессии.
Калибровка
Возобновится утром
diff --git a/android/app/src/main/res/values-zh/strings.xml b/android/app/src/main/res/values-zh/strings.xml
index 75a9e8a04f..c695ba692b 100644
--- a/android/app/src/main/res/values-zh/strings.xml
+++ b/android/app/src/main/res/values-zh/strings.xml
@@ -207,7 +207,7 @@
重试
使用文件导入
抱歉,我们无法接管这枚戒指。
- 对 WHOOP 5.0 (MG) 的支持在 NOOP 中仍处于实验阶段。
+ WHOOP 5.0/MG 支持实时数据和手环历史。协议研究工具单独位于测试中心。
WHOOP 是 NOOP 首要且完全支持的核心设备。其他心率带只能提供基础的实时心率流。
更多
更多
@@ -1877,7 +1877,7 @@
你的手环已连接并正在保存数据。
重新连接以拉取最新内容。
手环未连接。点击以连接。
- 历史同步在 5.0 上属实验性。
+ 上次同步未从这条 5.0 手环获取到历史记录。
本次连接尚无实时心率或已同步的历史记录。
校准中
早晨恢复
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index 5ae979343a..25008a2301 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -325,7 +325,7 @@
Try again
Use file import
We could not take over this ring.
- WHOOP 5.0 / MG support is newer and still experimental in NOOP.
+ WHOOP 5.0 / MG supports live data and strap history. Protocol-research tools are available separately in Test Centre.
WHOOP is NOOP\'s primary, fully-supported band. Other heart-rate straps stream live heart rate and HRV, but not WHOOP\'s deeper sleep and recovery data.
More
moreGroupChevron
@@ -2094,7 +2094,7 @@
Your strap is connected and saving data.
Reconnect to pull the latest.
Strap not connected. Tap to connect.
- History sync is experimental on 5.0.
+ The last sync brought no history from this 5.0 strap.
No live heart rate or synced history yet this session.
Calibrating
Resumes in the morning