Fixed
Status Update
Comments
se...@google.com <se...@google.com> #2
we've initially planned this for 1.0.0 but didn't make the cut.
se...@google.com <se...@google.com> #3
I would add my +1 to this, if only that Room would recognize views (creation being secondary as it can be accomplished with raw queries).
yb...@google.com <yb...@google.com> #4
+1 For this. View support would be very helpful.
se...@google.com <se...@google.com> #5
+1 For this
ch...@beyls.net <ch...@beyls.net> #6
+1 For this
ne...@gmail.com <ne...@gmail.com> #7
+10 for view support :)
m....@gmail.com <m....@gmail.com> #8
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 86ccd847759ea146464aaaf9ed128342d704b3ac
Author: Yuichi Araki <yaraki@google.com>
Date: Mon Aug 06 12:15:14 2018
Database View
Use @DatabaseView to create a view.
Bug: 67033276
Test: DatabaseViewTest, DatabaseViewProcessorTest, DatabaseVerifierTest,
Test: DatabaseWriterTest, SQLiteOpenHelperWriterTest,
Test: DatabaseViewSyncTest, InvalidationTrackerTest
Change-Id: I4a909add53f82fc6816b8d944278a3c9abef735d
M room/common/api/current.txt
M room/common/src/main/java/androidx/room/Database.java
A room/common/src/main/java/androidx/room/DatabaseView.java
M room/common/src/main/java/androidx/room/SkipQueryVerification.java
M room/compiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
M room/compiler/src/main/kotlin/androidx/room/parser/ParserErrors.kt
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
A room/compiler/src/main/kotlin/androidx/room/processor/DatabaseViewProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Database.kt
A room/compiler/src/main/kotlin/androidx/room/vo/DatabaseView.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
A room/compiler/src/main/kotlin/androidx/room/writer/ViewInfoValidationWriter.kt
A room/compiler/src/test/data/common/input/UserSummary.java
M room/compiler/src/test/data/databasewriter/input/ComplexDatabase.java
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
M room/compiler/src/test/kotlin/androidx/room/verifier/DatabaseVerifierTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/TestDatabase.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/dao/PetDao.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java
A room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/vo/DogWithOwner.java
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/8.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/PetDao.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationDb.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetWithUser.java
M room/migration/src/main/java/androidx/room/migration/bundle/BundleUtil.java
M room/migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/DatabaseViewBundle.java
M room/migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.java
A room/migration/src/test/java/androidx/room/migration/bundle/DatabaseViewBundleTest.java
A room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
A room/runtime/src/main/java/androidx/room/util/ViewInfo.java
M room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
https://android-review.googlesource.com/731045
https://goto.google.com/android-sha1/86ccd847759ea146464aaaf9ed128342d704b3ac
Branch: androidx-master-dev
commit 86ccd847759ea146464aaaf9ed128342d704b3ac
Author: Yuichi Araki <yaraki@google.com>
Date: Mon Aug 06 12:15:14 2018
Database View
Use @DatabaseView to create a view.
Bug: 67033276
Test: DatabaseViewTest, DatabaseViewProcessorTest, DatabaseVerifierTest,
Test: DatabaseWriterTest, SQLiteOpenHelperWriterTest,
Test: DatabaseViewSyncTest, InvalidationTrackerTest
Change-Id: I4a909add53f82fc6816b8d944278a3c9abef735d
M room/common/api/current.txt
M room/common/src/main/java/androidx/room/Database.java
A room/common/src/main/java/androidx/room/DatabaseView.java
M room/common/src/main/java/androidx/room/SkipQueryVerification.java
M room/compiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
M room/compiler/src/main/kotlin/androidx/room/parser/ParserErrors.kt
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
A room/compiler/src/main/kotlin/androidx/room/processor/DatabaseViewProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Database.kt
A room/compiler/src/main/kotlin/androidx/room/vo/DatabaseView.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
A room/compiler/src/main/kotlin/androidx/room/writer/ViewInfoValidationWriter.kt
A room/compiler/src/test/data/common/input/UserSummary.java
M room/compiler/src/test/data/databasewriter/input/ComplexDatabase.java
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
M room/compiler/src/test/kotlin/androidx/room/verifier/DatabaseVerifierTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/DaoWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/TestDatabase.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/dao/PetDao.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java
A room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/vo/DogWithOwner.java
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/8.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/PetDao.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationDb.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetWithUser.java
M room/migration/src/main/java/androidx/room/migration/bundle/BundleUtil.java
M room/migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/DatabaseViewBundle.java
M room/migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.java
A room/migration/src/test/java/androidx/room/migration/bundle/DatabaseViewBundleTest.java
A room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
A room/runtime/src/main/java/androidx/room/util/ViewInfo.java
M room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
yb...@google.com <yb...@google.com>
yb...@google.com <yb...@google.com>
ap...@google.com <ap...@google.com> #9
I don't remember when I was this excited about a feature. Great work, can't wait to see it land in an official release.
yb...@google.com <yb...@google.com>
yb...@google.com <yb...@google.com> #10
"Thanks" seems so inadequate, but thanks :-)
yb...@google.com <yb...@google.com> #11
actually it won't work because the change is in generated code. I'll try to backport itinto WM.
ap...@google.com <ap...@google.com> #13
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 3fb46bd8602faaf9c34aa969f8ae589c251c2f72
Author: Yigit Boyar <yboyar@google.com>
Date: Fri Nov 30 13:19:34 2018
Track LiveData returned by the WM
This CL works around a bug in Room 1.x where LiveData returned
by Room might be garbage collected.
Now work manager tracks any live data it returns as long as the
LiveData is active.
Bug: 74477406
Test: ObserForeverTest, WorkManagerLiveDataTrackerTest
Change-Id: I1e45dade1e8a3c29d6c35f7cb0c6e072c68ee658
A work/workmanager/src/androidTest/java/androidx/work/impl/ObserveForeverTest.java
M work/workmanager/src/main/java/androidx/work/impl/WorkManagerImpl.java
A work/workmanager/src/main/java/androidx/work/impl/WorkManagerLiveDataTracker.java
A work/workmanager/src/test/java/androidx/work/impl/WorkManagerLiveDataTrackerTest.java
https://android-review.googlesource.com/838833
https://goto.google.com/android-sha1/3fb46bd8602faaf9c34aa969f8ae589c251c2f72
Branch: androidx-master-dev
commit 3fb46bd8602faaf9c34aa969f8ae589c251c2f72
Author: Yigit Boyar <yboyar@google.com>
Date: Fri Nov 30 13:19:34 2018
Track LiveData returned by the WM
This CL works around a bug in Room 1.x where LiveData returned
by Room might be garbage collected.
Now work manager tracks any live data it returns as long as the
LiveData is active.
Bug: 74477406
Test: ObserForeverTest, WorkManagerLiveDataTrackerTest
Change-Id: I1e45dade1e8a3c29d6c35f7cb0c6e072c68ee658
A work/workmanager/src/androidTest/java/androidx/work/impl/ObserveForeverTest.java
M work/workmanager/src/main/java/androidx/work/impl/WorkManagerImpl.java
A work/workmanager/src/main/java/androidx/work/impl/WorkManagerLiveDataTracker.java
A work/workmanager/src/test/java/androidx/work/impl/WorkManagerLiveDataTrackerTest.java
Description
repro steps from the developer:
launch the app on a device, press the button to update the counters. Then after you use "force gc" from android monitor, the second counter will stop updating
Looks like because nothing keeps a reference to the AlwaysOnLifecycle or the LiveData, both end up being GC'ed. Before it was a single instance so it didn't get GC'ed.
We probably need to keep AlwaysOnLifecycle in memory as long as it has an observer.