Fetch badges and version on network available.
This commit is contained in:
parent
4857a3d0ac
commit
8c817b5938
@ -45,10 +45,15 @@ class Repository(private val api: SelfossApi, private val apiDetails: ApiDetails
|
||||
init {
|
||||
// TODO: Dispatchers.IO not available in KMM, an alternative solution should be found
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
updateApiVersion()
|
||||
isConnectionAvailable.collect { connectionAvailable ->
|
||||
if (connectionAvailable) {
|
||||
updateApiVersion()
|
||||
reloadBadges()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun getNewerItems(): ArrayList<SelfossModel.Item> {
|
||||
// TODO: Use the updatedSince parameter
|
||||
@ -132,12 +137,12 @@ class Repository(private val api: SelfossApi, private val apiDetails: ApiDetails
|
||||
_badgeStarred.value = response.starred
|
||||
success = true
|
||||
}
|
||||
} else {
|
||||
} else if (itemsCaching) {
|
||||
// TODO: do this differently, because it's not efficient
|
||||
val dbItems = getDBItems()
|
||||
_badgeUnread.value = dbItems.filter { item -> item.unread }.size
|
||||
_badgeStarred.value = dbItems.filter { item -> item.starred }.size
|
||||
_badgeAll.value = items.size
|
||||
_badgeAll.value = dbItems.size
|
||||
}
|
||||
return success
|
||||
}
|
||||
@ -437,13 +442,16 @@ class Repository(private val api: SelfossApi, private val apiDetails: ApiDetails
|
||||
|
||||
|
||||
suspend fun tryToCacheItemsAndGetNewOnes(): List<SelfossModel.Item>? {
|
||||
if (itemsCaching) {
|
||||
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) {}
|
||||
} catch (e: Throwable) {
|
||||
}
|
||||
}
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user