mirror of
https://github.com/zjs81/meshcore-open.git
synced 2026-07-26 05:26:37 +10:00
clean
This commit is contained in:
committed by
just-stuff-tm
parent
367e47bb1e
commit
524558c511
@@ -748,7 +748,10 @@ class MeshCoreConnector extends ChangeNotifier {
|
|||||||
try {
|
try {
|
||||||
await FlutterBluePlus.stopScan();
|
await FlutterBluePlus.stopScan();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint('[FBP] stopScan error in startScan (ignored): $e');
|
_appDebugLogService?.warn(
|
||||||
|
'stopScan error in startScan (ignored): $e',
|
||||||
|
tag: 'BLE Scan',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await _scanSubscription?.cancel();
|
await _scanSubscription?.cancel();
|
||||||
@@ -808,7 +811,10 @@ class MeshCoreConnector extends ChangeNotifier {
|
|||||||
try {
|
try {
|
||||||
await FlutterBluePlus.stopScan();
|
await FlutterBluePlus.stopScan();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint('[FBP] stopScan error (ignored): $e');
|
_appDebugLogService?.warn(
|
||||||
|
'stopScan error (ignored): $e',
|
||||||
|
tag: 'BLE Scan',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await _scanSubscription?.cancel();
|
await _scanSubscription?.cancel();
|
||||||
|
|||||||
+1
-1
@@ -1809,7 +1809,7 @@
|
|||||||
"usbScreenEmptyState": "Няма открити USB устройства. Включете едно и опитайте отново.",
|
"usbScreenEmptyState": "Няма открити USB устройства. Включете едно и опитайте отново.",
|
||||||
"usbErrorPermissionDenied": "Не беше разрешено достъпът през USB.",
|
"usbErrorPermissionDenied": "Не беше разрешено достъпът през USB.",
|
||||||
"usbErrorDeviceMissing": "Избраното USB устройство вече не е налично.",
|
"usbErrorDeviceMissing": "Избраното USB устройство вече не е налично.",
|
||||||
"usbErrorInvalidPort": "Изберете валитно USB устройство.",
|
"usbErrorInvalidPort": "Изберете валидно USB устройство.",
|
||||||
"usbErrorBusy": "Друг мол за свързване през USB вече е в процес на изпълнение.",
|
"usbErrorBusy": "Друг мол за свързване през USB вече е в процес на изпълнение.",
|
||||||
"usbErrorNotConnected": "Няма свързано USB устройство.",
|
"usbErrorNotConnected": "Няма свързано USB устройство.",
|
||||||
"usbErrorOpenFailed": "Не успях да отворя избраното USB устройство.",
|
"usbErrorOpenFailed": "Не успях да отворя избраното USB устройство.",
|
||||||
|
|||||||
+12
-12
@@ -190,20 +190,20 @@
|
|||||||
"appSettings_language": "Language",
|
"appSettings_language": "Language",
|
||||||
"appSettings_languageSystem": "System default",
|
"appSettings_languageSystem": "System default",
|
||||||
"appSettings_languageEn": "English",
|
"appSettings_languageEn": "English",
|
||||||
"appSettings_languageFr": "Français",
|
"appSettings_languageFr": "Français",
|
||||||
"appSettings_languageEs": "Español",
|
"appSettings_languageEs": "Español",
|
||||||
"appSettings_languageDe": "Deutsch",
|
"appSettings_languageDe": "Deutsch",
|
||||||
"appSettings_languagePl": "Polski",
|
"appSettings_languagePl": "Polski",
|
||||||
"appSettings_languageSl": "SlovenÅ¡Äina",
|
"appSettings_languageSl": "Slovenščina",
|
||||||
"appSettings_languagePt": "Português",
|
"appSettings_languagePt": "Português",
|
||||||
"appSettings_languageIt": "Italiano",
|
"appSettings_languageIt": "Italiano",
|
||||||
"appSettings_languageZh": "䏿–‡",
|
"appSettings_languageZh": "中文",
|
||||||
"appSettings_languageSv": "Svenska",
|
"appSettings_languageSv": "Svenska",
|
||||||
"appSettings_languageNl": "Nederlands",
|
"appSettings_languageNl": "Nederlands",
|
||||||
"appSettings_languageSk": "SlovenÄina",
|
"appSettings_languageSk": "Slovenčina",
|
||||||
"appSettings_languageBg": "БългарÑки",
|
"appSettings_languageBg": "Български",
|
||||||
"appSettings_languageRu": "РуÑÑкий",
|
"appSettings_languageRu": "Русский",
|
||||||
"appSettings_languageUk": "УкраїнÑька",
|
"appSettings_languageUk": "Українська",
|
||||||
"appSettings_enableMessageTracing": "Enable Message Tracing",
|
"appSettings_enableMessageTracing": "Enable Message Tracing",
|
||||||
"appSettings_enableMessageTracingSubtitle": "Show detailed routing and timing metadata for messages",
|
"appSettings_enableMessageTracingSubtitle": "Show detailed routing and timing metadata for messages",
|
||||||
"appSettings_notifications": "Notifications",
|
"appSettings_notifications": "Notifications",
|
||||||
@@ -1351,7 +1351,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"telemetry_temperatureValue": "{celsius}°C / {fahrenheit}°F",
|
"telemetry_temperatureValue": "{celsius}°C / {fahrenheit}°F",
|
||||||
"@telemetry_temperatureValue": {
|
"@telemetry_temperatureValue": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"celsius": {
|
"celsius": {
|
||||||
@@ -1401,7 +1401,7 @@
|
|||||||
"channelPath_repeatsLabel": "Repeats",
|
"channelPath_repeatsLabel": "Repeats",
|
||||||
"channelPath_pathLabel": "Path {index}",
|
"channelPath_pathLabel": "Path {index}",
|
||||||
"channelPath_observedLabel": "Observed",
|
"channelPath_observedLabel": "Observed",
|
||||||
"channelPath_observedPathTitle": "Observed path {index} • {hops}",
|
"channelPath_observedPathTitle": "Observed path {index} • {hops}",
|
||||||
"@channelPath_observedPathTitle": {
|
"@channelPath_observedPathTitle": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"index": {
|
"index": {
|
||||||
@@ -1476,7 +1476,7 @@
|
|||||||
},
|
},
|
||||||
"channelPath_pathLabelTitle": "Path",
|
"channelPath_pathLabelTitle": "Path",
|
||||||
"channelPath_observedPathHeader": "Observed Path",
|
"channelPath_observedPathHeader": "Observed Path",
|
||||||
"channelPath_selectedPathLabel": "{label} • {prefixes}",
|
"channelPath_selectedPathLabel": "{label} • {prefixes}",
|
||||||
"@channelPath_selectedPathLabel": {
|
"@channelPath_selectedPathLabel": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"label": {
|
"label": {
|
||||||
|
|||||||
@@ -1015,13 +1015,13 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @appSettings_languageFr.
|
/// No description provided for @appSettings_languageFr.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Français'**
|
/// **'Français'**
|
||||||
String get appSettings_languageFr;
|
String get appSettings_languageFr;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languageEs.
|
/// No description provided for @appSettings_languageEs.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Español'**
|
/// **'Español'**
|
||||||
String get appSettings_languageEs;
|
String get appSettings_languageEs;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languageDe.
|
/// No description provided for @appSettings_languageDe.
|
||||||
@@ -1039,13 +1039,13 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @appSettings_languageSl.
|
/// No description provided for @appSettings_languageSl.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'SlovenÅ¡Äina'**
|
/// **'Slovenščina'**
|
||||||
String get appSettings_languageSl;
|
String get appSettings_languageSl;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languagePt.
|
/// No description provided for @appSettings_languagePt.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Português'**
|
/// **'Português'**
|
||||||
String get appSettings_languagePt;
|
String get appSettings_languagePt;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languageIt.
|
/// No description provided for @appSettings_languageIt.
|
||||||
@@ -1057,7 +1057,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @appSettings_languageZh.
|
/// No description provided for @appSettings_languageZh.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'䏿–‡'**
|
/// **'中文'**
|
||||||
String get appSettings_languageZh;
|
String get appSettings_languageZh;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languageSv.
|
/// No description provided for @appSettings_languageSv.
|
||||||
@@ -1075,25 +1075,25 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @appSettings_languageSk.
|
/// No description provided for @appSettings_languageSk.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'SlovenÄina'**
|
/// **'Slovenčina'**
|
||||||
String get appSettings_languageSk;
|
String get appSettings_languageSk;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languageBg.
|
/// No description provided for @appSettings_languageBg.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'БългарÑки'**
|
/// **'Български'**
|
||||||
String get appSettings_languageBg;
|
String get appSettings_languageBg;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languageRu.
|
/// No description provided for @appSettings_languageRu.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'РуÑÑкий'**
|
/// **'Русский'**
|
||||||
String get appSettings_languageRu;
|
String get appSettings_languageRu;
|
||||||
|
|
||||||
/// No description provided for @appSettings_languageUk.
|
/// No description provided for @appSettings_languageUk.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'УкраїнÑька'**
|
/// **'Українська'**
|
||||||
String get appSettings_languageUk;
|
String get appSettings_languageUk;
|
||||||
|
|
||||||
/// No description provided for @appSettings_enableMessageTracing.
|
/// No description provided for @appSettings_enableMessageTracing.
|
||||||
@@ -4409,7 +4409,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @telemetry_temperatureValue.
|
/// No description provided for @telemetry_temperatureValue.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'{celsius}°C / {fahrenheit}°F'**
|
/// **'{celsius}°C / {fahrenheit}°F'**
|
||||||
String telemetry_temperatureValue(String celsius, String fahrenheit);
|
String telemetry_temperatureValue(String celsius, String fahrenheit);
|
||||||
|
|
||||||
/// No description provided for @neighbors_receivedData.
|
/// No description provided for @neighbors_receivedData.
|
||||||
@@ -4523,7 +4523,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @channelPath_observedPathTitle.
|
/// No description provided for @channelPath_observedPathTitle.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'Observed path {index} • {hops}'**
|
/// **'Observed path {index} • {hops}'**
|
||||||
String channelPath_observedPathTitle(int index, String hops);
|
String channelPath_observedPathTitle(int index, String hops);
|
||||||
|
|
||||||
/// No description provided for @channelPath_noLocationData.
|
/// No description provided for @channelPath_noLocationData.
|
||||||
@@ -4607,7 +4607,7 @@ abstract class AppLocalizations {
|
|||||||
/// No description provided for @channelPath_selectedPathLabel.
|
/// No description provided for @channelPath_selectedPathLabel.
|
||||||
///
|
///
|
||||||
/// In en, this message translates to:
|
/// In en, this message translates to:
|
||||||
/// **'{label} • {prefixes}'**
|
/// **'{label} • {prefixes}'**
|
||||||
String channelPath_selectedPathLabel(String label, String prefixes);
|
String channelPath_selectedPathLabel(String label, String prefixes);
|
||||||
|
|
||||||
/// No description provided for @channelPath_noHopDetailsAvailable.
|
/// No description provided for @channelPath_noHopDetailsAvailable.
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ class AppLocalizationsBg extends AppLocalizations {
|
|||||||
'Избраното USB устройство вече не е налично.';
|
'Избраното USB устройство вече не е налично.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get usbErrorInvalidPort => 'Изберете валитно USB устройство.';
|
String get usbErrorInvalidPort => 'Изберете валидно USB устройство.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get usbErrorBusy =>
|
String get usbErrorBusy =>
|
||||||
|
|||||||
@@ -489,10 +489,10 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get appSettings_languageEn => 'English';
|
String get appSettings_languageEn => 'English';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageFr => 'Français';
|
String get appSettings_languageFr => 'Français';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageEs => 'Español';
|
String get appSettings_languageEs => 'Español';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageDe => 'Deutsch';
|
String get appSettings_languageDe => 'Deutsch';
|
||||||
@@ -501,16 +501,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get appSettings_languagePl => 'Polski';
|
String get appSettings_languagePl => 'Polski';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageSl => 'SlovenÅ¡Äina';
|
String get appSettings_languageSl => 'Slovenščina';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languagePt => 'Português';
|
String get appSettings_languagePt => 'Português';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageIt => 'Italiano';
|
String get appSettings_languageIt => 'Italiano';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageZh => '䏿–‡';
|
String get appSettings_languageZh => '中文';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageSv => 'Svenska';
|
String get appSettings_languageSv => 'Svenska';
|
||||||
@@ -519,16 +519,16 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
String get appSettings_languageNl => 'Nederlands';
|
String get appSettings_languageNl => 'Nederlands';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageSk => 'SlovenÄina';
|
String get appSettings_languageSk => 'Slovenčina';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageBg => 'БългарÑки';
|
String get appSettings_languageBg => 'Български';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageRu => 'РуÑÑкий';
|
String get appSettings_languageRu => 'Русский';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_languageUk => 'УкраїнÑька';
|
String get appSettings_languageUk => 'Українська';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get appSettings_enableMessageTracing => 'Enable Message Tracing';
|
String get appSettings_enableMessageTracing => 'Enable Message Tracing';
|
||||||
@@ -2465,7 +2465,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String telemetry_temperatureValue(String celsius, String fahrenheit) {
|
String telemetry_temperatureValue(String celsius, String fahrenheit) {
|
||||||
return '$celsius°C / $fahrenheit°F';
|
return '$celsius°C / $fahrenheit°F';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -2533,7 +2533,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String channelPath_observedPathTitle(int index, String hops) {
|
String channelPath_observedPathTitle(int index, String hops) {
|
||||||
return 'Observed path $index • $hops';
|
return 'Observed path $index • $hops';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -2588,7 +2588,7 @@ class AppLocalizationsEn extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String channelPath_selectedPathLabel(String label, String prefixes) {
|
String channelPath_selectedPathLabel(String label, String prefixes) {
|
||||||
return '$label • $prefixes';
|
return '$label • $prefixes';
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ class AppLocalizationsSv extends AppLocalizations {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
String get usbScreenNote =>
|
String get usbScreenNote =>
|
||||||
'USB-seriell kommunikation är aktiv på stöderdade Android-enheter och skrivbordsplattformar.';
|
'USB-seriell kommunikation är aktiv på stödda Android-enheter och skrivbordsplattformar.';
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get usbScreenEmptyState =>
|
String get usbScreenEmptyState =>
|
||||||
|
|||||||
+1
-1
@@ -1802,7 +1802,7 @@
|
|||||||
"contacts_searchFavorites": "Sök {number}{str} Favoriter...",
|
"contacts_searchFavorites": "Sök {number}{str} Favoriter...",
|
||||||
"contacts_searchUsers": "Sök {number}{str} användare...",
|
"contacts_searchUsers": "Sök {number}{str} användare...",
|
||||||
"contacts_searchRoomServers": "Sök {number}{str} Room-servrar...",
|
"contacts_searchRoomServers": "Sök {number}{str} Room-servrar...",
|
||||||
"usbScreenNote": "USB-seriell kommunikation är aktiv på stöderdade Android-enheter och skrivbordsplattformar.",
|
"usbScreenNote": "USB-seriell kommunikation är aktiv på stödda Android-enheter och skrivbordsplattformar.",
|
||||||
"usbScreenStatus": "Välj en USB-enhet",
|
"usbScreenStatus": "Välj en USB-enhet",
|
||||||
"usbScreenSubtitle": "Välj en detekterad seriell enhet och anslut direkt till din MeshCore-nod.",
|
"usbScreenSubtitle": "Välj en detekterad seriell enhet och anslut direkt till din MeshCore-nod.",
|
||||||
"usbScreenTitle": "Anslut via USB",
|
"usbScreenTitle": "Anslut via USB",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:provider/provider.dart';
|
|||||||
|
|
||||||
import '../connector/meshcore_connector.dart';
|
import '../connector/meshcore_connector.dart';
|
||||||
import '../l10n/l10n.dart';
|
import '../l10n/l10n.dart';
|
||||||
|
import '../utils/app_logger.dart';
|
||||||
import '../widgets/adaptive_app_bar_title.dart';
|
import '../widgets/adaptive_app_bar_title.dart';
|
||||||
import '../widgets/device_tile.dart';
|
import '../widgets/device_tile.dart';
|
||||||
import 'contacts_screen.dart';
|
import 'contacts_screen.dart';
|
||||||
@@ -60,7 +61,7 @@ class _ScannerScreenState extends State<ScannerScreen> {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onError: (Object e) {
|
onError: (Object e) {
|
||||||
debugPrint("Scanner adapterState stream error: $e");
|
appLogger.warn('Adapter state stream error: $e', tag: 'ScannerScreen');
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -86,7 +87,7 @@ class _ScannerScreenState extends State<ScannerScreen> {
|
|||||||
? IconButton(
|
? IconButton(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
debugPrint('ScannerScreen: back button pressed');
|
appLogger.info('Back button pressed', tag: 'ScannerScreen');
|
||||||
Navigator.of(context).maybePop();
|
Navigator.of(context).maybePop();
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@@ -131,8 +132,9 @@ class _ScannerScreenState extends State<ScannerScreen> {
|
|||||||
if (usbSupported)
|
if (usbSupported)
|
||||||
FloatingActionButton.extended(
|
FloatingActionButton.extended(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
debugPrint(
|
appLogger.info(
|
||||||
'ScannerScreen: USB selected, opening UsbScreen',
|
'USB selected, opening UsbScreen',
|
||||||
|
tag: 'ScannerScreen',
|
||||||
);
|
);
|
||||||
Navigator.of(context).push(
|
Navigator.of(context).push(
|
||||||
MaterialPageRoute(builder: (_) => const UsbScreen()),
|
MaterialPageRoute(builder: (_) => const UsbScreen()),
|
||||||
@@ -153,8 +155,9 @@ class _ScannerScreenState extends State<ScannerScreen> {
|
|||||||
} else {
|
} else {
|
||||||
unawaited(
|
unawaited(
|
||||||
connector.startScan().catchError((e) {
|
connector.startScan().catchError((e) {
|
||||||
debugPrint(
|
appLogger.warn(
|
||||||
"Scanner screen startScan error: $e",
|
'startScan error: $e',
|
||||||
|
tag: 'ScannerScreen',
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|||||||
+21
-14
@@ -8,6 +8,7 @@ import 'package:provider/provider.dart';
|
|||||||
import '../connector/meshcore_connector.dart';
|
import '../connector/meshcore_connector.dart';
|
||||||
import '../connector/meshcore_connector_usb.dart';
|
import '../connector/meshcore_connector_usb.dart';
|
||||||
import '../l10n/l10n.dart';
|
import '../l10n/l10n.dart';
|
||||||
|
import '../utils/app_logger.dart';
|
||||||
import '../utils/platform_info.dart';
|
import '../utils/platform_info.dart';
|
||||||
import '../utils/usb_port_labels.dart';
|
import '../utils/usb_port_labels.dart';
|
||||||
import 'contacts_screen.dart';
|
import 'contacts_screen.dart';
|
||||||
@@ -109,7 +110,7 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: const Icon(Icons.arrow_back),
|
icon: const Icon(Icons.arrow_back),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
debugPrint('UsbScreen: back button pressed');
|
appLogger.info('Back button pressed', tag: 'UsbScreen');
|
||||||
Navigator.of(context).maybePop();
|
Navigator.of(context).maybePop();
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -124,8 +125,9 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
PlatformInfo.isIOS)
|
PlatformInfo.isIOS)
|
||||||
TextButton.icon(
|
TextButton.icon(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
debugPrint(
|
appLogger.info(
|
||||||
'UsbScreen: Bluetooth selected, opening ScannerScreen',
|
'Bluetooth selected, opening ScannerScreen',
|
||||||
|
tag: 'UsbScreen',
|
||||||
);
|
);
|
||||||
Navigator.of(context).pushReplacement(
|
Navigator.of(context).pushReplacement(
|
||||||
MaterialPageRoute(builder: (_) => const ScannerScreen()),
|
MaterialPageRoute(builder: (_) => const ScannerScreen()),
|
||||||
@@ -218,8 +220,9 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
onPressed: _isLoadingPorts || _isConnecting
|
onPressed: _isLoadingPorts || _isConnecting
|
||||||
? null
|
? null
|
||||||
: () {
|
: () {
|
||||||
debugPrint(
|
appLogger.info(
|
||||||
'UsbScreen: refresh ports pressed',
|
'Refresh ports pressed',
|
||||||
|
tag: 'UsbScreen',
|
||||||
);
|
);
|
||||||
_loadPorts();
|
_loadPorts();
|
||||||
},
|
},
|
||||||
@@ -234,8 +237,9 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
final rawPortName = normalizeUsbPortName(
|
final rawPortName = normalizeUsbPortName(
|
||||||
_selectedPort!,
|
_selectedPort!,
|
||||||
);
|
);
|
||||||
debugPrint(
|
appLogger.info(
|
||||||
'UsbScreen: connect pressed for $_selectedPort (raw: $rawPortName)',
|
'Connect pressed for $_selectedPort (raw: $rawPortName)',
|
||||||
|
tag: 'UsbScreen',
|
||||||
);
|
);
|
||||||
_connectSelectedPort();
|
_connectSelectedPort();
|
||||||
}
|
}
|
||||||
@@ -262,8 +266,9 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
onPressed: _isLoadingPorts || _isConnecting
|
onPressed: _isLoadingPorts || _isConnecting
|
||||||
? null
|
? null
|
||||||
: () {
|
: () {
|
||||||
debugPrint(
|
appLogger.info(
|
||||||
'UsbScreen: refresh ports pressed',
|
'Refresh ports pressed',
|
||||||
|
tag: 'UsbScreen',
|
||||||
);
|
);
|
||||||
_loadPorts();
|
_loadPorts();
|
||||||
},
|
},
|
||||||
@@ -280,8 +285,9 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
final rawPortName = normalizeUsbPortName(
|
final rawPortName = normalizeUsbPortName(
|
||||||
_selectedPort!,
|
_selectedPort!,
|
||||||
);
|
);
|
||||||
debugPrint(
|
appLogger.info(
|
||||||
'UsbScreen: connect pressed for $_selectedPort (raw: $rawPortName)',
|
'Connect pressed for $_selectedPort (raw: $rawPortName)',
|
||||||
|
tag: 'UsbScreen',
|
||||||
);
|
);
|
||||||
_connectSelectedPort();
|
_connectSelectedPort();
|
||||||
}
|
}
|
||||||
@@ -413,7 +419,7 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
_selectedPort = port;
|
_selectedPort = port;
|
||||||
_errorText = null;
|
_errorText = null;
|
||||||
});
|
});
|
||||||
debugPrint('UsbScreen: selected port $port');
|
appLogger.info('Selected port $port', tag: 'UsbScreen');
|
||||||
},
|
},
|
||||||
leading: Icon(
|
leading: Icon(
|
||||||
Icons.usb,
|
Icons.usb,
|
||||||
@@ -511,8 +517,9 @@ class _UsbScreenState extends State<UsbScreen> {
|
|||||||
try {
|
try {
|
||||||
await _usbConnector.connect(portName: rawPortName);
|
await _usbConnector.connect(portName: rawPortName);
|
||||||
} catch (error, stackTrace) {
|
} catch (error, stackTrace) {
|
||||||
debugPrint(
|
appLogger.error(
|
||||||
'UsbScreen: connect failed for $rawPortName: $error\n$stackTrace',
|
'Connect failed for $rawPortName: $error\n$stackTrace',
|
||||||
|
tag: 'UsbScreen',
|
||||||
);
|
);
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|||||||
@@ -135,7 +135,6 @@ class UsbSerialService {
|
|||||||
} on PlatformException catch (error) {
|
} on PlatformException catch (error) {
|
||||||
_status = UsbSerialStatus.disconnected;
|
_status = UsbSerialStatus.disconnected;
|
||||||
final msg = error.message ?? error.code;
|
final msg = error.message ?? error.code;
|
||||||
debugPrint('[USB Serial] Android connect failed: $msg');
|
|
||||||
_debugLogService?.error(
|
_debugLogService?.error(
|
||||||
'Android connect failed: $msg',
|
'Android connect failed: $msg',
|
||||||
tag: 'USB Serial',
|
tag: 'USB Serial',
|
||||||
@@ -180,7 +179,6 @@ class UsbSerialService {
|
|||||||
if (openStatus != FlOpenStatus.open) {
|
if (openStatus != FlOpenStatus.open) {
|
||||||
final msg =
|
final msg =
|
||||||
'Failed to open USB port $candidate (status: $openStatus)';
|
'Failed to open USB port $candidate (status: $openStatus)';
|
||||||
debugPrint('[USB Serial] $msg');
|
|
||||||
_debugLogService?.error(msg, tag: 'USB Serial');
|
_debugLogService?.error(msg, tag: 'USB Serial');
|
||||||
// Not a FlSerialException — treat as terminal failure
|
// Not a FlSerialException — treat as terminal failure
|
||||||
_status = UsbSerialStatus.disconnected;
|
_status = UsbSerialStatus.disconnected;
|
||||||
@@ -204,9 +202,6 @@ class UsbSerialService {
|
|||||||
} on FlSerialException catch (error) {
|
} on FlSerialException catch (error) {
|
||||||
// The native fl_open() already called fl_close() on failure
|
// The native fl_open() already called fl_close() on failure
|
||||||
// internally, so no extra cleanup is needed here for this candidate.
|
// internally, so no extra cleanup is needed here for this candidate.
|
||||||
debugPrint(
|
|
||||||
'[USB Serial] Failed to open $candidate: ${error.msg} (code ${error.error})',
|
|
||||||
);
|
|
||||||
_debugLogService?.warn(
|
_debugLogService?.warn(
|
||||||
'Failed to open $candidate: ${error.msg} (code ${error.error})',
|
'Failed to open $candidate: ${error.msg} (code ${error.error})',
|
||||||
tag: 'USB Serial',
|
tag: 'USB Serial',
|
||||||
@@ -215,11 +210,8 @@ class UsbSerialService {
|
|||||||
// Try next candidate
|
// Try next candidate
|
||||||
} catch (error, stackTrace) {
|
} catch (error, stackTrace) {
|
||||||
_status = UsbSerialStatus.disconnected;
|
_status = UsbSerialStatus.disconnected;
|
||||||
debugPrint(
|
|
||||||
'[USB Serial] Unexpected error opening $candidate: $error\n$stackTrace',
|
|
||||||
);
|
|
||||||
_debugLogService?.error(
|
_debugLogService?.error(
|
||||||
'Unexpected error opening $candidate: $error',
|
'Unexpected error opening $candidate: $error\n$stackTrace',
|
||||||
tag: 'USB Serial',
|
tag: 'USB Serial',
|
||||||
);
|
);
|
||||||
rethrow;
|
rethrow;
|
||||||
@@ -232,7 +224,6 @@ class UsbSerialService {
|
|||||||
final msg = lastError != null
|
final msg = lastError != null
|
||||||
? 'Failed to open USB port $primary: ${lastError.msg} (code ${lastError.error})'
|
? 'Failed to open USB port $primary: ${lastError.msg} (code ${lastError.error})'
|
||||||
: 'Failed to open USB port $primary';
|
: 'Failed to open USB port $primary';
|
||||||
debugPrint('[USB Serial] $msg');
|
|
||||||
_debugLogService?.error(msg, tag: 'USB Serial');
|
_debugLogService?.error(msg, tag: 'USB Serial');
|
||||||
throw StateError(msg);
|
throw StateError(msg);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user