diff options
author | Torsten Grote <t@grobox.de> | 2020-06-26 11:25:48 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-06-26 11:25:48 -0300 |
commit | 9cbb35ccc65db7b5d8ce1afe4b3c5feae30be1eb (patch) | |
tree | 4e3c857575303b689a0e4c15915ef2ec274a9187 /anastasis-ui/src/main/java | |
parent | 730fbaa702b467669c4b88f6c03fa3e1823abf73 (diff) | |
download | taler-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')
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) +) |