Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
https://android-review.googlesource.com/1123258
https://goto.google.com/android-sha1/b90079595f33f58fece04026a97faa0d243acdb1
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
va...@gmail.com <va...@gmail.com> #3
il...@google.com <il...@google.com>
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically ( b/140759491 ).
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
https://android-review.googlesource.com/1288456
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically (
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
il...@google.com <il...@google.com> #5
We've added the appropriate ProGuard configuration and it'll be available in the next release.
As a workaround, you can add the following to your ProGuard configuration:
-keepclassmembers class android.support.v7.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
As a workaround, you can add the following to your ProGuard configuration:
-keepclassmembers class android.support.v7.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
va...@gmail.com <va...@gmail.com> #6
Sure, thanks for the quick fix.
va...@gmail.com <va...@gmail.com> #7
I had to use the androidx version for proguard rules
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
il...@google.com <il...@google.com> #8
Yep, Jetifier will automatically convert ProGuard rules packaged with libraries, but if you're adding the ProGuard files to your own project, you'll need to make sure to use the AndroidX equivalents if your project is using AndroidX.
br...@gmail.com <br...@gmail.com> #9
This issue seems to be back again? ... I'm using v2.2.0-rc02 and have run into the issue. Using the proguard rule below (mentioned in #7 above) to work around the issue seems to fix it.
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
Looking at the commit linked above that fixed the issue originally, it adds a proguard rule to fix the issue for the old support library, but not a rule for the AndroidX equivalent. #8 suggests that Jetifier will handle the AndroidX conversion, but that doesn't seem to be the case? I'm using AndroidX and Jetifier and without the specfic -keep rule above for androidx, my back arrow icon gets removed in release (minified) builds.
-keepclassmembers class androidx.appcompat.graphics.drawable.DrawerArrowDrawable {
void setProgress(float);
}
Looking at the commit linked above that fixed the issue originally, it adds a proguard rule to fix the issue for the old support library, but not a rule for the AndroidX equivalent. #8 suggests that Jetifier will handle the AndroidX conversion, but that doesn't seem to be the case? I'm using AndroidX and Jetifier and without the specfic -keep rule above for androidx, my back arrow icon gets removed in release (minified) builds.
il...@google.com <il...@google.com> #10
Re #9 - I filed
jb...@google.com <jb...@google.com> #11
Do you have jetifier enabled by adding android.enableJetifier=true
in your gradle.properties file? If so it should work fine. We opened a bug to change the rule over so that enabling jetifier is not required in a future release (
br...@gmail.com <br...@gmail.com> #12
Re #11, I do have jetifier enabled, and still see the regression mentioned in #9
Description
Version used: 1.0.0-alpha11
Devices/Android versions reproduced on: Android Pie, Pixel 2 XL
Back arrow is not shown in tool bar (set as support action bar) in release build with minifyEnabled. Hamburger icon is still shown and is functional (navigates back to previous fragment). The fragment having the issue is not set as a topLevelDestinationIds in AppBarConfiguration (used in setupActionBarWithNavController)
Works fine in
debug build
release build ( with minifyEnabled false, shrinkResources false and useProguard true )
Fails in
release build ( with minifyEnabled true, shrinkResources false and useProguard true )
Does navigation need something for release builds with minifyEnabled?