Проблема в обновлении корзины, если пользователь снова нажимает на тот же элемент - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь обновить корзину при каждом щелчке по элементу, и я тоже это делаю. Но проблема в том, что я хочу, чтобы при нажатии на тот же элемент количество продукта увеличивалось, а полный элемент не добавлялся снова. Ниже мой Dao Interface

@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertTask(CartItemEntity cartItemEntity);

@Query("SELECT * from CartItemEntity WHERE id= :id")
CartItemEntity getItemById(int id);

@Query("UPDATE CartItemEntity SET quantity = quantity + 1 WHERE id = :id")
void updateQuantity(int id);

И это мой метод InsertAndUpdate в репозитории

 void insertOrUpdate(CartItemEntity cartItemEntity) {
      final CartItemEntity[] cartItemEntity1 = {null};
      Log.d("check", cartItemEntity.getName());
      new AsyncTask<Void,Void,Void>() {
          @Override
          protected Void doInBackground(Void... voids) {
              cartItemEntity1[0] = noteDatabase.daoAccess().getItemById(cartItemEntity.getId());
              Log.d("check",cartItemEntity1[0].getName());
              return null;
          }
      }.execute();

      if (cartItemEntity == cartItemEntity1[0]) {
          updateItem(cartItemEntity.getId());
      } else {
          insertTask(cartItemEntity);
      }
 }

Я помещаю запись журнала, и то, что я нахожу, находится внутри метода InsertAndUpdate

cartItemEntity1[0] = noteDatabase.daoAccess().getItemById(cartItemEntity.getId());

возвращает ноль независимо от того, нажата ли кнопка только в первый раз или несколько раз

...