Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check address #4189

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@ import androidx.appcompat.widget.PopupMenu
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.ItemTouchHelper
import androidx.recyclerview.widget.RecyclerView
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch
import one.mixin.android.R
import one.mixin.android.api.handleMixinResponse
import one.mixin.android.databinding.FragmentAddressManagementBinding
import one.mixin.android.databinding.ItemAddressBinding
import one.mixin.android.extension.containsIgnoreCase
import one.mixin.android.extension.equalsIgnoreCase
import one.mixin.android.extension.getParcelableCompat
import one.mixin.android.extension.indeterminateProgressDialog
import one.mixin.android.extension.navigate
import one.mixin.android.extension.toast
import one.mixin.android.extension.viewDestroyed
Expand All @@ -29,6 +33,7 @@ import one.mixin.android.ui.conversation.TransferFragment
import one.mixin.android.ui.wallet.PinAddrBottomSheetDialogFragment
import one.mixin.android.ui.wallet.PinAddrBottomSheetDialogFragment.Companion.DELETE
import one.mixin.android.ui.wallet.TransactionsFragment.Companion.ARGS_ASSET
import one.mixin.android.ui.wallet.WalletViewModel
import one.mixin.android.util.viewBinding
import one.mixin.android.vo.Address
import one.mixin.android.vo.safe.TokenItem
Expand All @@ -47,6 +52,8 @@ class AddressManagementFragment : BaseFragment(R.layout.fragment_address_managem

private val binding by viewBinding(FragmentAddressManagementBinding::bind)

private val walletViewModel by viewModels<WalletViewModel>()

override fun onViewCreated(
view: View,
savedInstanceState: Bundle?,
Expand Down Expand Up @@ -102,20 +109,42 @@ class AddressManagementFragment : BaseFragment(R.layout.fragment_address_managem

override fun onAddrClick(addr: Address) {
if (Session.getAccount()?.hasPin == true) {
val item = buildWithdrawalBiometricItem(addr, asset)
val transferFragment = TransferFragment.newInstance(item)
transferFragment.showNow(parentFragmentManager, TransferFragment.TAG)
transferFragment.callback =
object : TransferFragment.Callback {
override fun onSuccess() {
if (viewDestroyed()) return

view.navigate(
R.id.action_address_management_to_transactions,
Bundle().apply { putParcelable(ARGS_ASSET, asset) },
)
lifecycleScope.launch {
val dialog =
indeterminateProgressDialog(message = R.string.Please_wait_a_bit).apply {
setCancelable(false)
}
dialog.show()
val addressFeeResponse =
handleMixinResponse(
invokeNetwork = {
walletViewModel.getExternalAddressFee(asset.assetId, addr.destination, addr.tag)
},
successBlock = {
it
}, endBlock = {
dialog.dismiss()
}
)
if (addressFeeResponse == null || addressFeeResponse.error != null) {
toast(R.string.verification_failed)
return@launch
}
val item = buildWithdrawalBiometricItem(addr, asset)
val transferFragment = TransferFragment.newInstance(item)
transferFragment.showNow(parentFragmentManager, TransferFragment.TAG)
transferFragment.callback =
object : TransferFragment.Callback {
override fun onSuccess() {
if (viewDestroyed()) return

view.navigate(
R.id.action_address_management_to_transactions,
Bundle().apply { putParcelable(ARGS_ASSET, asset) },
)
}
}
}
} else {
toast(R.string.transfer_without_pin)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import one.mixin.android.extension.nowInUtc
import one.mixin.android.extension.numberFormat
import one.mixin.android.extension.numberFormat2
import one.mixin.android.extension.screenHeight
import one.mixin.android.extension.toast
import one.mixin.android.extension.viewDestroyed
import one.mixin.android.job.CheckBalanceJob
import one.mixin.android.tip.Tip
Expand Down Expand Up @@ -318,11 +319,15 @@ class TransactionsFragment : BaseTransactionsFragment<PagingData<SnapshotItem>>(
walletViewModel.getExternalAddressFee(asset.assetId, destination, null)
},
successBlock = {
it.data
it
},
) ?: return@launch

val mockAddress = Address("", "address", asset.assetId, addressFeeResponse.destination, "TIP Wallet", nowInUtc(), "0", addressFeeResponse.fee, null, null, asset.chainId)
)
if (addressFeeResponse == null || addressFeeResponse.error != null) {
toast(R.string.verification_failed)
return@launch
}
val address = addressFeeResponse.data ?: return@launch
val mockAddress = Address("", "address", asset.assetId, address.destination, "TIP Wallet", nowInUtc(), "0", address.fee, null, null, asset.chainId)
val withdrawalBiometricItem = buildWithdrawalBiometricItem(mockAddress, asset)
val transferFragment = TransferFragment.newInstance(withdrawalBiometricItem)
transferFragment.showNow(parentFragmentManager, TransferFragment.TAG)
Expand Down
Loading