Fixed
Status Update
Comments
vm...@google.com <vm...@google.com>
pa...@google.com <pa...@google.com>
jh...@google.com <jh...@google.com>
pa...@google.com <pa...@google.com> #2
We don't support cross-process invalidations yet.
an...@google.com <an...@google.com> #3
At least , add a "refresh all observables" function to alpha4 ? i am trying to implement it by myself with your InvalidationTracker class
rv...@mozilla.com <rv...@mozilla.com> #4
Okey, I made it and created a method to invalidate all observables below;
private void refreshAllLiveData() {
AppDataBase YOUR_DATABASE_WHICH_YOU_BUILD = .....
SupportSQLiteDatabase writableDatabase = YOUR_DATABASE_WHICH_YOU_BUILD.getOpenHelper().getWritableDatabase();
//get the database count;
Cursor cursor = writableDatabase.query("SELECT count(*) FROM sqlite_master WHERE type = 'table' AND name != 'android_metadata' AND name != 'room_master_table';");
int tableCount = 0;
while(cursor.moveToNext()) {
tableCount = cursor.getInt(0);
}
for (int i = 0; i < tableCount; i++) {
//update version table with the incremented count because room modification log stores tables with ids instead of names
writableDatabase.execSQL("INSERT OR REPLACE INTO room_table_modification_log VALUES(null, "+(i)+")");
}
YOUR_DATABASE_WHICH_YOU_BUILD.getInvalidationTracker().refreshVersionsAsync();
}
-----
This is a workaroud for refreshing all live datas, I still prefer to use a proper API you implemented.
Thanx
private void refreshAllLiveData() {
AppDataBase YOUR_DATABASE_WHICH_YOU_BUILD = .....
SupportSQLiteDatabase writableDatabase = YOUR_DATABASE_WHICH_YOU_BUILD.getOpenHelper().getWritableDatabase();
//get the database count;
Cursor cursor = writableDatabase.query("SELECT count(*) FROM sqlite_master WHERE type = 'table' AND name != 'android_metadata' AND name != 'room_master_table';");
int tableCount = 0;
while(cursor.moveToNext()) {
tableCount = cursor.getInt(0);
}
for (int i = 0; i < tableCount; i++) {
//update version table with the incremented count because room modification log stores tables with ids instead of names
writableDatabase.execSQL("INSERT OR REPLACE INTO room_table_modification_log VALUES(null, "+(i)+")");
}
YOUR_DATABASE_WHICH_YOU_BUILD.getInvalidationTracker().refreshVersionsAsync();
}
-----
This is a workaroud for refreshing all live datas, I still prefer to use a proper API you implemented.
Thanx
pa...@google.com <pa...@google.com> #5
Cross process invalidation is now support in Room 2.1.0 with the enableMultiInstanceInvalidation() API.
an...@google.com <an...@google.com> #6
The fixes for this issue are now also available in:
- Android Studio Ladybug | 2024.2.1 Patch 1
- Android Gradle Plugin 8.7.1
We encourage you to try the latest update.
If you notice further issues or have questions, please file a new bug report.
tr...@gmail.com <tr...@gmail.com> #7
I am still having this issue on `Android Studio Ladybug | 2024.2.1 Patch 2` and `AGP 8.7.2`
pa...@google.com <pa...@google.com> #8
Can you reproduce in a new (mostly empty) project? Can you attach the project, with the problematic intent filter? And does it reproduce just by opening the file in the IDE, or when running gradle lint
?
tr...@gmail.com <tr...@gmail.com> #9
This was only happening inside the IDE. I apologize, after some time this error subsided. I am not sure what the exact fix for me was.
Thanks for your assistance.
Thanks for your assistance.
Description
I'm guessing this is a regression from https://issuetracker.google.com/issues/62810553 .
Starting with AGP 8.7.0-alpha09, we're now seeing "At least one host must be specified" errors when setting
<data android:scheme="http" />
or<data android:scheme="https" />
in a given<intent-filter>
. As far as I know, this is permissible, however?