Bringup notes widget

This commit is contained in:
MM20
2023-04-23 22:34:20 +02:00
parent e17c8d0f63
commit d98dcdf286
9 changed files with 155 additions and 0 deletions
@@ -0,0 +1,31 @@
package de.mm20.launcher2.widgets
import de.mm20.launcher2.database.entities.PartialWidgetEntity
import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import java.util.UUID
@Serializable
data class NotesWidgetConfig(
val storedText: String = "",
val quickActions: Boolean = true,
)
data class NotesWidget(
override val id: UUID,
val config: NotesWidgetConfig = NotesWidgetConfig(),
) : Widget() {
override fun toDatabaseEntity(): PartialWidgetEntity {
return PartialWidgetEntity(
id = id,
type = Type,
config = Json.encodeToString(config),
)
}
companion object {
const val Type = "notes"
}
}
@@ -54,6 +54,12 @@ sealed class Widget {
config,
)
}
NotesWidget.Type -> {
val config: NotesWidgetConfig =
Json.decodeFromStringOrNull(entity.config?.takeIf { it.isNotBlank() })
?: NotesWidgetConfig()
NotesWidget(entity.id, config)
}
else -> null
}