Fixed
Status Update
Comments
da...@google.com <da...@google.com>
ap...@google.com <ap...@google.com> #2
hmm room builder cannot take converters because we need them at compile time BUT we can receive a converter factory instead of initializing them ourselves.
Then one can write a type converter producer similar to view models .
https://github.com/googlesamples/android-architecture-components/blob/master/GithubBrowserSample/app/src/main/java/com/android/example/github/viewmodel/GithubViewModelFactory.kt
Then one can write a type converter producer similar to view models .
ap...@google.com <ap...@google.com> #3
Yes, that would be very much appreciated!
ap...@google.com <ap...@google.com> #4
Hey guys.
Has any progress been made on this issue? It's really frustrating to not be able to inject my own dependencies into type converter classes.
Has any progress been made on this issue? It's really frustrating to not be able to inject my own dependencies into type converter classes.
da...@google.com <da...@google.com> #5
Unfortunately no :( Any we ahve very resource constraint right now to prioritize it. If you would like to help, i'm happy to help you through the aosp setup.
ae...@gmail.com <ae...@gmail.com> #6
I would like to implement this. I already started analysis and will come back with a rough design idea in a couple of days.
ap...@google.com <ap...@google.com> #7
After spending some time on analysis I created a design doc with API proposal. I described how an implementation could work as well. I've probably missed some cases so please take a look and comment.
da...@google.com <da...@google.com>
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 7bd7c652fdb061d643b80f09ed3a2f1da8b12e23
Author: mzgreen <yairobbe@gmail.com>
Date: Sat Sep 19 06:02:23 2020
[GH] Add Provided Type Converter feature
This change introduces a new `@ProvidedTypeConverter` annotation that gives developers control over type converter instantiation so they can use external dependencies inside type converters. A type converter class annotated with `@ProvidedTypeConverter` won't be instantiated by Room. Room will expect such converters to be passed at runtime using new `builder.addTypeConverter()` method.
Design doc:https://docs.google.com/document/d/1nmXZUsSlH6WWsT3Duxnkd4LcAPZGcyVCwJe5scnh7HU/edit?usp=sharing
Test: Added `ProvidedTypeConverterTest`
Fixes: b/121067210
RelNote: Room can have provided type converter annotation which allow developers to take control over type converters instantiation
This is an imported pull request fromhttps://github.com/androidx/androidx/pull/75 .
Resolves #75
Github-Pr-Head-Sha: 7977774c1e06737ef3de88b6a57f54cda1196030
GitOrigin-RevId: c9a9d960cf95ac6cb329d8509b11d992cc034350
Change-Id: Ie4fa505b36f8aa3c98091f60af9cbbdb10ca3f33
M room/common/api/current.txt
M room/common/api/public_plus_experimental_current.txt
M room/common/api/restricted_current.txt
A room/common/src/main/java/androidx/room/ProvidedTypeConverter.java
M room/compiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/solver/types/CustomTypeConverterWrapper.kt
M room/compiler/src/main/kotlin/androidx/room/vo/CustomTypeConverter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/ClassWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/test/data/daoWriter/output/ComplexDao.java
M room/compiler/src/test/data/daoWriter/output/DeletionDao.java
M room/compiler/src/test/data/daoWriter/output/UpdateDao.java
M room/compiler/src/test/data/daoWriter/output/WriterDao.java
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ProvidedTypeConverterTest.java
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/DatabaseConfiguration.java
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
https://android-review.googlesource.com/1420128
Branch: androidx-master-dev
commit 7bd7c652fdb061d643b80f09ed3a2f1da8b12e23
Author: mzgreen <yairobbe@gmail.com>
Date: Sat Sep 19 06:02:23 2020
[GH] Add Provided Type Converter feature
This change introduces a new `@ProvidedTypeConverter` annotation that gives developers control over type converter instantiation so they can use external dependencies inside type converters. A type converter class annotated with `@ProvidedTypeConverter` won't be instantiated by Room. Room will expect such converters to be passed at runtime using new `builder.addTypeConverter()` method.
Design doc:
Test: Added `ProvidedTypeConverterTest`
Fixes:
RelNote: Room can have provided type converter annotation which allow developers to take control over type converters instantiation
This is an imported pull request from
Resolves #75
Github-Pr-Head-Sha: 7977774c1e06737ef3de88b6a57f54cda1196030
GitOrigin-RevId: c9a9d960cf95ac6cb329d8509b11d992cc034350
Change-Id: Ie4fa505b36f8aa3c98091f60af9cbbdb10ca3f33
M room/common/api/current.txt
M room/common/api/public_plus_experimental_current.txt
M room/common/api/restricted_current.txt
A room/common/src/main/java/androidx/room/ProvidedTypeConverter.java
M room/compiler/src/main/kotlin/androidx/room/processor/CustomConverterProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/solver/types/CustomTypeConverterWrapper.kt
M room/compiler/src/main/kotlin/androidx/room/vo/CustomTypeConverter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/ClassWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DaoWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/test/data/daoWriter/output/ComplexDao.java
M room/compiler/src/test/data/daoWriter/output/DeletionDao.java
M room/compiler/src/test/data/daoWriter/output/UpdateDao.java
M room/compiler/src/test/data/daoWriter/output/WriterDao.java
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/ProvidedTypeConverterTest.java
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/DatabaseConfiguration.java
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
ap...@google.com <ap...@google.com> #9
ap...@google.com <ap...@google.com> #10
Project: platform/frameworks/support
Branch: androidx-main
commit dd675f1fac8b398237480cb69ecbe92e37aff27f
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Fri Jul 19 11:25:47 2024
Update query interceptor API to take Coroutine context
Updates the query callback API to use a provided coroutine context if given.
Bug: 309996304
Bug: 354047950
Bug: 354051564
Test: QueryInterceptorTest
Relnote: "Add an overload of setQueryCallback() that accepts a CoroutineContext."
Change-Id: Id66ff055ce126085d50cad15f8982ad88c34267e
M room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/QueryInterceptorTest.kt
M room/room-runtime/api/current.txt
M room/room-runtime/api/restricted_current.txt
M room/room-runtime/src/androidMain/kotlin/androidx/room/RoomDatabase.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/support/QueryInterceptorOpenHelper.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/support/QueryInterceptorOpenHelperFactory.android.kt
https://android-review.googlesource.com/3185079
Branch: androidx-main
commit dd675f1fac8b398237480cb69ecbe92e37aff27f
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Fri Jul 19 11:25:47 2024
Update query interceptor API to take Coroutine context
Updates the query callback API to use a provided coroutine context if given.
Bug: 309996304
Bug: 354047950
Bug: 354051564
Test: QueryInterceptorTest
Relnote: "Add an overload of setQueryCallback() that accepts a CoroutineContext."
Change-Id: Id66ff055ce126085d50cad15f8982ad88c34267e
M room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/QueryInterceptorTest.kt
M room/room-runtime/api/current.txt
M room/room-runtime/api/restricted_current.txt
M room/room-runtime/src/androidMain/kotlin/androidx/room/RoomDatabase.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/support/QueryInterceptorOpenHelper.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/support/QueryInterceptorOpenHelperFactory.android.kt
ap...@google.com <ap...@google.com> #11
Project: platform/frameworks/support
Branch: androidx-main
commit be1ba95905b53d8e3d9b51257f02835ff5f96bce
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Aug 01 15:14:37 2024
Migrate LiveData result binder to driver API
Also refactor RoomTrackingLiveData infra to Coroutine so driver APIs can be used.
Bug: 309996304
Test: DaoKotlinCodeGenTest
Change-Id: I75388ed6c7f7a55cea12f17aa1393b54742db7e5
M room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
M room/room-compiler/src/main/kotlin/androidx/room/solver/query/result/LiveDataQueryResultBinder.kt
M room/room-compiler/src/test/test-data/daoWriter/output/javac/withLambda/ComplexDao.java
M room/room-compiler/src/test/test-data/daoWriter/output/javac/withoutLambda/ComplexDao.java
M room/room-compiler/src/test/test-data/daoWriter/output/ksp/ComplexDao.java
M room/room-compiler/src/test/test-data/kotlinCodeGen/liveDataCallable.kt
M room/room-runtime/api/restricted_current.txt
M room/room-runtime/src/androidMain/kotlin/androidx/room/InvalidationLiveDataContainer.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/InvalidationTracker.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/RoomTrackingLiveData.android.kt
https://android-review.googlesource.com/3205550
Branch: androidx-main
commit be1ba95905b53d8e3d9b51257f02835ff5f96bce
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Aug 01 15:14:37 2024
Migrate LiveData result binder to driver API
Also refactor RoomTrackingLiveData infra to Coroutine so driver APIs can be used.
Bug: 309996304
Test: DaoKotlinCodeGenTest
Change-Id: I75388ed6c7f7a55cea12f17aa1393b54742db7e5
M room/room-compiler/src/main/kotlin/androidx/room/ext/xpoet_ext.kt
M room/room-compiler/src/main/kotlin/androidx/room/solver/query/result/LiveDataQueryResultBinder.kt
M room/room-compiler/src/test/test-data/daoWriter/output/javac/withLambda/ComplexDao.java
M room/room-compiler/src/test/test-data/daoWriter/output/javac/withoutLambda/ComplexDao.java
M room/room-compiler/src/test/test-data/daoWriter/output/ksp/ComplexDao.java
M room/room-compiler/src/test/test-data/kotlinCodeGen/liveDataCallable.kt
M room/room-runtime/api/restricted_current.txt
M room/room-runtime/src/androidMain/kotlin/androidx/room/InvalidationLiveDataContainer.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/InvalidationTracker.android.kt
M room/room-runtime/src/androidMain/kotlin/androidx/room/RoomTrackingLiveData.android.kt
da...@google.com <da...@google.com>
pr...@google.com <pr...@google.com> #12
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.room:room-compiler:2.7.0-alpha06
androidx.room:room-runtime:2.7.0-alpha06
androidx.room:room-runtime-android:2.7.0-alpha06
androidx.room:room-runtime-iosarm64:2.7.0-alpha06
androidx.room:room-runtime-iossimulatorarm64:2.7.0-alpha06
androidx.room:room-runtime-iosx64:2.7.0-alpha06
androidx.room:room-runtime-jvm:2.7.0-alpha06
androidx.room:room-runtime-linuxx64:2.7.0-alpha06
androidx.room:room-runtime-macosarm64:2.7.0-alpha06
androidx.room:room-runtime-macosx64:2.7.0-alpha06
Description