formatCompactDuration method

String formatCompactDuration({
  1. bool includeSeconds = true,
})

Formats to compact text like 1h 03m 07s, 12m 04s, 8s.

Implementation

String formatCompactDuration({bool includeSeconds = true}) {
  final h = inHours;
  final m = inMinutes.remainder(60);
  final s = inSeconds.remainder(60);

  if (h > 0) {
    if (includeSeconds) {
      return '${h}h ${m.toString().padLeft(2, '0')}m ${s.toString().padLeft(2, '0')}s';
    }
    return '${h}h ${m.toString().padLeft(2, '0')}m';
  }

  if (inMinutes > 0) {
    if (includeSeconds) {
      return '${inMinutes}m ${s.toString().padLeft(2, '0')}s';
    }
    return '${inMinutes}m';
  }

  return '${inSeconds}s';
}