Get badges through the repository
This commit is contained in:
parent
77fada1b02
commit
11eac7b141
@ -1044,24 +1044,26 @@ class HomeActivity : AppCompatActivity(), SearchView.OnQueryTextListener, DIAwar
|
|||||||
private fun reloadBadges() {
|
private fun reloadBadges() {
|
||||||
if (displayUnreadCount || displayAllCount) {
|
if (displayUnreadCount || displayAllCount) {
|
||||||
CoroutineScope(Dispatchers.Main).launch {
|
CoroutineScope(Dispatchers.Main).launch {
|
||||||
service.reloadBadges(applicationContext.isNetworkAvailable())
|
if (applicationContext.isNetworkAvailable()) {
|
||||||
|
repository.reloadBadges()
|
||||||
reloadBadgeContent()
|
reloadBadgeContent()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun reloadBadgeContent() {
|
private fun reloadBadgeContent() {
|
||||||
if (displayUnreadCount) {
|
if (displayUnreadCount) {
|
||||||
tabNewBadge
|
tabNewBadge
|
||||||
.setText(searchService.badgeUnread.toString())
|
.setText(repository.badgeUnread.toString())
|
||||||
.maybeShow()
|
.maybeShow()
|
||||||
}
|
}
|
||||||
if (displayAllCount) {
|
if (displayAllCount) {
|
||||||
tabArchiveBadge
|
tabArchiveBadge
|
||||||
.setText(searchService.badgeAll.toString())
|
.setText(repository.badgeAll.toString())
|
||||||
.maybeShow()
|
.maybeShow()
|
||||||
tabStarredBadge
|
tabStarredBadge
|
||||||
.setText(searchService.badgeStarred.toString())
|
.setText(repository.badgeStarred.toString())
|
||||||
.maybeShow()
|
.maybeShow()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,10 +12,13 @@ interface Repository {
|
|||||||
|
|
||||||
// API
|
// API
|
||||||
var apiMajorVersion: Int
|
var apiMajorVersion: Int
|
||||||
|
var badgeUnread: Int
|
||||||
|
var badgeAll: Int
|
||||||
|
var badgeStarred: Int
|
||||||
|
|
||||||
suspend fun getNewerItems(): ArrayList<SelfossModel.Item>
|
suspend fun getNewerItems(): ArrayList<SelfossModel.Item>
|
||||||
suspend fun getOlderItems(): ArrayList<SelfossModel.Item>
|
suspend fun getOlderItems(): ArrayList<SelfossModel.Item>
|
||||||
fun stats(): SelfossModel.Stats
|
suspend fun reloadBadges(): Boolean
|
||||||
fun getTags(): List<SelfossModel.Tag>
|
fun getTags(): List<SelfossModel.Tag>
|
||||||
suspend fun getSpouts(): Map<String, SelfossModel.Spout>?
|
suspend fun getSpouts(): Map<String, SelfossModel.Spout>?
|
||||||
suspend fun getSources(): ArrayList<SelfossModel.Source>?
|
suspend fun getSources(): ArrayList<SelfossModel.Source>?
|
||||||
|
@ -35,11 +35,15 @@ class RepositoryImpl(private val api: SelfossApi, private val apiDetails: ApiDet
|
|||||||
private var search: String? = null
|
private var search: String? = null
|
||||||
|
|
||||||
override var apiMajorVersion = 0
|
override var apiMajorVersion = 0
|
||||||
|
override var badgeUnread = 0
|
||||||
|
override var badgeAll = 0
|
||||||
|
override var badgeStarred = 0
|
||||||
|
|
||||||
init {
|
init {
|
||||||
// TODO: Dispatchers.IO not available in KMM, an alternative solution should be found
|
// TODO: Dispatchers.IO not available in KMM, an alternative solution should be found
|
||||||
CoroutineScope(Dispatchers.Main).launch {
|
CoroutineScope(Dispatchers.Main).launch {
|
||||||
updateApiVersion()
|
updateApiVersion()
|
||||||
|
reloadBadges()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,8 +108,17 @@ class RepositoryImpl(private val api: SelfossApi, private val apiDetails: ApiDet
|
|||||||
return tmpItems
|
return tmpItems
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun stats(): SelfossModel.Stats {
|
override suspend fun reloadBadges(): Boolean {
|
||||||
TODO("Not yet implemented")
|
// TODO: Check connectivity, calculate from DB
|
||||||
|
var success = false
|
||||||
|
val response = api.stats()
|
||||||
|
if (response != null) {
|
||||||
|
badgeUnread = response.unread
|
||||||
|
badgeAll = response.total
|
||||||
|
badgeStarred = response.starred
|
||||||
|
success = true
|
||||||
|
}
|
||||||
|
return success
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getTags(): List<SelfossModel.Tag> {
|
override fun getTags(): List<SelfossModel.Tag> {
|
||||||
@ -125,23 +138,27 @@ class RepositoryImpl(private val api: SelfossApi, private val apiDetails: ApiDet
|
|||||||
override suspend fun markAsRead(id: Int): Boolean {
|
override suspend fun markAsRead(id: Int): Boolean {
|
||||||
// TODO: Check success, store in DB
|
// TODO: Check success, store in DB
|
||||||
api.markAsRead(id.toString())
|
api.markAsRead(id.toString())
|
||||||
|
badgeUnread -= 1
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun unmarkAsRead(id: Int): Boolean {
|
override suspend fun unmarkAsRead(id: Int): Boolean {
|
||||||
// TODO: Check success, store in DB
|
// TODO: Check success, store in DB
|
||||||
api.unmarkAsRead(id.toString())
|
api.unmarkAsRead(id.toString())
|
||||||
|
badgeUnread += 1
|
||||||
return true }
|
return true }
|
||||||
|
|
||||||
override suspend fun starr(id: Int): Boolean {
|
override suspend fun starr(id: Int): Boolean {
|
||||||
// TODO: Check success, store in DB
|
// TODO: Check success, store in DB
|
||||||
api.starr(id.toString())
|
api.starr(id.toString())
|
||||||
|
badgeStarred += 1
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun unstarr(id: Int): Boolean {
|
override suspend fun unstarr(id: Int): Boolean {
|
||||||
// TODO: Check success, store in DB
|
// TODO: Check success, store in DB
|
||||||
api.unstarr(id.toString())
|
api.unstarr(id.toString())
|
||||||
|
badgeStarred -= 1
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user