This commit is contained in:
RickyRister 2026-11-13 02:18:39 -07:00 • committed by GitHub
commit 62aa00c97b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 9 deletions

View file

@ -128,16 +128,9 @@ void CardSetList::markAllAsKnownBatched(ICardSetPriorityController *controller)
continue; continue;
} }
bool changed = false; if (!set->getIsKnown()) {
if (!set->getIsKnown() && !set->getIsKnownIgnored()) {
set->setIsKnownInMemory(true); set->setIsKnownInMemory(true);
set->setEnabledInMemory(false); set->setEnabledInMemory(set->getIsKnownIgnored());
changed = true;
} else if (set->getIsKnownIgnored() && !set->getEnabled()) {
set->setEnabledInMemory(true);
changed = true;
}
if (changed) {
saveData.append({set->getShortName(), static_cast<unsigned int>(set->getSortKey()), set->getEnabled(), saveData.append({set->getShortName(), static_cast<unsigned int>(set->getSortKey()), set->getEnabled(),
set->getIsKnown()}); set->getIsKnown()});
} }

View file

@ -663,6 +663,24 @@ TEST_F(CardDatabaseCacheInvalidationTest, MarkAllSetsAsKnownIsBatched)
EXPECT_TRUE(controller.isEnabled("XXX")); EXPECT_TRUE(controller.isEnabled("XXX"));
} }
TEST_F(CardDatabaseCacheInvalidationTest, MarkAllSetsAsKnownDoesNotOverwriteSettings)
{
SeededSetPriorityController controller;
CardSetList sets;
sets.append(CardSet::newInstance(&controller, "XXX")); // no metadata: ignored
// Ignored sets keep their known state but are enabled.
sets.markAllAsKnownBatched(&controller);
EXPECT_TRUE(controller.isEnabled("XXX")) << "unnamed set starts enabled";
// disable the set
controller.setEnabled("XXX", false);
// set should still be disabled after batching
sets.markAllAsKnownBatched(&controller);
EXPECT_FALSE(controller.isEnabled("XXX")) << "unnamed set should still be disabled after marking";
}
TEST_F(CardDatabaseCacheInvalidationTest, ReloadReleasesPreviousSnapshot) TEST_F(CardDatabaseCacheInvalidationTest, ReloadReleasesPreviousSnapshot)
{ {
NoopCardPreferenceProvider prefs; NoopCardPreferenceProvider prefs;