From 2398d0fb201b53b2e41bf9d549b293b6b93e2c45 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 26 Oct 2022 10:17:26 -0300 Subject: [wallet] Remove old anastasis prototype --- anastasis-ui/src/main/AndroidManifest.xml | 27 -- .../java/org/gnu/anastasis/ui/IntroFragment.kt | 58 ----- .../main/java/org/gnu/anastasis/ui/MainActivity.kt | 50 ---- .../java/org/gnu/anastasis/ui/MainViewModel.kt | 32 --- .../ui/authentication/AuthenticationFragment.kt | 134 ---------- .../ui/authentication/SecurityQuestionFragment.kt | 60 ----- .../gnu/anastasis/ui/authentication/SmsFragment.kt | 118 --------- .../anastasis/ui/authentication/VideoFragment.kt | 135 ---------- .../ui/identity/ChangeLocationFragment.kt | 68 ----- .../gnu/anastasis/ui/identity/IdentityFragment.kt | 124 ---------- .../org/gnu/anastasis/ui/identity/Locations.kt | 29 --- anastasis-ui/src/main/res/anim/slide_in_right.xml | 23 -- anastasis-ui/src/main/res/anim/slide_out_left.xml | 23 -- .../src/main/res/drawable/ic_add_circle.xml | 10 - .../src/main/res/drawable/ic_baseline_check.xml | 10 - .../main/res/drawable/ic_baseline_cloud_circle.xml | 10 - .../res/drawable/ic_baseline_cloud_download.xml | 10 - .../src/main/res/drawable/ic_baseline_face.xml | 26 -- .../src/main/res/drawable/ic_baseline_lock.xml | 10 - .../src/main/res/drawable/ic_baseline_person.xml | 10 - anastasis-ui/src/main/res/layout/activity.xml | 54 ---- .../src/main/res/layout/country_germany.xml | 54 ---- anastasis-ui/src/main/res/layout/country_india.xml | 38 --- .../src/main/res/layout/country_switzerland.xml | 54 ---- anastasis-ui/src/main/res/layout/country_usa.xml | 38 --- .../main/res/layout/fragment_authentication.xml | 275 --------------------- .../main/res/layout/fragment_change_location.xml | 74 ------ .../src/main/res/layout/fragment_identity.xml | 157 ------------ .../src/main/res/layout/fragment_intro.xml | 62 ----- .../main/res/layout/fragment_security_question.xml | 102 -------- anastasis-ui/src/main/res/layout/fragment_sms.xml | 51 ---- .../src/main/res/layout/fragment_video.xml | 89 ------- anastasis-ui/src/main/res/navigation/anastasis.xml | 96 ------- anastasis-ui/src/main/res/values/themes.xml | 32 --- 34 files changed, 2143 deletions(-) delete mode 100644 anastasis-ui/src/main/AndroidManifest.xml delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SecurityQuestionFragment.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/VideoFragment.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt delete mode 100644 anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt delete mode 100644 anastasis-ui/src/main/res/anim/slide_in_right.xml delete mode 100644 anastasis-ui/src/main/res/anim/slide_out_left.xml delete mode 100644 anastasis-ui/src/main/res/drawable/ic_add_circle.xml delete mode 100644 anastasis-ui/src/main/res/drawable/ic_baseline_check.xml delete mode 100644 anastasis-ui/src/main/res/drawable/ic_baseline_cloud_circle.xml delete mode 100644 anastasis-ui/src/main/res/drawable/ic_baseline_cloud_download.xml delete mode 100644 anastasis-ui/src/main/res/drawable/ic_baseline_face.xml delete mode 100644 anastasis-ui/src/main/res/drawable/ic_baseline_lock.xml delete mode 100644 anastasis-ui/src/main/res/drawable/ic_baseline_person.xml delete mode 100644 anastasis-ui/src/main/res/layout/activity.xml delete mode 100644 anastasis-ui/src/main/res/layout/country_germany.xml delete mode 100644 anastasis-ui/src/main/res/layout/country_india.xml delete mode 100644 anastasis-ui/src/main/res/layout/country_switzerland.xml delete mode 100644 anastasis-ui/src/main/res/layout/country_usa.xml delete mode 100644 anastasis-ui/src/main/res/layout/fragment_authentication.xml delete mode 100644 anastasis-ui/src/main/res/layout/fragment_change_location.xml delete mode 100644 anastasis-ui/src/main/res/layout/fragment_identity.xml delete mode 100644 anastasis-ui/src/main/res/layout/fragment_intro.xml delete mode 100644 anastasis-ui/src/main/res/layout/fragment_security_question.xml delete mode 100644 anastasis-ui/src/main/res/layout/fragment_sms.xml delete mode 100644 anastasis-ui/src/main/res/layout/fragment_video.xml delete mode 100644 anastasis-ui/src/main/res/navigation/anastasis.xml delete mode 100644 anastasis-ui/src/main/res/values/themes.xml (limited to 'anastasis-ui/src/main') diff --git a/anastasis-ui/src/main/AndroidManifest.xml b/anastasis-ui/src/main/AndroidManifest.xml deleted file mode 100644 index 2827271..0000000 --- a/anastasis-ui/src/main/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt deleted file mode 100644 index ef2e190..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/IntroFragment.kt +++ /dev/null @@ -1,58 +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 - */ - -package org.gnu.anastasis.ui - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.fragment.app.Fragment -import androidx.navigation.fragment.findNavController -import org.gnu.anastasis.ui.databinding.FragmentIntroBinding - -class IntroFragment : Fragment() { - - private var _binding: FragmentIntroBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - _binding = FragmentIntroBinding.inflate(inflater, container, false) - val view = binding.root - return view - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - binding.button.setOnClickListener { - findNavController().navigate(R.id.action_nav_anastasis_intro_to_nav_anastasis_identity) - } - } - - -} diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt deleted file mode 100644 index d7870cb..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainActivity.kt +++ /dev/null @@ -1,50 +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 - */ - -package org.gnu.anastasis.ui - -import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity -import androidx.navigation.NavController -import androidx.navigation.fragment.NavHostFragment -import androidx.navigation.ui.AppBarConfiguration -import androidx.navigation.ui.setupWithNavController -import org.gnu.anastasis.ui.databinding.ActivityBinding - -internal const val PERMISSION_REQUEST_CODE = 1 - -class MainActivity : AppCompatActivity() { - - private lateinit var nav: NavController - - private lateinit var binding: ActivityBinding - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity) - - val navHostFragment = - supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment - nav = navHostFragment.navController - - setSupportActionBar(binding.toolbar) - val appBarConfiguration = AppBarConfiguration( - emptySet() - ) - binding.toolbar.setupWithNavController(nav, appBarConfiguration) - } - -} 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 deleted file mode 100644 index e2bf0c8..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/MainViewModel.kt +++ /dev/null @@ -1,32 +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 - */ - -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(app: Application) : AndroidViewModel(app) { - - val currentCountry = MutableLiveData(LOCATIONS[0]) - - val securityQuestionChecked = MutableLiveData() - val smsChecked = MutableLiveData() - val videoChecked = MutableLiveData() - -} diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt deleted file mode 100644 index da947b0..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/AuthenticationFragment.kt +++ /dev/null @@ -1,134 +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 - */ - -package org.gnu.anastasis.ui.authentication - -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.navigation.fragment.FragmentNavigatorExtras -import androidx.navigation.fragment.findNavController -import com.google.android.material.card.MaterialCardView -import net.taler.common.Amount -import org.gnu.anastasis.ui.MainViewModel -import org.gnu.anastasis.ui.R -import org.gnu.anastasis.ui.databinding.FragmentAuthenticationBinding - -class AuthenticationFragment : Fragment() { - - private val viewModel: MainViewModel by activityViewModels() - - private var price: Amount = Amount.zero("KUDOS") - - private var _binding: FragmentAuthenticationBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - return inflater.inflate(R.layout.fragment_authentication, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - binding.passwordCard.setOnClickListener { - showDialog( - R.id.action_nav_anastasis_authentication_to_securityQuestionFragment, - binding.passwordCard, - "question_card" - ) - } - binding.postidentCard.setOnClickListener { - toggleCard( - binding.postidentCard, - Amount.fromJSONString("KUDOS:3.5") - ) - } - binding.smsCard.setOnClickListener { - showDialog( - R.id.action_nav_anastasis_authentication_to_smsFragment, - binding.smsCard, - "sms_card" - ) - } - binding.videoCard.setOnClickListener { - showDialog( - R.id.action_nav_anastasis_authentication_to_videoFragment, - binding.videoCard, - "video_card" - ) - } - - viewModel.securityQuestionChecked.observe(viewLifecycleOwner, { checked -> - binding.passwordCard.isChecked = checked - updatePrice(checked, Amount.fromJSONString("KUDOS:0.5")) - updateNextButtonState() - }) - viewModel.smsChecked.observe(viewLifecycleOwner, { checked -> - binding.smsCard.isChecked = checked - updatePrice(checked, Amount.fromJSONString("KUDOS:1.0")) - updateNextButtonState() - }) - viewModel.videoChecked.observe(viewLifecycleOwner, { checked -> - binding.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 - binding.recoveryCostView.text = "Recovery cost: $price" - } - - private fun updateNextButtonState() { - var numChecked = 0 - numChecked += if (binding.passwordCard.isChecked) 1 else 0 - numChecked += if (binding.postidentCard.isChecked) 1 else 0 - numChecked += if (binding.smsCard.isChecked) 1 else 0 - numChecked += if (binding.videoCard.isChecked) 1 else 0 - binding.nextAuthButton.isEnabled = numChecked >= 2 - } - -} diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SecurityQuestionFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SecurityQuestionFragment.kt deleted file mode 100644 index 0796610..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SecurityQuestionFragment.kt +++ /dev/null @@ -1,60 +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 - */ - -package org.gnu.anastasis.ui.authentication - -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 org.gnu.anastasis.ui.MainViewModel -import org.gnu.anastasis.ui.databinding.FragmentSecurityQuestionBinding - -class SecurityQuestionFragment : Fragment() { - - private val viewModel: MainViewModel by activityViewModels() - - private var _binding: FragmentSecurityQuestionBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - _binding = FragmentSecurityQuestionBinding.inflate(inflater, container, false) - val view = binding.root - return view - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - binding.saveQuestionButton.setOnClickListener { - viewModel.securityQuestionChecked.value = true - findNavController().popBackStack() - } - } - -} diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt deleted file mode 100644 index a7a1e75..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/SmsFragment.kt +++ /dev/null @@ -1,118 +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 - */ - -package org.gnu.anastasis.ui.authentication - -import android.Manifest -import android.annotation.SuppressLint -import android.content.pm.PackageManager.PERMISSION_GRANTED -import android.os.Bundle -import android.telephony.TelephonyManager -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.annotation.RequiresPermission -import androidx.core.content.ContextCompat.checkSelfPermission -import androidx.core.content.getSystemService -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 org.gnu.anastasis.ui.MainViewModel -import org.gnu.anastasis.ui.PERMISSION_REQUEST_CODE -import org.gnu.anastasis.ui.R -import org.gnu.anastasis.ui.databinding.FragmentSmsBinding - -private const val PERMISSION = Manifest.permission.READ_PHONE_STATE - -class SmsFragment : Fragment() { - - private val viewModel: MainViewModel by activityViewModels() - - private var _binding: FragmentSmsBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?, - ): View? { - _binding = FragmentSmsBinding.inflate(inflater, container, false) - sharedElementEnterTransition = MaterialContainerTransform().apply { - fadeMode = FADE_MODE_CROSS - } - return inflater.inflate(R.layout.fragment_sms, container, false).apply { - transitionName = "sms_card" - } - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - binding.smsView.editText?.setOnFocusChangeListener { _, hasFocus -> - if (hasFocus) checkPerm() - } - binding.saveSmsButton.setOnClickListener { - viewModel.smsChecked.value = true - findNavController().popBackStack() - } - } - - private fun checkPerm() = when { - checkSelfPermission(requireContext(), PERMISSION) == PERMISSION_GRANTED -> { - // You can use the API that requires the permission. - fillPhoneNumber() - } - shouldShowRequestPermissionRationale(PERMISSION) -> { - // In an educational UI, explain to the user why your app requires this - // permission for a specific feature to behave as expected. In this UI, - // include a "cancel" or "no thanks" button that allows the user to - // continue using your app without granting the permission. - } - else -> { - // You can directly ask for the permission. - requestPermissions(arrayOf(PERMISSION), PERMISSION_REQUEST_CODE) - } - } - - @Deprecated("Deprecated in Java") - override fun onRequestPermissionsResult( - requestCode: Int, - permissions: Array, - grantResults: IntArray, - ) { - if (requestCode == PERMISSION_REQUEST_CODE && grantResults.isNotEmpty() && - grantResults[0] == PERMISSION_GRANTED - ) checkPerm() - } - - @SuppressLint("HardwareIds") - @RequiresPermission(PERMISSION) - private fun fillPhoneNumber() { - val telephonyService = requireContext().getSystemService() - telephonyService?.line1Number?.let { phoneNumber -> - binding.smsView.editText?.setText(phoneNumber) - binding.smsView.editText?.setSelection(phoneNumber.length) - } - } - -} diff --git a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/VideoFragment.kt b/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/VideoFragment.kt deleted file mode 100644 index 4e83736..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/authentication/VideoFragment.kt +++ /dev/null @@ -1,135 +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 - */ - -package org.gnu.anastasis.ui.authentication - -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 org.gnu.anastasis.ui.MainViewModel -import org.gnu.anastasis.ui.R -import org.gnu.anastasis.ui.databinding.FragmentVideoBinding -import java.io.FileDescriptor - -private const val REQUEST_IMAGE_CAPTURE = 1 -private const val REQUEST_IMAGE_OPEN = 2 - -class VideoFragment : Fragment() { - - private val viewModel: MainViewModel by activityViewModels() - - private var _binding: FragmentVideoBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - _binding = FragmentVideoBinding.inflate(inflater, container, false) - sharedElementEnterTransition = MaterialContainerTransform().apply { - fadeMode = FADE_MODE_CROSS - } - return inflater.inflate(R.layout.fragment_video, container, false).apply { - transitionName = "video_card" - } - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - binding.takePhotoButton.setOnClickListener { - val pm = requireContext().packageManager - Intent(MediaStore.ACTION_IMAGE_CAPTURE).also { takePictureIntent -> - takePictureIntent.resolveActivity(pm)?.also { - startActivityForResult(takePictureIntent, - REQUEST_IMAGE_CAPTURE - ) - } - } - } - binding.choosePhotoButton.setOnClickListener { - val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { - addCategory(Intent.CATEGORY_OPENABLE) - type = "image/*" - } - startActivityForResult(intent, - REQUEST_IMAGE_OPEN - ) - } - - binding.saveVideoButton.setOnClickListener { - viewModel.videoChecked.value = true - findNavController().popBackStack() - } - } - - @Deprecated("Deprecated in Java") - 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) { - with (binding) { - 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/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 deleted file mode 100644 index 00eec11..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/ChangeLocationFragment.kt +++ /dev/null @@ -1,68 +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 - */ - -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 org.gnu.anastasis.ui.MainViewModel -import org.gnu.anastasis.ui.R -import org.gnu.anastasis.ui.databinding.FragmentChangeLocationBinding - -class ChangeLocationFragment : Fragment() { - - private val viewModel: MainViewModel by activityViewModels() - - private var _binding: FragmentChangeLocationBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - 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) - binding.switzerlandView.setOnClickListener { - changeCountry(LOCATIONS[0]) - } - binding.germanyView.setOnClickListener { - changeCountry(LOCATIONS[1]) - } - binding.usaView.setOnClickListener { - changeCountry(LOCATIONS[2]) - } - binding.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 deleted file mode 100644 index 73ae629..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/IdentityFragment.kt +++ /dev/null @@ -1,124 +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 - */ - -package org.gnu.anastasis.ui.identity - -import android.annotation.SuppressLint -import android.app.DatePickerDialog -import android.os.Build.VERSION.SDK_INT -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 android.widget.Toast -import android.widget.Toast.LENGTH_LONG -import androidx.core.content.getSystemService -import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels -import androidx.navigation.fragment.findNavController -import org.gnu.anastasis.ui.MainViewModel -import org.gnu.anastasis.ui.R -import org.gnu.anastasis.ui.databinding.FragmentIdentityBinding -import java.util.Calendar -import java.util.Date -import java.util.Locale -import java.util.concurrent.TimeUnit.DAYS - -private const val MIN_AGE = 18 - -class AnastasisIdentityFragment : Fragment() { - - private val model: MainViewModel by activityViewModels() - - private var _binding: FragmentIdentityBinding? = null - - // This property is only valid between onCreateView and - // onDestroyView. - private val binding get() = _binding!! - - override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle?, - ): View? { - _binding = FragmentIdentityBinding.inflate(inflater, container, false) - val view = binding.root - return view - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - model.currentCountry.observe(viewLifecycleOwner, { country -> - binding.countryView.text = country.name - if (binding.stub != null) { - binding.stub.layoutResource = country.layoutRes - binding.stub.inflate() - } - }) - binding.changeCountryView.setOnClickListener { - findNavController().navigate(R.id.action_nav_anastasis_identity_to_nav_change_location) - } - binding.birthDateInput.editText?.setOnClickListener { - if (SDK_INT >= 24) { - 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) - binding.birthDateInput.editText?.setText(dateStr) - } - picker.show() - } else { - Toast.makeText(requireContext(), "Needs newer phone", LENGTH_LONG).show() - } - } - binding.createIdentifierButton.setOnClickListener { - findNavController().navigate(R.id.action_nav_anastasis_intro_to_nav_anastasis_authentication) - } - } - - @Suppress("unused") - private fun getCountryName(): String { - val tm = requireContext().getSystemService()!! - 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/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 deleted file mode 100644 index 13658d2..0000000 --- a/anastasis-ui/src/main/java/org/gnu/anastasis/ui/identity/Locations.kt +++ /dev/null @@ -1,29 +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 - */ - -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) -) diff --git a/anastasis-ui/src/main/res/anim/slide_in_right.xml b/anastasis-ui/src/main/res/anim/slide_in_right.xml deleted file mode 100644 index 1425210..0000000 --- a/anastasis-ui/src/main/res/anim/slide_in_right.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - diff --git a/anastasis-ui/src/main/res/anim/slide_out_left.xml b/anastasis-ui/src/main/res/anim/slide_out_left.xml deleted file mode 100644 index 0581b69..0000000 --- a/anastasis-ui/src/main/res/anim/slide_out_left.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - diff --git a/anastasis-ui/src/main/res/drawable/ic_add_circle.xml b/anastasis-ui/src/main/res/drawable/ic_add_circle.xml deleted file mode 100644 index 76e1fcb..0000000 --- a/anastasis-ui/src/main/res/drawable/ic_add_circle.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/anastasis-ui/src/main/res/drawable/ic_baseline_check.xml b/anastasis-ui/src/main/res/drawable/ic_baseline_check.xml deleted file mode 100644 index 219e80e..0000000 --- a/anastasis-ui/src/main/res/drawable/ic_baseline_check.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_circle.xml b/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_circle.xml deleted file mode 100644 index bb8e80a..0000000 --- a/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_circle.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_download.xml b/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_download.xml deleted file mode 100644 index 58832b1..0000000 --- a/anastasis-ui/src/main/res/drawable/ic_baseline_cloud_download.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/anastasis-ui/src/main/res/drawable/ic_baseline_face.xml b/anastasis-ui/src/main/res/drawable/ic_baseline_face.xml deleted file mode 100644 index 4d55e34..0000000 --- a/anastasis-ui/src/main/res/drawable/ic_baseline_face.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/anastasis-ui/src/main/res/drawable/ic_baseline_lock.xml b/anastasis-ui/src/main/res/drawable/ic_baseline_lock.xml deleted file mode 100644 index 8f13e37..0000000 --- a/anastasis-ui/src/main/res/drawable/ic_baseline_lock.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/anastasis-ui/src/main/res/drawable/ic_baseline_person.xml b/anastasis-ui/src/main/res/drawable/ic_baseline_person.xml deleted file mode 100644 index 07eeb5a..0000000 --- a/anastasis-ui/src/main/res/drawable/ic_baseline_person.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/anastasis-ui/src/main/res/layout/activity.xml b/anastasis-ui/src/main/res/layout/activity.xml deleted file mode 100644 index 02fe90c..0000000 --- a/anastasis-ui/src/main/res/layout/activity.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - diff --git a/anastasis-ui/src/main/res/layout/country_germany.xml b/anastasis-ui/src/main/res/layout/country_germany.xml deleted file mode 100644 index 5b54843..0000000 --- a/anastasis-ui/src/main/res/layout/country_germany.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/anastasis-ui/src/main/res/layout/country_india.xml b/anastasis-ui/src/main/res/layout/country_india.xml deleted file mode 100644 index a12616e..0000000 --- a/anastasis-ui/src/main/res/layout/country_india.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - diff --git a/anastasis-ui/src/main/res/layout/country_switzerland.xml b/anastasis-ui/src/main/res/layout/country_switzerland.xml deleted file mode 100644 index 0fc71fc..0000000 --- a/anastasis-ui/src/main/res/layout/country_switzerland.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/anastasis-ui/src/main/res/layout/country_usa.xml b/anastasis-ui/src/main/res/layout/country_usa.xml deleted file mode 100644 index f9762e6..0000000 --- a/anastasis-ui/src/main/res/layout/country_usa.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - diff --git a/anastasis-ui/src/main/res/layout/fragment_authentication.xml b/anastasis-ui/src/main/res/layout/fragment_authentication.xml deleted file mode 100644 index a83871a..0000000 --- a/anastasis-ui/src/main/res/layout/fragment_authentication.xml +++ /dev/null @@ -1,275 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -