logHighlightedWordsUpdate static method

void logHighlightedWordsUpdate(
  1. List<HighlightedWord> before,
  2. List<HighlightedWord> after,
  3. String reason
)

Log highlighted words state before and after update

Implementation

static void logHighlightedWordsUpdate(
  List<HighlightedWord> before,
  List<HighlightedWord> after,
  String reason,
) {
  debugPrint('🎨 HIGHLIGHTED WORDS UPDATE - Reason: $reason');
  debugPrint('  Before: ${before.length} words');

  // Count statuses before
  int recitedCorrectBefore =
      before.where((w) => w.status == WordStatus.recitedCorrect).length;
  int errorBefore =
      before.where((w) => w.status == WordStatus.recitedTajweedError).length;
  debugPrint('    - Recited Correct: $recitedCorrectBefore');
  debugPrint('    - Tajweed Errors: $errorBefore');
  debugPrint(
      '    - Unrecited: ${before.length - recitedCorrectBefore - errorBefore}');

  debugPrint('  After: ${after.length} words');

  // Count statuses after
  int recitedCorrectAfter =
      after.where((w) => w.status == WordStatus.recitedCorrect).length;
  int errorAfter =
      after.where((w) => w.status == WordStatus.recitedTajweedError).length;
  debugPrint('    - Recited Correct: $recitedCorrectAfter');
  debugPrint('    - Tajweed Errors: $errorAfter');
  debugPrint(
      '    - Unrecited: ${after.length - recitedCorrectAfter - errorAfter}');

  if (recitedCorrectAfter > recitedCorrectBefore) {
    debugPrint(
        '  Δ Change: +${recitedCorrectAfter - recitedCorrectBefore} correct words 🎉');
  }
}