Use an enum to represent item type

This commit is contained in:
davide
2022-08-15 15:16:57 +02:00
parent fe59177efb
commit d47cca2f5a
5 changed files with 21 additions and 19 deletions

View File

@ -2,6 +2,7 @@ package bou.amine.apps.readerforselfossv2.repository
import bou.amine.apps.readerforselfossv2.rest.SelfossModel
import bou.amine.apps.readerforselfossv2.utils.DateUtils
import bou.amine.apps.readerforselfossv2.utils.ItemType
interface Repository {
@ -10,7 +11,7 @@ interface Repository {
var baseUrl: String
var dateUtils: DateUtils
var displayedItems: String
var displayedItems: ItemType
// Settings
var itemsCaching: Boolean

View File

@ -4,6 +4,7 @@ import bou.amine.apps.readerforselfossv2.rest.SelfossApi
import bou.amine.apps.readerforselfossv2.rest.SelfossModel
import bou.amine.apps.readerforselfossv2.service.ApiDetailsService
import bou.amine.apps.readerforselfossv2.utils.DateUtils
import bou.amine.apps.readerforselfossv2.utils.ItemType
import com.russhwolf.settings.Settings
import io.github.aakira.napier.Napier
import kotlinx.coroutines.CoroutineScope
@ -18,16 +19,7 @@ class RepositoryImpl(private val api: SelfossApi, private val apiDetails: ApiDet
override var baseUrl = apiDetails.getBaseUrl()
override lateinit var dateUtils: DateUtils
override var displayedItems = "unread"
set(value) {
field = when (value) {
"all" -> "all"
"unread" -> "unread"
"read" -> "read"
"starred" -> "starred"
else -> "all"
}
}
override var displayedItems = ItemType.UNREAD
override var tagFilter: SelfossModel.Tag? = null
override var sourceFilter: SelfossModel.Source? = null
@ -54,7 +46,7 @@ class RepositoryImpl(private val api: SelfossApi, private val apiDetails: ApiDet
override suspend fun getNewerItems(): ArrayList<SelfossModel.Item> {
// TODO: Check connectivity
val fetchedItems = api.getItems(displayedItems,
val fetchedItems = api.getItems(displayedItems.type,
settings.getString("prefer_api_items_number", "200").toInt(),
offset = 0,
tagFilter?.tag,
@ -70,7 +62,7 @@ class RepositoryImpl(private val api: SelfossApi, private val apiDetails: ApiDet
override suspend fun getOlderItems(): ArrayList<SelfossModel.Item> {
// TODO: Check connectivity
val offset = items.size
val fetchedItems = api.getItems(displayedItems,
val fetchedItems = api.getItems(displayedItems.type,
settings.getString("prefer_api_items_number", "200").toInt(),
offset,
tagFilter?.tag,
@ -99,9 +91,9 @@ class RepositoryImpl(private val api: SelfossApi, private val apiDetails: ApiDet
private fun filterSelectedItems(items: ArrayList<SelfossModel.Item>): ArrayList<SelfossModel.Item> {
val tmpItems = items
if (displayedItems == "unread") {
if (displayedItems == ItemType.UNREAD) {
tmpItems.removeAll { !it.unread }
} else if (displayedItems == "starred") {
} else if (displayedItems == ItemType.STARRED) {
tmpItems.removeAll { !it.starred }
}

View File

@ -0,0 +1,7 @@
package bou.amine.apps.readerforselfossv2.utils
enum class ItemType(val type: String) {
UNREAD("unread"),
ALL("all"),
STARRED("starred")
}