Add dao for Fragment

This commit is contained in:
Philoul 2021-04-02 18:59:41 +02:00
parent 38fb53b4ce
commit 442e64e3f0
3 changed files with 23 additions and 10 deletions

View file

@ -23,6 +23,7 @@ import info.nightscout.androidaps.plugins.bus.RxBusWrapper
import info.nightscout.androidaps.plugins.treatments.events.EventTreatmentUpdateGui
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.T
import info.nightscout.androidaps.utils.Translator
import info.nightscout.androidaps.utils.UserEntryPresentationHelper
import info.nightscout.androidaps.utils.alertDialogs.OKDialog
@ -48,6 +49,9 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
private val disposable = CompositeDisposable()
private val millsToThePastFiltered = T.days(30).msecs()
private val millsToThePastUnFiltered = T.days(3).msecs()
private var _binding: TreatmentsUserEntryFragmentBinding? = null
// This property is only valid between onCreateView and
@ -75,17 +79,18 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
}
fun swapAdapter() {
val now = System.currentTimeMillis()
if (binding.showLoop.isChecked)
disposable.add( repository
.getAllUserEntries()
.getUserEntryDataFromTime(now - millsToThePastUnFiltered)
.observeOn(aapsSchedulers.main)
.subscribe { list -> binding.recyclerview.swapAdapter(UserEntryAdapter(list), true) }
)
else
disposable.add( repository
.getAllUserEntries()
.getUserEntryFilteredDataFromTime(now - millsToThePastFiltered)
.observeOn(aapsSchedulers.main)
.subscribe { list -> binding.recyclerview.swapAdapter(UserEntryAdapter(filterUserEntries(list)), true) }
.subscribe { list -> binding.recyclerview.swapAdapter(UserEntryAdapter(list), true) }
)
}
@ -145,11 +150,4 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
override fun getItemCount(): Int = entries.size
}
fun filterUserEntries(list: List<UserEntry>): List<UserEntry> {
val filteredList = mutableListOf<UserEntry>()
for (ue in list) {
if (! ue.source.equals(Sources.Loop)) filteredList.add(ue)
}
return filteredList
}
}

View file

@ -157,6 +157,14 @@ open class AppRepository @Inject internal constructor(
database.userEntryDao.getAll()
.subscribeOn(Schedulers.io())
fun getUserEntryDataFromTime(timestamp: Long): Single<List<UserEntry>> =
database.userEntryDao.getUserEntryDataFromTime(timestamp)
.subscribeOn(Schedulers.io())
fun getUserEntryFilteredDataFromTime(timestamp: Long): Single<List<UserEntry>> =
database.userEntryDao.getUserEntryFilteredDataFromTime(UserEntry.Sources.Loop, timestamp)
.subscribeOn(Schedulers.io())
fun insert(word: UserEntry) {
database.userEntryDao.insert(word)
}

View file

@ -5,6 +5,7 @@ import androidx.room.Insert
import androidx.room.Query
import info.nightscout.androidaps.database.TABLE_USER_ENTRY
import info.nightscout.androidaps.database.entities.UserEntry
import info.nightscout.androidaps.database.entities.UserEntry.Sources
import io.reactivex.Single
@Dao
@ -16,4 +17,10 @@ interface UserEntryDao {
@Query("SELECT * FROM $TABLE_USER_ENTRY ORDER BY id DESC")
fun getAll(): Single<List<UserEntry>>
@Query("SELECT * FROM $TABLE_USER_ENTRY WHERE timestamp >= :timestamp ORDER BY id DESC")
fun getUserEntryDataFromTime(timestamp: Long): Single<List<UserEntry>>
@Query("SELECT * FROM $TABLE_USER_ENTRY WHERE timestamp >= :timestamp AND source != :excludeSource ORDER BY id DESC")
fun getUserEntryFilteredDataFromTime(excludeSource: Sources, timestamp: Long): Single<List<UserEntry>>
}