Skip to content

Commit 33498fb

Browse files
committed
Remove excessive logs
1 parent ed79415 commit 33498fb

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

src/Bible.Alarm/ViewModels/ScheduleListItem.cs

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ public class ScheduleListItem(
3333
private readonly IMapper _mapper = mapper;
3434
private bool _isInitializing;
3535
private AlarmSchedule? _lastKnownSchedule;
36+
private string? _lastKnownTranslationName;
37+
private string? _lastKnownBookName;
3638
private bool _isBusy;
3739
private Action? _onPlayStarted;
3840
private Action? _onPlaybackStarted;
@@ -83,6 +85,11 @@ public void Initialize(AlarmSchedule schedule)
8385
applicationState.StateChanged += OnApplicationStateChanged;
8486
// Store initial state for comparison
8587
_lastKnownSchedule = Schedule;
88+
89+
// Initialize tracked subtitle values from state
90+
var initialStateItem = applicationState.Value.Schedules.FirstOrDefault(s => s.Id == schedule.Id);
91+
_lastKnownTranslationName = initialStateItem?.TranslationName;
92+
_lastKnownBookName = initialStateItem?.BookName;
8693

8794
// Subscribe to PlaybackState changes to manage IsBusy
8895
playbackState.StateChanged += OnPlaybackStateChanged;
@@ -262,9 +269,6 @@ private void RefreshSubTitleFromState()
262269
var scheduleStateItem = applicationState.Value.Schedules
263270
.FirstOrDefault(s => s.Id == scheduleId);
264271

265-
logger.Debug("ScheduleListItem: RefreshSubTitleFromState - ScheduleId: {ScheduleId}, TranslationName: '{TranslationName}', BookName: '{BookName}'",
266-
scheduleId, scheduleStateItem?.TranslationName ?? "null", scheduleStateItem?.BookName ?? "null");
267-
268272
if (scheduleStateItem?.BibleReadingScheduleId.HasValue == true)
269273
{
270274
// Set language separately (for display below switch)
@@ -407,6 +411,12 @@ private void OnApplicationStateChanged(object? sender, EventArgs e)
407411

408412
if (updatedScheduleItem == null) return;
409413

414+
// Store old subtitle-related values BEFORE updating
415+
// Get current values from SubTitle property (which reflects what's currently displayed)
416+
// and from the current Schedule entity
417+
var oldBookNumber = Schedule?.BibleReadingSchedule?.BookNumber;
418+
var oldChapterNumber = Schedule?.BibleReadingSchedule?.ChapterNumber;
419+
410420
// Map DTO to entity for comparison and storage
411421
var updatedSchedule = _mapper.Map<AlarmSchedule>(updatedScheduleItem);
412422

@@ -447,10 +457,26 @@ private void OnApplicationStateChanged(object? sender, EventArgs e)
447457
var isEnabledChanged = oldIsEnabled != updatedSchedule.IsEnabled;
448458
var nameChanged = oldName != updatedSchedule.Name;
449459
var timeChanged = oldHour != updatedSchedule.Hour || oldMinute != updatedSchedule.Minute;
460+
461+
// Check if subtitle-related properties changed
462+
var newTranslationName = updatedScheduleItem.TranslationName;
463+
var newBookName = updatedScheduleItem.BookName;
464+
var bookNumberChanged = oldBookNumber != updatedSchedule.BibleReadingSchedule?.BookNumber;
465+
var chapterNumberChanged = oldChapterNumber != updatedSchedule.BibleReadingSchedule?.ChapterNumber;
466+
var translationNameChanged = _lastKnownTranslationName != newTranslationName;
467+
var bookNameChanged = _lastKnownBookName != newBookName;
468+
469+
// Only refresh subtitle if subtitle-related properties actually changed
470+
var subtitleChanged = trackChanged || bookNumberChanged || chapterNumberChanged ||
471+
translationNameChanged || bookNameChanged;
450472

451-
// Always refresh subtitle/language when state changes, since TranslationName and BookName
452-
// may have been updated even if other properties didn't change
453-
RefreshChapterName();
473+
if (subtitleChanged)
474+
{
475+
// Update tracked values
476+
_lastKnownTranslationName = newTranslationName;
477+
_lastKnownBookName = newBookName;
478+
RefreshChapterName();
479+
}
454480

455481
// Always update _isEnabled to match the schedule
456482
_isEnabled = updatedSchedule.IsEnabled;

0 commit comments

Comments
 (0)