Ejemplo n.º 1
0
  /**
   * Add/Update an item to the cart.
   *
   * @param activity The activity that calls the method
   * @param requestId Identifier for the call
   * @param onAddToCart Listener for success/error after update
   * @param isUpdate Flag for update
   * @param productCode The code of the product to add
   * @param entryNumber The entry number to update on the cart
   * @param quantity The quantity to add
   * @param viewsToDisable Views to disable/enable before/after the request
   * @param onRequestListener Request listener for before/after call actions
   */
  private static void addOrUpdateToCart(
      final Activity activity,
      final String requestId,
      final OnAddToCart onAddToCart,
      final boolean isUpdate,
      final String productCode,
      final int entryNumber,
      final int quantity,
      final List<View> viewsToDisable,
      final OnRequestListener onRequestListener) {

    if (quantity > 0) {
      UIUtils.showLoadingActionBar(activity, true);

      QueryCart queryCart = new QueryCart();
      queryCart.setQuantity(quantity);

      // Update
      if (isUpdate) {
        queryCart.setProduct(entryNumber + "");

        B2BApplication.getContentServiceHelper()
            .updateCartEntry(
                new ResponseReceiver<ProductAdded>() {
                  @Override
                  public void onResponse(Response<ProductAdded> response) {
                    onReceiveAddToCartResponse(activity, requestId, onAddToCart, response);
                  }

                  @Override
                  public void onError(Response<DataError> response) {
                    UIUtils.showLoadingActionBar(activity, false);

                    UIUtils.showError(response, activity);

                    // Update the cart
                    SessionHelper.updateCart(activity, requestId, false);
                  }
                },
                requestId,
                queryCart,
                false,
                viewsToDisable,
                onRequestListener);
      }
      // Add
      else {
        queryCart.setProduct(productCode);

        B2BApplication.getContentServiceHelper()
            .addProductToCart(
                new ResponseReceiver<ProductAdded>() {

                  @Override
                  public void onResponse(Response<ProductAdded> response) {
                    onReceiveAddToCartResponse(activity, requestId, onAddToCart, response);
                  }

                  @Override
                  public void onError(Response<DataError> response) {
                    UIUtils.showLoadingActionBar(activity, false);

                    UIUtils.showError(response, activity);

                    // Update the cart
                    SessionHelper.updateCart(activity, requestId, false);
                  }
                },
                requestId,
                queryCart,
                false,
                viewsToDisable,
                onRequestListener);
      }
    }
  }