chore(#26): apply dart format to green CI format check

CI's `dart format --set-exit-if-changed .` step is repo-wide. My A/B/C
commit hand-wrote the .catchError blocks without running the formatter,
and 2 settings views carried pre-existing format drift from #28. dart
format reflows all three (whitespace only, identical logic):

- lib/connector/meshcore_connector.dart   (this PR's blocks)
- lib/screens/settings/app_settings_view.dart      (pre-existing, #28)
- lib/screens/settings/message_settings_view.dart  (pre-existing, #28)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
pull/66/head
Strycher 1 month ago
parent afc2f7ba3d
commit 7027612768

@ -4687,46 +4687,48 @@ class MeshCoreConnector extends ChangeNotifier {
if (settings.notificationsEnabled && settings.notifyOnNewMessage) {
final msg = message; // capture for closure
final c = contact; // capture contact reference
unawaited(() async {
final translationResult = await translateContactMessage(
msg.senderKeyHex,
msg,
);
if (c?.type == advTypeChat) {
final resolvedText =
(translationResult != null &&
translationResult.status ==
MessageTranslationStatus.completed &&
translationResult.translatedText.trim().isNotEmpty)
? translationResult.translatedText.trim()
: msg.text.trim();
await _notificationService.showMessageNotification(
contactName: c?.name ?? 'Unknown',
message: resolvedText,
contactId: msg.senderKeyHex,
badgeCount: getTotalUnreadCount(),
unawaited(
() async {
final translationResult = await translateContactMessage(
msg.senderKeyHex,
msg,
);
} else if (c?.type == advTypeRoom) {
final resolvedText =
(translationResult != null &&
translationResult.status ==
MessageTranslationStatus.completed &&
translationResult.translatedText.trim().isNotEmpty)
? translationResult.translatedText.trim()
: msg.text.trim();
await _notificationService.showMessageNotification(
contactName: c?.name ?? 'Unknown Room',
message: resolvedText,
contactId: msg.senderKeyHex,
badgeCount: getTotalUnreadCount(),
if (c?.type == advTypeChat) {
final resolvedText =
(translationResult != null &&
translationResult.status ==
MessageTranslationStatus.completed &&
translationResult.translatedText.trim().isNotEmpty)
? translationResult.translatedText.trim()
: msg.text.trim();
await _notificationService.showMessageNotification(
contactName: c?.name ?? 'Unknown',
message: resolvedText,
contactId: msg.senderKeyHex,
badgeCount: getTotalUnreadCount(),
);
} else if (c?.type == advTypeRoom) {
final resolvedText =
(translationResult != null &&
translationResult.status ==
MessageTranslationStatus.completed &&
translationResult.translatedText.trim().isNotEmpty)
? translationResult.translatedText.trim()
: msg.text.trim();
await _notificationService.showMessageNotification(
contactName: c?.name ?? 'Unknown Room',
message: resolvedText,
contactId: msg.senderKeyHex,
badgeCount: getTotalUnreadCount(),
);
}
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to translate/notify incoming message: $e',
tag: 'Notification',
);
}
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to translate/notify incoming message: $e',
tag: 'Notification',
);
}));
}),
);
}
}
_handleQueuedMessageReceived();
@ -5021,20 +5023,22 @@ class MeshCoreConnector extends ChangeNotifier {
translationResult.translatedText.trim().isNotEmpty)
? translationResult.translatedText.trim()
: message.text.trim();
unawaited(() async {
await _notificationService.showChannelMessageNotification(
channelName: label,
senderName: message.senderName,
message: resolvedText,
channelIndex: message.channelIndex,
badgeCount: getTotalUnreadCount(),
);
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to notify channel message: $e',
tag: 'Notification',
);
}));
unawaited(
() async {
await _notificationService.showChannelMessageNotification(
channelName: label,
senderName: message.senderName,
message: resolvedText,
channelIndex: message.channelIndex,
badgeCount: getTotalUnreadCount(),
);
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to notify channel message: $e',
tag: 'Notification',
);
}),
);
}
void _handleIncomingChannelMessage(Uint8List frame) async {
@ -5065,18 +5069,23 @@ class MeshCoreConnector extends ChangeNotifier {
notifyListeners();
if (isNew && !message.isOutgoing) {
final msg = message; // capture for closure
unawaited(() async {
final translationResult = await translateChannelMessage(
msg.channelIndex!,
msg,
);
_maybeNotifyChannelMessage(msg, translationResult: translationResult);
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to translate/notify channel message: $e',
tag: 'Notification',
);
}));
unawaited(
() async {
final translationResult = await translateChannelMessage(
msg.channelIndex!,
msg,
);
_maybeNotifyChannelMessage(
msg,
translationResult: translationResult,
);
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to translate/notify channel message: $e',
tag: 'Notification',
);
}),
);
}
_handleQueuedMessageReceived();
} else if (_isSyncingQueuedMessages) {
@ -5156,25 +5165,27 @@ class MeshCoreConnector extends ChangeNotifier {
notifyListeners();
if (isNew) {
// Run translation + notification asynchronously to avoid blocking
unawaited(() async {
final translationResult = await translateChannelMessage(
channel.index,
message,
);
final label = channel.name.isEmpty
? 'Channel ${channel.index}'
: channel.name;
_maybeNotifyChannelMessage(
message,
channelName: label,
translationResult: translationResult,
);
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to translate/notify channel message (log): $e',
tag: 'Notification',
);
}));
unawaited(
() async {
final translationResult = await translateChannelMessage(
channel.index,
message,
);
final label = channel.name.isEmpty
? 'Channel ${channel.index}'
: channel.name;
_maybeNotifyChannelMessage(
message,
channelName: label,
translationResult: translationResult,
);
}().catchError((Object e) {
_appDebugLogService?.error(
'Failed to translate/notify channel message (log): $e',
tag: 'Notification',
);
}),
);
}
return;
} catch (e) {

@ -107,7 +107,10 @@ class AppSettingsView extends StatelessWidget {
),
value: settingsService.settings.enableMessageTracing,
onChanged: (value) {
persistSetting(context, () => settingsService.setEnableMessageTracing(value));
persistSetting(
context,
() => settingsService.setEnableMessageTracing(value),
);
},
),
],
@ -136,7 +139,10 @@ class AppSettingsView extends StatelessWidget {
subtitle: Text(context.l10n.appSettings_showRepeatersSubtitle),
value: settingsService.settings.mapShowRepeaters,
onChanged: (value) {
persistSetting(context, () => settingsService.setMapShowRepeaters(value));
persistSetting(
context,
() => settingsService.setMapShowRepeaters(value),
);
},
),
const Divider(height: 1),
@ -146,7 +152,10 @@ class AppSettingsView extends StatelessWidget {
subtitle: Text(context.l10n.appSettings_showChatNodesSubtitle),
value: settingsService.settings.mapShowChatNodes,
onChanged: (value) {
persistSetting(context, () => settingsService.setMapShowChatNodes(value));
persistSetting(
context,
() => settingsService.setMapShowChatNodes(value),
);
},
),
const Divider(height: 1),
@ -156,7 +165,10 @@ class AppSettingsView extends StatelessWidget {
subtitle: Text(context.l10n.appSettings_showOtherNodesSubtitle),
value: settingsService.settings.mapShowOtherNodes,
onChanged: (value) {
persistSetting(context, () => settingsService.setMapShowOtherNodes(value));
persistSetting(
context,
() => settingsService.setMapShowOtherNodes(value),
);
},
),
const Divider(height: 1),
@ -233,7 +245,10 @@ class AppSettingsView extends StatelessWidget {
title: Text(context.l10n.translation_enableTitle),
subtitle: Text(context.l10n.translation_enableSubtitle),
value: settings.translationEnabled,
onChanged: (value) => persistSetting(context, () => settingsService.setTranslationEnabled(value)),
onChanged: (value) => persistSetting(
context,
() => settingsService.setTranslationEnabled(value),
),
),
const Divider(height: 1),
SwitchListTile(
@ -251,7 +266,11 @@ class AppSettingsView extends StatelessWidget {
),
value: settings.autoTranslateIncomingMessages,
onChanged: translationEnabled
? (value) => persistSetting(context, () => settingsService.setAutoTranslateIncomingMessages(value))
? (value) => persistSetting(
context,
() =>
settingsService.setAutoTranslateIncomingMessages(value),
)
: null,
),
const Divider(height: 1),
@ -270,7 +289,10 @@ class AppSettingsView extends StatelessWidget {
),
value: settings.composerTranslationEnabled,
onChanged: translationEnabled
? (value) => persistSetting(context, () => settingsService.setComposerTranslationEnabled(value))
? (value) => persistSetting(
context,
() => settingsService.setComposerTranslationEnabled(value),
)
: null,
),
const Divider(height: 1),
@ -307,7 +329,12 @@ class AppSettingsView extends StatelessWidget {
onChanged: settings.translationDownloadedModels.isEmpty
? null
: (value) {
persistSetting(context, () => settingsService.setTranslationSelectedModelId(value));
persistSetting(
context,
() => settingsService.setTranslationSelectedModelId(
value,
),
);
},
),
),
@ -351,7 +378,10 @@ class AppSettingsView extends StatelessWidget {
children: [
_TranslationUrlField(
initialValue: settings.translationModelSourceUrl ?? '',
onChanged: (value) => persistSetting(context, () => settingsService.setTranslationModelSourceUrl(value)),
onChanged: (value) => persistSetting(
context,
() => settingsService.setTranslationModelSourceUrl(value),
),
onDownload: translationService.isBusy
? null
: (url) => _downloadTranslationModel(
@ -545,7 +575,10 @@ class AppSettingsView extends StatelessWidget {
groupValue: settingsService.settings.themeMode,
onChanged: (value) {
if (value != null) {
persistSetting(context, () => settingsService.setThemeMode(value));
persistSetting(
context,
() => settingsService.setThemeMode(value),
);
Navigator.pop(context);
}
},
@ -600,7 +633,10 @@ class AppSettingsView extends StatelessWidget {
groupValue: settingsService.settings.clockFormat,
onChanged: (value) {
if (value != null) {
persistSetting(context, () => settingsService.setClockFormat(value));
persistSetting(
context,
() => settingsService.setClockFormat(value),
);
Navigator.pop(context);
}
},
@ -698,7 +734,10 @@ class AppSettingsView extends StatelessWidget {
child: RadioGroup<String?>(
groupValue: settingsService.settings.languageOverride,
onChanged: (value) {
persistSetting(context, () => settingsService.setLanguageOverride(value));
persistSetting(
context,
() => settingsService.setLanguageOverride(value),
);
Navigator.pop(context);
},
child: Column(
@ -806,7 +845,10 @@ class AppSettingsView extends StatelessWidget {
groupValue: settingsService.settings.mapTimeFilterHours,
onChanged: (value) {
if (value != null) {
persistSetting(context, () => settingsService.setMapTimeFilterHours(value));
persistSetting(
context,
() => settingsService.setMapTimeFilterHours(value),
);
Navigator.pop(context);
}
},
@ -860,7 +902,10 @@ class AppSettingsView extends StatelessWidget {
groupValue: settingsService.settings.unitSystem,
onChanged: (value) {
if (value != null) {
persistSetting(context, () => settingsService.setUnitSystem(value));
persistSetting(
context,
() => settingsService.setUnitSystem(value),
);
Navigator.pop(context);
}
},
@ -898,7 +943,10 @@ class AppSettingsView extends StatelessWidget {
currentLanguageCode:
settingsService.settings.translationTargetLanguageCode,
onLanguageSelected: (value) {
persistSetting(context, () => settingsService.setTranslationTargetLanguageCode(value));
persistSetting(
context,
() => settingsService.setTranslationTargetLanguageCode(value),
);
Navigator.pop(context);
},
),
@ -1045,7 +1093,10 @@ class AppSettingsView extends StatelessWidget {
}).toList(),
onChanged: (value) {
if (value != null) {
persistSetting(context, () => settingsService.setSelectedCyr2LatProfile(value));
persistSetting(
context,
() => settingsService.setSelectedCyr2LatProfile(value),
);
}
},
),

@ -124,7 +124,10 @@ class MessageSettingsView extends StatelessWidget {
value: settingsService.settings.notifyOnNewMessage,
onChanged: settingsService.settings.notificationsEnabled
? (value) {
persistSetting(context, () => settingsService.setNotifyOnNewMessage(value));
persistSetting(
context,
() => settingsService.setNotifyOnNewMessage(value),
);
}
: null,
),
@ -155,7 +158,10 @@ class MessageSettingsView extends StatelessWidget {
value: settingsService.settings.notifyOnNewChannelMessage,
onChanged: settingsService.settings.notificationsEnabled
? (value) {
persistSetting(context, () => settingsService.setNotifyOnNewChannelMessage(value));
persistSetting(
context,
() => settingsService.setNotifyOnNewChannelMessage(value),
);
}
: null,
),
@ -186,7 +192,10 @@ class MessageSettingsView extends StatelessWidget {
value: settingsService.settings.notifyOnNewAdvert,
onChanged: settingsService.settings.notificationsEnabled
? (value) {
persistSetting(context, () => settingsService.setNotifyOnNewAdvert(value));
persistSetting(
context,
() => settingsService.setNotifyOnNewAdvert(value),
);
}
: null,
),
@ -218,7 +227,10 @@ class MessageSettingsView extends StatelessWidget {
),
value: settingsService.settings.clearPathOnMaxRetry,
onChanged: (value) {
persistSetting(context, () => settingsService.setClearPathOnMaxRetry(value));
persistSetting(
context,
() => settingsService.setClearPathOnMaxRetry(value),
);
showDismissibleSnackBar(
context,
content: Text(
@ -236,7 +248,10 @@ class MessageSettingsView extends StatelessWidget {
title: Text(context.l10n.appSettings_jumpToOldestUnread),
subtitle: Text(context.l10n.appSettings_jumpToOldestUnreadSubtitle),
value: settingsService.settings.jumpToOldestUnread,
onChanged: (value) => persistSetting(context, () => settingsService.setJumpToOldestUnread(value)),
onChanged: (value) => persistSetting(
context,
() => settingsService.setJumpToOldestUnread(value),
),
),
const Divider(height: 1),
SwitchListTile(
@ -245,7 +260,10 @@ class MessageSettingsView extends StatelessWidget {
subtitle: Text(context.l10n.appSettings_autoRouteRotationSubtitle),
value: settingsService.settings.autoRouteRotationEnabled,
onChanged: (value) {
persistSetting(context, () => settingsService.setAutoRouteRotationEnabled(value));
persistSetting(
context,
() => settingsService.setAutoRouteRotationEnabled(value),
);
showDismissibleSnackBar(
context,
content: Text(

Loading…
Cancel
Save

Powered by TurnKey Linux.