From 0ba2396c2c6bda2b6f1ba0648996efa5f8c159b8 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Sun, 31 May 2026 01:13:36 +0500 Subject: [PATCH] auto pick default account when selecting contact from contact picker or trsnafering from contacts --- .../sar/basedbank/ui/home/TransferFragment.kt | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt index 6ddea6f..d90ac56 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/TransferFragment.kt @@ -255,6 +255,18 @@ class TransferFragment : Fragment() { val colorHex = bundle.getString(ContactPickerSheetFragment.KEY_COLOR) ?: "#607D8B" val imageHash = bundle.getString(ContactPickerSheetFragment.KEY_IMAGE_HASH) prefillToDirectly(accountNumber, label, subtitle, colorHex, imageHash) + if (selectedAccount == null) { + val defaultNum = CredentialStore(requireContext()).getDefaultAccountNumber() + if (defaultNum != null) { + val defaultAcc = viewModel.accounts.value?.firstOrNull { it.accountNumber == defaultNum } + if (defaultAcc != null) { + selectedAccount = defaultAcc + updateAmountPrefix(defaultAcc) + showFromCard(defaultAcc) + updateTransferButton() + } + } + } } binding.btnPickContact.setOnClickListener { @@ -439,6 +451,20 @@ class TransferFragment : Fragment() { } } + // Auto-select default account when arriving from contacts page (TO account already pre-filled) + if (selectedAccount == null && arguments?.getString(ARG_ACCOUNT) != null) { + val defaultNum = CredentialStore(requireContext()).getDefaultAccountNumber() + if (defaultNum != null) { + val defaultAcc = accounts.firstOrNull { it.accountNumber == defaultNum } + if (defaultAcc != null) { + selectedAccount = defaultAcc + updateAmountPrefix(defaultAcc) + showFromCard(defaultAcc) + updateTransferButton() + } + } + } + // On a cold start (e.g. share intent), anyBmlSession() may be null when // onViewCreated runs. Retry the lookup once sessions are available. val pendingBmlQrUrl = arguments?.getString(ARG_BML_QR_URL)