diff --git a/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesItem.kt b/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesItem.kt index 2bff334f..b9fbdd04 100644 --- a/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesItem.kt +++ b/favorites/src/main/java/de/mm20/launcher2/favorites/FavoritesItem.kt @@ -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 diff --git a/favorites/src/main/java/de/mm20/launcher2/favorites/Module.kt b/favorites/src/main/java/de/mm20/launcher2/favorites/Module.kt index ea8939dc..d1a24214 100644 --- a/favorites/src/main/java/de/mm20/launcher2/favorites/Module.kt +++ b/favorites/src/main/java/de/mm20/launcher2/favorites/Module.kt @@ -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) -> diff --git a/search/src/main/java/de/mm20/launcher2/search/SearchableSerializer.kt b/search/src/main/java/de/mm20/launcher2/search/SearchableSerializer.kt index 660f3c94..b3f174e2 100644 --- a/search/src/main/java/de/mm20/launcher2/search/SearchableSerializer.kt +++ b/search/src/main/java/de/mm20/launcher2/search/SearchableSerializer.kt @@ -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" + } \ No newline at end of file