summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/net/taler')
-rw-r--r--app/src/main/java/net/taler/merchantpos/CreatePayment.kt102
-rw-r--r--app/src/main/java/net/taler/merchantpos/MainActivity.kt11
-rw-r--r--app/src/main/java/net/taler/merchantpos/ProcessPayment.kt102
3 files changed, 209 insertions, 6 deletions
diff --git a/app/src/main/java/net/taler/merchantpos/CreatePayment.kt b/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
new file mode 100644
index 0000000..aac8db3
--- /dev/null
+++ b/app/src/main/java/net/taler/merchantpos/CreatePayment.kt
@@ -0,0 +1,102 @@
+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
+
+
+// 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.
+ *
+ */
+class CreatePayment : Fragment() {
+ // TODO: Rename and change types of parameters
+ private var param1: String? = null
+ private var param2: String? = null
+ private var listener: OnFragmentInteractionListener? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ arguments?.let {
+ param1 = it.getString(ARG_PARAM1)
+ param2 = it.getString(ARG_PARAM2)
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_create_payment, container, false)
+ }
+
+ // TODO: Rename method, update argument and hook method into UI event
+ fun onButtonPressed(uri: Uri) {
+ listener?.onFragmentInteraction(uri)
+ }
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+ if (context is OnFragmentInteractionListener) {
+ listener = context
+ } else {
+ throw RuntimeException(context.toString() + " must implement OnFragmentInteractionListener")
+ }
+ }
+
+ override fun onDetach() {
+ super.onDetach()
+ listener = null
+ }
+
+ /**
+ * This interface must be implemented by activities that contain this
+ * fragment to allow an interaction in this fragment to be communicated
+ * to the activity and potentially other fragments contained in that
+ * activity.
+ *
+ *
+ * See the Android Training lesson [Communicating with Other Fragments]
+ * (http://developer.android.com/training/basics/fragments/communicating.html)
+ * for more information.
+ */
+ interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ fun onFragmentInteraction(uri: Uri)
+ }
+
+ companion object {
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment CreatePayment.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ CreatePayment().apply {
+ arguments = Bundle().apply {
+ putString(ARG_PARAM1, param1)
+ putString(ARG_PARAM2, param2)
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/net/taler/merchantpos/MainActivity.kt b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
index c977e29..ac34d2a 100644
--- a/app/src/main/java/net/taler/merchantpos/MainActivity.kt
+++ b/app/src/main/java/net/taler/merchantpos/MainActivity.kt
@@ -1,5 +1,6 @@
package net.taler.merchantpos
+import android.net.Uri
import android.os.Bundle
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.snackbar.Snackbar
@@ -12,7 +13,10 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import android.view.Menu
-class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
+class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener, CreatePayment.OnFragmentInteractionListener, ProcessPayment.OnFragmentInteractionListener {
+ override fun onFragmentInteraction(uri: Uri) {
+ TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ }
override fun onCreate(savedInstanceState: Bundle?) {
@@ -21,11 +25,6 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
- val fab: FloatingActionButton = findViewById(R.id.fab)
- fab.setOnClickListener { view ->
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show()
- }
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
val navView: NavigationView = findViewById(R.id.nav_view)
val toggle = ActionBarDrawerToggle(
diff --git a/app/src/main/java/net/taler/merchantpos/ProcessPayment.kt b/app/src/main/java/net/taler/merchantpos/ProcessPayment.kt
new file mode 100644
index 0000000..81c1901
--- /dev/null
+++ b/app/src/main/java/net/taler/merchantpos/ProcessPayment.kt
@@ -0,0 +1,102 @@
+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
+
+
+// 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
+ * [ProcessPayment.OnFragmentInteractionListener] interface
+ * to handle interaction events.
+ * Use the [ProcessPayment.newInstance] factory method to
+ * create an instance of this fragment.
+ *
+ */
+class ProcessPayment : Fragment() {
+ // TODO: Rename and change types of parameters
+ private var param1: String? = null
+ private var param2: String? = null
+ private var listener: OnFragmentInteractionListener? = null
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ arguments?.let {
+ param1 = it.getString(ARG_PARAM1)
+ param2 = it.getString(ARG_PARAM2)
+ }
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_process_payment, container, false)
+ }
+
+ // TODO: Rename method, update argument and hook method into UI event
+ fun onButtonPressed(uri: Uri) {
+ listener?.onFragmentInteraction(uri)
+ }
+
+ override fun onAttach(context: Context) {
+ super.onAttach(context)
+ if (context is OnFragmentInteractionListener) {
+ listener = context
+ } else {
+ throw RuntimeException(context.toString() + " must implement OnFragmentInteractionListener")
+ }
+ }
+
+ override fun onDetach() {
+ super.onDetach()
+ listener = null
+ }
+
+ /**
+ * This interface must be implemented by activities that contain this
+ * fragment to allow an interaction in this fragment to be communicated
+ * to the activity and potentially other fragments contained in that
+ * activity.
+ *
+ *
+ * See the Android Training lesson [Communicating with Other Fragments]
+ * (http://developer.android.com/training/basics/fragments/communicating.html)
+ * for more information.
+ */
+ interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ fun onFragmentInteraction(uri: Uri)
+ }
+
+ companion object {
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment ProcessPayment.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ ProcessPayment().apply {
+ arguments = Bundle().apply {
+ putString(ARG_PARAM1, param1)
+ putString(ARG_PARAM2, param2)
+ }
+ }
+ }
+}