DB caching. #33

Merged
AmineB merged 9 commits from feature/sqldelight into master 2022-08-23 20:39:20 +00:00
3 changed files with 16 additions and 13 deletions
Showing only changes of commit 3b8f4991e9 - Show all commits

View File

@ -168,14 +168,10 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener, DIAwar
getElementsAccordingToTab()
CoroutineScope(Dispatchers.Main).launch {
repository.tryToCacheItemsAndGetNewOnes()
}
// TODO: items caching should be done in the background when starting the app, like background.kt does
// fetchedItems?.let {
// CoroutineScope(Dispatchers.Main).launch {
// insertDBItems(it)
// }
// }
}
private fun handleSwipeRefreshLayout() {

View File

@ -81,12 +81,7 @@ override fun doWork(): Result {
}
launch {
try {
val newItems = repository.getMaxItemsForBackground(ItemType.UNREAD)
handleNewItemsNotification(newItems, notifyNewItems, notificationManager)
repository.getMaxItemsForBackground(ItemType.ALL)
repository.getMaxItemsForBackground(ItemType.STARRED)
} catch (e: Throwable) {}
handleNewItemsNotification(repository.tryToCacheItemsAndGetNewOnes(), notifyNewItems, notificationManager)
}
}
}

View File

@ -413,4 +413,16 @@ class Repository(private val api: SelfossApi, private val apiDetails: ApiDetails
private fun updateDBItem(item: SelfossModel.Item) =
db.itemsQueries.updateItem(item.datetime, item.getTitleDecoded(), item.content, item.unread, item.starred, item.thumbnail, item.icon, item.link, item.sourcetitle, item.tags.joinToString(","), item.id.toString())
suspend fun tryToCacheItemsAndGetNewOnes(): List<SelfossModel.Item>? {
try {
val newItems = getMaxItemsForBackground(ItemType.UNREAD)
val allItems = getMaxItemsForBackground(ItemType.ALL)
val starredItems = getMaxItemsForBackground(ItemType.STARRED)
insertDBItems(newItems.orEmpty() + allItems.orEmpty() + starredItems.orEmpty())
return newItems
} catch (e: Throwable) {}
return emptyList()
}
}