getProperties method
Implementation
@override
Map<String, dynamic> getProperties({Element? ancestor}) {
Map<String, dynamic> properties = {};
properties[WidgetProperty.top.name] = 0;
properties[WidgetProperty.left.name] = 0;
properties[WidgetProperty.width.name] = 1080;
properties[WidgetProperty.height.name] = 2337;
properties[WidgetProperty.id.name] = element.hashCode;
properties[WidgetProperty.className.name] = element.widget.toString();
properties[WidgetProperty.flutterElement.name] = true;
properties[WidgetProperty.accessibilityLabel.name] =
element.findAncestorWidgetOfExactType<Semantics>()?.properties.label ?? '';
properties[WidgetProperty.accessibilityId.name] =
element.widget.runtimeType.toString();
try {
RenderBox? rbox = element.findRenderObject() as RenderBox?;
RenderBox? ancestorRbox = ancestor?.findRenderObject() as RenderBox?;
if (rbox != null)
{
var offset = rbox.localToGlobal(Offset.zero, ancestor: ancestorRbox);
var screenOffset = rbox.localToGlobal(Offset.zero);
var pbox = rbox.paintBounds;
properties[WidgetProperty.top.name] = offset.dy.toInt();
properties[WidgetProperty.left.name] = offset.dx.toInt();
properties[WidgetProperty.screenY.name] = screenOffset.dy.toInt();
properties[WidgetProperty.screenX.name] = screenOffset.dx.toInt();
properties[WidgetProperty.width.name] = pbox.right.toInt();
properties[WidgetProperty.height.name] = pbox.bottom.toInt();
properties[WidgetProperty.visible.name] = isWidgetVisible(rbox);
properties[WidgetProperty.visibility.name] = isWidgetVisible(rbox);
}
// var offset = rbox!.localToGlobal(Offset.zero);
// final size = rbox.paintBounds; //rbox.size;
// properties[WidgetProperty.originalTop.name] = offset.dy.toInt();
// properties[WidgetProperty.originalLeft.name] = offset.dx.toInt();
// properties[WidgetProperty.originalWidth.name] = size.right.toInt();
// properties[WidgetProperty.originalHeight.name] = size.bottom.toInt();
// // get device pixel ratio
// FlutterView view = WidgetsBinding.instance.platformDispatcher.views.first;
// var devicePixelRatio = view.devicePixelRatio;
// // here multiple of 2.75 because the ScreenShot size in 2.75 they help to detect element of Hierarchy
// properties[WidgetProperty.top.name] =
// (offset.dy.toInt() * devicePixelRatio);
// properties[WidgetProperty.left.name] =
// (offset.dx.toInt() * devicePixelRatio);
// properties[WidgetProperty.width.name] =
// (size.width.toInt() * devicePixelRatio);
// properties[WidgetProperty.height.name] =
// (size.height.toInt() * devicePixelRatio);
// properties[WidgetProperty.visible.name] = isWidgetVisible(rbox);
// properties[WidgetProperty.visibility.name] = isWidgetVisible(rbox);
} catch (e) {}
return properties;
}