Delete unused megaphones from the database.

This commit is contained in:
Greyson Parrelli
2020-01-31 10:26:12 -05:00
parent e1b75c78ab
commit 37f85d6deb
3 changed files with 54 additions and 11 deletions

View File

@@ -103,7 +103,7 @@ public class MegaphoneRepository {
@WorkerThread
private void init() {
List<MegaphoneRecord> records = database.getAll();
List<MegaphoneRecord> records = database.getAllAndDeleteMissing();
Set<Event> events = Stream.of(records).map(MegaphoneRecord::getEvent).collect(Collectors.toSet());
Set<Event> missing = Stream.of(Megaphones.Event.values()).filterNot(events::contains).collect(Collectors.toSet());
@@ -120,7 +120,7 @@ public class MegaphoneRepository {
@WorkerThread
private void resetDatabaseCache() {
databaseCache.clear();
databaseCache.putAll(Stream.of(database.getAll()).collect(Collectors.toMap(MegaphoneRecord::getEvent, m -> m)));
databaseCache.putAll(Stream.of(database.getAllAndDeleteMissing()).collect(Collectors.toMap(MegaphoneRecord::getEvent, m -> m)));
}
public interface Callback<E> {

View File

@@ -170,5 +170,14 @@ public final class Megaphones {
}
throw new IllegalArgumentException("No event for key: " + key);
}
public static boolean hasKey(@NonNull String key) {
for (Event event : values()) {
if (event.getKey().equals(key)) {
return true;
}
}
return false;
}
}
}