anchor.diff:            const SizedBox(height: denseRowSpacing),
             SizedBox(
               height: scaleByFontFactor(70),
  -            child: events.MemoryEventsPane(eventChartController),
  +            child: events.MemoryEventsPane(_eventChartController),
             ),
             SizedBox(
  -            child: vm.MemoryVMChart(vmChartController),
  +            child: vm.MemoryVMChart(_vmChartController),
             ),
  -          controller.isAndroidChartVisible
  +          _controller.isAndroidChartVisible
                 ? SizedBox(
                     height: defaultChartHeight,
  -                  child: android.MemoryAndroidChart(androidChartController),
  +                  child: android.MemoryAndroidChart(_androidChartController),
                   )
                 : const SizedBox(),
             const SizedBox(width: defaultSpacing),
             Expanded(
  -            child: HeapTree(controller),
  +            child: HeapTree(_controller),
             ),
           ],
         ),
  
positive.code:     final focusColor = Theme.of(context).focusColor;
      final colorScheme = Theme.of(context).colorScheme;
  
      final RenderBox box = hoverKey.currentContext.findRenderObject();
      final renderBoxWidth = box.size.width;
  
      // Display hover to left of right side of position.
  
negative.code:       });
      });
  
      addAutoDisposeListener(_controller.androidChartVisibleNotifier, () {
        setState(() {
          if (_controller.androidChartVisibleNotifier.value) {
            ga.select(
              analytics_constants.memory,
              analytics_constants.androidChart,
            );
          }
          if (_controller.isLegendVisible) {
            // Recompute the legend with the new traces now visible.
            hideLegend();
            showLegend(context);
  