Consolidate the send flow.
This commit is contained in:
parent
9550cdbbc7
commit
6ee39f1987
|
@ -6,9 +6,11 @@ object Report {
|
|||
|
||||
object Funnel {
|
||||
sealed class Send(stepName: String, step: Int, vararg properties: Pair<String, Any>) : Feedback.Funnel("send", stepName, step, *properties) {
|
||||
object SendPageComplete : Send("sendpagecomplete", 11)
|
||||
object ConfirmPageComplete : Send("confirmpagecomplete", 30)
|
||||
// todo remove these
|
||||
object AddressPageComplete : Send("addresspagecomplete", 10)
|
||||
object MemoPageComplete : Send("memopagecomplete", 20)
|
||||
object ConfirmPageComplete : Send("confirmpagecomplete", 30)
|
||||
|
||||
// Beginning of send
|
||||
object SendSelected : Send("sendselected", 50)
|
||||
|
@ -87,6 +89,7 @@ object Report {
|
|||
RECEIVE,
|
||||
RESTORE,
|
||||
SCAN,
|
||||
SEND,
|
||||
SEND_ADDRESS("send.address"),
|
||||
SEND_CONFIRM("send.confirm"),
|
||||
SEND_FINAL("send.final"),
|
||||
|
@ -127,6 +130,15 @@ object Report {
|
|||
RESTORE_BACK("restore.back"),
|
||||
SCAN_RECEIVE("scan.receive"),
|
||||
SCAN_BACK("scan.back"),
|
||||
SEND_BACK("send.back"),
|
||||
SEND_MAX("send.max"),
|
||||
SEND_NEXT("send.next"),
|
||||
SEND_PASTE("send.paste"),
|
||||
SEND_DONE_ADDRESS("send.done.address"),
|
||||
SEND_DONE_AMOUNT("send.done.amount"),
|
||||
SEND_SCAN("send.scan"),
|
||||
|
||||
//TODO: remove these before PR
|
||||
SEND_ADDRESS_MAX("send.address.max"),
|
||||
SEND_ADDRESS_NEXT("send.address.next"),
|
||||
SEND_ADDRESS_PASTE("send.address.paste"),
|
||||
|
@ -134,13 +146,16 @@ object Report {
|
|||
SEND_ADDRESS_DONE_ADDRESS("send.address.done.address"),
|
||||
SEND_ADDRESS_DONE_AMOUNT("send.address.done.amount"),
|
||||
SEND_ADDRESS_SCAN("send.address.scan"),
|
||||
|
||||
|
||||
|
||||
SEND_CONFIRM_BACK("send.confirm.back"),
|
||||
SEND_CONFIRM_NEXT("send.confirm.next"),
|
||||
SEND_FINAL_EXIT("send.final.exit"),
|
||||
SEND_FINAL_RETRY("send.final.retry"),
|
||||
SEND_FINAL_CLOSE("send.final.close"),
|
||||
SEND_MEMO_INCLUDE("send.memo.include"),
|
||||
SEND_MEMO_EXCLUDE("send.memo.exclude"),
|
||||
SEND_MEMO_INCLUDE("send.address.include"),
|
||||
SEND_MEMO_EXCLUDE("send.address.exclude"),
|
||||
SEND_MEMO_NEXT("send.memo.next"),
|
||||
SEND_MEMO_SKIP("send.memo.skip"),
|
||||
SEND_MEMO_CLEAR("send.memo.clear"),
|
||||
|
|
|
@ -81,7 +81,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>() {
|
|||
if (viewModel.isNotValid(qrContent)) image.close() // continue scanning
|
||||
else {
|
||||
sendViewModel.toAddress = qrContent
|
||||
mainActivity?.safeNavigate(R.id.action_nav_scan_to_nav_send_address)
|
||||
mainActivity?.safeNavigate(R.id.action_nav_scan_to_nav_send)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@ class SendConfirmFragment : BaseFragment<FragmentSendConfirmBinding>() {
|
|||
binding.buttonNext.setOnClickListener {
|
||||
onSend().also { tapped(SEND_CONFIRM_NEXT) }
|
||||
}
|
||||
R.id.action_nav_send_confirm_to_nav_send_memo.let {
|
||||
R.id.action_nav_send_confirm_to_nav_send.let {
|
||||
binding.backButtonHitArea.onClickNavTo(it) { tapped(SEND_CONFIRM_BACK) }
|
||||
onBackPressNavTo(it) { tapped(SEND_CONFIRM_BACK) }
|
||||
}
|
||||
|
|
|
@ -122,7 +122,7 @@ class SendFinalFragment : BaseFragment<FragmentSendFinalBinding>() {
|
|||
}
|
||||
|
||||
private fun onRetry() {
|
||||
mainActivity?.navController?.popBackStack(R.id.nav_send_address, false)
|
||||
mainActivity?.navController?.popBackStack(R.id.nav_send, false)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ class SendMemoFragment : BaseFragment<FragmentSendMemoBinding>() {
|
|||
onClearMemo().also { tapped(SEND_MEMO_CLEAR) }
|
||||
}
|
||||
|
||||
R.id.action_nav_send_memo_to_nav_send_address.let {
|
||||
R.id.action_nav_send_memo_to_nav_send.let {
|
||||
binding.backButtonHitArea.onClickNavTo(it) { tapped(SEND_MEMO_BACK) }
|
||||
onBackPressNavTo(it) { tapped(SEND_MEMO_BACK) }
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ class SendMemoFragment : BaseFragment<FragmentSendMemoBinding>() {
|
|||
sendViewModel.memo = binding.inputMemo.text.toString()
|
||||
onNext()
|
||||
} else {
|
||||
mainActivity?.safeNavigate(R.id.action_nav_send_memo_to_nav_send_address)
|
||||
mainActivity?.safeNavigate(R.id.action_nav_send_memo_to_nav_send)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,10 @@ class SendViewModel @Inject constructor() : ViewModel() {
|
|||
field = value
|
||||
}
|
||||
val isShielded get() = toAddress.startsWith("z")
|
||||
|
||||
// TODO: consider adding more complex logic here, perhaps adding an Account object that helps with determining which funds to use. This can be refactored once t-addrs actually work.
|
||||
var useShieldedFunds = true
|
||||
var isMemoAdded = false
|
||||
|
||||
fun send(): Flow<PendingTransaction> {
|
||||
funnel(SendSelected)
|
||||
val memoToSend = if (includeFromAddress) "$memo\nsent from\n$fromAddress" else memo
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
app:destination="@id/nav_landing" />
|
||||
<action
|
||||
android:id="@+id/action_nav_home_to_send"
|
||||
app:destination="@id/nav_send_address"
|
||||
app:destination="@id/nav_send"
|
||||
app:exitAnim="@anim/anim_exit_to_left"
|
||||
app:enterAnim="@anim/anim_enter_from_right"/>
|
||||
<action
|
||||
|
@ -50,8 +50,8 @@
|
|||
android:name="cash.z.ecc.android.ui.scan.ScanFragment"
|
||||
tools:layout="@layout/fragment_scan">
|
||||
<action
|
||||
android:id="@+id/action_nav_scan_to_nav_send_address"
|
||||
app:destination="@id/nav_send_address"
|
||||
android:id="@+id/action_nav_scan_to_nav_send"
|
||||
app:destination="@id/nav_send"
|
||||
app:popUpTo="@id/nav_scan"
|
||||
app:popUpToInclusive="true"/>
|
||||
<action
|
||||
|
@ -79,6 +79,25 @@
|
|||
<!-- Send Navigation -->
|
||||
<!-- -->
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_send"
|
||||
android:name="cash.z.ecc.android.ui.send.SendFragment"
|
||||
tools:layout="@layout/fragment_send" >
|
||||
<action
|
||||
android:id="@+id/action_nav_send_to_nav_scan"
|
||||
app:destination="@id/nav_scan" />
|
||||
<action
|
||||
android:id="@+id/action_nav_send_to_nav_home"
|
||||
app:destination="@id/nav_home"
|
||||
app:enterAnim="@anim/anim_enter_from_left"
|
||||
app:exitAnim="@anim/anim_exit_to_right"/>
|
||||
<action
|
||||
android:id="@+id/action_nav_send_to_send_confirm"
|
||||
app:destination="@id/nav_send_confirm"
|
||||
app:exitAnim="@anim/anim_exit_to_left"
|
||||
app:enterAnim="@anim/anim_enter_from_right"/>
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/nav_send_address"
|
||||
android:name="cash.z.ecc.android.ui.send.SendAddressFragment"
|
||||
|
@ -108,8 +127,8 @@
|
|||
app:exitAnim="@anim/anim_exit_to_left"
|
||||
app:enterAnim="@anim/anim_enter_from_right"/>
|
||||
<action
|
||||
android:id="@+id/action_nav_send_memo_to_nav_send_address"
|
||||
app:destination="@id/nav_send_address"
|
||||
android:id="@+id/action_nav_send_memo_to_nav_send"
|
||||
app:destination="@id/nav_send"
|
||||
app:enterAnim="@anim/anim_enter_from_left"
|
||||
app:exitAnim="@anim/anim_exit_to_right" />
|
||||
</fragment>
|
||||
|
@ -125,8 +144,8 @@
|
|||
app:popUpToInclusive="true"
|
||||
app:enterAnim="@anim/anim_fade_in"/>
|
||||
<action
|
||||
android:id="@+id/action_nav_send_confirm_to_nav_send_memo"
|
||||
app:destination="@id/nav_send_memo"
|
||||
android:id="@+id/action_nav_send_confirm_to_nav_send"
|
||||
app:destination="@id/nav_send"
|
||||
app:enterAnim="@anim/anim_enter_from_left"
|
||||
app:exitAnim="@anim/anim_exit_to_right" />
|
||||
</fragment>
|
||||
|
|
Loading…
Reference in New Issue