Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Dao
- public abstract class FavoriteCarsDao {
- @Query("UPDATE ShowcaseFavoriteCars SET is_like = :isLike WHERE ShowcaseFavoriteCars.auto_id LIKE :auto_id")
- public abstract void updateLikeFavoriteCar(long auto_id, boolean isLike);
- }
- public class DatabaseRepository implements DatabaseService {
- @Override
- public void deleteLikeFavoriteCar(long auto_id) {
- Observable.fromCallable(() -> {
- mDatabase.favoriteCarsDao().deleteLikeFavoriteCar(auto_id);
- return null;
- })
- .compose(RxUtils.async())
- .subscribe();
- }
- }
- public class CarShowcaseListPresenter {
- private List<ShowcaseFavoriteCars> mFavoriteCars;
- public void getFavoriteCars() {
- mDatabaseRepository.getFavoriteCars()
- .flatMap(Observable::from)
- .toList()
- .subscribe(favoriteCars -> {
- if (favoriteCars != null && !favoriteCars.isEmpty()) {
- mFavoriteCars = favoriteCars;
- } else {
- mFavoriteCars = new ArrayList<>();
- }
- });
- }
- @Override
- public void onLikeClick(boolean isLike, @NonNull ShowcaseCarsList favoriteCar, int position) {
- getFavoriteCars();
- List<Long> carIds = new ArrayList<>();
- Observable.from(mFavoriteCars)
- .forEach(favoriteCars1 -> {
- carIds.add(favoriteCars1.getCarId());
- });
- if (!carIds.contains(favoriteCar.getCarId())) {
- mDatabaseRepository.saveFavoriteCar(new ShowcaseFavoriteCars(favoriteCar.getCarId(), true, null));
- } else {
- Observable<ShowcaseFavoriteCars> firstObser = Observable.from(mFavoriteCars).doOnNext(favoriteCars -> {
- if (favoriteCars.getComment() != null && !favoriteCars.getComment().isEmpty()) {
- mDatabaseRepository.updateLikeFavoriteCar(favoriteCar.getCarId(), isLike);
- } else /*if (favoriteCar1.getComment() == null || favoriteCar1.getComment().isEmpty())*/ {
- mDatabaseRepository.deleteLikeFavoriteCar(favoriteCar.getCarId());
- }
- });
- }
- mView.setLike(favoriteCar, position);
- }
- }
- public void getFavoriteCars() {
- mDatabaseRepository.getFavoriteCars()
- .flatMap(Observable::from)
- .toList()
- .subscribe(favoriteCars -> {
- if (favoriteCars != null && !favoriteCars.isEmpty()) {
- mFavoriteCars = favoriteCars;
- } else {
- mFavoriteCars = new ArrayList<>();
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement