summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/settings
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-06-26 10:34:08 -0300
committerTorsten Grote <t@grobox.de>2020-06-26 10:34:08 -0300
commit730fbaa702b467669c4b88f6c03fa3e1823abf73 (patch)
treeb5ab1c0a07d2763640b1e68fd903e6f100fa5719 /wallet/src/main/java/net/taler/wallet/settings
parent98d693d48ad491b19d89e5d394c2e54a36731728 (diff)
downloadtaler-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/java/net/taler/wallet/settings')
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/AnastasisAuthenticationFragment.kt130
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/AnastasisIdentityFragment.kt94
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/AnastasisIntroFragment.kt51
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/AnastasisManager.kt27
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/BackupSettingsFragment.kt16
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/SecurityQuestionFragment.kt56
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/SmsFragment.kt56
-rw-r--r--wallet/src/main/java/net/taler/wallet/settings/VideoFragment.kt117
8 files changed, 9 insertions, 538 deletions
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
- }
-
-}