Skip to content

Commit

Permalink
update sql-delight to 2.0.0-SNAPSHOT
Browse files Browse the repository at this point in the history
  • Loading branch information
softartdev committed Jul 15, 2023
1 parent 1cafcbf commit 196ba64
Show file tree
Hide file tree
Showing 26 changed files with 112 additions and 81 deletions.
4 changes: 3 additions & 1 deletion android-compose-app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ plugins {
id("com.google.firebase.crashlytics")
}
apply(from = "$rootDir/gradle/common-android-sign-conf.gradle")

compose {
kotlinCompilerPlugin.set("1.4.8")
}
android {
namespace = "com.softartdev.notedelight"
compileSdk = libs.versions.compileSdk.get().toInt()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import androidx.sqlite.db.SupportSQLiteOpenHelper
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import app.cash.sqldelight.db.SqlDriver
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
import com.commonsware.cwac.saferoom.SQLCipherUtils
import com.commonsware.cwac.saferoom.SafeHelperFactory
import com.softartdev.notedelight.shared.database.DatabaseRepo.Companion.DB_NAME
Expand All @@ -18,8 +20,6 @@ import com.softartdev.notedelight.shared.database.TestSchema.thirdNote
import com.softartdev.notedelight.shared.database.createQueryWrapper
import com.softartdev.notedelight.shared.db.Note
import com.softartdev.notedelight.shared.db.NoteDb
import com.squareup.sqldelight.android.AndroidSqliteDriver
import com.squareup.sqldelight.db.SqlDriver
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
Expand Down
2 changes: 2 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ buildscript {
mavenCentral()
gradlePluginPortal()
maven(url = "https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven(url = "https://oss.sonatype.org/content/repositories/snapshots")
}
dependencies {
classpath(kotlin("gradle-plugin", libs.versions.kotlin.get()))
Expand All @@ -24,6 +25,7 @@ allprojects {
maven(url = "https://jitpack.io")
maven(url = "https://s3.amazonaws.com/repo.commonsware.com")
maven(url = "https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven(url = "https://oss.sonatype.org/content/repositories/snapshots")
}
}

Expand Down
17 changes: 10 additions & 7 deletions desktop-compose-app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,16 @@ kotlin {
}
}

compose.desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "com.softartdev.notedelight"
packageVersion = "1.0.0"
compose {
kotlinCompilerPlugin.set("1.4.8")
desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "com.softartdev.notedelight"
packageVersion = "1.0.0"
}
}
}
}
14 changes: 7 additions & 7 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ minSdk = "21"

kotlin = "1.8.20"
coroutines = "1.7.2"
sqlDelight = "1.5.5"
sqlDelight = "2.0.0-SNAPSHOT"
androidxSqlite = "2.3.1"
saferoom = "1.3.0"
androidSqlCipher = "4.5.4"
Expand Down Expand Up @@ -41,12 +41,12 @@ coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-androi
coroutines-swing = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-swing", version.ref = "coroutines" }
coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }

sqlDelight-gradlePlugin = { module = "com.squareup.sqldelight:gradle-plugin", version.ref = "sqlDelight" }
sqlDelight-runtime = { module = "com.squareup.sqldelight:runtime", version.ref = "sqlDelight" }
sqlDelight-android = { module = "com.squareup.sqldelight:android-driver", version.ref = "sqlDelight" }
sqlDelight-coroutinesExt = { module = "com.squareup.sqldelight:coroutines-extensions", version.ref = "sqlDelight" }
sqlDelight-native = { module = "com.squareup.sqldelight:native-driver", version.ref = "sqlDelight" }
sqlDelight-jvm = { module = "com.squareup.sqldelight:sqlite-driver", version.ref = "sqlDelight" }
sqlDelight-gradlePlugin = { module = "app.cash.sqldelight:gradle-plugin", version.ref = "sqlDelight" }
sqlDelight-runtime = { module = "app.cash.sqldelight:runtime", version.ref = "sqlDelight" }
sqlDelight-android = { module = "app.cash.sqldelight:android-driver", version.ref = "sqlDelight" }
sqlDelight-coroutinesExt = { module = "app.cash.sqldelight:coroutines-extensions", version.ref = "sqlDelight" }
sqlDelight-native = { module = "app.cash.sqldelight:native-driver", version.ref = "sqlDelight" }
sqlDelight-jvm = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqlDelight" }

androidx-sqlite = { module = "androidx.sqlite:sqlite", version.ref = "androidxSqlite" }
androidx-sqlite-ktx = { module = "androidx.sqlite:sqlite-ktx", version.ref = "androidxSqlite" }
Expand Down
4 changes: 3 additions & 1 deletion ios-compose-kit/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ plugins {
kotlin("native.cocoapods")
id("org.jetbrains.compose")
}

compose {
kotlinCompilerPlugin.set("1.4.8")
}
kotlin {
iosX64()
iosArm64()
Expand Down
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ pluginManagement {
gradlePluginPortal()
google()
maven(url = "https://maven.pkg.jetbrains.space/public/p/compose/dev")
maven(url = "https://oss.sonatype.org/content/repositories/snapshots")
}
}
rootProject.name = "NoteDelight"
Expand Down
5 changes: 3 additions & 2 deletions shared-compose-ui/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
@file:Suppress("OPT_IN_IS_NOT_ENABLED")
@file:OptIn(ExperimentalComposeLibrary::class)

import org.jetbrains.compose.ExperimentalComposeLibrary
Expand All @@ -9,7 +8,9 @@ plugins {
id("org.jetbrains.compose")
id("kotlin-parcelize")
}

compose {
kotlinCompilerPlugin.set("1.4.8")
}
kotlin {
jvmToolchain(11)
jvm {
Expand Down
10 changes: 6 additions & 4 deletions shared/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("multiplatform")
kotlin("native.cocoapods")
id("com.squareup.sqldelight")
id("app.cash.sqldelight")
id("com.android.library")
id("dev.icerock.mobile.multiplatform-resources")
}
Expand Down Expand Up @@ -171,8 +171,10 @@ kotlin {
}
}
sqldelight {
database("NoteDb") {
packageName = "com.softartdev.notedelight.shared.db"
// linkSqlite = false
databases {
create("NoteDb") {
packageName.set("com.softartdev.notedelight.shared.db")
// linkSqlite.set(false)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ import android.content.Context
import android.text.SpannableStringBuilder
import androidx.sqlite.db.SupportSQLiteDatabase
import androidx.sqlite.db.SupportSQLiteOpenHelper
import app.cash.sqldelight.db.QueryResult
import app.cash.sqldelight.db.SqlSchema
import app.cash.sqldelight.driver.android.AndroidSqliteDriver
import com.commonsware.cwac.saferoom.SafeHelperFactory
import com.softartdev.notedelight.shared.db.NoteDb
import com.squareup.sqldelight.android.AndroidSqliteDriver
import com.squareup.sqldelight.db.SqlDriver

class AndroidDatabaseHolder(
context: Context,
passphrase: CharSequence,
schema: SqlDriver.Schema = NoteDb.Schema,
schema: SqlSchema<QueryResult.Value<Unit>> = NoteDb.Schema,
name: String? = DatabaseRepo.DB_NAME
) : DatabaseHolder() {
private val openHelper: SupportSQLiteOpenHelper = SafeHelperFactory
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.softartdev.notedelight.shared.data

import app.cash.sqldelight.db.SqlDriver
import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
import com.softartdev.notedelight.shared.PlatformSQLiteState
import com.softartdev.notedelight.shared.database.AndroidDbRepo
import com.softartdev.notedelight.shared.database.createQueryWrapper
import com.softartdev.notedelight.shared.db.NoteDb
import com.softartdev.notedelight.shared.test.util.StubEditable
import com.squareup.sqldelight.db.SqlDriver
import com.squareup.sqldelight.sqlite.driver.JdbcSqliteDriver
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.runTest
import org.junit.Assert.assertFalse
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package com.softartdev.notedelight.shared.data

import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
import com.softartdev.notedelight.shared.database.AndroidDbRepo
import com.softartdev.notedelight.shared.database.TestSchema
import com.softartdev.notedelight.shared.database.createQueryWrapper
import com.softartdev.notedelight.shared.db.Note
import com.softartdev.notedelight.shared.db.NoteDb
import com.squareup.sqldelight.sqlite.driver.JdbcSqliteDriver
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.async
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.test.runTest
import org.junit.After
import org.junit.Assert.*
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Test
import org.mockito.Mockito
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.softartdev.notedelight.shared.database

import app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver
import com.softartdev.notedelight.shared.db.NoteDb
import com.squareup.sqldelight.sqlite.driver.JdbcSqliteDriver

class JdbcDatabaseTestHolder: DatabaseHolder() {
override val driver = JdbcSqliteDriver(JdbcSqliteDriver.IN_MEMORY)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.softartdev.notedelight.shared.data

import app.cash.sqldelight.coroutines.asFlow
import app.cash.sqldelight.coroutines.mapToList
import com.softartdev.notedelight.shared.PlatformSQLiteState
import com.softartdev.notedelight.shared.database.DatabaseRepo
import com.squareup.sqldelight.runtime.coroutines.asFlow
import com.squareup.sqldelight.runtime.coroutines.mapToList
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
import kotlinx.coroutines.flow.firstOrNull

class CryptUseCase(
Expand All @@ -21,7 +23,7 @@ class CryptUseCase(
dbRepo.closeDatabase()
val passphrase = StringBuilder(pass) // threadsafe
dbRepo.buildDatabaseInstanceIfNeed(passphrase)
dbRepo.noteQueries.getAll().asFlow().mapToList().firstOrNull()//TODO remove if no need (after tests for sign in)
dbRepo.noteQueries.getAll().asFlow().mapToList(Dispatchers.IO).firstOrNull()//TODO remove if no need (after tests for sign in)
true
} catch (t: Throwable) {
t.printStackTrace()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.softartdev.notedelight.shared.data

import app.cash.sqldelight.Query
import app.cash.sqldelight.coroutines.asFlow
import app.cash.sqldelight.coroutines.mapToList
import com.softartdev.notedelight.shared.database.DatabaseRepo
import com.softartdev.notedelight.shared.database.lastInsertRowId
import com.softartdev.notedelight.shared.database.transactionResultWithContext
import com.softartdev.notedelight.shared.date.createLocalDateTime
import com.softartdev.notedelight.shared.db.Note
import com.squareup.sqldelight.Query
import com.squareup.sqldelight.runtime.coroutines.asFlow
import com.squareup.sqldelight.runtime.coroutines.mapToList
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.IO
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.distinctUntilChanged
Expand All @@ -21,7 +22,7 @@ class NoteUseCase(
dbRepo.relaunchFlowEmitter = function
}

fun getNotes(): Flow<List<Note>> = dbRepo.noteQueries.getAll().asFlow().mapToList().distinctUntilChanged()
fun getNotes(): Flow<List<Note>> = dbRepo.noteQueries.getAll().asFlow().mapToList(Dispatchers.IO).distinctUntilChanged()

fun launchNotes(
onSuccess: (List<Note>) -> Unit,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.softartdev.notedelight.shared.database

import com.softartdev.notedelight.shared.db.NoteQueries
import com.squareup.sqldelight.Transacter
import com.squareup.sqldelight.TransactionWithReturn
import com.squareup.sqldelight.TransactionWithoutReturn
import app.cash.sqldelight.Transacter
import app.cash.sqldelight.TransactionWithReturn
import app.cash.sqldelight.TransactionWithoutReturn
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import kotlin.coroutines.CoroutineContext
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.softartdev.notedelight.shared.database

import com.softartdev.notedelight.shared.db.NoteDb
import com.softartdev.notedelight.shared.db.NoteQueries
import com.squareup.sqldelight.db.SqlDriver
import app.cash.sqldelight.db.SqlDriver


abstract class DatabaseHolder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import com.softartdev.notedelight.shared.date.DateAdapter
import com.softartdev.notedelight.shared.db.Note
import com.softartdev.notedelight.shared.db.NoteDb
import com.softartdev.notedelight.shared.db.NoteQueries
import com.squareup.sqldelight.db.SqlDriver
import app.cash.sqldelight.db.SqlDriver
import kotlinx.datetime.LocalDateTime

fun createQueryWrapper(sqlDriver: SqlDriver): NoteDb {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.softartdev.notedelight.shared.date

import com.squareup.sqldelight.ColumnAdapter
import app.cash.sqldelight.ColumnAdapter
import kotlinx.datetime.*

class DateAdapter : ColumnAdapter<LocalDateTime, Long> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.softartdev.notedelight.shared.data
import com.softartdev.notedelight.shared.BaseTest
import com.softartdev.notedelight.shared.database.TestSchema
import com.softartdev.notedelight.shared.db.Note
import com.squareup.sqldelight.internal.Atomic
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.async
import kotlinx.coroutines.flow.first
Expand Down Expand Up @@ -47,14 +46,9 @@ class NoteUseCaseTest : BaseTest() {

@Test
fun launchNotes() {
val count = Atomic(0)
noteUseCase.launchNotes(onSuccess = { actNotes ->
count.set(count.get() + 1)
println("launchNotes - #${count.get()} onSuccess = $actNotes")
if (actNotes.isNotEmpty()) {
println("launchNotes - #${count.get()} assertEquals")
assertEquals(notes, actNotes)
}
noteUseCase.launchNotes(onSuccess = successLambda@{ actNotes ->
if (actNotes.isEmpty()) return@successLambda
assertEquals(notes, actNotes)
}, onFailure = { throwable -> throw throwable })
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
package com.softartdev.notedelight.shared.database

import app.cash.sqldelight.db.QueryResult
import app.cash.sqldelight.db.SqlDriver
import app.cash.sqldelight.db.SqlSchema
import app.cash.sqldelight.driver.native.NativeSqliteDriver
import app.cash.sqldelight.driver.native.wrapConnection
import co.touchlab.sqliter.DatabaseConfiguration
import com.softartdev.notedelight.shared.db.NoteDb
import com.softartdev.notedelight.shared.db.NoteQueries
import com.squareup.sqldelight.db.SqlDriver
import com.squareup.sqldelight.drivers.native.NativeSqliteDriver
import com.squareup.sqldelight.drivers.native.wrapConnection

class IosDatabaseHolder(
key: String? = null,
rekey: String? = null,
name: String = DatabaseRepo.DB_NAME,
schema: SqlDriver.Schema = NoteDb.Schema
schema: SqlSchema<QueryResult.Value<Unit>> = NoteDb.Schema
) : DatabaseHolder() {
private val configuration = createDatabaseConfiguration(name, schema, key, rekey)
override val driver: SqlDriver = NativeSqliteDriver(configuration)
Expand All @@ -23,17 +25,19 @@ class IosDatabaseHolder(
companion object {
fun createDatabaseConfiguration(
name: String = DatabaseRepo.DB_NAME,
schema: SqlDriver.Schema = NoteDb.Schema,
schema: SqlSchema<QueryResult.Value<Unit>> = NoteDb.Schema,
key: String? = null,
rekey: String? = null
): DatabaseConfiguration = DatabaseConfiguration(
name = name,
version = schema.version,
version = schema.version.toInt(),
create = { connection ->
wrapConnection(connection) { schema.create(it) }
},
upgrade = { connection, oldVersion, newVersion ->
wrapConnection(connection) { schema.migrate(it, oldVersion, newVersion) }
wrapConnection(connection) { schema.migrate(it, oldVersion.toLong(),
newVersion.toLong()
) }
},
encryptionConfig = DatabaseConfiguration.Encryption(
key = key,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.softartdev.notedelight.shared.database

import com.softartdev.notedelight.shared.PlatformSQLiteState
import com.softartdev.notedelight.shared.IosCipherUtils
import com.softartdev.notedelight.shared.PlatformSQLiteState
import com.softartdev.notedelight.shared.data.PlatformSQLiteThrowable
import com.softartdev.notedelight.shared.db.NoteQueries

Expand Down
Loading

0 comments on commit 196ba64

Please sign in to comment.