mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-06-14 22:55:12 +10:00
37 lines
1.2 KiB
Dart
37 lines
1.2 KiB
Dart
import '../connector/meshcore_protocol.dart';
|
|
import '../models/contact.dart';
|
|
import 'app_localizations.dart';
|
|
|
|
/// UI-level localization helpers for [Contact].
|
|
///
|
|
/// Kept out of the model layer so `Contact` does not depend on
|
|
/// `AppLocalizations`. Use these from widgets/screens; for logs and
|
|
/// non-UI export use `Contact.typeLabelRaw`.
|
|
extension ContactLocalization on Contact {
|
|
String typeLabel(AppLocalizations l10n) {
|
|
switch (type) {
|
|
case advTypeChat:
|
|
return l10n.contact_typeChat;
|
|
case advTypeRepeater:
|
|
return l10n.contact_typeRepeater;
|
|
case advTypeRoom:
|
|
return l10n.contact_typeRoom;
|
|
case advTypeSensor:
|
|
return l10n.contact_typeSensor;
|
|
default:
|
|
return l10n.contact_typeUnknown;
|
|
}
|
|
}
|
|
|
|
String pathLabel(AppLocalizations l10n) {
|
|
if (pathOverride != null) {
|
|
if (pathOverride! < 0) return l10n.chat_floodForced;
|
|
if (pathOverride == 0) return l10n.chat_directForced;
|
|
return l10n.chat_hopsForced(pathOverride!);
|
|
}
|
|
if (pathLength < 0) return l10n.channelPath_floodPath;
|
|
if (pathLength == 0) return l10n.chat_direct;
|
|
return l10n.chat_hopsCount(pathLength);
|
|
}
|
|
}
|