Browse Source

Populate amt and memo when scanning QR

pull/15/head
fekt 1 year ago
parent
commit
e6fd1d1e23
  1. 24
      app/src/main/java/cash/z/ecc/android/ui/scan/ScanFragment.kt

24
app/src/main/java/cash/z/ecc/android/ui/scan/ScanFragment.kt

@ -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)
}
}

Loading…
Cancel
Save