Turns out Koin can't inject null

Fix #23
This commit is contained in:
MM20 2022-02-08 21:46:46 +01:00
parent 1014ffae29
commit fafe6cf87a
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
3 changed files with 18 additions and 11 deletions

View File

@ -18,20 +18,16 @@ data class FavoritesItem(
var pinPosition: Int,
var hidden: Boolean
) : KoinComponent {
private val serializer: SearchableSerializer? by inject { parametersOf(searchable) }
private val serializer: SearchableSerializer by inject { parametersOf(searchable) }
fun toDatabaseEntity(): FavoritesItemEntity? {
val serializer = serializer ?: return null
val serializer = serializer
val data = searchable?.let { serializer.serialize(it) } ?: return null
return FavoritesItemEntity(
key = key,
serializedSearchable = searchable?.let {
"${serializer.typePrefix}#${
serializer.serialize(
it
)
}"
} ?: "",
serializedSearchable = "${serializer.typePrefix}#${data}",
hidden = hidden,
pinPosition = pinPosition,
launchCount = launchCount

View File

@ -6,6 +6,7 @@ import de.mm20.launcher2.contacts.ContactDeserializer
import de.mm20.launcher2.contacts.ContactSerializer
import de.mm20.launcher2.files.*
import de.mm20.launcher2.search.NullDeserializer
import de.mm20.launcher2.search.NullSerializer
import de.mm20.launcher2.search.data.*
import de.mm20.launcher2.websites.WebsiteDeserializer
import de.mm20.launcher2.websites.WebsiteSerializer
@ -50,7 +51,7 @@ val favoritesModule = module {
if (searchable is Website) {
return@factory WebsiteSerializer()
}
return@factory null
return@factory NullSerializer()
}
factory { (serialized: String) ->

View File

@ -3,6 +3,16 @@ package de.mm20.launcher2.search
import de.mm20.launcher2.search.data.Searchable
interface SearchableSerializer {
fun serialize(searchable: Searchable): String
fun serialize(searchable: Searchable): String?
val typePrefix: String
}
class NullSerializer : SearchableSerializer {
override fun serialize(searchable: Searchable): String? {
return null
}
override val typePrefix: String
get() = "null"
}