Fixed
Status Update
Comments
yb...@google.com <yb...@google.com> #2
Building note: run ./gradlew ... -x processReleaseMetadata
[Deleted User] <[Deleted User]> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 5f6e46e40a7e47924ac1d04426230466de7b6f38
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Tue Aug 07 15:57:10 2018
Fix ViewModel proguard rules
It removes allowshrinking modifier: a constructor
shouldn't be removed if it is unused, because it is
called through reflection
Test: manual =\
bug: 112230489
Change-Id: I215fe895fa12eb04172e9380a296e2d74567907c
M lifecycle/viewmodel/proguard-rules.pro
https://android-review.googlesource.com/727573
https://goto.google.com/android-sha1/5f6e46e40a7e47924ac1d04426230466de7b6f38
Branch: androidx-master-dev
commit 5f6e46e40a7e47924ac1d04426230466de7b6f38
Author: Sergey Vasilinets <sergeyv@google.com>
Date: Tue Aug 07 15:57:10 2018
Fix ViewModel proguard rules
It removes allowshrinking modifier: a constructor
shouldn't be removed if it is unused, because it is
called through reflection
Test: manual =\
bug: 112230489
Change-Id: I215fe895fa12eb04172e9380a296e2d74567907c
M lifecycle/viewmodel/proguard-rules.pro
yb...@google.com <yb...@google.com> #4
Thanks!
[Deleted User] <[Deleted User]> #5
I had the similar problem. Hoping the problem will be fixed in the next release. Thank team!
yb...@google.com <yb...@google.com> #6
it will be part of rc02
ap...@google.com <ap...@google.com> #7
When will rc02 be released?
Description
Version used: 2.0.0
Devices/Android versions reproduced on: N/A
In current version of room if I mark method in DAO with @Transaction, and if it uses any disposable e.g. Single, the generated code will throw main thread access exception at runtime.
I would expect one of two behaviours instead:
1. It would be ideal if room could somehow defer start/end transaction to match thread that is used on Disposable, but I can imagine that this can be not possible.
2. To get compile time warning or error that this may be not the correct way of using @Transaction with mix of asynchronous code.
Example of code:
Method in abstract DAO:
@Transaction
open fun upsert(obj: T): Single<Boolean> {
return insert(obj)
.map { true }
.onErrorResumeNext {
if (it is SQLiteConstraintException)
{ update(obj)
.map { true }
} else {
Single.error(it) }
}
.subscribeOn(Schedulers.io()) }
Generated method:
@Override
public Single<Boolean> upsert(Supplier obj) {
__db.beginTransaction();
try {
Single<Boolean> _result = super.upsert(obj);
__db.setTransactionSuccessful();
return _result;
} finally {
__db.endTransaction();
}
}