handle method
Implementation
@override
Future<dynamic> handle(MethodCall call) async {
NLogger.i('Capturing all components, arguments: ${call.arguments}');
// var view = ui.PlatformDispatcher.instance.views.first;
// var devicePixelRatio = view.devicePixelRatio;
var devicePixelRatio = call.arguments["DPR"];
final List<Map<String, dynamic>> components =
NudgeWidgetTracker.getAllWidgetDetails(
devicePixelRatio,
devicePixelRatio,
);
NLogger.i(
'Components found: ${components.length}, labels: ${components.map((e) => e['name'])}',
);
ScreenshotDetails? screenshotDetails =
await ScreenshotUtil.captureAndSaveScreenshot(
Nudge.screenshotKey,
);
Size screenshotSize = screenshotDetails?.screenshotSize ?? Size.zero;
final Map<String, dynamic> response = {
'message_type': 'SEND_ALL_COMPONENTS',
'data': {
'components': components,
'screenshot_path': screenshotDetails?.filePath,
'ss_height': screenshotSize.height,
'ss_width': screenshotSize.width,
},
};
NLogger.i('Sending all components: $response');
try {
await NudgeCoreV2NativeServices().sendAllComponents(response);
} catch (e) {
NLogger.e('Error sending component details: $e');
}
}