Fix errors with refresh inspector code
diff --git a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart
index 468154f..bebba01 100644
--- a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_controller.dart
@@ -23,6 +23,8 @@
 import 'package:vm_service/vm_service.dart';
 
 import '../../service/service_extensions.dart' as extensions;
+import '../../shared/analytics/analytics.dart' as ga;
+import '../../shared/analytics/constants.dart' as gac;
 import '../../shared/console/eval/inspector_tree_v2.dart';
 import '../../shared/console/primitives/simple_items.dart';
 import '../../shared/diagnostics/diagnostics_node.dart';
@@ -369,6 +371,20 @@
     return _waitForPendingUpdateDone();
   }
 
+  Future<void> refreshInspector() async {
+    // If the user is force refreshing the inspector before the first load has
+    // completed, this could indicate a slow load time or that the inspector
+    // failed to load the tree once available.
+    if (!firstInspectorTreeLoadCompleted) {
+      // We do not want to complete this timing operation because the force
+      // refresh will skew the results.
+      ga.cancelTimingOperation(InspectorScreen.id, gac.pageReady);
+      ga.select(gac.inspector, gac.refreshEmptyTree);
+      firstInspectorTreeLoadCompleted = true;
+    }
+    await onForceRefresh();
+  }
+
   void filterErrors() {
     serviceConnection.errorBadgeManager.filterErrors(
       InspectorScreen.id,
diff --git a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart
index fe6435f..afcb40a 100644
--- a/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart
+++ b/packages/devtools_app/lib/src/screens/inspector_v2/inspector_screen_body.dart
@@ -213,23 +213,7 @@
     ga.select(gac.inspector, gac.refresh);
     unawaited(
       blockWhileInProgress(() async {
-        // If the user is force refreshing the inspector before the first load has
-        // completed, this could indicate a slow load time or that the inspector
-        // failed to load the tree once available.
-        if (!controller.firstInspectorTreeLoadCompleted) {
-          // We do not want to complete this timing operation because the force
-          // refresh will skew the results.
-          ga.cancelTimingOperation(
-            InspectorScreen.id,
-            gac.pageReady,
-          );
-          ga.select(
-            gac.inspector,
-            gac.refreshEmptyTree,
-          );
-          controller.firstInspectorTreeLoadCompleted = true;
-        }
-        await controller.onForceRefresh();
+        await controller.refreshInspector();
       }),
     );
   }