summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-01-31 16:37:51 -0300
committerTorsten Grote <t@grobox.de>2020-01-31 16:37:51 -0300
commit98125ea57089b714a1fe44bf1f22520928aa0f3b (patch)
tree7f9a56c3435324672786c456d221dd2ed829249b /app/src/main/java/net/taler/merchantpos/CreatePayment.kt
parent1f5c20e394ae9223aeb523817934af9226c52537 (diff)
downloadmerchant-terminal-android-98125ea57089b714a1fe44bf1f22520928aa0f3b.tar.gz
merchant-terminal-android-98125ea57089b714a1fe44bf1f22520928aa0f3b.tar.bz2
merchant-terminal-android-98125ea57089b714a1fe44bf1f22520928aa0f3b.zip
Create payments directly from the order
This removes the CreatePayment fragment as it isn't needed anymore.
Diffstat (limited to 'app/src/main/java/net/taler/merchantpos/CreatePayment.kt')
-rw-r--r--app/src/main/java/net/taler/merchantpos/CreatePayment.kt131
1 files changed, 0 insertions, 131 deletions
diff --git a/app/src/main/java/net/taler/merchantpos/CreatePayment.kt b/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
deleted file mode 100644
index 02a2ae7..0000000
--- a/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
+++ /dev/null
@@ -1,131 +0,0 @@
-package net.taler.merchantpos
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Button
-import android.widget.EditText
-import android.widget.TextView
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.activityViewModels
-import androidx.navigation.fragment.findNavController
-import com.android.volley.Request
-import com.android.volley.RequestQueue
-import com.android.volley.Response
-import com.android.volley.VolleyError
-import com.android.volley.toolbox.Volley
-import com.google.android.material.snackbar.Snackbar
-import net.taler.merchantpos.config.MerchantRequest
-import org.json.JSONObject
-
-
-/**
- * Fragment that allows the merchant to create a payment.
- */
-class CreatePayment : Fragment() {
- private lateinit var queue: RequestQueue
- private val model: MainViewModel by activityViewModels()
-
- private var paused: Boolean = false
-
-
- override fun onPause() {
- super.onPause()
- this.paused = true
- }
-
- override fun onResume() {
- super.onResume()
- this.paused = false
-
- val textView = view!!.findViewById<TextView>(R.id.text_create_payment_amount_label)
- textView.text = "Amount (${model.merchantConfig!!.currency})"
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- queue = Volley.newRequestQueue(context)
- }
-
- private fun onRequestPayment() {
- val amountValStr = activity!!.findViewById<EditText>(R.id.edit_payment_amount).text
- val amount = "${model.merchantConfig!!.currency}:${amountValStr}"
- model.activeAmount = amount
- model.activeSubject = activity!!.findViewById<EditText>(R.id.edit_payment_subject).text
-
- val order = JSONObject().also {
- it.put("amount", amount)
- it.put("summary", model.activeSubject!!)
- it.put("fulfillment_url", "https://example.com")
- it.put("instance", "default")
- }
-
- val reqBody = JSONObject().also { it.put("order", order) }
-
- val req = MerchantRequest(
- Request.Method.POST,
- model.merchantConfig!!,
- "order",
- null,
- reqBody,
- Response.Listener { onOrderCreated(it) },
- Response.ErrorListener { onNetworkError(it) })
-
- queue.add(req)
- }
-
- private fun onNetworkError(volleyError: VolleyError?) {
- val mySnackbar = Snackbar.make(view!!, "Network Error", Snackbar.LENGTH_SHORT)
- mySnackbar.show()
- }
-
- private fun onOrderCreated(orderResponse: JSONObject) {
- val merchantConfig = model.merchantConfig!!
- val orderId = orderResponse.getString("order_id")
- val params = mapOf("order_id" to orderId, "instance" to merchantConfig.instance)
- model.activeOrderId = orderId
-
- val req =
- MerchantRequest(Request.Method.GET,
- model.merchantConfig!!,
- "check-payment",
- params,
- null,
- Response.Listener { onCheckPayment(it) },
- Response.ErrorListener { onNetworkError(it) })
- queue.add(req)
- }
-
- /**
- * Called when the /check-payment response gave a result.
- */
- private fun onCheckPayment(checkPaymentResponse: JSONObject) {
- if (paused) {
- return
- }
- if (checkPaymentResponse.getBoolean("paid")) {
- val mySnackbar = Snackbar.make(view!!, "Already paid?!", Snackbar.LENGTH_SHORT)
- mySnackbar.show()
- return
- }
- model.activeTalerPayUri = checkPaymentResponse.getString("taler_pay_uri")
- findNavController().navigate(R.id.action_createPayment_to_processPayment)
- }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- // Inflate the layout for this fragment
- val view = inflater.inflate(R.layout.fragment_create_payment, container, false)
- val requestPaymentButton = view.findViewById<Button>(R.id.button_request_payment)
- requestPaymentButton.setOnClickListener {
- onRequestPayment()
- }
-
- return view
- }
-
-}