diff --git a/README.md b/README.md index 1c6cc009a..8f6b007eb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ![Image](https://github.com/agrosner/DBFlow/blob/develop/dbflow_banner.png?raw=true) -[![JitPack.io](https://img.shields.io/badge/JitPack.io-4.1.0-red.svg?style=flat)](https://jitpack.io/#Raizlabs/DBFlow) [![Android Weekly](http://img.shields.io/badge/Android%20Weekly-%23129-2CB3E5.svg?style=flat)](http://androidweekly.net/issues/issue-129) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-DBFlow-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/1134) +[![JitPack.io](https://img.shields.io/badge/JitPack.io-4.1.1-red.svg?style=flat)](https://jitpack.io/#Raizlabs/DBFlow) [![Android Weekly](http://img.shields.io/badge/Android%20Weekly-%23129-2CB3E5.svg?style=flat)](http://androidweekly.net/issues/issue-129) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-DBFlow-brightgreen.svg?style=flat)](https://android-arsenal.com/details/1/1134) A robust, powerful, and very simple ORM android database library with **annotation processing**. @@ -43,7 +43,7 @@ Add the library to the project-level build.gradle, using the apt plugin to enabl apply plugin: 'kotlin-kapt' // required for kotlin. - def dbflow_version = "4.1.0" + def dbflow_version = "4.1.1" // or dbflow_version = "develop-SNAPSHOT" for grabbing latest dependency in your project on the develop branch // or 10-digit short-hash of a specific commit. (Useful for bugs fixed in develop, but not in a release yet) diff --git a/dbflow-kotlinextensions/src/main/java/com/raizlabs/android/dbflow/kotlinextensions/OneToManyExtensions.kt b/dbflow-kotlinextensions/src/main/java/com/raizlabs/android/dbflow/kotlinextensions/OneToManyExtensions.kt index dd591c448..6e63c8086 100644 --- a/dbflow-kotlinextensions/src/main/java/com/raizlabs/android/dbflow/kotlinextensions/OneToManyExtensions.kt +++ b/dbflow-kotlinextensions/src/main/java/com/raizlabs/android/dbflow/kotlinextensions/OneToManyExtensions.kt @@ -15,7 +15,7 @@ class OneToMany(private val query: () -> ModelQueriable) : ReadWrite private var list: List? = null override fun getValue(thisRef: Any, property: KProperty<*>): List? { - if (list?.isEmpty() ?: true) { + if (list?.isEmpty() != false) { list = query().list } return list diff --git a/dbflow-processor/build.gradle b/dbflow-processor/build.gradle index dc9975440..b78e31608 100644 --- a/dbflow-processor/build.gradle +++ b/dbflow-processor/build.gradle @@ -7,10 +7,10 @@ targetCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8 dependencies { - implementation project("${dbflow_project_prefix}dbflow-core") - implementation 'com.squareup:javapoet:1.9.0' - implementation 'com.github.agrosner:KPoet:1.0.0' - implementation "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" + compile project("${dbflow_project_prefix}dbflow-core") + compile 'com.squareup:javapoet:1.9.0' + compile 'com.github.agrosner:KPoet:1.0.0' + compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version" compileOnly 'org.glassfish:javax.annotation:10.0-b28' diff --git a/dbflow-processor/src/main/java/com/raizlabs/android/dbflow/processor/definition/column/ColumnAccessCombiner.kt b/dbflow-processor/src/main/java/com/raizlabs/android/dbflow/processor/definition/column/ColumnAccessCombiner.kt index 345bbd0b2..5b4143ddb 100644 --- a/dbflow-processor/src/main/java/com/raizlabs/android/dbflow/processor/definition/column/ColumnAccessCombiner.kt +++ b/dbflow-processor/src/main/java/com/raizlabs/android/dbflow/processor/definition/column/ColumnAccessCombiner.kt @@ -182,7 +182,12 @@ class SqliteStatementAccessCombiner(combiner: Combiner) statement("statement.bind$statementMethod($offset, $defaultValue)") } } else { - statement("statement.bind${wrapperMethod}OrNull($offset, $subWrapperFieldAccess)") + if (subWrapperAccessor != null) { + statement("statement.bind${wrapperMethod}OrNull($offset, $fieldAccess != null ? $subWrapperFieldAccess : null)") + } else { + statement("statement.bind${wrapperMethod}OrNull($offset, $subWrapperFieldAccess)") + } + } } } diff --git a/dbflow-tests/src/test/java/com/raizlabs/android/dbflow/models/SimpleTestModels.kt b/dbflow-tests/src/test/java/com/raizlabs/android/dbflow/models/SimpleTestModels.kt index a2cbddc53..db1084b79 100644 --- a/dbflow-tests/src/test/java/com/raizlabs/android/dbflow/models/SimpleTestModels.kt +++ b/dbflow-tests/src/test/java/com/raizlabs/android/dbflow/models/SimpleTestModels.kt @@ -78,6 +78,7 @@ class OrderCursorModel(@PrimaryKey var id: Int = 0, @Column var name: String? = @Table(database = TestDatabase::class) class TypeConverterModel(@PrimaryKey var id: Int = 0, + @Column(typeConverter = BlobConverter::class) var opaqueData: ByteArray? = null, @Column var blob: Blob? = null, @Column(typeConverter = CustomTypeConverter::class) @PrimaryKey var customType: CustomType? = null) @@ -156,6 +157,18 @@ class CustomEnumTypeConverter : TypeConverter() { } +@com.raizlabs.android.dbflow.annotation.TypeConverter +class BlobConverter : TypeConverter() { + + override fun getDBValue(model: ByteArray?): Blob? { + return if (model == null) null else Blob(model) + } + + override fun getModelValue(data: Blob?): ByteArray? { + return data?.blob + } +} + @Table(database = TestDatabase::class) class DefaultModel(@PrimaryKey @Column(defaultValue = "5") var id: Int? = 0, @Column(defaultValue = "5.0") var location: Double? = 0.0, diff --git a/gradle.properties b/gradle.properties index d3c83148e..626d7d7bf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=4.0.5 +version=4.1.1 version_code=1 group=com.raizlabs.android bt_siteUrl=https://github.com/Raizlabs/DBFlow