
* Migrate History screen database call to SQLDelight - Move all migrations to SQLDelight - Move all tables to SQLDelight Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com> * Changes from review comments * Add adapters to database * Remove logging of database version in App * Change query name for paging source queries * Update migrations * Make SQLite Callback handle migration - To ensure it updates the database * Use SQLDelight Schema version for Callback database version Co-authored-by: inorichi <3521738+inorichi@users.noreply.github.com> (cherry picked from commit b1f46ed8302411fbd884bbc3c26fe28a378fd91a) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/data/database/DatabaseHelper.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/DbOpenCallback.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/queries/HistoryQueries.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/CategoryTable.kt # app/src/main/java/eu/kanade/tachiyomi/data/database/tables/MangaTable.kt # app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt # app/src/main/java/eu/kanade/tachiyomi/ui/setting/database/ClearDatabasePresenter.kt # build.gradle.kts
21 lines
697 B
Kotlin
21 lines
697 B
Kotlin
package eu.kanade.data
|
|
|
|
import com.squareup.sqldelight.ColumnAdapter
|
|
import java.util.Date
|
|
|
|
val dateAdapter = object : ColumnAdapter<Date, Long> {
|
|
override fun decode(databaseValue: Long): Date = Date(databaseValue)
|
|
override fun encode(value: Date): Long = value.time
|
|
}
|
|
|
|
private const val listOfStringsSeparator = ", "
|
|
val listOfStringsAdapter = object : ColumnAdapter<List<String>, String> {
|
|
override fun decode(databaseValue: String) =
|
|
if (databaseValue.isEmpty()) {
|
|
listOf()
|
|
} else {
|
|
databaseValue.split(listOfStringsSeparator)
|
|
}
|
|
override fun encode(value: List<String>) = value.joinToString(separator = listOfStringsSeparator)
|
|
}
|