aboutsummaryrefslogtreecommitdiff
path: root/anastasis-ui/src/main/java
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-06-26 11:25:48 -0300
committerTorsten Grote <t@grobox.de>2020-06-26 11:25:48 -0300
commit9cbb35ccc65db7b5d8ce1afe4b3c5feae30be1eb (patch)
tree4e3c857575303b689a0e4c15915ef2ec274a9187 /anastasis-ui/src/main/java
parent730fbaa702b467669c4b88f6c03fa3e1823abf73 (diff)
downloadtaler-android-9cbb35ccc65db7b5d8ce1afe4b3c5feae30be1eb.tar.gz
taler-android-9cbb35ccc65db7b5d8ce1afe4b3c5feae30be1eb.tar.bz2
taler-android-9cbb35ccc65db7b5d8ce1afe4b3c5feae30be1eb.zip
[anastasis] add more countries and allow switching between them
Diffstat (limited to 'anastasis-ui/src/main/java')
-rw-r--r--anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt3
-rw-r--r--anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt62
-rw-r--r--anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt17
-rw-r--r--anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt29
4 files changed, 107 insertions, 4 deletions
diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt
index 7bcfc19..3b97578 100644
--- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt
@@ -19,9 +19,12 @@ package org.gnu.anastasis.ui
import android.app.Application
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
+import org.gnu.anastasis.ui.identity.LOCATIONS
class MainViewModel(private val app: Application) : AndroidViewModel(app) {
+ val currentCountry = MutableLiveData(LOCATIONS[0])
+
val securityQuestionChecked = MutableLiveData<Boolean>()
val smsChecked = MutableLiveData<Boolean>()
val videoChecked = MutableLiveData<Boolean>()
diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt
new file mode 100644
index 0000000..5b68d36
--- /dev/null
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt
@@ -0,0 +1,62 @@
+/*
+ * This file is part of GNU Taler
+ * (C) 2020 Taler Systems S.A.
+ *
+ * GNU Taler is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3, or (at your option) any later version.
+ *
+ * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+package org.gnu.anastasis.ui.identity
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import androidx.navigation.fragment.findNavController
+import kotlinx.android.synthetic.main.fragment_change_location.*
+import org.gnu.anastasis.ui.MainViewModel
+import org.gnu.anastasis.ui.R
+
+class ChangeLocationFragment : Fragment() {
+
+ private val viewModel: MainViewModel by activityViewModels()
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_change_location, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ switzerlandView.setOnClickListener {
+ changeCountry(LOCATIONS[0])
+ }
+ germanyView.setOnClickListener {
+ changeCountry(LOCATIONS[1])
+ }
+ usaView.setOnClickListener {
+ changeCountry(LOCATIONS[2])
+ }
+ indiaView.setOnClickListener {
+ changeCountry(LOCATIONS[3])
+ }
+ }
+
+ private fun changeCountry(location: Location) {
+ viewModel.currentCountry.value = location
+ findNavController().popBackStack()
+ }
+
+}
diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
index d391c5d..40fa477 100644
--- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt
@@ -26,12 +26,14 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
+import androidx.lifecycle.Observer
import androidx.navigation.fragment.findNavController
-import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.fragment_identity.*
import org.gnu.anastasis.ui.MainViewModel
import org.gnu.anastasis.ui.R
-import java.util.*
+import java.util.Calendar
+import java.util.Date
+import java.util.Locale
import java.util.concurrent.TimeUnit.DAYS
private const val MIN_AGE = 18
@@ -50,9 +52,15 @@ class AnastasisIdentityFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- countryView.text = getCountryName()
+ model.currentCountry.observe(viewLifecycleOwner, Observer { country ->
+ countryView.text = country.name
+ if (stub != null) {
+ stub.layoutResource = country.layoutRes
+ stub.inflate()
+ }
+ })
changeCountryView.setOnClickListener {
- Snackbar.make(view, "Not implemented", Snackbar.LENGTH_SHORT).show()
+ findNavController().navigate(R.id.action_nav_anastasis_identity_to_nav_change_location)
}
birthDateInput.editText?.setOnClickListener {
val picker = DatePickerDialog(requireContext())
@@ -72,6 +80,7 @@ class AnastasisIdentityFragment : Fragment() {
}
}
+ @Suppress("unused")
private fun getCountryName(): String {
val tm = requireContext().getSystemService(TelephonyManager::class.java)!!
val countryIso = if (tm.networkCountryIso.isNullOrEmpty()) {
diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt
new file mode 100644
index 0000000..13658d2
--- /dev/null
+++ b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt
@@ -0,0 +1,29 @@
+/*
+ * This file is part of GNU Taler
+ * (C) 2020 Taler Systems S.A.
+ *
+ * GNU Taler is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3, or (at your option) any later version.
+ *
+ * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+ */
+
+package org.gnu.anastasis.ui.identity
+
+import androidx.annotation.LayoutRes
+import org.gnu.anastasis.ui.R
+
+data class Location(val name: String, @LayoutRes val layoutRes: Int)
+
+val LOCATIONS = listOf(
+ Location("Switzerland", R.layout.country_switzerland),
+ Location("Germany", R.layout.country_germany),
+ Location("Unites States", R.layout.country_usa),
+ Location("India", R.layout.country_india)
+)