diff options
author | Torsten Grote <t@grobox.de> | 2020-06-26 10:34:08 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-06-26 10:34:08 -0300 |
commit | 730fbaa702b467669c4b88f6c03fa3e1823abf73 (patch) | |
tree | b5ab1c0a07d2763640b1e68fd903e6f100fa5719 /wallet/src/main | |
parent | 98d693d48ad491b19d89e5d394c2e54a36731728 (diff) | |
download | taler-android-730fbaa702b467669c4b88f6c03fa3e1823abf73.tar.gz taler-android-730fbaa702b467669c4b88f6c03fa3e1823abf73.tar.bz2 taler-android-730fbaa702b467669c4b88f6c03fa3e1823abf73.zip |
[wallet] Move Anastasis UI mockup into its own library module
Diffstat (limited to 'wallet/src/main')
26 files changed, 13 insertions, 1497 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/MainActivity.kt b/wallet/src/main/java/net/taler/wallet/MainActivity.kt index c687a0e..2eeb4fd 100644 --- a/wallet/src/main/java/net/taler/wallet/MainActivity.kt +++ b/wallet/src/main/java/net/taler/wallet/MainActivity.kt @@ -216,7 +216,6 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener, ): Boolean { when (pref.key) { "pref_backup" -> nav.navigate(R.id.action_nav_settings_to_nav_settings_backup) - "pref_backup_recovery" -> nav.navigate(R.id.action_nav_settings_backup_to_nav_anastasis_intro) } return true } diff --git a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt index 63d833a..c69c31c 100644 --- a/wallet/src/main/java/net/taler/wallet/MainViewModel.kt +++ b/wallet/src/main/java/net/taler/wallet/MainViewModel.kt @@ -37,7 +37,6 @@ import net.taler.wallet.history.DevHistoryManager import net.taler.wallet.payment.PaymentManager import net.taler.wallet.pending.PendingOperationsManager import net.taler.wallet.refund.RefundManager -import net.taler.wallet.settings.AnastasisManager import net.taler.wallet.transactions.TransactionManager import net.taler.wallet.withdraw.WithdrawManager import org.json.JSONObject @@ -103,7 +102,6 @@ class MainViewModel(val app: Application) : AndroidViewModel(app) { val transactionManager: TransactionManager = TransactionManager(walletBackendApi, viewModelScope, mapper) val refundManager = RefundManager(walletBackendApi) - val anastasisManager = AnastasisManager() private val mTransactionsEvent = MutableLiveData<Event<String>>() val transactionsEvent: LiveData<Event<String>> = mTransactionsEvent diff --git a/wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt deleted file mode 100644 index 4421d46..0000000 --- a/wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt +++ /dev/null @@ -1,130 +0,0 @@ -/* - * 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 net.taler.wallet.settings - -import android.os.Bundle -import android.view.Gravity.CENTER -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.Toast -import android.widget.Toast.LENGTH_SHORT -import androidx.annotation.IdRes -import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels -import androidx.lifecycle.Observer -import androidx.navigation.fragment.FragmentNavigatorExtras -import androidx.navigation.fragment.findNavController -import com.google.android.material.card.MaterialCardView -import kotlinx.android.synthetic.main.fragment_anastasis_authentication.* -import net.taler.common.Amount -import net.taler.wallet.MainViewModel -import net.taler.wallet.R - - -class AnastasisAuthenticationFragment : Fragment() { - - private val model: MainViewModel by activityViewModels() - private val anastasisManager by lazy { model.anastasisManager } - - private var price: Amount = Amount.zero("KUDOS") - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - return inflater.inflate(R.layout.fragment_anastasis_authentication, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - passwordCard.setOnClickListener { - showDialog( - R.id.action_nav_anastasis_authentication_to_securityQuestionFragment, - passwordCard, - "question_card" - ) - } - postidentCard.setOnClickListener { - toggleCard( - postidentCard, - Amount.fromJSONString("KUDOS:3.5") - ) - } - smsCard.setOnClickListener { - showDialog( - R.id.action_nav_anastasis_authentication_to_smsFragment, - smsCard, - "sms_card" - ) - } - videoCard.setOnClickListener { - showDialog( - R.id.action_nav_anastasis_authentication_to_videoFragment, - videoCard, - "video_card" - ) - } - - anastasisManager.securityQuestionChecked.observe(viewLifecycleOwner, Observer { checked -> - passwordCard.isChecked = checked - updatePrice(checked, Amount.fromJSONString("KUDOS:0.5")) - updateNextButtonState() - }) - anastasisManager.smsChecked.observe(viewLifecycleOwner, Observer { checked -> - smsCard.isChecked = checked - updatePrice(checked, Amount.fromJSONString("KUDOS:1.0")) - updateNextButtonState() - }) - anastasisManager.videoChecked.observe(viewLifecycleOwner, Observer { checked -> - videoCard.isChecked = checked - updatePrice(checked, Amount.fromJSONString("KUDOS:2.25")) - updateNextButtonState() - }) - } - - private fun showDialog(@IdRes resId: Int, view: View, transitionName: String) { - val extras = FragmentNavigatorExtras(view to transitionName) - findNavController().navigate(resId, null, null, extras) - } - - private fun toggleCard(card: MaterialCardView, price: Amount) { - card.isChecked = !card.isChecked - val text = "Imagine you entered information here" - if (card.isChecked) Toast.makeText(requireContext(), text, LENGTH_SHORT).apply { - setGravity(CENTER, 0, 0) - }.show() - updatePrice(card.isChecked, price) - updateNextButtonState() - } - - private fun updatePrice(add: Boolean, amount: Amount) { - if (add) price += amount - else price -= amount - recoveryCostView.text = "Recovery cost: $price" - } - - private fun updateNextButtonState() { - var numChecked = 0 - numChecked += if (passwordCard.isChecked) 1 else 0 - numChecked += if (postidentCard.isChecked) 1 else 0 - numChecked += if (smsCard.isChecked) 1 else 0 - numChecked += if (videoCard.isChecked) 1 else 0 - nextAuthButton.isEnabled = numChecked >= 2 - } - -} diff --git a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt deleted file mode 100644 index 6b84223..0000000 --- a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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 net.taler.wallet.settings - -import android.annotation.SuppressLint -import android.app.DatePickerDialog -import android.os.Bundle -import android.telephony.TelephonyManager -import android.text.format.DateFormat.getDateFormat -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 com.google.android.material.snackbar.Snackbar -import kotlinx.android.synthetic.main.fragment_anastasis_identity.* -import net.taler.wallet.MainViewModel -import net.taler.wallet.R -import java.util.* -import java.util.concurrent.TimeUnit.DAYS - -private const val MIN_AGE = 18 - -class AnastasisIdentityFragment : Fragment() { - - private val model: MainViewModel by activityViewModels() - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - return inflater.inflate(R.layout.fragment_anastasis_identity, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - countryView.text = getCountryName() - changeCountryView.setOnClickListener { - Snackbar.make(view, "Not implemented", Snackbar.LENGTH_SHORT).show() - } - birthDateInput.editText?.setOnClickListener { - val picker = DatePickerDialog(requireContext()) - picker.datePicker.maxDate = System.currentTimeMillis() - DAYS.toMillis(365) * MIN_AGE - picker.setOnDateSetListener { _, year, month, dayOfMonth -> - val calender = Calendar.getInstance().apply { - set(year, month, dayOfMonth) - } - val date = Date(calender.timeInMillis) - val dateStr = getDateFormat(requireContext()).format(date) - birthDateInput.editText?.setText(dateStr) - } - picker.show() - } - createIdentifierButton.setOnClickListener { - findNavController().navigate(R.id.action_nav_anastasis_intro_to_nav_anastasis_authentication) - } - } - - private fun getCountryName(): String { - val tm = requireContext().getSystemService(TelephonyManager::class.java)!! - val countryIso = if (tm.networkCountryIso.isNullOrEmpty()) { - if (tm.simCountryIso.isNullOrEmpty()) { - if (Locale.getDefault().country.isNullOrEmpty()) "unknown" - else Locale.getDefault().country - } else tm.simCountryIso - } else tm.networkCountryIso - var countryName = countryIso - for (locale in Locale.getAvailableLocales()) { - @SuppressLint("DefaultLocale") - if (locale.country.toLowerCase() == countryIso) { - countryName = locale.displayCountry - break - } - } - return countryName - } - -} diff --git a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt deleted file mode 100644 index 463f5b8..0000000 --- a/wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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 net.taler.wallet.settings - -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_anastasis_intro.* -import net.taler.wallet.MainViewModel -import net.taler.wallet.R - - -class AnastasisIntroFragment : Fragment() { - - private val model: MainViewModel by activityViewModels() - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - return inflater.inflate(R.layout.fragment_anastasis_intro, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - button.setOnClickListener { - findNavController().navigate(R.id.action_nav_anastasis_intro_to_nav_anastasis_identity) - } - } - - -} diff --git a/wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt b/wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt deleted file mode 100644 index 09c6a39..0000000 --- a/wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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 net.taler.wallet.settings - -import androidx.lifecycle.MutableLiveData - -class AnastasisManager { - - val securityQuestionChecked = MutableLiveData<Boolean>() - val smsChecked = MutableLiveData<Boolean>() - val videoChecked = MutableLiveData<Boolean>() - -} diff --git a/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt index f820661..0dc7124 100644 --- a/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt @@ -16,26 +16,28 @@ package net.taler.wallet.settings +import android.content.Intent import android.os.Bundle import android.view.View -import androidx.fragment.app.activityViewModels +import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat -import net.taler.wallet.MainViewModel import net.taler.wallet.R - +import org.gnu.anastasis.ui.MainActivity class BackupSettingsFragment : PreferenceFragmentCompat() { - private val model: MainViewModel by activityViewModels() - override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.settings_backup, rootKey) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - + val recoveryPref: Preference = findPreference("pref_backup_recovery")!! + recoveryPref.setOnPreferenceClickListener { + val intent = Intent(requireContext(), MainActivity::class.java) + startActivity(intent) + true + } } - } diff --git a/wallet/src/main/java/net/taler/wallet/settings/SecurityQuestionFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/SecurityQuestionFragment.kt deleted file mode 100644 index 0ca63b4..0000000 --- a/wallet/src/main/java/net/taler/wallet/settings/SecurityQuestionFragment.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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 net.taler.wallet.settings - -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 com.google.android.material.transition.MaterialContainerTransform -import com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS -import kotlinx.android.synthetic.main.fragment_security_question.* -import net.taler.wallet.MainViewModel -import net.taler.wallet.R - -class SecurityQuestionFragment : Fragment() { - - private val model: MainViewModel by activityViewModels() - private val anastasisManager by lazy { model.anastasisManager } - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - sharedElementEnterTransition = MaterialContainerTransform().apply { - fadeMode = FADE_MODE_CROSS - } - return inflater.inflate(R.layout.fragment_security_question, container, false).apply { - transitionName = "question_card" - } - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - saveQuestionButton.setOnClickListener { - anastasisManager.securityQuestionChecked.value = true - findNavController().popBackStack() - } - } - -} diff --git a/wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt deleted file mode 100644 index 6a617ac..0000000 --- a/wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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 net.taler.wallet.settings - -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 com.google.android.material.transition.MaterialContainerTransform -import com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS -import kotlinx.android.synthetic.main.fragment_sms.* -import net.taler.wallet.MainViewModel -import net.taler.wallet.R - -class SmsFragment : Fragment() { - - private val model: MainViewModel by activityViewModels() - private val anastasisManager by lazy { model.anastasisManager } - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - sharedElementEnterTransition = MaterialContainerTransform().apply { - fadeMode = FADE_MODE_CROSS - } - return inflater.inflate(R.layout.fragment_sms, container, false).apply { - transitionName = "sms_card" - } - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - saveSmsButton.setOnClickListener { - anastasisManager.smsChecked.value = true - findNavController().popBackStack() - } - } - -} diff --git a/wallet/src/main/java/net/taler/wallet/settings/VideoFragment.kt b/wallet/src/main/java/net/taler/wallet/settings/VideoFragment.kt deleted file mode 100644 index 8a6477d..0000000 --- a/wallet/src/main/java/net/taler/wallet/settings/VideoFragment.kt +++ /dev/null @@ -1,117 +0,0 @@ -/* - * 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 net.taler.wallet.settings - -import android.app.Activity.RESULT_OK -import android.content.Intent -import android.graphics.Bitmap -import android.graphics.BitmapFactory -import android.net.Uri -import android.os.Bundle -import android.os.ParcelFileDescriptor -import android.provider.MediaStore -import android.view.LayoutInflater -import android.view.View -import android.view.View.GONE -import android.view.View.VISIBLE -import android.view.ViewGroup -import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels -import androidx.navigation.fragment.findNavController -import androidx.transition.TransitionManager.beginDelayedTransition -import com.google.android.material.transition.MaterialContainerTransform -import com.google.android.material.transition.MaterialContainerTransform.FADE_MODE_CROSS -import kotlinx.android.synthetic.main.fragment_video.* -import net.taler.wallet.MainViewModel -import net.taler.wallet.R -import java.io.FileDescriptor - -private const val REQUEST_IMAGE_CAPTURE = 1 -private const val REQUEST_IMAGE_OPEN = 2 - -class VideoFragment : Fragment() { - - private val model: MainViewModel by activityViewModels() - private val anastasisManager by lazy { model.anastasisManager } - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - sharedElementEnterTransition = MaterialContainerTransform().apply { - fadeMode = FADE_MODE_CROSS - } - return inflater.inflate(R.layout.fragment_video, container, false).apply { - transitionName = "video_card" - } - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - takePhotoButton.setOnClickListener { - val pm = requireContext().packageManager - Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent -> - takePictureIntent.resolveActivity(pm)?.also { - startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE) - } - } - } - choosePhotoButton.setOnClickListener { - val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { - addCategory(Intent.CATEGORY_OPENABLE) - type = "image/*" - } - startActivityForResult(intent, REQUEST_IMAGE_OPEN) - } - - saveVideoButton.setOnClickListener { - anastasisManager.videoChecked.value = true - findNavController().popBackStack() - } - } - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { - val imageBitmap = data!!.extras!!.get("data") as Bitmap - showImage(imageBitmap) - } else if (requestCode == REQUEST_IMAGE_OPEN && resultCode == RESULT_OK) { - data?.data?.also { uri -> - val imageBitmap = getBitmapFromUri(uri) - showImage(imageBitmap) - } - } - } - - private fun showImage(bitmap: Bitmap) { - photoView.setImageBitmap(bitmap) - beginDelayedTransition(view as ViewGroup) - photoView.visibility = VISIBLE - takePhotoButton.visibility = GONE - choosePhotoButton.visibility = GONE - saveVideoButton.isEnabled = true - } - - private fun getBitmapFromUri(uri: Uri): Bitmap { - val contentResolver = requireContext().contentResolver - val parcelFileDescriptor: ParcelFileDescriptor = - contentResolver.openFileDescriptor(uri, "r")!! - val fileDescriptor: FileDescriptor = parcelFileDescriptor.fileDescriptor - val image: Bitmap = BitmapFactory.decodeFileDescriptor(fileDescriptor) - parcelFileDescriptor.close() - return image - } - -} diff --git a/wallet/src/main/res/anim/slide_in_right.xml b/wallet/src/main/res/anim/slide_in_right.xml deleted file mode 100644 index 1425210..0000000 --- a/wallet/src/main/res/anim/slide_in_right.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - ~ 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/> - --> - -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <translate android:fromXDelta="75%p" android:toXDelta="0" - android:duration="@android:integer/config_mediumAnimTime"/> - <alpha android:fromAlpha="0.0" android:toAlpha="1.0" - android:duration="@android:integer/config_mediumAnimTime" /> -</set> diff --git a/wallet/src/main/res/anim/slide_out_left.xml b/wallet/src/main/res/anim/slide_out_left.xml deleted file mode 100644 index 0581b69..0000000 --- a/wallet/src/main/res/anim/slide_out_left.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - ~ 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/> - --> - -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <translate android:fromXDelta="0" android:toXDelta="-75%p" - android:duration="@android:integer/config_mediumAnimTime"/> - <alpha android:fromAlpha="1.0" android:toAlpha="0.0" - android:duration="@android:integer/config_mediumAnimTime" /> -</set> diff --git a/wallet/src/main/res/drawable/ic_baseline_check.xml b/wallet/src/main/res/drawable/ic_baseline_check.xml deleted file mode 100644 index 219e80e..0000000 --- a/wallet/src/main/res/drawable/ic_baseline_check.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:tint="?attr/colorControlNormal" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:fillColor="@android:color/white" - android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z" /> -</vector> diff --git a/wallet/src/main/res/drawable/ic_baseline_cloud_circle.xml b/wallet/src/main/res/drawable/ic_baseline_cloud_circle.xml deleted file mode 100644 index bb8e80a..0000000 --- a/wallet/src/main/res/drawable/ic_baseline_cloud_circle.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:tint="?attr/colorControlNormal" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:fillColor="@android:color/white" - android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM16.5,16L8,16c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3l0.14,0.01C8.58,8.28 10.13,7 12,7c2.21,0 4,1.79 4,4h0.5c1.38,0 2.5,1.12 2.5,2.5S17.88,16 16.5,16z" /> -</vector> diff --git a/wallet/src/main/res/drawable/ic_baseline_cloud_download.xml b/wallet/src/main/res/drawable/ic_baseline_cloud_download.xml deleted file mode 100644 index 58832b1..0000000 --- a/wallet/src/main/res/drawable/ic_baseline_cloud_download.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:tint="?attr/colorControlNormal" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:fillColor="@android:color/white" - android:pathData="M19.35,10.04C18.67,6.59 15.64,4 12,4 9.11,4 6.6,5.64 5.35,8.04 2.34,8.36 0,10.91 0,14c0,3.31 2.69,6 6,6h13c2.76,0 5,-2.24 5,-5 0,-2.64 -2.05,-4.78 -4.65,-4.96zM17,13l-5,5 -5,-5h3V9h4v4h3z" /> -</vector> diff --git a/wallet/src/main/res/drawable/ic_baseline_face.xml b/wallet/src/main/res/drawable/ic_baseline_face.xml deleted file mode 100644 index 4d55e34..0000000 --- a/wallet/src/main/res/drawable/ic_baseline_face.xml +++ /dev/null @@ -1,26 +0,0 @@ -<!-- - ~ 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/> - --> - -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24" - android:tint="?attr/colorControlNormal"> - <path - android:fillColor="@android:color/white" - android:pathData="M9,11.75c-0.69,0 -1.25,0.56 -1.25,1.25s0.56,1.25 1.25,1.25 1.25,-0.56 1.25,-1.25 -0.56,-1.25 -1.25,-1.25zM15,11.75c-0.69,0 -1.25,0.56 -1.25,1.25s0.56,1.25 1.25,1.25 1.25,-0.56 1.25,-1.25 -0.56,-1.25 -1.25,-1.25zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8 0,-0.29 0.02,-0.58 0.05,-0.86 2.36,-1.05 4.23,-2.98 5.21,-5.37C11.07,8.33 14.05,10 17.42,10c0.78,0 1.53,-0.09 2.25,-0.26 0.21,0.71 0.33,1.47 0.33,2.26 0,4.41 -3.59,8 -8,8z"/> -</vector> diff --git a/wallet/src/main/res/drawable/ic_baseline_lock.xml b/wallet/src/main/res/drawable/ic_baseline_lock.xml deleted file mode 100644 index 8f13e37..0000000 --- a/wallet/src/main/res/drawable/ic_baseline_lock.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:tint="?attr/colorControlNormal" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:fillColor="@android:color/white" - android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z" /> -</vector> diff --git a/wallet/src/main/res/drawable/ic_baseline_person.xml b/wallet/src/main/res/drawable/ic_baseline_person.xml deleted file mode 100644 index 07eeb5a..0000000 --- a/wallet/src/main/res/drawable/ic_baseline_person.xml +++ /dev/null @@ -1,10 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:tint="?attr/colorControlNormal" - android:viewportWidth="24" - android:viewportHeight="24"> - <path - android:fillColor="@android:color/white" - android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z" /> -</vector> diff --git a/wallet/src/main/res/layout/fragment_anastasis_authentication.xml b/wallet/src/main/res/layout/fragment_anastasis_authentication.xml deleted file mode 100644 index a83871a..0000000 --- a/wallet/src/main/res/layout/fragment_anastasis_authentication.xml +++ /dev/null @@ -1,275 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ 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/> - --> - -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <ScrollView - android:layout_width="match_parent" - android:layout_height="0dp" - app:layout_constraintBottom_toTopOf="@+id/bottomCard" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <LinearLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <com.google.android.material.card.MaterialCardView - android:id="@+id/passwordCard" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginTop="16dp" - android:layout_marginEnd="16dp" - android:checkable="true" - android:clickable="true" - android:focusable="true" - android:transitionName="question_card" - app:cardElevation="4dp" - app:cardUseCompatPadding="true" - app:checkedIcon="@drawable/ic_baseline_check" - app:checkedIconTint="@color/green" - app:contentPadding="8dp"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <TextView - android:id="@+id/passwordHeadline" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:text="Security question" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/passwordText" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:text="Provide your own security question (and answer) that you will need to answer to authenticate when recovering your backup." - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/passwordHeadline" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - </com.google.android.material.card.MaterialCardView> - - <com.google.android.material.circularreveal.cardview.CircularRevealCardView - android:id="@+id/postidentCard" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginTop="16dp" - android:layout_marginEnd="16dp" - android:checkable="true" - app:cardElevation="4dp" - app:cardUseCompatPadding="true" - app:checkedIcon="@drawable/ic_baseline_check" - app:checkedIconTint="@color/green" - app:contentPadding="8dp"> - - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <TextView - android:id="@+id/postidentHeadline" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:text="Identification by mail" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/postidentText" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:text="Die Postident-Verfahren sind Methoden der persönlichen Identifikation von Personen, die durch die Mitarbeiter der Post vorgenommen werden. Man spricht beim Postident-Verfahren auch von einer unpersönlichen Legitimationsprüfung. " - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/postidentHeadline" /> - </androidx.constraintlayout.widget.ConstraintLayout> - </com.google.android.material.circularreveal.cardview.CircularRevealCardView> - - - <com.google.android.material.card.MaterialCardView - android:id="@+id/smsCard" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginTop="16dp" - android:layout_marginEnd="16dp" - android:checkable="true" - android:clickable="true" - android:focusable="true" - android:transitionName="sms_card" - app:cardElevation="4dp" - app:cardUseCompatPadding="true" - app:checkedIcon="@drawable/ic_baseline_check" - app:checkedIconTint="@color/green" - app:contentPadding="8dp"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <TextView - android:id="@+id/smsHeadline" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:text="SMS" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/smsText" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:text="Sends an SMS with a code to the users phone. The must send this code back with his request. If the transmitted code is correct, the server responses with the requested encrypted key share." - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/smsHeadline" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - </com.google.android.material.card.MaterialCardView> - - <com.google.android.material.card.MaterialCardView - android:id="@+id/videoCard" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:checkable="true" - android:clickable="true" - android:focusable="true" - android:transitionName="video_card" - app:cardElevation="4dp" - app:cardUseCompatPadding="true" - app:checkedIcon="@drawable/ic_baseline_check" - app:checkedIconTint="@color/green" - app:contentPadding="8dp"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <TextView - android:id="@+id/videoHeadline" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:text="Video identification" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline5" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/videoText" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:text="Requires the user to identify via video-call. The user is expected to delete all metadata revealing information about him/her from the images before uploading them. Since the respective images must be passed on to the video identification service in the event of password recovery, it must be ensured that no further information about the user can be derived from them." - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/videoHeadline" /> - </androidx.constraintlayout.widget.ConstraintLayout> - - </com.google.android.material.card.MaterialCardView> - - </LinearLayout> - - </ScrollView> - - <com.google.android.material.card.MaterialCardView - android:id="@+id/bottomCard" - android:layout_width="0dp" - android:layout_height="wrap_content" - app:cardCornerRadius="0dp" - app:cardElevation="6dp" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <Button - android:id="@+id/nextAuthButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginEnd="16dp" - android:backgroundTint="@color/green" - android:enabled="false" - android:text="Next" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/annualCostView" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="8dp" - android:layout_marginBottom="8dp" - android:text="Annual cost: 5 KUDOS" - app:layout_constraintBottom_toTopOf="@+id/recoveryCostView" - app:layout_constraintEnd_toStartOf="@+id/nextAuthButton" - app:layout_constraintHorizontal_bias="0.5" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_chainStyle="spread" /> - - <TextView - android:id="@+id/recoveryCostView" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginEnd="8dp" - android:layout_marginBottom="8dp" - android:text="Recovery cost: 0 KUDOS" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/nextAuthButton" - app:layout_constraintHorizontal_bias="0.5" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/annualCostView" /> - - </androidx.constraintlayout.widget.ConstraintLayout> - - </com.google.android.material.card.MaterialCardView> - -</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/wallet/src/main/res/layout/fragment_anastasis_identity.xml b/wallet/src/main/res/layout/fragment_anastasis_identity.xml deleted file mode 100644 index e24be31..0000000 --- a/wallet/src/main/res/layout/fragment_anastasis_identity.xml +++ /dev/null @@ -1,187 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ 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/> - --> - -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fillViewport="true"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <ImageView - android:id="@+id/imageView2" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_baseline_person" /> - - <TextView - android:id="@+id/identityIntro" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:layout_marginTop="24dp" - android:text="To find your secret later, we create an anonymous identifier from unforgettable information about you.\n\nThis information will not be stored and not shared with anybody.\n\nFeel free to lie as long as you will be able to provide exactly the same information when needing to restore." - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/imageView2" - app:layout_constraintTop_toTopOf="parent" /> - - <TextView - android:id="@+id/textView3" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:text="Detected Country:" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/identityIntro" /> - - <TextView - android:id="@+id/countryView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:text="Unknown" - app:layout_constraintBaseline_toBaselineOf="@+id/textView3" - app:layout_constraintStart_toEndOf="@+id/textView3" /> - - <TextView - android:id="@+id/changeCountryView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="8dp" - android:text="Change" - android:textColor="@color/colorAccent" - app:layout_constraintBaseline_toBaselineOf="@+id/countryView" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.0" - app:layout_constraintStart_toEndOf="@+id/countryView" /> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/nameInput" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/textView3"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="textPersonName|textCapWords" - android:hint="Name" /> - - </com.google.android.material.textfield.TextInputLayout> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/placeOfBirthInput" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/nameInput"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:inputType="text|textCapWords" - android:hint="Place of birth" /> - - </com.google.android.material.textfield.TextInputLayout> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/birthDateInput" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/placeOfBirthInput"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:focusable="false" - android:hint="Birthday" - android:inputType="date" /> - - </com.google.android.material.textfield.TextInputLayout> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/idNumberInput" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/birthDateInput" - app:layout_constraintVertical_bias="0.0"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:hint="AHV number" - android:inputType="number" - android:maxLength="13" /> - - </com.google.android.material.textfield.TextInputLayout> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/taxIdInput" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintBottom_toTopOf="@+id/createIdentifierButton" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/idNumberInput" - app:layout_constraintVertical_bias="0.0"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:hint="Tax ID number" - android:inputType="number" - android:maxLength="13" /> - - </com.google.android.material.textfield.TextInputLayout> - - <Button - android:id="@+id/createIdentifierButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:backgroundTint="@color/green" - android:drawableLeft="@drawable/ic_baseline_lock" - android:drawableTint="?attr/colorOnPrimarySurface" - android:text="Encrypt Identity" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" /> - - </androidx.constraintlayout.widget.ConstraintLayout> - -</ScrollView> diff --git a/wallet/src/main/res/layout/fragment_anastasis_intro.xml b/wallet/src/main/res/layout/fragment_anastasis_intro.xml deleted file mode 100644 index 262287b..0000000 --- a/wallet/src/main/res/layout/fragment_anastasis_intro.xml +++ /dev/null @@ -1,60 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ 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/> - --> - -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <ImageView - android:id="@+id/imageView" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_margin="16dp" - android:tint="@color/green" - app:layout_constraintBottom_toTopOf="@+id/textView" - app:layout_constraintDimensionRatio="1:1" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHeight_max="200dp" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="1.0" - app:layout_constraintVertical_chainStyle="spread" - app:srcCompat="@drawable/ic_baseline_cloud_circle" /> - - <TextView - android:id="@+id/textView" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:text="Secure cloud recovery keeps your backup secret safe with service providers of your choice.\n\nTo access your backup, you need to identify yourself to some or all of those providers, so they unlock your backup." - android:textSize="22sp" - app:layout_constraintBottom_toTopOf="@+id/button" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/imageView" /> - - <Button - android:id="@+id/button" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:backgroundTint="@color/green" - android:text="Setup cloud recovery" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" /> - -</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/wallet/src/main/res/layout/fragment_security_question.xml b/wallet/src/main/res/layout/fragment_security_question.xml deleted file mode 100644 index 4df4f97..0000000 --- a/wallet/src/main/res/layout/fragment_security_question.xml +++ /dev/null @@ -1,100 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ 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/> - --> - -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <com.google.android.material.card.MaterialCardView - android:id="@+id/questionCard" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginStart="16dp" - android:layout_marginTop="16dp" - android:layout_marginEnd="16dp" - app:cardElevation="4dp" - app:cardUseCompatPadding="true" - app:contentPadding="8dp" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/questionView" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:hint="Question" - android:inputType="text|textCapSentences" /> - - </com.google.android.material.textfield.TextInputLayout> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/answerView" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginTop="8dp" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/questionView"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:hint="Answer" - android:inputType="text" /> - - </com.google.android.material.textfield.TextInputLayout> - - </androidx.constraintlayout.widget.ConstraintLayout> - </com.google.android.material.card.MaterialCardView> - - <ImageButton - android:id="@+id/addQuestionButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:background="?attr/selectableItemBackground" - android:drawableTint="?attr/colorOnPrimarySurface" - android:src="@drawable/ic_add_circle" - android:text="Save" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toBottomOf="@+id/questionCard" /> - - <Button - android:id="@+id/saveQuestionButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:backgroundTint="@color/green" - android:drawableTint="?attr/colorOnPrimarySurface" - android:text="Save" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" /> - -</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/wallet/src/main/res/layout/fragment_sms.xml b/wallet/src/main/res/layout/fragment_sms.xml deleted file mode 100644 index f855d38..0000000 --- a/wallet/src/main/res/layout/fragment_sms.xml +++ /dev/null @@ -1,51 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ 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/> - --> - -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/smsView" - style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent"> - - <com.google.android.material.textfield.TextInputEditText - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:hint="Phone Number" - android:inputType="phone" /> - - </com.google.android.material.textfield.TextInputLayout> - - <Button - android:id="@+id/saveSmsButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:backgroundTint="@color/green" - android:drawableTint="?attr/colorOnPrimarySurface" - android:text="Save" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" /> - -</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/wallet/src/main/res/layout/fragment_video.xml b/wallet/src/main/res/layout/fragment_video.xml deleted file mode 100644 index c08e269..0000000 --- a/wallet/src/main/res/layout/fragment_video.xml +++ /dev/null @@ -1,89 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><!-- - ~ 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/> - --> - -<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <ImageView - android:id="@+id/imageView2" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_baseline_face" /> - - <TextView - android:id="@+id/videoIntro" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:layout_marginTop="24dp" - android:text="Provide a photo of you that will be used when restoring to confirm your identity via a video call." - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/imageView2" - app:layout_constraintTop_toTopOf="parent" /> - - <ImageView - android:id="@+id/photoView" - android:layout_width="0dp" - android:layout_height="0dp" - android:layout_margin="16dp" - android:scaleType="fitCenter" - android:visibility="gone" - tools:visibility="visible" - app:layout_constraintBottom_toTopOf="@+id/saveVideoButton" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/videoIntro" - tools:srcCompat="@tools:sample/avatars" /> - - <Button - android:id="@+id/takePhotoButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Take Photo" - app:layout_constraintBottom_toTopOf="@+id/choosePhotoButton" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/videoIntro" /> - - <Button - android:id="@+id/choosePhotoButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="Choose from Gallery" - app:layout_constraintBottom_toTopOf="@+id/saveVideoButton" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/takePhotoButton" /> - - <Button - android:id="@+id/saveVideoButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_margin="16dp" - android:backgroundTint="@color/green" - android:drawableTint="?attr/colorOnPrimarySurface" - android:enabled="false" - android:text="Save" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" /> - -</androidx.constraintlayout.widget.ConstraintLayout> diff --git a/wallet/src/main/res/navigation/nav_graph.xml b/wallet/src/main/res/navigation/nav_graph.xml index 7ce7b02..51dcaba 100644 --- a/wallet/src/main/res/navigation/nav_graph.xml +++ b/wallet/src/main/res/navigation/nav_graph.xml @@ -66,75 +66,7 @@ <fragment android:id="@+id/nav_settings_backup" android:name="net.taler.wallet.settings.BackupSettingsFragment" - android:label="@string/nav_settings_backup"> - <action - android:id="@+id/action_nav_settings_backup_to_nav_anastasis_intro" - app:destination="@id/nav_anastasis_intro" - app:enterAnim="@anim/slide_in_right" - app:exitAnim="@anim/slide_out_left" - app:popEnterAnim="@android:anim/slide_in_left" - app:popExitAnim="@android:anim/slide_out_right" /> - </fragment> - - <fragment - android:id="@+id/nav_anastasis_intro" - android:name="net.taler.wallet.settings.AnastasisIntroFragment" - android:label="Secure Cloud Recovery" - tools:layout="@layout/fragment_anastasis_intro"> - <action - android:id="@+id/action_nav_anastasis_intro_to_nav_anastasis_identity" - app:destination="@id/nav_anastasis_identity" - app:enterAnim="@anim/slide_in_right" - app:exitAnim="@anim/slide_out_left" - app:popEnterAnim="@android:anim/slide_in_left" - app:popExitAnim="@android:anim/slide_out_right" /> - </fragment> - - <fragment - android:id="@+id/nav_anastasis_identity" - android:name="net.taler.wallet.settings.AnastasisIdentityFragment" - android:label="Define your identity" - tools:layout="@layout/fragment_anastasis_identity"> - <action - android:id="@+id/action_nav_anastasis_intro_to_nav_anastasis_authentication" - app:destination="@id/nav_anastasis_authentication" - app:enterAnim="@anim/slide_in_right" - app:exitAnim="@anim/slide_out_left" - app:popEnterAnim="@android:anim/slide_in_left" - app:popExitAnim="@android:anim/slide_out_right" /> - </fragment> - - <fragment - android:id="@+id/nav_anastasis_authentication" - android:name="net.taler.wallet.settings.AnastasisAuthenticationFragment" - android:label="Choose authentication methods" - tools:layout="@layout/fragment_anastasis_authentication"> - <action - android:id="@+id/action_nav_anastasis_authentication_to_securityQuestionFragment" - app:destination="@id/securityQuestionFragment" /> - <action - android:id="@+id/action_nav_anastasis_authentication_to_smsFragment" - app:destination="@id/smsFragment" /> - <action - android:id="@+id/action_nav_anastasis_authentication_to_videoFragment" - app:destination="@id/videoFragment" /> - </fragment> - - <fragment - android:id="@+id/securityQuestionFragment" - android:name="net.taler.wallet.settings.SecurityQuestionFragment" - android:label="Security question" - tools:layout="@layout/fragment_security_question" /> - <fragment - android:id="@+id/smsFragment" - android:name="net.taler.wallet.settings.SmsFragment" - android:label="SMS" - tools:layout="@layout/fragment_sms" /> - <fragment - android:id="@+id/videoFragment" - android:name="net.taler.wallet.settings.VideoFragment" - android:label="Video identification" - tools:layout="@layout/fragment_video" /> + android:label="@string/nav_settings_backup"/> <fragment android:id="@+id/nav_transactions" diff --git a/wallet/src/main/res/xml/settings_backup.xml b/wallet/src/main/res/xml/settings_backup.xml index b275302..52b72ac 100644 --- a/wallet/src/main/res/xml/settings_backup.xml +++ b/wallet/src/main/res/xml/settings_backup.xml @@ -14,7 +14,8 @@ ~ GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> --> -<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto"> <SwitchPreferenceCompat app:defaultValue="@bool/settings_backup_default" @@ -48,10 +49,9 @@ <Preference app:dependency="pref_backup_switch" app:icon="@drawable/ic_baseline_cloud_circle" - app:fragment="net.taler.wallet.settings.SettingsFragment" app:key="pref_backup_recovery" app:summary="Not used" - app:title="Secure cloud recovery" /> + app:title="Secure cloud recovery"/> </PreferenceCategory> |