Fixed
Status Update
Comments
yb...@google.com <yb...@google.com> #2
Yeah, it is our API issue. It is very unclear to developer that this will happen. Should we pass lifecycle as parameter?
ba...@lamelcolor.ch <ba...@lamelcolor.ch> #3
IMO it is complicated issue/feature.
I see three possible use case scenarios:
1. Single actionBar/toolbar per activity. NavigationUI.setupWithNavController works fine.
2. Every fragment has its own toolbar. NavigationUI.setupWithNavController leaks views. And managing back arrow inside Toolbar is not necessary since it it not going to change.
3. Same toolbar used only for some fragments. Such case can occur when parent fragment has back stack with childFragmenManager.
I am not sure how to solve this best. If SDK user will pass fragmentLifecycle instead of viewLifeCycle then view is still be leaked for some time.
I decided not to use these methods at all because in my case (2nd) it is needed to update Toolbar only once - after Toolbar view create.
I see three possible use case scenarios:
1. Single actionBar/toolbar per activity. NavigationUI.setupWithNavController works fine.
2. Every fragment has its own toolbar. NavigationUI.setupWithNavController leaks views. And managing back arrow inside Toolbar is not necessary since it it not going to change.
3. Same toolbar used only for some fragments. Such case can occur when parent fragment has back stack with childFragmenManager.
I am not sure how to solve this best. If SDK user will pass fragmentLifecycle instead of viewLifeCycle then view is still be leaked for some time.
I decided not to use these methods at all because in my case (2nd) it is needed to update Toolbar only once - after Toolbar view create.
el...@google.com <el...@google.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit d87596efaefed2570133a883d7c304e9ea95e7a8
Author: Ian Lake <ilake@google.com>
Date: Wed Aug 15 16:04:39 2018
Use WeakReferences in NavigationUI
Avoid storing a strong reference to views
(such as a Toolbar within a Fragment) in
OnNavigatedListeners created by
NavigationUI.
NavigationUI makes an effort to clean up
after itself by removing the
OnNavigatedListener if one of its
WeakReferences was garbage collected.
Test: ran the integration test app
BUG: 111961977
Change-Id: Iea466591cc77e79b3b056108d2818afe22d1ddc6
M navigation/ui/src/main/java/androidx/navigation/ui/NavigationUI.java
https://android-review.googlesource.com/732894
https://goto.google.com/android-sha1/d87596efaefed2570133a883d7c304e9ea95e7a8
Branch: androidx-master-dev
commit d87596efaefed2570133a883d7c304e9ea95e7a8
Author: Ian Lake <ilake@google.com>
Date: Wed Aug 15 16:04:39 2018
Use WeakReferences in NavigationUI
Avoid storing a strong reference to views
(such as a Toolbar within a Fragment) in
OnNavigatedListeners created by
NavigationUI.
NavigationUI makes an effort to clean up
after itself by removing the
OnNavigatedListener if one of its
WeakReferences was garbage collected.
Test: ran the integration test app
BUG: 111961977
Change-Id: Iea466591cc77e79b3b056108d2818afe22d1ddc6
M navigation/ui/src/main/java/androidx/navigation/ui/NavigationUI.java
ev...@gmail.com <ev...@gmail.com> #6
yes i tested it on
ba...@lamelcolor.ch <ba...@lamelcolor.ch> #7
Sorry I don't understand your request ! What do you means about that ?
el...@google.com <el...@google.com> #8
Hi - I believe comment #6 was a spam post, you can ignore it!
el...@google.com <el...@google.com> #9
Sorry - one more follow up question - could you clarify what you mean by "This error not occur because I have no change my db version."? I'm working on reproducing the error and want to have the full backstory.
ba...@lamelcolor.ch <ba...@lamelcolor.ch> #10
It is to say it's not a error by oversight.
el...@google.com <el...@google.com> #11
Could you share the AutoMigration implementation that is getting generated? It should be located somewhere in the /build/generated/ap_generated_sources/ directory.
ap...@google.com <ap...@google.com> #12
Project: platform/frameworks/support
Branch: androidx-main
commit 87c1e43b72f3eaa6342fe7afe9136e4994b8d055
Author: Elif Bilgin <elifbilgin@google.com>
Date: Mon Jul 19 10:05:33 2021
Resolving Auto-Migration error when a new column is added to an embedded Entity between versions.
This fix is particularly for the issue when the nullability of a column that is in an embedded entity is misinterpreted, generating an auto migration with missing default values.
Bug: 193798291
Test: AutoMigrationTest.java
Change-Id: I5fcb1bcf6bf0af9763ed90aea6ec4f25581ca63d
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.EmbeddedAutoMigrationDb/2.json
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/EmbeddedAutoMigrationDb.java
M room/room-compiler/src/main/kotlin/androidx/room/writer/AutoMigrationWriter.kt
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.EmbeddedAutoMigrationDb/1.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/AutoMigrationTest.java
https://android-review.googlesource.com/1771292
Branch: androidx-main
commit 87c1e43b72f3eaa6342fe7afe9136e4994b8d055
Author: Elif Bilgin <elifbilgin@google.com>
Date: Mon Jul 19 10:05:33 2021
Resolving Auto-Migration error when a new column is added to an embedded Entity between versions.
This fix is particularly for the issue when the nullability of a column that is in an embedded entity is misinterpreted, generating an auto migration with missing default values.
Bug: 193798291
Test: AutoMigrationTest.java
Change-Id: I5fcb1bcf6bf0af9763ed90aea6ec4f25581ca63d
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.EmbeddedAutoMigrationDb/2.json
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/EmbeddedAutoMigrationDb.java
M room/room-compiler/src/main/kotlin/androidx/room/writer/AutoMigrationWriter.kt
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.EmbeddedAutoMigrationDb/1.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/AutoMigrationTest.java
Description
Component used: Room auto migration Version used: 2.4.0-alpha02 Devices/Android versions reproduced on: Samsung xcover 4s / android 10
This problem occur when I have add a new column in a entity. Auto migration add this columns for the entity, but it is not pass to the entity where the object entity is embedded.
For make this error try to make auto migration when you add a new columns to a embedded entity.
This error not occur because I have no change my db version.