Необходимо реализовать логику добавления/удаления и хранения элементов избранного.
Запросы на добавление и удаление из избранного проходят через объект класса FavoritesRepositoryImpl, содержащий следующие методы в соответствии с интерфейсом FavoritesRepository:
getFavoriteOffers(): List<OfferInfo>– возвращает список спецпредложений, отмеченных как избранноеmarkOfferAsFavourite(offerId: String)– добавляет спецпредложение с идентификаторомofferIdв избранноеcheckOfferIsFavorite(offerId: String): Boolean–true, если спецпредложение с идентификаторомofferIdдобавлен в избранное, иначеfalseremoveOfferFromFavourites(offerId: String)– удаляет спецпредложение с идентификаторомofferIdиз избранного Спецпредложения поofferIdможно получить с помощьюOffersRemoteDataSource. Избранное реализуется посредством добавления и удаления элементов с помощьюFavoritesLocalDataSourceImpl.
- Необходимо реализовать
FavoritesLocalDataSourceImpl, который управляет работой избранного. - Необходимо реализовать
FavoritesRepositoryImpl, который читает, добавляет и удаляет элементы вFavoritesLocalDataSourceImpl, а также получает спецпредложения изOffersRemoteDataSource. FavoritesLocalDataSourceImplдолжен реализовывать интерфейсFavoritesLocalDataSource.- FavoritesRepositoryImpl
должен реализовывать интерфейсFavoritesRepository`.