getDiagnostics method

  1. @override
Future<BoatDiagnostics> getDiagnostics()
override

Implementation

@override
Future<BoatDiagnostics> getDiagnostics() async {
  try {
    final result = await methodsChannel.invokeMethod<Map<dynamic, dynamic>>(
      'getDiagnostics',
    );
    return BoatDiagnostics.fromMap(Map<String, dynamic>.from(result ?? {}));
  } catch (_) {
    // Return a minimal diagnostics snapshot rather than crashing when
    // native is unavailable (e.g. engine disposed mid-query).
    return const BoatDiagnostics(
      deviceModel: '',
      osVersion: '',
      audioSessionId: -1,
      effectStatus: {},
      currentRoute: AudioRoute.speaker,
      availableRoutes: [],
      captureFrameCount: 0,
      playbackFrameCount: 0,
      uptime: Duration.zero,
    );
  }
}