From fe8f907c1208a821c9b507d4cabfbe19e48f213b Mon Sep 17 00:00:00 2001 From: Satoshi Qazi Muhammed Date: Sat, 18 Jul 2026 14:46:25 -0700 Subject: [PATCH] debug: add temporary Log.e tracing to multisig deep link handler The manifest fix (84bbff6) confirmed the intent-filter now resolves and the app receives the intent (RootActivity gets focus), but the details screen never opens and nothing crashes or logs anything - suspecting the deep link coroutine may be permanently suspended on automaticInteractionGate.awaitInteractionAllowed() (the app's PIN/background-recheck gate), which an ADB-driven test may never satisfy. Tracing each step to confirm before concluding. To be removed once the real cause is confirmed. --- .../deeplink/MultisigOperationDetailsDeepLinkHandler.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/feature-multisig/operations/src/main/java/io/novafoundation/nova/feature_multisig_operations/presentation/details/deeplink/MultisigOperationDetailsDeepLinkHandler.kt b/feature-multisig/operations/src/main/java/io/novafoundation/nova/feature_multisig_operations/presentation/details/deeplink/MultisigOperationDetailsDeepLinkHandler.kt index 9ae4803a..6984bde1 100644 --- a/feature-multisig/operations/src/main/java/io/novafoundation/nova/feature_multisig_operations/presentation/details/deeplink/MultisigOperationDetailsDeepLinkHandler.kt +++ b/feature-multisig/operations/src/main/java/io/novafoundation/nova/feature_multisig_operations/presentation/details/deeplink/MultisigOperationDetailsDeepLinkHandler.kt @@ -41,11 +41,15 @@ class MultisigOperationDetailsDeepLinkHandler( override suspend fun matches(data: Uri): Boolean { val path = data.path ?: return false - return path.startsWith(MultisigOperationDeepLinkConfigurator.PREFIX) + val result = path.startsWith(MultisigOperationDeepLinkConfigurator.PREFIX) + android.util.Log.e("DeepLinkDebug", "matches: path=$path result=$result") + return result } override suspend fun handleDeepLink(data: Uri): Result = runCatching { + android.util.Log.e("DeepLinkDebug", "handleDeepLink: start, awaiting interaction gate...") automaticInteractionGate.awaitInteractionAllowed() + android.util.Log.e("DeepLinkDebug", "handleDeepLink: interaction gate passed") val chainId = data.getChainId() val chain = chainRegistry.getChain(chainId) @@ -55,11 +59,13 @@ class MultisigOperationDetailsDeepLinkHandler( val callHash = data.getCallHash() ?: error("Call hash not found") val callData = data.getCallData(chainId) val operationState = data.getOperationState() + android.util.Log.e("DeepLinkDebug", "parsed params ok, chainId=$chainId operationState=$operationState") val multisigMetaAccount = accountRepository.getActiveMetaAccounts() .filterIsInstance() .firstOrNull { it.accountIdKeyIn(chain) == multisigAccount && it.signatoryAccountId == signatoryAccount } ?: error("Multisig account not found") + android.util.Log.e("DeepLinkDebug", "found multisigMetaAccount id=${multisigMetaAccount.id}") accountRepository.selectMetaAccount(multisigMetaAccount.id)