Populate amt and memo when scanning QR
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package cash.z.ecc.android.ui.scan
|
||||
|
||||
import android.net.UrlQuerySanitizer
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
@@ -16,14 +17,14 @@ import androidx.window.layout.WindowMetricsCalculator
|
||||
import cash.z.ecc.android.R
|
||||
import cash.z.ecc.android.databinding.FragmentScanBinding
|
||||
import cash.z.ecc.android.ext.onClickNavBack
|
||||
import cash.z.ecc.android.sdk.ext.convertZecToZatoshi
|
||||
import cash.z.ecc.android.sdk.ext.safelyConvertToBigDecimal
|
||||
import cash.z.ecc.android.ui.base.BaseFragment
|
||||
import cash.z.ecc.android.ui.send.SendViewModel
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.concurrent.ExecutorService
|
||||
import java.util.concurrent.Executors
|
||||
import kotlin.math.abs
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
|
||||
|
||||
class ScanFragment : BaseFragment<FragmentScanBinding>() {
|
||||
@@ -322,15 +323,28 @@ class ScanFragment : BaseFragment<FragmentScanBinding>() {
|
||||
|
||||
private fun onQrScanned(qrContent: String, image: ImageProxy) {
|
||||
resumedScope.launch {
|
||||
val parsed = viewModel.parse(qrContent)
|
||||
if (parsed == null) {
|
||||
val address = viewModel.parse(qrContent)
|
||||
val sanitizer = UrlQuerySanitizer(qrContent)
|
||||
val amt = sanitizer.getValue("amt")
|
||||
val memo = sanitizer.getValue("memo")
|
||||
|
||||
/*
|
||||
Log.d(TAG, "qrContent: $qrContent")
|
||||
Log.d(TAG, "address: $address")
|
||||
Log.d(TAG, "amt: $amt")
|
||||
Log.d(TAG, "memo: $memo")
|
||||
*/
|
||||
|
||||
if (address == null) {
|
||||
val network = viewModel.networkName
|
||||
_fragmentCameraBinding?.textScanError?.text =
|
||||
getString(R.string.scan_invalid_address, network, qrContent)
|
||||
image.close()
|
||||
} else { /* continue scanning*/
|
||||
_fragmentCameraBinding?.textScanError?.text = ""
|
||||
sendViewModel.toAddress = parsed
|
||||
sendViewModel.toAddress = address
|
||||
sendViewModel.zatoshiAmount = amt.safelyConvertToBigDecimal().convertZecToZatoshi()
|
||||
sendViewModel.memo = memo
|
||||
mainActivity?.safeNavigate(R.id.action_nav_scan_to_nav_send)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user