Guest User

Untitled

a guest
Feb 17th, 2018
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.05 KB | None | 0 0
  1. package norweska.dolina.android.menu.checkout
  2.  
  3. import android.arch.lifecycle.ViewModelProviders
  4. import android.os.Bundle
  5. import android.support.v4.app.Fragment
  6. import android.support.v7.app.AlertDialog
  7. import android.support.v7.widget.LinearLayoutManager
  8. import android.util.Log
  9. import android.view.LayoutInflater
  10. import android.view.View
  11. import android.view.ViewGroup
  12. import io.reactivex.disposables.CompositeDisposable
  13. import kotlinx.android.synthetic.main.checkout_fragment.*
  14. import norweska.dolina.android.R
  15. import norweska.dolina.android.dialogs.ErrorDialog
  16. import norweska.dolina.android.dialogs.ProductPaymentDialog
  17. import norweska.dolina.android.managers.DictionaryManager
  18. import norweska.dolina.android.menu.cartutils.CartSum
  19. import timber.log.Timber
  20. import java.util.*
  21.  
  22. class CheckoutFragment : Fragment() {
  23.  
  24. private lateinit var checkoutListAdapter: CheckoutListAdapter
  25. private lateinit var checkoutViewModel: CheckoutViewModel
  26.  
  27. private val compositeDisposable: CompositeDisposable = CompositeDisposable()
  28.  
  29. override fun onCreate(savedInstanceState: Bundle?) {
  30. super.onCreate(savedInstanceState)
  31. checkoutViewModel = ViewModelProviders.of(activity).get(CheckoutViewModel::class.java)
  32. checkoutListAdapter = CheckoutListAdapter(activity)
  33. }
  34.  
  35. override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?)
  36. : View = inflater.inflate(R.layout.checkout_fragment, container, false)
  37.  
  38. override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
  39. super.onViewCreated(view, savedInstanceState)
  40.  
  41. compositeDisposable.add(checkoutViewModel.cartCountObservable.subscribe({
  42. val cartSumCart = CartSum.getCartSumCart(it)
  43. Log.d("getCartPriceCount", "price: " + cartSumCart)
  44. cartSummaryTextView.text = String.format(Locale.getDefault(), " %.02f zł", cartSumCart)
  45. checkoutListAdapter.setCartList(it)
  46. }, {
  47. it.printStackTrace()
  48. Log.d("getCartPriceCount", "error: " + it.message)
  49. }))
  50.  
  51. productRecyclerView.isMotionEventSplittingEnabled = false
  52. productRecyclerView.layoutManager = LinearLayoutManager(activity)
  53. productRecyclerView.adapter = checkoutListAdapter
  54.  
  55. continueShoppingButton.setOnClickListener { activity.finish() }
  56. clearCartButton.setOnClickListener { clearCart() }
  57. checkoutButton.setOnClickListener { showPaymentDialog() }
  58. }
  59.  
  60. private var alertDialog: AlertDialog? = null
  61.  
  62. private fun showPaymentDialog() {
  63. if (checkoutListAdapter.itemCount > 0) {
  64. val cartItems = checkoutListAdapter.getCartItems()
  65. val cartSumCart = CartSum.getCartSumCart(cartItems)
  66.  
  67. object : ProductPaymentDialog(activity, cartItems, cartSumCart) {
  68. override fun showNoInternetConnectionDialog() {
  69. this@CheckoutFragment.showNoInternetConnectionDialog()
  70. }
  71. }.show()
  72. } else {
  73. ErrorDialog(activity, DictionaryManager.getInstance(activity).getTranslation("83")).show()
  74. }
  75. }
  76.  
  77. private fun showNoInternetConnectionDialog() {
  78. try {
  79. alertDialog = AlertDialog.Builder(activity)
  80. .setTitle(DictionaryManager.getInstance(activity).getTranslation("88"))
  81. .setMessage(DictionaryManager.getInstance(activity).getTranslation("72"))
  82. .setPositiveButton("OK") { dialog, _ -> dialog.dismiss() }
  83. .show()
  84. } catch (e: Exception) {
  85. e.printStackTrace()
  86. }
  87. }
  88.  
  89. private fun clearCart() {
  90. object : ClearCartDialog(activity) {
  91. override fun onClearCart() {
  92. compositeDisposable.add(checkoutViewModel.clearCart()
  93. .subscribe({ activity.finish() }, { Timber.d("error") }))
  94. }
  95. }.show()
  96. }
  97.  
  98. override fun onPause() {
  99. super.onPause()
  100. alertDialog?.dismiss()
  101. }
  102.  
  103. override fun onDestroy() {
  104. super.onDestroy()
  105. compositeDisposable.clear()
  106. }
  107. }
Add Comment
Please, Sign In to add comment