sentry-android-gradle-plugin
sentry-android-gradle-plugin copied to clipboard
Support androidx.paging in db instrumentation
Support androidx.room.paging.
The paging integration has slightly different code generated by room, hence we need to find other touchpoints than seen in all other integrations.
Example of code generated by room for PagingSource:
@Override
public PagingSource<Integer, SubAlbum> getSubAlbumListPagingSource() {
final String _sql = "SELECT * FROM SubAlbum ORDER BY AlbumId ASC";
final RoomSQLiteQuery _statement = RoomSQLiteQuery.acquire(_sql, 0);
return new LimitOffsetPagingSource<SubAlbum>(_statement, __db, "SubAlbum") {
@Override
protected List<SubAlbum> convertRows(Cursor cursor) {
final int _cursorIndexOfId = CursorUtil.getColumnIndexOrThrow(cursor, "AlbumId");
final int _cursorIndexOfTitle = CursorUtil.getColumnIndexOrThrow(cursor, "Title");
final int _cursorIndexOfArtistId = CursorUtil.getColumnIndexOrThrow(cursor, "ArtistId");
final int _cursorIndexOfSerial = CursorUtil.getColumnIndexOrThrow(cursor, "serial");
final List<SubAlbum> _result = new ArrayList<SubAlbum>(cursor.getCount());
while(cursor.moveToNext()) {
final SubAlbum _item;
final long _tmpId;
_tmpId = cursor.getLong(_cursorIndexOfId);
final String _tmpTitle;
if (cursor.isNull(_cursorIndexOfTitle)) {
_tmpTitle = null;
} else {
_tmpTitle = cursor.getString(_cursorIndexOfTitle);
}
final long _tmpArtistId;
_tmpArtistId = cursor.getLong(_cursorIndexOfArtistId);
final Info _tmpInfo;
if (! (cursor.isNull(_cursorIndexOfSerial))) {
final String _tmpSerial;
if (cursor.isNull(_cursorIndexOfSerial)) {
_tmpSerial = null;
} else {
_tmpSerial = cursor.getString(_cursorIndexOfSerial);
}
_tmpInfo = new Info(_tmpSerial);
} else {
_tmpInfo = null;
}
_item = new SubAlbum(_tmpId,_tmpTitle,_tmpArtistId,_tmpInfo);
_result.add(_item);
}
return _result;
}
};
}