Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.03 KB | None | 0 0
  1. public void updateCart() {
  2. Log.d(LOG_TAG, "updateCart");
  3. cart = DataManager.getInstance().my_cart;
  4. setTotalPrice();
  5. products_list.clear();
  6. products_list.addAll(cart.products);
  7. lv_cart_list.invalidateViews();
  8. ((BaseAdapter) lv_cart_list.getAdapter()).notifyDataSetChanged();
  9. }
  10.  
  11. private String LOG_TAG = getClass().getSimpleName();
  12. private CartFragment cartFragment;
  13. private GiftsActivity activity;
  14. private List<Product> products_list = new LinkedList<>();
  15. private LayoutInflater inflater;
  16.  
  17.  
  18. public CartAdapter(CartFragment mContext, List<Product> products) {
  19. super();
  20. activity = (GiftsActivity) mContext.getActivity();
  21. cartFragment = mContext;
  22. products_list = products;
  23. inflater = (LayoutInflater) activity
  24. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  25. }
  26.  
  27. @Override
  28. public int getCount() {
  29. return products_list.size();
  30. }
  31.  
  32. @Override
  33. public Object getItem(int position) {
  34. return products_list.get(position);
  35. }
  36.  
  37. @Override
  38. public long getItemId(int position) {
  39. return position;
  40. }
  41.  
  42. static class ViewHolder {
  43. ImageView iv_cart_item;
  44. TextView tv_cart_item_name;
  45. TextView tv_price;
  46. TextView tv_discount_price;
  47. Spinner sp_quatity_of_order;
  48. ImageButton ib_delete_item_from_cart;
  49. RelativeLayout rl_item_package;
  50. ImageView iv_current_package;
  51. TextView tv_package_title;
  52. TextView tv_size;
  53. TextView tv_package_price;
  54. TextView tv_package_discount_price;
  55. ImageButton ib_delete_package_from_item;
  56. }
  57.  
  58. @Override
  59. public View getView(int position, View convertView, ViewGroup parent) {
  60. ViewHolder viewHolder;
  61. final Product product = products_list.get(position);
  62. String image_url = Constants.SERVER_HOST + "/" + product.image;
  63. if (convertView == null) {
  64. convertView = inflater.inflate(R.layout.cart_item, parent, false);
  65.  
  66. viewHolder = new ViewHolder();
  67. viewHolder.iv_cart_item = (ImageView) convertView.findViewById(R.id.iv_cart_item);
  68. viewHolder.tv_cart_item_name = (TextView) convertView.findViewById(R.id.tv_cart_item_name);
  69. viewHolder.tv_price = (TextView) convertView.findViewById(R.id.tv_price);
  70. viewHolder.tv_discount_price = (TextView) convertView.findViewById(R.id.tv_discount_price);
  71. viewHolder.sp_quatity_of_order = (Spinner) convertView.findViewById(R.id.sp_quatity_of_order);
  72. viewHolder.ib_delete_item_from_cart = (ImageButton) convertView.findViewById(R.id.ib_delete_item_from_cart);
  73. viewHolder.rl_item_package = (RelativeLayout) convertView.findViewById(R.id.rl_item_package);
  74. viewHolder.iv_current_package = (ImageView) convertView.findViewById(R.id.iv_current_package);
  75. viewHolder.tv_package_title = (TextView) convertView.findViewById(R.id.tv_package_title);
  76. viewHolder.tv_size = (TextView) convertView.findViewById(R.id.tv_size);
  77. viewHolder.tv_package_price = (TextView) convertView.findViewById(R.id.tv_package_price);
  78. viewHolder.tv_package_discount_price = (TextView) convertView.findViewById(R.id.tv_package_discount_price);
  79. viewHolder.ib_delete_package_from_item = (ImageButton) convertView.findViewById(R.id.ib_delete_package_from_item);
  80.  
  81. Typeface bold = Typeface.createFromAsset(activity.getAssets(), "fonts/Exo2Bold.ttf");
  82. viewHolder.tv_cart_item_name.setTypeface(bold);
  83. viewHolder.tv_price.setTypeface(bold);
  84. viewHolder.tv_discount_price.setTypeface(bold);
  85. viewHolder.tv_package_title.setTypeface(bold);
  86.  
  87. convertView.setTag(viewHolder);
  88.  
  89.  
  90. int stock_quantity = Integer.parseInt(product.stock_quantity);
  91. ArrayList<String> spinner_array = initSpinnerArray(stock_quantity);
  92. ArrayAdapter<String> adapter = new ArrayAdapter<>(activity, android.R.layout.simple_spinner_item,
  93. spinner_array);
  94. viewHolder.sp_quatity_of_order.setAdapter(adapter);
  95. int quantity = Integer.parseInt(product.quantity);
  96. boolean isQuantityLessStockQuantity = isQuantityLessStockQuantity(stock_quantity, quantity);
  97. if (isQuantityLessStockQuantity) {
  98. viewHolder.sp_quatity_of_order.setSelection(quantity - 1);
  99. }
  100. viewHolder.sp_quatity_of_order.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
  101. @Override
  102. public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
  103. int quantity = i + 1;
  104. String quantity_param = String.valueOf(quantity);
  105. if (product.product_package == null) {
  106. ApiClient.getInstance(activity).changeProductQuantity(product.product_id, quantity_param, null, null, null);
  107. Log.d(LOG_TAG, "changeProductQuantity package == null");
  108. DataManager.getInstance().is_updating_cart = true;
  109. } else {
  110. ApiClient.getInstance(activity).changeProductQuantity(product.product_id, quantity_param, null,
  111. product.product_package.package_product_id, product.product_package.package_product_value_id);
  112. Log.d(LOG_TAG, "changeProductQuantity");
  113. DataManager.getInstance().is_updating_cart = true;
  114. }
  115.  
  116. }
  117.  
  118. @Override
  119. public void onNothingSelected(AdapterView<?> adapterView) {
  120.  
  121. }
  122. });
  123.  
  124. viewHolder.ib_delete_item_from_cart.setOnClickListener(new View.OnClickListener() {
  125. @Override
  126. public void onClick(View v) {
  127. if (product.product_package == null) {
  128. ApiClient.getInstance(activity).removeProductFromcart(product.product_id, null, null);
  129. DataManager.getInstance().is_updating_cart = true;
  130. } else {
  131. ApiClient.getInstance(activity).removeProductFromcart(product.product_id,
  132. product.product_package.package_product_id,
  133. product.product_package.package_product_value_id);
  134. DataManager.getInstance().is_updating_cart = true;
  135. }
  136. }
  137. });
  138.  
  139. viewHolder.ib_delete_package_from_item.setOnClickListener(new View.OnClickListener() {
  140. @Override
  141. public void onClick(View v) {
  142. ApiClient.getInstance(activity).removePackageFromProduct(product.product_id,
  143. product.product_package.package_product_id,
  144. product.product_package.package_product_value_id);
  145. DataManager.getInstance().is_updating_cart = true;
  146. }
  147. });
  148. boolean hasPackage = isProductPacked(product);
  149. Log.d(LOG_TAG, "hasPackage = " + hasPackage);
  150. if (hasPackage) {
  151. viewHolder.rl_item_package.setVisibility(View.VISIBLE);
  152.  
  153. setProductValues(product, viewHolder.tv_cart_item_name, viewHolder.tv_price,
  154. viewHolder.tv_discount_price, viewHolder.sp_quatity_of_order);
  155. setPackageValues(product.product_package, viewHolder.tv_package_title, viewHolder.tv_size,
  156. viewHolder.tv_package_price, viewHolder.tv_package_discount_price);
  157.  
  158. loadProductImages(product, viewHolder.iv_cart_item);
  159. loadPackageImages(product.product_package, viewHolder.iv_current_package);
  160. } else {
  161. Log.d(LOG_TAG, "hasPackage = " + hasPackage);
  162. viewHolder.rl_item_package.setVisibility(View.GONE);
  163. setProductValues(product, viewHolder.tv_cart_item_name, viewHolder.tv_price,
  164. viewHolder.tv_discount_price, viewHolder.sp_quatity_of_order);
  165.  
  166. loadProductImages(product, viewHolder.iv_cart_item);
  167. }
  168. } else {
  169. viewHolder = (ViewHolder) convertView.getTag();
  170. }
  171. return convertView;
  172. }
  173.  
  174. private boolean isQuantityLessStockQuantity(int stock_quantity, int quantity) {
  175. if (stock_quantity >= quantity) {
  176. return true;
  177. } else {
  178. return false;
  179. }
  180. }
  181.  
  182. private ArrayList<String> initSpinnerArray(int product_quantity) {
  183. Log.d(LOG_TAG, "product_quantity = " + product_quantity);
  184. ArrayList<String> spinner_array = new ArrayList<>();
  185. for (int j = 0; j < product_quantity; j++) {
  186. spinner_array.add(j, String.valueOf(j + 1) + " шт.");
  187. }
  188. return spinner_array;
  189. }
  190.  
  191. private boolean isDiscount(String discount_price) {
  192. Log.d(LOG_TAG, "discount_price = " + discount_price);
  193. if (!discount_price.equals("0"))
  194. return true;
  195. else
  196. return false;
  197. }
  198.  
  199. private void setPackageValues(ProductPackage product_package, TextView tv_package_title, TextView tv_size,
  200. TextView tv_package_price, TextView tv_package_discount_price) {
  201. setPrices(product_package, tv_package_price, tv_package_discount_price);
  202. tv_package_title.setText(product_package.name);
  203. tv_size.setText(product_package.value);
  204. tv_package_price.setText(product_package.price);
  205. }
  206.  
  207. private void setProductValues(Product product, TextView tv_cart_item_name, TextView tv_price, TextView tv_discount_price,
  208. Spinner sp_quatity_of_order) {
  209. setPrices(product, tv_price, tv_discount_price);
  210. tv_cart_item_name.setText(product.name);
  211. }
  212.  
  213. private void loadProductImages(Product product, ImageView iv_cart_item) {
  214. String product_image_url = Constants.SERVER_HOST + "/" + product.image;
  215. Log.d(LOG_TAG, "product_image_url = " + product_image_url);
  216. Glide.with(activity).load(product_image_url).into(iv_cart_item);
  217. }
  218.  
  219. private void loadPackageImages(ProductPackage product_package, ImageView iv_current_package) {
  220. String product_package_image_url = Constants.SERVER_HOST + "/" + product_package.image;
  221. Glide.with(activity).load(product_package_image_url).into(iv_current_package);
  222. }
  223.  
  224. private boolean isProductPacked(Product product) {
  225. if (product.product_package != null)
  226. return true;
  227. else
  228. return false;
  229. }
  230.  
  231. private void setPrices(Product product, TextView price, TextView discount_price) {
  232.  
  233. boolean is_discount = isDiscount(product.discount_price);
  234. Log.d(LOG_TAG, "is_discount = " + is_discount);
  235.  
  236. if (is_discount) {
  237. String old_price = (product.price + Constants.UAH);
  238. int i = old_price.length();
  239. price.setText(old_price);
  240. price.setTextColor(activity.getResources().getColor(R.color.catalog_oldprice_color));
  241. price.setGravity(Gravity.CENTER);
  242. discount_price.setText(product.discount_price + Constants.UAH);
  243. discount_price.setGravity(Gravity.CENTER);
  244. SpannableStringBuilder sp = new SpannableStringBuilder(old_price);
  245. sp.setSpan(new StrikethroughSpan(), 0, i, SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
  246. price.setText(sp);
  247. price.setTextSize(16);
  248. discount_price.setTextSize(22);
  249. } else {
  250. discount_price.setText(product.price + Constants.UAH);
  251. price.setVisibility(View.GONE);
  252. discount_price.setGravity(Gravity.CENTER_HORIZONTAL);
  253. discount_price.setTextSize(22);
  254. discount_price.setGravity(Gravity.CENTER);
  255. }
  256. }
  257.  
  258. private void setPrices(ProductPackage product, TextView price, TextView discount_price) {
  259.  
  260. boolean is_discount = isDiscount(product.discount_price);
  261.  
  262. Log.d(LOG_TAG, "is_discount = " + is_discount);
  263.  
  264. if (is_discount) {
  265. String old_price = (product.price + Constants.UAH);
  266. int i = old_price.length();
  267. price.setText(old_price);
  268. price.setTextColor(activity.getResources().getColor(R.color.catalog_oldprice_color));
  269. price.setGravity(Gravity.CENTER);
  270. discount_price.setText(product.discount_price + Constants.UAH);
  271. discount_price.setGravity(Gravity.CENTER);
  272. SpannableStringBuilder sp = new SpannableStringBuilder(old_price);
  273. sp.setSpan(new StrikethroughSpan(), 0, i, SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
  274. price.setText(sp);
  275. price.setTextSize(12);
  276. discount_price.setTextSize(18);
  277. } else {
  278. discount_price.setText(product.price + Constants.UAH);
  279. price.setVisibility(View.GONE);
  280. discount_price.setGravity(Gravity.CENTER_HORIZONTAL);
  281. discount_price.setTextSize(18);
  282. discount_price.setGravity(Gravity.CENTER);
  283. }
  284. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement