Merge pull request #180 from zcash/feature/show-scan-error
Feature: show message for scan errors.
This commit is contained in:
commit
f6622d2320
|
@ -18,6 +18,7 @@ import cash.z.ecc.android.ext.onClickNavTo
|
||||||
import cash.z.ecc.android.feedback.Report
|
import cash.z.ecc.android.feedback.Report
|
||||||
import cash.z.ecc.android.feedback.Report.Tap.SCAN_BACK
|
import cash.z.ecc.android.feedback.Report.Tap.SCAN_BACK
|
||||||
import cash.z.ecc.android.feedback.Report.Tap.SCAN_RECEIVE
|
import cash.z.ecc.android.feedback.Report.Tap.SCAN_RECEIVE
|
||||||
|
import cash.z.ecc.android.sdk.ext.ZcashSdk
|
||||||
import cash.z.ecc.android.sdk.ext.twig
|
import cash.z.ecc.android.sdk.ext.twig
|
||||||
import cash.z.ecc.android.ui.base.BaseFragment
|
import cash.z.ecc.android.ui.base.BaseFragment
|
||||||
import cash.z.ecc.android.ui.send.SendViewModel
|
import cash.z.ecc.android.ui.send.SendViewModel
|
||||||
|
@ -125,8 +126,13 @@ class ScanFragment : BaseFragment<FragmentScanBinding>() {
|
||||||
|
|
||||||
private fun onQrScanned(qrContent: String, image: ImageProxy) {
|
private fun onQrScanned(qrContent: String, image: ImageProxy) {
|
||||||
resumedScope.launch {
|
resumedScope.launch {
|
||||||
if (viewModel.isNotValid(qrContent)) image.close() // continue scanning
|
if (viewModel.isNotValid(qrContent)) {
|
||||||
else {
|
//todo: use the "NETWORK" constant that will be available in the next SDK build
|
||||||
|
val network = ZcashSdk.DEFAULT_DB_NAME_PREFIX.split("_")[1]
|
||||||
|
binding.textScanError.text = "Invalid Zcash $network address:\n$qrContent"
|
||||||
|
image.close()
|
||||||
|
} else { /* continue scanning*/
|
||||||
|
binding.textScanError.text = ""
|
||||||
sendViewModel.toAddress = qrContent
|
sendViewModel.toAddress = qrContent
|
||||||
mainActivity?.safeNavigate(R.id.action_nav_scan_to_nav_send_address)
|
mainActivity?.safeNavigate(R.id.action_nav_scan_to_nav_send_address)
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,6 +150,23 @@
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintVertical_bias="0.3" />
|
app:layout_constraintVertical_bias="0.3" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/text_scan_error"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:fontFamily="@font/inconsolata"
|
||||||
|
android:gravity="center"
|
||||||
|
android:textColor="@color/text_light_dimmed"
|
||||||
|
android:textSize="16dp"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:paddingBottom="16dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/button_receive"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/scan_frame"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/scan_frame"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/scan_frame"
|
||||||
|
tools:text="invalid:\nz98yz9uhz98uyz988yz98hzu8hgziouzgi9uzg9z8uogozuz z98yz9uhz98uyz988yz98hzu8hgziouzgi9uzg9z8uogozuzz98yz9uhz98uyz988yz98hzu8hgziouzgi9uzg9z8uogozuzz98yz9uhz98uyz988yz98hzu8hgziouzgi9uzg9z8uogozuzz98yz9uhz98uyz988yz98hzu8hgziouzgi9uzg9z8uogozuzz98yz9uhz98uyz988yz98hzu8hgziouzgi9uzg9z8uogozuzz98yz9uhz98uyz988yz98hzu8hgziouzgi9uzg9z8uogozuz" />
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:id="@+id/button_receive"
|
android:id="@+id/button_receive"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
|
|
Loading…
Reference in New Issue