gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-merchant-terminal-android] branch master updated: su


From: gnunet
Subject: [GNUnet-SVN] [taler-merchant-terminal-android] branch master updated: support for new backend API, bug fixes
Date: Sun, 01 Sep 2019 18:32:36 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository merchant-terminal-android.

The following commit(s) were added to refs/heads/master by this push:
     new d783859  support for new backend API, bug fixes
d783859 is described below

commit d783859b7928566090c88be05c6cf3871de6fbf2
Author: Florian Dold <address@hidden>
AuthorDate: Sun Sep 1 18:32:32 2019 +0200

    support for new backend API, bug fixes
---
 .idea/dictionaries/dold.xml                        |  1 +
 .../java/net/taler/merchantpos/CreatePayment.kt    | 49 ++++++++++++----------
 .../java/net/taler/merchantpos/MainActivity.kt     |  2 +-
 .../java/net/taler/merchantpos/MerchantConfig.kt   |  6 +--
 .../java/net/taler/merchantpos/MerchantSettings.kt | 12 +-----
 .../net/taler/merchantpos/PosTerminalViewModel.kt  |  2 +-
 .../java/net/taler/merchantpos/ProcessPayment.kt   |  2 +-
 app/src/main/res/drawable/side_nav_bar.xml         |  6 +--
 app/src/main/res/layout/nav_header_main.xml        |  4 +-
 app/src/main/res/values/colors.xml                 |  6 +--
 app/src/main/res/values/styles.xml                 |  1 -
 11 files changed, 43 insertions(+), 48 deletions(-)

diff --git a/.idea/dictionaries/dold.xml b/.idea/dictionaries/dold.xml
index 192913d..f3ff859 100644
--- a/.idea/dictionaries/dold.xml
+++ b/.idea/dictionaries/dold.xml
@@ -2,6 +2,7 @@
   <dictionary name="dold">
     <words>
       <w>snackbar</w>
+      <w>taler</w>
     </words>
   </dictionary>
 </component>
\ No newline at end of file
diff --git a/app/src/main/java/net/taler/merchantpos/CreatePayment.kt 
b/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
index e07802f..c6a8066 100644
--- a/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
+++ b/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
@@ -1,14 +1,12 @@
 package net.taler.merchantpos
 
-import android.content.Context
-import android.net.Uri
 import android.os.Bundle
-import androidx.fragment.app.Fragment
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.Button
 import android.widget.EditText
+import androidx.fragment.app.Fragment
 import androidx.lifecycle.ViewModelProviders
 import androidx.navigation.fragment.findNavController
 import com.android.volley.Request
@@ -16,28 +14,30 @@ import com.android.volley.RequestQueue
 import com.android.volley.Response
 import com.android.volley.VolleyError
 import com.android.volley.toolbox.Volley
-import org.json.JSONObject
 import com.google.android.material.snackbar.Snackbar
+import org.json.JSONObject
 
 
-// TODO: Rename parameter arguments, choose names that match
-// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
-private const val ARG_PARAM1 = "param1"
-private const val ARG_PARAM2 = "param2"
-
 /**
- * A simple [Fragment] subclass.
- * Activities that contain this fragment must implement the
- * [CreatePayment.OnFragmentInteractionListener] interface
- * to handle interaction events.
- * Use the [CreatePayment.newInstance] factory method to
- * create an instance of this fragment.
- *
+ * Fragment that allows the merchant to create a payment.
  */
 class CreatePayment : Fragment() {
     private lateinit var queue: RequestQueue
     private lateinit var model: PosTerminalViewModel
 
+    private var paused: Boolean = false
+
+
+    override fun onPause() {
+        super.onPause()
+        this.paused = true
+    }
+
+    override fun onResume() {
+        super.onResume()
+        this.paused = false
+    }
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
 
@@ -54,16 +54,16 @@ class CreatePayment : Fragment() {
         model.activeAmount = amount
         model.activeSubject = 
activity!!.findViewById<EditText>(R.id.edit_payment_subject).text
 
-        var order = JSONObject().also {
+        val order = JSONObject().also {
             it.put("amount", amount)
             it.put("summary", model.activeSubject!!)
             it.put("fulfillment_url", "https://example.com";)
             it.put("instance", "default")
         }
 
-        var reqBody = JSONObject().also { it.put("order", order) }
+        val reqBody = JSONObject().also { it.put("order", order) }
 
-        var req = MerchantInternalRequest(
+        val req = MerchantInternalRequest(
             Request.Method.POST,
             model.merchantConfig!!,
             "order",
@@ -73,7 +73,6 @@ class CreatePayment : Fragment() {
             Response.ErrorListener { onNetworkError(it) })
 
         queue.add(req)
-
     }
 
     private fun onNetworkError(volleyError: VolleyError?) {
@@ -87,18 +86,24 @@ class CreatePayment : Fragment() {
         val params = mapOf("order_id" to orderId, "instance" to 
merchantConfig.instance)
         model.activeOrderId = orderId
 
-        var req = MerchantInternalRequest(Request.Method.GET, 
model.merchantConfig!!, "check-payment", params, null,
+        val req = MerchantInternalRequest(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.activeContractUri = 
checkPaymentResponse.getString("contract_url")
+        model.activeTalerPayUri = 
checkPaymentResponse.getString("taler_pay_uri")
         
findNavController().navigate(R.id.action_createPayment_to_processPayment)
     }
 
diff --git a/app/src/main/java/net/taler/merchantpos/MainActivity.kt 
b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
index 23d0417..e8e9a2a 100644
--- a/app/src/main/java/net/taler/merchantpos/MainActivity.kt
+++ b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
@@ -158,7 +158,7 @@ class MainActivity : AppCompatActivity(), 
NavigationView.OnNavigationItemSelecte
 
         isoDep.transceive(apduSelectFile())
 
-        val contractUri: String? = model.activeContractUri
+        val contractUri: String? = model.activeTalerPayUri
 
         if (contractUri != null) {
             isoDep.transceive(apduPutTalerData(1, contractUri.toByteArray()))
diff --git a/app/src/main/java/net/taler/merchantpos/MerchantConfig.kt 
b/app/src/main/java/net/taler/merchantpos/MerchantConfig.kt
index b0552c1..3e043a0 100644
--- a/app/src/main/java/net/taler/merchantpos/MerchantConfig.kt
+++ b/app/src/main/java/net/taler/merchantpos/MerchantConfig.kt
@@ -6,10 +6,8 @@ data class MerchantConfig(val baseUrl: String, val instance: 
String, val apiKey:
     fun urlFor(endpoint: String, params: Map<String, String>?): String {
         val uriBuilder = Uri.parse(baseUrl).buildUpon()
         uriBuilder.appendPath(endpoint)
-        if (params != null) {
-            params.forEach {
-                uriBuilder.appendQueryParameter(it.key, it.value)
-            }
+        params?.forEach {
+            uriBuilder.appendQueryParameter(it.key, it.value)
         }
         return uriBuilder.toString()
     }
diff --git a/app/src/main/java/net/taler/merchantpos/MerchantSettings.kt 
b/app/src/main/java/net/taler/merchantpos/MerchantSettings.kt
index e3dffb4..1903bce 100644
--- a/app/src/main/java/net/taler/merchantpos/MerchantSettings.kt
+++ b/app/src/main/java/net/taler/merchantpos/MerchantSettings.kt
@@ -8,19 +8,9 @@ import android.view.ViewGroup
 
 
 /**
- * A simple [Fragment] subclass.
- * Activities that contain this fragment must implement the
- * [MerchantSettings.OnFragmentInteractionListener] interface
- * to handle interaction events.
- * Use the [MerchantSettings.newInstance] factory method to
- * create an instance of this fragment.
- *
+ * Fragment that displays merchant settings.
  */
 class MerchantSettings : Fragment() {
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-    }
-
     override fun onCreateView(
         inflater: LayoutInflater, container: ViewGroup?,
         savedInstanceState: Bundle?
diff --git a/app/src/main/java/net/taler/merchantpos/PosTerminalViewModel.kt 
b/app/src/main/java/net/taler/merchantpos/PosTerminalViewModel.kt
index bcbc0c8..a6548e4 100644
--- a/app/src/main/java/net/taler/merchantpos/PosTerminalViewModel.kt
+++ b/app/src/main/java/net/taler/merchantpos/PosTerminalViewModel.kt
@@ -8,7 +8,7 @@ class PosTerminalViewModel : ViewModel() {
     var merchantConfig: MerchantConfig? = null
     var activeOrderId: String? = null
     var activeAmount: String? = null
-    var activeContractUri: String? = null
+    var activeTalerPayUri: String? = null
 
     fun activeAmountPretty(): String? {
         val amount = activeAmount ?: return null
diff --git a/app/src/main/java/net/taler/merchantpos/ProcessPayment.kt 
b/app/src/main/java/net/taler/merchantpos/ProcessPayment.kt
index 26ef1c7..fbd60c6 100644
--- a/app/src/main/java/net/taler/merchantpos/ProcessPayment.kt
+++ b/app/src/main/java/net/taler/merchantpos/ProcessPayment.kt
@@ -112,7 +112,7 @@ class ProcessPayment : Fragment() {
         // Inflate the layout for this fragment
         val view = inflater.inflate(R.layout.fragment_process_payment, 
container, false)
         val img = view.findViewById<ImageView>(R.id.qrcode)
-        val talerPayUrl = "talerpay:" + 
URLEncoder.encode(model.activeContractUri!!, "utf-8")
+        val talerPayUrl = model.activeTalerPayUri!!;
         val myBitmap = makeQrCode(talerPayUrl)
         img.setImageBitmap(myBitmap)
         val cancelPaymentButton = 
view.findViewById<Button>(R.id.button_cancel_payment)
diff --git a/app/src/main/res/drawable/side_nav_bar.xml 
b/app/src/main/res/drawable/side_nav_bar.xml
index a33798b..50dc048 100644
--- a/app/src/main/res/drawable/side_nav_bar.xml
+++ b/app/src/main/res/drawable/side_nav_bar.xml
@@ -2,8 +2,8 @@
        android:shape="rectangle">
     <gradient
             android:angle="135"
-            android:centerColor="#009688"
-            android:endColor="#00695C"
-            android:startColor="#4DB6AC"
+            android:centerColor="@color/colorPrimaryDark"
+            android:endColor="@color/colorPrimaryDark"
+            android:startColor="@color/colorPrimary"
             android:type="linear"/>
 </shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/nav_header_main.xml 
b/app/src/main/res/layout/nav_header_main.xml
index 84d4010..d84d107 100644
--- a/app/src/main/res/layout/nav_header_main.xml
+++ b/app/src/main/res/layout/nav_header_main.xml
@@ -9,7 +9,7 @@
         android:paddingLeft="@dimen/activity_horizontal_margin"
         android:paddingRight="@dimen/activity_horizontal_margin"
         android:paddingTop="@dimen/activity_vertical_margin"
-        android:theme="@style/ThemeOverlay.AppCompat.Dark"
+        android:theme="@style/AppTheme"
         android:orientation="vertical"
         android:gravity="bottom">
 
@@ -25,11 +25,13 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingTop="@dimen/nav_header_vertical_spacing"
+            android:textColor="#FFF"
             android:text="GNU Taler"
             android:textAppearance="@style/TextAppearance.AppCompat.Body1"/>
 
     <TextView
             android:layout_width="wrap_content"
+            android:textColor="#FFF"
             android:layout_height="wrap_content"
             android:text="Merchant Terminal"
             android:id="@+id/textView"/>
diff --git a/app/src/main/res/values/colors.xml 
b/app/src/main/res/values/colors.xml
index 69b2233..cbe99a2 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <color name="colorPrimary">#008577</color>
-    <color name="colorPrimaryDark">#00574B</color>
-    <color name="colorAccent">#D81B60</color>
+    <color name="colorPrimary">#795548</color>
+    <color name="colorPrimaryDark">#5D4037</color>
+    <color name="colorAccent">#FFEB3B</color>
 </resources>
diff --git a/app/src/main/res/values/styles.xml 
b/app/src/main/res/values/styles.xml
index 16dbab3..1eb4629 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,5 +1,4 @@
 <resources>
-
     <!-- Base application theme. -->
     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
         <!-- Customize your theme here. -->

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]