Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void updateCart() {
- Log.d(LOG_TAG, "updateCart");
- cart = DataManager.getInstance().my_cart;
- setTotalPrice();
- products_list.clear();
- products_list.addAll(cart.products);
- lv_cart_list.invalidateViews();
- ((BaseAdapter) lv_cart_list.getAdapter()).notifyDataSetChanged();
- }
- private String LOG_TAG = getClass().getSimpleName();
- private CartFragment cartFragment;
- private GiftsActivity activity;
- private List<Product> products_list = new LinkedList<>();
- private LayoutInflater inflater;
- public CartAdapter(CartFragment mContext, List<Product> products) {
- super();
- activity = (GiftsActivity) mContext.getActivity();
- cartFragment = mContext;
- products_list = products;
- inflater = (LayoutInflater) activity
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- }
- @Override
- public int getCount() {
- return products_list.size();
- }
- @Override
- public Object getItem(int position) {
- return products_list.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- static class ViewHolder {
- ImageView iv_cart_item;
- TextView tv_cart_item_name;
- TextView tv_price;
- TextView tv_discount_price;
- Spinner sp_quatity_of_order;
- ImageButton ib_delete_item_from_cart;
- RelativeLayout rl_item_package;
- ImageView iv_current_package;
- TextView tv_package_title;
- TextView tv_size;
- TextView tv_package_price;
- TextView tv_package_discount_price;
- ImageButton ib_delete_package_from_item;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder viewHolder;
- final Product product = products_list.get(position);
- String image_url = Constants.SERVER_HOST + "/" + product.image;
- if (convertView == null) {
- convertView = inflater.inflate(R.layout.cart_item, parent, false);
- viewHolder = new ViewHolder();
- viewHolder.iv_cart_item = (ImageView) convertView.findViewById(R.id.iv_cart_item);
- viewHolder.tv_cart_item_name = (TextView) convertView.findViewById(R.id.tv_cart_item_name);
- viewHolder.tv_price = (TextView) convertView.findViewById(R.id.tv_price);
- viewHolder.tv_discount_price = (TextView) convertView.findViewById(R.id.tv_discount_price);
- viewHolder.sp_quatity_of_order = (Spinner) convertView.findViewById(R.id.sp_quatity_of_order);
- viewHolder.ib_delete_item_from_cart = (ImageButton) convertView.findViewById(R.id.ib_delete_item_from_cart);
- viewHolder.rl_item_package = (RelativeLayout) convertView.findViewById(R.id.rl_item_package);
- viewHolder.iv_current_package = (ImageView) convertView.findViewById(R.id.iv_current_package);
- viewHolder.tv_package_title = (TextView) convertView.findViewById(R.id.tv_package_title);
- viewHolder.tv_size = (TextView) convertView.findViewById(R.id.tv_size);
- viewHolder.tv_package_price = (TextView) convertView.findViewById(R.id.tv_package_price);
- viewHolder.tv_package_discount_price = (TextView) convertView.findViewById(R.id.tv_package_discount_price);
- viewHolder.ib_delete_package_from_item = (ImageButton) convertView.findViewById(R.id.ib_delete_package_from_item);
- Typeface bold = Typeface.createFromAsset(activity.getAssets(), "fonts/Exo2Bold.ttf");
- viewHolder.tv_cart_item_name.setTypeface(bold);
- viewHolder.tv_price.setTypeface(bold);
- viewHolder.tv_discount_price.setTypeface(bold);
- viewHolder.tv_package_title.setTypeface(bold);
- convertView.setTag(viewHolder);
- int stock_quantity = Integer.parseInt(product.stock_quantity);
- ArrayList<String> spinner_array = initSpinnerArray(stock_quantity);
- ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item,
- spinner_array);
- viewHolder.sp_quatity_of_order.setAdapter(adapter);
- int quantity = Integer.parseInt(product.quantity);
- boolean isQuantityLessStockQuantity = isQuantityLessStockQuantity(stock_quantity, quantity);
- if (isQuantityLessStockQuantity) {
- viewHolder.sp_quatity_of_order.setSelection(quantity - 1);
- }
- viewHolder.sp_quatity_of_order.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
- @Override
- public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
- int quantity = i + 1;
- String quantity_param = String.valueOf(quantity);
- if (product.product_package == null) {
- ApiClient.getInstance(activity).changeProductQuantity(product.product_id, quantity_param, null, null, null);
- Log.d(LOG_TAG, "changeProductQuantity package == null");
- DataManager.getInstance().is_updating_cart = true;
- } else {
- ApiClient.getInstance(activity).changeProductQuantity(product.product_id, quantity_param, null,
- product.product_package.package_product_id, product.product_package.package_product_value_id);
- Log.d(LOG_TAG, "changeProductQuantity");
- DataManager.getInstance().is_updating_cart = true;
- }
- }
- @Override
- public void onNothingSelected(AdapterView<?> adapterView) {
- }
- });
- viewHolder.ib_delete_item_from_cart.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (product.product_package == null) {
- ApiClient.getInstance(activity).removeProductFromcart(product.product_id, null, null);
- DataManager.getInstance().is_updating_cart = true;
- } else {
- ApiClient.getInstance(activity).removeProductFromcart(product.product_id,
- product.product_package.package_product_id,
- product.product_package.package_product_value_id);
- DataManager.getInstance().is_updating_cart = true;
- }
- }
- });
- viewHolder.ib_delete_package_from_item.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ApiClient.getInstance(activity).removePackageFromProduct(product.product_id,
- product.product_package.package_product_id,
- product.product_package.package_product_value_id);
- DataManager.getInstance().is_updating_cart = true;
- }
- });
- boolean hasPackage = isProductPacked(product);
- Log.d(LOG_TAG, "hasPackage = " + hasPackage);
- if (hasPackage) {
- viewHolder.rl_item_package.setVisibility(View.VISIBLE);
- setProductValues(product, viewHolder.tv_cart_item_name, viewHolder.tv_price,
- viewHolder.tv_discount_price, viewHolder.sp_quatity_of_order);
- setPackageValues(product.product_package, viewHolder.tv_package_title, viewHolder.tv_size,
- viewHolder.tv_package_price, viewHolder.tv_package_discount_price);
- loadProductImages(product, viewHolder.iv_cart_item);
- loadPackageImages(product.product_package, viewHolder.iv_current_package);
- } else {
- Log.d(LOG_TAG, "hasPackage = " + hasPackage);
- viewHolder.rl_item_package.setVisibility(View.GONE);
- setProductValues(product, viewHolder.tv_cart_item_name, viewHolder.tv_price,
- viewHolder.tv_discount_price, viewHolder.sp_quatity_of_order);
- loadProductImages(product, viewHolder.iv_cart_item);
- }
- } else {
- viewHolder = (ViewHolder) convertView.getTag();
- }
- return convertView;
- }
- private boolean isQuantityLessStockQuantity(int stock_quantity, int quantity) {
- if (stock_quantity >= quantity) {
- return true;
- } else {
- return false;
- }
- }
- private ArrayList<String> initSpinnerArray(int product_quantity) {
- Log.d(LOG_TAG, "product_quantity = " + product_quantity);
- ArrayList<String> spinner_array = new ArrayList<>();
- for (int j = 0; j < product_quantity; j++) {
- spinner_array.add(j, String.valueOf(j + 1) + " шт.");
- }
- return spinner_array;
- }
- private boolean isDiscount(String discount_price) {
- Log.d(LOG_TAG, "discount_price = " + discount_price);
- if (!discount_price.equals("0"))
- return true;
- else
- return false;
- }
- private void setPackageValues(ProductPackage product_package, TextView tv_package_title, TextView tv_size,
- TextView tv_package_price, TextView tv_package_discount_price) {
- setPrices(product_package, tv_package_price, tv_package_discount_price);
- tv_package_title.setText(product_package.name);
- tv_size.setText(product_package.value);
- tv_package_price.setText(product_package.price);
- }
- private void setProductValues(Product product, TextView tv_cart_item_name, TextView tv_price, TextView tv_discount_price,
- Spinner sp_quatity_of_order) {
- setPrices(product, tv_price, tv_discount_price);
- tv_cart_item_name.setText(product.name);
- }
- private void loadProductImages(Product product, ImageView iv_cart_item) {
- String product_image_url = Constants.SERVER_HOST + "/" + product.image;
- Log.d(LOG_TAG, "product_image_url = " + product_image_url);
- Glide.with(activity).load(product_image_url).into(iv_cart_item);
- }
- private void loadPackageImages(ProductPackage product_package, ImageView iv_current_package) {
- String product_package_image_url = Constants.SERVER_HOST + "/" + product_package.image;
- Glide.with(activity).load(product_package_image_url).into(iv_current_package);
- }
- private boolean isProductPacked(Product product) {
- if (product.product_package != null)
- return true;
- else
- return false;
- }
- private void setPrices(Product product, TextView price, TextView discount_price) {
- boolean is_discount = isDiscount(product.discount_price);
- Log.d(LOG_TAG, "is_discount = " + is_discount);
- if (is_discount) {
- String old_price = (product.price + Constants.UAH);
- int i = old_price.length();
- price.setText(old_price);
- price.setTextColor(activity.getResources().getColor(R.color.catalog_oldprice_color));
- price.setGravity(Gravity.CENTER);
- discount_price.setText(product.discount_price + Constants.UAH);
- discount_price.setGravity(Gravity.CENTER);
- SpannableStringBuilder sp = new SpannableStringBuilder(old_price);
- sp.setSpan(new StrikethroughSpan(), 0, i, SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
- price.setText(sp);
- price.setTextSize(16);
- discount_price.setTextSize(22);
- } else {
- discount_price.setText(product.price + Constants.UAH);
- price.setVisibility(View.GONE);
- discount_price.setGravity(Gravity.CENTER_HORIZONTAL);
- discount_price.setTextSize(22);
- discount_price.setGravity(Gravity.CENTER);
- }
- }
- private void setPrices(ProductPackage product, TextView price, TextView discount_price) {
- boolean is_discount = isDiscount(product.discount_price);
- Log.d(LOG_TAG, "is_discount = " + is_discount);
- if (is_discount) {
- String old_price = (product.price + Constants.UAH);
- int i = old_price.length();
- price.setText(old_price);
- price.setTextColor(activity.getResources().getColor(R.color.catalog_oldprice_color));
- price.setGravity(Gravity.CENTER);
- discount_price.setText(product.discount_price + Constants.UAH);
- discount_price.setGravity(Gravity.CENTER);
- SpannableStringBuilder sp = new SpannableStringBuilder(old_price);
- sp.setSpan(new StrikethroughSpan(), 0, i, SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
- price.setText(sp);
- price.setTextSize(12);
- discount_price.setTextSize(18);
- } else {
- discount_price.setText(product.price + Constants.UAH);
- price.setVisibility(View.GONE);
- discount_price.setGravity(Gravity.CENTER_HORIZONTAL);
- discount_price.setTextSize(18);
- discount_price.setGravity(Gravity.CENTER);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement