mirror of
https://github.com/rt-bishop/Look4Sat.git
synced 2026-10-02 03:15:37 +00:00
Added stale data cleanup on every data update
This commit is contained in:
1 parent
ad3bdff823
commit
971379b773
2 files changed
+29
-16
No files matched your search
@@ -29,32 +29,36 @@ interface EntriesDao {
|
||||
@Query("SELECT catnum, name, isSelected FROM entries ORDER BY name ASC")
|
||||
fun getSatelliteItems(): Flow<List<SatItem>>
|
||||
|
||||
@Query("SELECT * FROM entries WHERE isSelected = 1")
|
||||
suspend fun getSelectedSatellites(): List<SatEntry>
|
||||
|
||||
@Transaction
|
||||
suspend fun updateEntries(entries: List<SatEntry>) {
|
||||
val entriesSelection = getEntriesSelection()
|
||||
insertEntries(entries)
|
||||
restoreSelection(entriesSelection, true)
|
||||
}
|
||||
|
||||
@Query("SELECT catnum FROM entries WHERE isSelected = 1")
|
||||
suspend fun getEntriesSelection(): List<Int>
|
||||
|
||||
@Query("SELECT * FROM entries WHERE isSelected = 1")
|
||||
suspend fun getSelectedSatellites(): List<SatEntry>
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
suspend fun insertEntries(entries: List<SatEntry>)
|
||||
|
||||
@Transaction
|
||||
suspend fun restoreSelection(catnums: List<Int>, isSelected: Boolean) {
|
||||
updateEntriesSelection(catnums, isSelected)
|
||||
suspend fun updateEntries(entries: List<SatEntry>) {
|
||||
val entriesSelection = getEntriesSelection()
|
||||
deleteEntries()
|
||||
insertEntries(entries)
|
||||
restoreSelection(entriesSelection, true)
|
||||
}
|
||||
|
||||
@Query("UPDATE entries SET isSelected = :isSelected WHERE catnum = :catnum")
|
||||
suspend fun updateEntrySelection(catnum: Int, isSelected: Boolean)
|
||||
|
||||
@Transaction
|
||||
suspend fun updateEntriesSelection(catnums: List<Int>, isSelected: Boolean) {
|
||||
catnums.forEach { catnum -> updateEntrySelection(catnum, isSelected) }
|
||||
}
|
||||
|
||||
@Query("UPDATE entries SET isSelected = :isSelected WHERE catnum = :catnum")
|
||||
suspend fun updateEntrySelection(catnum: Int, isSelected: Boolean)
|
||||
@Transaction
|
||||
suspend fun restoreSelection(catnums: List<Int>, isSelected: Boolean) {
|
||||
updateEntriesSelection(catnums, isSelected)
|
||||
}
|
||||
|
||||
@Query("DELETE FROM entries")
|
||||
suspend fun deleteEntries()
|
||||
}
|
||||
@@ -23,9 +23,18 @@ import com.rtbishop.look4sat.framework.model.Transmitter
|
||||
@Dao
|
||||
interface TransmittersDao {
|
||||
|
||||
@Query("SELECT * FROM transmitters WHERE catnum = :catnum")
|
||||
@Query("SELECT * FROM transmitters WHERE catnum = :catnum AND isAlive = 1")
|
||||
suspend fun getTransmitters(catnum: Int): List<Transmitter>
|
||||
|
||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||
suspend fun updateTransmitters(transmitters: List<Transmitter>)
|
||||
suspend fun insertTransmitters(transmitters: List<Transmitter>)
|
||||
|
||||
@Transaction
|
||||
suspend fun updateTransmitters(transmitters: List<Transmitter>) {
|
||||
deleteTransmitters()
|
||||
insertTransmitters(transmitters)
|
||||
}
|
||||
|
||||
@Query("DELETE FROM transmitters")
|
||||
suspend fun deleteTransmitters()
|
||||
}
|
||||
Reference in new issue
Block a user