Очень базовая настройка для автономной поддержки в приложении, где данные, извлекаемые из API, хранятся в SQLite для отображения списков, когда приложение не подключено к Интернету.
Проблема возникает, когда я хочу обновить данные в БД данными с сервера. Существует предопределенный порядок сортировки, который реализован на стороне сервера, и данные всегда поступают в одной и той же последовательности.
При новом запуске данные загружаются и сохраняются в БД в той последовательности, в которой они получены, и осуществляется разбиение на страницы. Скажем, через некоторое время данные обновляются и появляются новые элементы, которые получены на странице 1 (1-10) и странице 2 (11-20), но в БД есть элемент 11-20 как страница 1, поскольку сервер добавлен новые элементы в этом списке, и у local нет новых элементов.
Как мне справиться с этой ситуацией и правильно сохранить новые 10 (или более / несколько) элементов, чтобы при извлечении страницы 1 из моей БД сначала возвращались эти новые элементы, а затем более старые? В основном, как обрабатывать добавление / удаление / изменение данных в синхронизации с сервером.
Я хочу сделать что-то вроде многих приложений, таких как instagram / facebook, где вы продолжаете прокручивать список, как только вы запускаете приложение, делаете сетевой вызов в фоновом режиме, сохраняете нужный результат в БД и уведомляете Пользователь, что новые элементы добавляются и прокрутите список вверх, чтобы показать новые элементы.
Я не могу использовать самую последнюю библиотеку Paging и другие компоненты Jetpack для этой цели, так как для этого потребуется изменение уровня архитектуры в приложении.