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")
|
@Query("SELECT catnum, name, isSelected FROM entries ORDER BY name ASC")
|
||||||
fun getSatelliteItems(): Flow<List<SatItem>>
|
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")
|
@Query("SELECT catnum FROM entries WHERE isSelected = 1")
|
||||||
suspend fun getEntriesSelection(): List<Int>
|
suspend fun getEntriesSelection(): List<Int>
|
||||||
|
|
||||||
|
@Query("SELECT * FROM entries WHERE isSelected = 1")
|
||||||
|
suspend fun getSelectedSatellites(): List<SatEntry>
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
suspend fun insertEntries(entries: List<SatEntry>)
|
suspend fun insertEntries(entries: List<SatEntry>)
|
||||||
|
|
||||||
@Transaction
|
@Transaction
|
||||||
suspend fun restoreSelection(catnums: List<Int>, isSelected: Boolean) {
|
suspend fun updateEntries(entries: List<SatEntry>) {
|
||||||
updateEntriesSelection(catnums, isSelected)
|
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
|
@Transaction
|
||||||
suspend fun updateEntriesSelection(catnums: List<Int>, isSelected: Boolean) {
|
suspend fun updateEntriesSelection(catnums: List<Int>, isSelected: Boolean) {
|
||||||
catnums.forEach { catnum -> updateEntrySelection(catnum, isSelected) }
|
catnums.forEach { catnum -> updateEntrySelection(catnum, isSelected) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Query("UPDATE entries SET isSelected = :isSelected WHERE catnum = :catnum")
|
@Transaction
|
||||||
suspend fun updateEntrySelection(catnum: Int, isSelected: Boolean)
|
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
|
@Dao
|
||||||
interface TransmittersDao {
|
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>
|
suspend fun getTransmitters(catnum: Int): List<Transmitter>
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@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