Resolving DAO function default value issue.

In generated code, when an EntityCursorConverter is generated, the default value for columns of type Double were incorrectly being set to 0, instead of 0.0. This has been fixed in this CL. A fix for potential issues with Float have also been handled.

Bug: 304584179
Test: DaoKotlinCodegenTest.kt
(cherry picked from https://android-review.googlesource.com/q/commit:6aa7e7e786298cad202cda711e05d514cf50fe30)
Merged-In: Id75f51766f8bb98caf899a61358557d8488c3631
Change-Id: Id75f51766f8bb98caf899a61358557d8488c3631
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt b/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
index e79616a..fda482f 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
@@ -317,6 +317,10 @@
         "null"
     } else if (this == XTypeName.PRIMITIVE_BOOLEAN) {
         "false"
+    } else if (this == XTypeName.PRIMITIVE_DOUBLE) {
+        "0.0"
+    } else if (this == XTypeName.PRIMITIVE_FLOAT) {
+        "0f"
     } else {
         "0"
     }
diff --git a/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt b/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt
index ca22005..c5c7d81 100644
--- a/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt
+++ b/room/room-compiler/src/test/kotlin/androidx/room/writer/DaoKotlinCodeGenTest.kt
@@ -961,6 +961,8 @@
             data class MyEntity(
                 @PrimaryKey
                 val pk: Long,
+                val doubleColumn: Double,
+                val floatColumn: Float,
             )
             """.trimIndent()
         )
diff --git a/room/room-compiler/src/test/test-data/kotlinCodeGen/rawQuery.kt b/room/room-compiler/src/test/test-data/kotlinCodeGen/rawQuery.kt
index 2361e59..4472909 100644
--- a/room/room-compiler/src/test/test-data/kotlinCodeGen/rawQuery.kt
+++ b/room/room-compiler/src/test/test-data/kotlinCodeGen/rawQuery.kt
@@ -5,6 +5,8 @@
 import androidx.sqlite.db.SupportSQLiteQuery
 import java.lang.Class
 import javax.`annotation`.processing.Generated
+import kotlin.Double
+import kotlin.Float
 import kotlin.Int
 import kotlin.Long
 import kotlin.Suppress
@@ -40,13 +42,27 @@
     private fun __entityCursorConverter_MyEntity(cursor: Cursor): MyEntity {
         val _entity: MyEntity
         val _cursorIndexOfPk: Int = getColumnIndex(cursor, "pk")
+        val _cursorIndexOfDoubleColumn: Int = getColumnIndex(cursor, "doubleColumn")
+        val _cursorIndexOfFloatColumn: Int = getColumnIndex(cursor, "floatColumn")
         val _tmpPk: Long
         if (_cursorIndexOfPk == -1) {
             _tmpPk = 0
         } else {
             _tmpPk = cursor.getLong(_cursorIndexOfPk)
         }
-        _entity = MyEntity(_tmpPk)
+        val _tmpDoubleColumn: Double
+        if (_cursorIndexOfDoubleColumn == -1) {
+            _tmpDoubleColumn = 0.0
+        } else {
+            _tmpDoubleColumn = cursor.getDouble(_cursorIndexOfDoubleColumn)
+        }
+        val _tmpFloatColumn: Float
+        if (_cursorIndexOfFloatColumn == -1) {
+            _tmpFloatColumn = 0f
+        } else {
+            _tmpFloatColumn = cursor.getFloat(_cursorIndexOfFloatColumn)
+        }
+        _entity = MyEntity(_tmpPk,_tmpDoubleColumn,_tmpFloatColumn)
         return _entity
     }