Skip to content

Commit

Permalink
Migrate to using Kotlin's new Enum entries (#1470)
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisbanes committed May 17, 2024
1 parent c5baaea commit 5448e25
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@
package app.tivi.data.columnadaptors

import app.cash.sqldelight.ColumnAdapter
import app.tivi.extensions.unsafeLazy
import kotlinx.datetime.DayOfWeek

internal object DayOfWeekColumnAdapter : ColumnAdapter<DayOfWeek, Long> {
private val values by unsafeLazy { DayOfWeek.values().associateBy { it.dbValue } }

override fun decode(databaseValue: Long): DayOfWeek = values.getValue(databaseValue.toInt())
override fun decode(databaseValue: Long): DayOfWeek {
return DayOfWeek.entries.first { it.dbValue.toLong() == databaseValue }
}

override fun encode(value: DayOfWeek): Long = value.dbValue.toLong()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@ package app.tivi.data.columnadaptors

import app.cash.sqldelight.ColumnAdapter
import app.tivi.data.models.ImageType
import app.tivi.extensions.unsafeLazy

internal object ImageTypeColumnAdapter : ColumnAdapter<ImageType, String> {
private val values by unsafeLazy { ImageType.values().associateBy(ImageType::storageKey) }

override fun decode(databaseValue: String): ImageType = values.getValue(databaseValue)
override fun decode(databaseValue: String): ImageType {
return ImageType.entries.first { it.storageKey == databaseValue }
}

override fun encode(value: ImageType): String = value.storageKey
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@ package app.tivi.data.columnadaptors

import app.cash.sqldelight.ColumnAdapter
import app.tivi.data.models.PendingAction
import app.tivi.extensions.unsafeLazy

internal object PendingActionColumnAdapter : ColumnAdapter<PendingAction, String> {
private val values by unsafeLazy { PendingAction.values().associateBy(PendingAction::value) }

override fun decode(databaseValue: String): PendingAction = values.getValue(databaseValue)
override fun decode(databaseValue: String): PendingAction {
return PendingAction.entries.first { it.value == databaseValue }
}

override fun encode(value: PendingAction): String = value.value
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ package app.tivi.data.columnadaptors

import app.cash.sqldelight.ColumnAdapter
import app.tivi.data.models.Request
import app.tivi.extensions.unsafeLazy

internal object RequestColumnAdapter : ColumnAdapter<Request, String> {
private val values by unsafeLazy { Request.values().associateBy(Request::tag) }
override fun decode(databaseValue: String): Request {
return Request.entries.first { it.tag == databaseValue }
}

override fun decode(databaseValue: String): Request = values.getValue(databaseValue)
override fun encode(value: Request): String = value.tag
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@ package app.tivi.data.columnadaptors

import app.cash.sqldelight.ColumnAdapter
import app.tivi.data.models.ShowStatus
import app.tivi.extensions.unsafeLazy

internal object ShowStatusColumnAdapter : ColumnAdapter<ShowStatus, String> {
private val values by unsafeLazy { ShowStatus.values().associateBy(ShowStatus::storageKey) }

override fun decode(databaseValue: String): ShowStatus = values.getValue(databaseValue)
override fun decode(databaseValue: String): ShowStatus {
return ShowStatus.entries.first { it.storageKey == databaseValue }
}

override fun encode(value: ShowStatus): String = value.storageKey
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ enum class Genre(val traktValue: String) {
MYSTERY("mystery");

companion object {
private val values by lazy { values() }
fun fromTraktValue(value: String) = values.firstOrNull { it.traktValue == value }
fun fromTraktValue(value: String): Genre? = Genre.entries.firstOrNull { it.traktValue == value }
}
}

0 comments on commit 5448e25

Please sign in to comment.