getBannerConfig method
Implementation
@override
Future<BannerConfig?> getBannerConfig([MainConfiguration? cdn]) async {
try {
debugPrint('Calling getBannerConfig method...');
final result = await methodChannel.invokeMethod<dynamic>(
'getBannerConfig',
cdn?.toJson()
);
debugPrint('getBannerConfig raw result: ${result != null ? result.toString().substring(0, min(200, result.toString().length)) : "null"}...');
debugPrint('getBannerConfig result type: ${result?.runtimeType}');
if (result == null) {
debugPrint('getBannerConfig result is null');
return null;
}
if (result is Map) {
// Convert the entire map structure, including nested maps
Map<String, dynamic> convertedMap = _convertMapToStringDynamic(result);
debugPrint('Successfully converted map structure');
try {
return BannerConfig.fromJson(convertedMap);
} catch (e) {
debugPrint('Error creating BannerConfig from converted map: $e');
return null;
}
} else {
debugPrint('Unexpected result type: ${result.runtimeType}');
return null;
}
} catch (e) {
debugPrint('Error in getBannerConfig: $e');
debugPrint('Stack trace: ${StackTrace.current}');
return null;
}
}