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