@@ -209,9 +209,10 @@ import '../widget_utils.dart';
209
209
class _TreeWalker {
210
210
static const _privateDelimiter = '_' ;
211
211
212
- _TreeWalker (this .rootElement);
212
+ _TreeWalker (this .rootElement, this .options );
213
213
214
214
final Element rootElement;
215
+ final SentryFlutterOptions options;
215
216
216
217
ValueChanged <Element > _visitor (
217
218
SentryViewHierarchyElement parentSentryElement) {
@@ -278,10 +279,15 @@ class _TreeWalker {
278
279
alpha = widget.opacity;
279
280
}
280
281
282
+ String ? identifier;
283
+ if (options.reportViewHierarchyIdentifiers) {
284
+ identifier = WidgetUtils .toStringValue (widget.key);
285
+ }
286
+
281
287
return SentryViewHierarchyElement (
282
288
element.widget.runtimeType.toString (),
283
289
depth: element.depth,
284
- identifier: WidgetUtils . toStringValue (element.widget.key) ,
290
+ identifier: identifier ,
285
291
width: width,
286
292
height: height,
287
293
x: x,
@@ -292,15 +298,16 @@ class _TreeWalker {
292
298
}
293
299
}
294
300
295
- SentryViewHierarchy ? walkWidgetTree (WidgetsBinding instance) {
301
+ SentryViewHierarchy ? walkWidgetTree (
302
+ WidgetsBinding instance, SentryFlutterOptions options) {
296
303
// to keep compatibility with older versions
297
304
// ignore: deprecated_member_use
298
305
final rootElement = instance.renderViewElement;
299
306
if (rootElement == null ) {
300
307
return null ;
301
308
}
302
309
303
- final walker = _TreeWalker (rootElement);
310
+ final walker = _TreeWalker (rootElement, options );
304
311
305
312
return walker.toSentryViewHierarchy ();
306
313
}
0 commit comments