From 945a11885398d795f18722f6af112705bbadb155 Mon Sep 17 00:00:00 2001 From: PacoX Date: Wed, 20 May 2026 08:50:17 +0200 Subject: [PATCH] expose mode 3 in UI --- lib/connector/meshcore_connector.dart | 2 +- lib/connector/meshcore_protocol.dart | 4 +- lib/l10n/app_en.arb | 4 + lib/l10n/app_localizations.dart | 24 +++++ lib/l10n/app_localizations_bg.dart | 12 +++ lib/l10n/app_localizations_de.dart | 12 +++ lib/l10n/app_localizations_en.dart | 12 +++ lib/l10n/app_localizations_es.dart | 12 +++ lib/l10n/app_localizations_fr.dart | 12 +++ lib/l10n/app_localizations_hu.dart | 12 +++ lib/l10n/app_localizations_it.dart | 12 +++ lib/l10n/app_localizations_ja.dart | 12 +++ lib/l10n/app_localizations_ko.dart | 12 +++ lib/l10n/app_localizations_nl.dart | 12 +++ lib/l10n/app_localizations_pl.dart | 12 +++ lib/l10n/app_localizations_pt.dart | 12 +++ lib/l10n/app_localizations_ru.dart | 12 +++ lib/l10n/app_localizations_sk.dart | 12 +++ lib/l10n/app_localizations_sl.dart | 12 +++ lib/l10n/app_localizations_sv.dart | 12 +++ lib/l10n/app_localizations_uk.dart | 12 +++ lib/l10n/app_localizations_zh.dart | 12 +++ lib/screens/settings_screen.dart | 3 +- untranslated.json | 121 +++++++++++++++++++++++++- 24 files changed, 369 insertions(+), 5 deletions(-) diff --git a/lib/connector/meshcore_connector.dart b/lib/connector/meshcore_connector.dart index 08cdd121..6f36c854 100644 --- a/lib/connector/meshcore_connector.dart +++ b/lib/connector/meshcore_connector.dart @@ -2588,7 +2588,7 @@ class MeshCoreConnector extends ChangeNotifier { Future setPathHashMode(int mode) async { if (!isConnected) return; - final clampedMode = mode.clamp(0, 2).toInt(); + final clampedMode = mode.clamp(0, 3).toInt(); await sendFrame(buildSetPathHashModeFrame(clampedMode)); final nextWidth = clampedMode + 1; if (_pathHashByteWidth != nextWidth) { diff --git a/lib/connector/meshcore_protocol.dart b/lib/connector/meshcore_protocol.dart index f55e9687..c271e31e 100644 --- a/lib/connector/meshcore_protocol.dart +++ b/lib/connector/meshcore_protocol.dart @@ -566,9 +566,9 @@ Uint8List buildGetStatsFrame(int statsType) { return Uint8List.fromList([cmdGetStats, statsType & 0xFF]); } -/// Path hash width on air: [61][0][mode], mode 0..2 → (mode+1) bytes per hop hash. +/// Path hash width on air: [61][0][mode], mode 0..3 → (mode+1) bytes per hop hash. Uint8List buildSetPathHashModeFrame(int mode) { - final m = mode.clamp(0, 2); + final m = mode.clamp(0, 3).toInt(); return Uint8List.fromList([cmdSetPathHashMode, 0, m]); } diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index c030fa41..e9a56cfa 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -262,6 +262,10 @@ "appSettings_languageBg": "Български", "appSettings_languageRu": "Русский", "appSettings_languageUk": "Українська", + "repeater_pathHashModeOption0": "0 - 1 byte", + "repeater_pathHashModeOption1": "1 - 2 bytes", + "repeater_pathHashModeOption2": "2 - 3 bytes", + "repeater_pathHashModeOption3": "3 - 4 bytes", "appSettings_enableMessageTracing": "Enable Message Tracing", "appSettings_enableMessageTracingSubtitle": "Show detailed routing and timing metadata for messages", "appSettings_notifications": "Notifications", diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 93fb9181..c4c69237 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -1324,6 +1324,30 @@ abstract class AppLocalizations { /// **'Українська'** String get appSettings_languageUk; + /// No description provided for @repeater_pathHashModeOption0. + /// + /// In en, this message translates to: + /// **'0 - 1 byte'** + String get repeater_pathHashModeOption0; + + /// No description provided for @repeater_pathHashModeOption1. + /// + /// In en, this message translates to: + /// **'1 - 2 bytes'** + String get repeater_pathHashModeOption1; + + /// No description provided for @repeater_pathHashModeOption2. + /// + /// In en, this message translates to: + /// **'2 - 3 bytes'** + String get repeater_pathHashModeOption2; + + /// No description provided for @repeater_pathHashModeOption3. + /// + /// In en, this message translates to: + /// **'3 - 4 bytes'** + String get repeater_pathHashModeOption3; + /// No description provided for @appSettings_enableMessageTracing. /// /// In en, this message translates to: diff --git a/lib/l10n/app_localizations_bg.dart b/lib/l10n/app_localizations_bg.dart index 544fdbe8..aeb059f3 100644 --- a/lib/l10n/app_localizations_bg.dart +++ b/lib/l10n/app_localizations_bg.dart @@ -666,6 +666,18 @@ class AppLocalizationsBg extends AppLocalizations { @override String get appSettings_languageUk => 'Украински'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Разрешаване на проследяване на съобщения'; diff --git a/lib/l10n/app_localizations_de.dart b/lib/l10n/app_localizations_de.dart index a504e5ba..88ad3dde 100644 --- a/lib/l10n/app_localizations_de.dart +++ b/lib/l10n/app_localizations_de.dart @@ -661,6 +661,18 @@ class AppLocalizationsDe extends AppLocalizations { @override String get appSettings_languageUk => 'Ukrainisch'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Nachrichtenverfolgung aktivieren'; diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 7cf14fe3..4338f35a 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -651,6 +651,18 @@ class AppLocalizationsEn extends AppLocalizations { @override String get appSettings_languageUk => 'Українська'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Enable Message Tracing'; diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart index bbfed65c..6fd8f0f5 100644 --- a/lib/l10n/app_localizations_es.dart +++ b/lib/l10n/app_localizations_es.dart @@ -662,6 +662,18 @@ class AppLocalizationsEs extends AppLocalizations { @override String get appSettings_languageUk => 'Ucraniano'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Habilitar seguimiento de mensajes'; diff --git a/lib/l10n/app_localizations_fr.dart b/lib/l10n/app_localizations_fr.dart index e1223cf3..54c80d7e 100644 --- a/lib/l10n/app_localizations_fr.dart +++ b/lib/l10n/app_localizations_fr.dart @@ -666,6 +666,18 @@ class AppLocalizationsFr extends AppLocalizations { @override String get appSettings_languageUk => 'Ukrainien'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Activer le traçage des messages'; diff --git a/lib/l10n/app_localizations_hu.dart b/lib/l10n/app_localizations_hu.dart index b7b5cf28..5709f65e 100644 --- a/lib/l10n/app_localizations_hu.dart +++ b/lib/l10n/app_localizations_hu.dart @@ -666,6 +666,18 @@ class AppLocalizationsHu extends AppLocalizations { @override String get appSettings_languageUk => 'Украинский'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Engedje meg a üzenetek nyomon követését'; diff --git a/lib/l10n/app_localizations_it.dart b/lib/l10n/app_localizations_it.dart index 4bc50054..766a5a9c 100644 --- a/lib/l10n/app_localizations_it.dart +++ b/lib/l10n/app_localizations_it.dart @@ -664,6 +664,18 @@ class AppLocalizationsIt extends AppLocalizations { @override String get appSettings_languageUk => 'Ucraino'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Abilita tracciamento messaggi'; diff --git a/lib/l10n/app_localizations_ja.dart b/lib/l10n/app_localizations_ja.dart index 60bf4ed0..ef66185f 100644 --- a/lib/l10n/app_localizations_ja.dart +++ b/lib/l10n/app_localizations_ja.dart @@ -637,6 +637,18 @@ class AppLocalizationsJa extends AppLocalizations { @override String get appSettings_languageUk => 'ウクライナ語'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'メッセージ追跡機能を有効にする'; diff --git a/lib/l10n/app_localizations_ko.dart b/lib/l10n/app_localizations_ko.dart index 954b1470..e8ffd898 100644 --- a/lib/l10n/app_localizations_ko.dart +++ b/lib/l10n/app_localizations_ko.dart @@ -637,6 +637,18 @@ class AppLocalizationsKo extends AppLocalizations { @override String get appSettings_languageUk => '우크라이나'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => '메시지 추적 기능 활성화'; diff --git a/lib/l10n/app_localizations_nl.dart b/lib/l10n/app_localizations_nl.dart index 76bd03b2..0996cff3 100644 --- a/lib/l10n/app_localizations_nl.dart +++ b/lib/l10n/app_localizations_nl.dart @@ -658,6 +658,18 @@ class AppLocalizationsNl extends AppLocalizations { @override String get appSettings_languageUk => 'Oekraïens'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Berichttracking inschakelen'; diff --git a/lib/l10n/app_localizations_pl.dart b/lib/l10n/app_localizations_pl.dart index 225d0aee..d0af0520 100644 --- a/lib/l10n/app_localizations_pl.dart +++ b/lib/l10n/app_localizations_pl.dart @@ -667,6 +667,18 @@ class AppLocalizationsPl extends AppLocalizations { @override String get appSettings_languageUk => 'Ukraińska'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Włącz śledzenie wiadomości'; diff --git a/lib/l10n/app_localizations_pt.dart b/lib/l10n/app_localizations_pt.dart index 9084607b..14287616 100644 --- a/lib/l10n/app_localizations_pt.dart +++ b/lib/l10n/app_localizations_pt.dart @@ -664,6 +664,18 @@ class AppLocalizationsPt extends AppLocalizations { @override String get appSettings_languageUk => 'Ucraniano'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Ativar rastreamento de mensagens'; diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index bf3f7453..3643e25e 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -664,6 +664,18 @@ class AppLocalizationsRu extends AppLocalizations { @override String get appSettings_languageUk => 'Українська'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Включить трассировку сообщений'; diff --git a/lib/l10n/app_localizations_sk.dart b/lib/l10n/app_localizations_sk.dart index 16cc82b3..34f31aff 100644 --- a/lib/l10n/app_localizations_sk.dart +++ b/lib/l10n/app_localizations_sk.dart @@ -658,6 +658,18 @@ class AppLocalizationsSk extends AppLocalizations { @override String get appSettings_languageUk => 'Ukrajinská'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Povoliť sledovanie správ'; diff --git a/lib/l10n/app_localizations_sl.dart b/lib/l10n/app_localizations_sl.dart index d39d11a5..c5668980 100644 --- a/lib/l10n/app_localizations_sl.dart +++ b/lib/l10n/app_localizations_sl.dart @@ -655,6 +655,18 @@ class AppLocalizationsSl extends AppLocalizations { @override String get appSettings_languageUk => 'Ukrajinsko'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Omogoči sledenje sporočilom'; diff --git a/lib/l10n/app_localizations_sv.dart b/lib/l10n/app_localizations_sv.dart index 2e20e2f7..071ebb8c 100644 --- a/lib/l10n/app_localizations_sv.dart +++ b/lib/l10n/app_localizations_sv.dart @@ -653,6 +653,18 @@ class AppLocalizationsSv extends AppLocalizations { @override String get appSettings_languageUk => 'Ukrainska'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Aktivera meddelandespårning'; diff --git a/lib/l10n/app_localizations_uk.dart b/lib/l10n/app_localizations_uk.dart index ee6a7d52..469dc67d 100644 --- a/lib/l10n/app_localizations_uk.dart +++ b/lib/l10n/app_localizations_uk.dart @@ -661,6 +661,18 @@ class AppLocalizationsUk extends AppLocalizations { @override String get appSettings_languageUk => 'Українська'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => 'Увімкнути відстеження повідомлень'; diff --git a/lib/l10n/app_localizations_zh.dart b/lib/l10n/app_localizations_zh.dart index 37ee452f..c399bb6c 100644 --- a/lib/l10n/app_localizations_zh.dart +++ b/lib/l10n/app_localizations_zh.dart @@ -628,6 +628,18 @@ class AppLocalizationsZh extends AppLocalizations { @override String get appSettings_languageUk => '乌克兰语'; + @override + String get repeater_pathHashModeOption0 => '0 - 1 byte'; + + @override + String get repeater_pathHashModeOption1 => '1 - 2 bytes'; + + @override + String get repeater_pathHashModeOption2 => '2 - 3 bytes'; + + @override + String get repeater_pathHashModeOption3 => '3 - 4 bytes'; + @override String get appSettings_enableMessageTracing => '启用消息追踪'; diff --git a/lib/screens/settings_screen.dart b/lib/screens/settings_screen.dart index 3dd8c812..04086126 100644 --- a/lib/screens/settings_screen.dart +++ b/lib/screens/settings_screen.dart @@ -563,7 +563,7 @@ class _SettingsScreenState extends State { void _editPathHashMode(BuildContext context, MeshCoreConnector connector) { final l10n = context.l10n; - var selectedMode = (connector.pathHashByteWidth - 1).clamp(0, 2).toInt(); + var selectedMode = (connector.pathHashByteWidth - 1).clamp(0, 3).toInt(); showDialog( context: context, @@ -584,6 +584,7 @@ class _SettingsScreenState extends State { DropdownMenuItem(value: 0, child: Text('0 - 1 byte')), DropdownMenuItem(value: 1, child: Text('1 - 2 bytes')), DropdownMenuItem(value: 2, child: Text('2 - 3 bytes')), + DropdownMenuItem(value: 3, child: Text('3 - 4 bytes')), ], onChanged: (value) { if (value == null) return; diff --git a/untranslated.json b/untranslated.json index 9e26dfee..dd0a7e15 100644 --- a/untranslated.json +++ b/untranslated.json @@ -1 +1,120 @@ -{} \ No newline at end of file +{ + "bg": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "de": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "es": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "fr": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "hu": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "it": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "ja": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "ko": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "nl": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "pl": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "pt": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "ru": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "sk": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "sl": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "sv": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "uk": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ], + + "zh": [ + "repeater_pathHashModeOption0", + "repeater_pathHashModeOption1", + "repeater_pathHashModeOption2", + "repeater_pathHashModeOption3" + ] +}