Move Tag and tag serialization classes to core:base

This commit is contained in:
MM20
2024-10-26 19:41:54 +02:00
parent a505b25ce9
commit 06c7331584
11 changed files with 19 additions and 33 deletions
@@ -1,45 +0,0 @@
package de.mm20.launcher2.search.data
import android.content.Context
import android.os.Bundle
import de.mm20.launcher2.icons.ColorLayer
import de.mm20.launcher2.icons.StaticLauncherIcon
import de.mm20.launcher2.icons.TextLayer
import de.mm20.launcher2.search.SavableSearchable
import de.mm20.launcher2.search.SearchableSerializer
import de.mm20.launcher2.searchable.TagSerializer
data class Tag(
val tag: String,
override val labelOverride: String? = null
): SavableSearchable {
override val domain: String = Domain
override val key: String = "$domain://$tag"
override val label: String = tag
override val preferDetailsOverLaunch: Boolean = true
override fun launch(context: Context, options: Bundle?): Boolean {
return false
}
override fun overrideLabel(label: String): SavableSearchable {
return this.copy(labelOverride = label)
}
override fun getPlaceholderIcon(context: Context): StaticLauncherIcon {
return StaticLauncherIcon(
foregroundLayer = TextLayer("#"),
backgroundLayer = ColorLayer()
)
}
override fun getSerializer(): SearchableSerializer {
return TagSerializer()
}
companion object {
const val Domain = "tag"
}
}
@@ -2,7 +2,7 @@ package de.mm20.launcher2.searchable
import de.mm20.launcher2.backup.Backupable
import de.mm20.launcher2.search.SearchableDeserializer
import de.mm20.launcher2.search.data.Tag
import de.mm20.launcher2.search.Tag
import org.koin.core.qualifier.named
import org.koin.dsl.module
@@ -12,5 +12,4 @@ val searchableModule = module {
get()
) }
factory <SavableSearchableRepository> { SavableSearchableRepositoryImpl(get(), get()) }
factory<SearchableDeserializer>(named(Tag.Domain)) { TagDeserializer() }
}
@@ -1,28 +0,0 @@
package de.mm20.launcher2.searchable
import de.mm20.launcher2.search.SavableSearchable
import de.mm20.launcher2.search.SearchableDeserializer
import de.mm20.launcher2.search.SearchableSerializer
import de.mm20.launcher2.search.data.Tag
import org.json.JSONObject
class TagSerializer: SearchableSerializer {
override fun serialize(searchable: SavableSearchable): String {
searchable as Tag
val json = JSONObject()
json.put("tag", searchable.tag)
return json.toString()
}
override val typePrefix: String
get() = "tag"
}
class TagDeserializer: SearchableDeserializer {
override suspend fun deserialize(serialized: String): SavableSearchable {
val json = JSONObject(serialized)
return Tag(json.getString("tag"))
}
}