voiceMessageDurationWidth function

double voiceMessageDurationWidth(
  1. BuildContext context,
  2. int duration,
  3. TextStyle textStyle
)

Implementation

double voiceMessageDurationWidth(
  BuildContext context,
  int duration,
  TextStyle textStyle,
) {
  final textPainter = TextPainter(
    text: TextSpan(text: voiceMessageDurationText(duration), style: textStyle),
    textDirection: TextDirection.ltr,
    maxLines: 1,
  )..layout();
  final minWidth = textPainter.width + kBubbleVoiceDurationPadding * 2;
  final maxWidth = MediaQuery.sizeOf(context).width / 2;
  if (duration <= kVoiceMessageMinDuration) {
    return minWidth;
  }
  if (duration >= kVoiceMessageMaxDuration) {
    return maxWidth;
  }
  final ratio =
      (duration - kVoiceMessageMinDuration) /
      (kVoiceMessageMaxDuration - kVoiceMessageMinDuration);
  return minWidth + (maxWidth - minWidth) * ratio;
}