fullTaskNameAtFrame method

String fullTaskNameAtFrame([
  1. List<String>? subTasks
])

Implementation

String fullTaskNameAtFrame([List<String>? subTasks]) {
  subTasks?.removeWhere((val) => val.isEmpty);
  String currentTaskMethodName = "unknown";

  // Capture the stack trace
  final frames = StackTrace.current.toString().split('\n');

  // Find the first frame that is not part of this manager infrastructure
  for (var frame in frames) {
    if (frame.contains('ManagersResultData') ||
        frame.contains('StackTrace') ||
        frame.isEmpty ||
        frame.startsWith('<')) {
      continue;
    }

    final currentTaskInfo = getClassAndMethodName(frame);
    if (currentTaskInfo != null) {
      currentTaskMethodName = currentTaskInfo.split(".").last;
      break;
    }
  }

  final taskFullName =
      currentTaskMethodName +
      ((subTasks == null || subTasks.isEmpty)
          ? ""
          : ".${subTasks.join(".")}");
  succeedTasks.add(taskFullName);
  return taskFullName;
}