diff --git a/src/services/refresh_scheduler.cpp b/src/services/refresh_scheduler.cpp index b7ad46d..4b0d685 100644 --- a/src/services/refresh_scheduler.cpp +++ b/src/services/refresh_scheduler.cpp @@ -8,16 +8,21 @@ namespace services { RefreshScheduler::Intervals RefreshScheduler::intervalsForPage(ui::NavPage page) { using NP = ui::NavPage; + // Intervals are {core, transactions, addresses, peers} in seconds (0 = disabled). + // The peers value keeps the status-bar peer count current on EVERY tab — previously it was 0 + // off the Peers tab, so the count never updated until you opened Peers. A slow 20s cadence is + // plenty for a status-bar number; the Peers tab itself stays fast (5s) for its live list. During + // sync this is overridden by kSyncProfile (peers 0) so it can't contend with block download. switch (page) { - case NP::Overview: return {2.0f, 10.0f, 15.0f, 0.0f}; - case NP::Send: return {3.0f, 10.0f, 5.0f, 0.0f}; - case NP::Receive: return {5.0f, 15.0f, 5.0f, 0.0f}; - case NP::History: return {5.0f, 3.0f, 15.0f, 0.0f}; - case NP::Mining: return {5.0f, 15.0f, 15.0f, 0.0f}; + case NP::Overview: return {2.0f, 10.0f, 15.0f, 20.0f}; + case NP::Send: return {3.0f, 10.0f, 5.0f, 20.0f}; + case NP::Receive: return {5.0f, 15.0f, 5.0f, 20.0f}; + case NP::History: return {5.0f, 3.0f, 15.0f, 20.0f}; + case NP::Mining: return {5.0f, 15.0f, 15.0f, 20.0f}; case NP::Peers: return {5.0f, 15.0f, 15.0f, 5.0f}; - case NP::Market: return {5.0f, 15.0f, 15.0f, 0.0f}; - case NP::Console: return {10.0f, 30.0f, 30.0f, 0.0f}; - default: return {5.0f, 15.0f, 15.0f, 0.0f}; + case NP::Market: return {5.0f, 15.0f, 15.0f, 20.0f}; + case NP::Console: return {10.0f, 30.0f, 30.0f, 30.0f}; + default: return {5.0f, 15.0f, 15.0f, 20.0f}; } } diff --git a/tests/test_phase4.cpp b/tests/test_phase4.cpp index df0c8ab..426b041 100644 --- a/tests/test_phase4.cpp +++ b/tests/test_phase4.cpp @@ -757,7 +757,8 @@ void testRefreshScheduler() RefreshScheduler scheduler; scheduler.applyPage(dragonx::ui::NavPage::Overview); EXPECT_NEAR(scheduler.intervals().core, 2.0, 0.0001); - EXPECT_NEAR(scheduler.intervals().peers, 0.0, 0.0001); + // Peers now polls on every tab (slow cadence) so the status-bar peer count stays current. + EXPECT_NEAR(scheduler.intervals().peers, 20.0, 0.0001); scheduler.tick(1.99f); EXPECT_FALSE(scheduler.isDue(Timer::Core)); @@ -779,7 +780,7 @@ void testRefreshScheduler() EXPECT_NEAR(scheduler.intervals().core, 10.0, 0.0001); EXPECT_NEAR(scheduler.intervals().transactions, 30.0, 0.0001); EXPECT_NEAR(scheduler.intervals().addresses, 30.0, 0.0001); - EXPECT_NEAR(scheduler.intervals().peers, 0.0, 0.0001); + EXPECT_NEAR(scheduler.intervals().peers, 30.0, 0.0001); EXPECT_FALSE(scheduler.isDue(Timer::Price)); scheduler.markDue(Timer::Price);