Updated on 2026-08-14
This commit is contained in:
parent
80d4eeaed9
commit
375afeea12
8 changed files with 78 additions and 0 deletions
1
core/error/.gitignore
vendored
Normal file
1
core/error/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
/build
|
||||||
14
core/error/build.gradle.kts
Normal file
14
core/error/build.gradle.kts
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
plugins {
|
||||||
|
alias(deps.plugins.android.library)
|
||||||
|
alias(deps.plugins.kotlin.android)
|
||||||
|
id("configuration")
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "com.tangem.core.error"
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation(tangemDeps.card.core)
|
||||||
|
implementation(tangemDeps.blockchain)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package com.tangem.core.error
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Universal error interface for all errors in the app.
|
||||||
|
* Each error code must follow this format: xxxyyyzzz where
|
||||||
|
* xxx - Feature code
|
||||||
|
* yyy - Subsystem code
|
||||||
|
* zzz - Specific error code
|
||||||
|
* If you need to add new feature add it to list below incrementing last code.
|
||||||
|
*
|
||||||
|
* Features:
|
||||||
|
* `100` - App error
|
||||||
|
* `101` - TangemSdkError
|
||||||
|
* `102` - BlockchainSdkError
|
||||||
|
* `103` - Express
|
||||||
|
* `104` - Visa
|
||||||
|
* `105` - Staking
|
||||||
|
* `106` - NFT
|
||||||
|
* `107` - WalletConnect
|
||||||
|
*/
|
||||||
|
interface UniversalError {
|
||||||
|
val errorCode: Int
|
||||||
|
}
|
||||||
14
core/error/src/main/kotlin/com/tangem/core/error/Utils.kt
Normal file
14
core/error/src/main/kotlin/com/tangem/core/error/Utils.kt
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.tangem.core.error
|
||||||
|
|
||||||
|
import com.tangem.common.core.TangemSdkError
|
||||||
|
import com.tangem.blockchain.common.BlockchainSdkError
|
||||||
|
|
||||||
|
val TangemSdkError.universalError: UniversalError
|
||||||
|
get() = object : UniversalError {
|
||||||
|
override val errorCode: Int = 101000000 + code
|
||||||
|
}
|
||||||
|
|
||||||
|
val BlockchainSdkError.universalError: UniversalError
|
||||||
|
get() = object : UniversalError {
|
||||||
|
override val errorCode: Int = 102000000 + code
|
||||||
|
}
|
||||||
|
|
@ -17,6 +17,7 @@ dependencies {
|
||||||
implementation(projects.core.res)
|
implementation(projects.core.res)
|
||||||
implementation(projects.core.utils)
|
implementation(projects.core.utils)
|
||||||
implementation(projects.core.decompose)
|
implementation(projects.core.decompose)
|
||||||
|
implementation(projects.core.error)
|
||||||
|
|
||||||
/** AndroidX libraries */
|
/** AndroidX libraries */
|
||||||
implementation(deps.androidx.fragment.ktx)
|
implementation(deps.androidx.fragment.ktx)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
package com.tangem.core.ui.message.dialog
|
package com.tangem.core.ui.message.dialog
|
||||||
|
|
||||||
|
import com.tangem.core.error.UniversalError
|
||||||
import com.tangem.core.ui.R
|
import com.tangem.core.ui.R
|
||||||
import com.tangem.core.ui.extensions.TextReference
|
import com.tangem.core.ui.extensions.TextReference
|
||||||
import com.tangem.core.ui.extensions.resourceReference
|
import com.tangem.core.ui.extensions.resourceReference
|
||||||
|
import com.tangem.core.ui.extensions.wrappedList
|
||||||
import com.tangem.core.ui.message.DialogMessage
|
import com.tangem.core.ui.message.DialogMessage
|
||||||
import com.tangem.core.ui.message.EventMessageAction
|
import com.tangem.core.ui.message.EventMessageAction
|
||||||
|
|
||||||
|
|
@ -36,4 +38,17 @@ object Dialogs {
|
||||||
secondActionBuilder = { cancelAction(onClick = onCancelClick) },
|
secondActionBuilder = { cancelAction(onClick = onCancelClick) },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Universal error dialog
|
||||||
|
*/
|
||||||
|
fun universalErrorDialog(universalError: UniversalError, onOkClick: () -> Unit): DialogMessage {
|
||||||
|
return DialogMessage(
|
||||||
|
message = resourceReference(R.string.universal_error, wrappedList(universalError.errorCode)),
|
||||||
|
firstAction = EventMessageAction(
|
||||||
|
title = resourceReference(R.string.common_ok),
|
||||||
|
onClick = onOkClick,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.tangem.core.ui.utils
|
||||||
|
|
||||||
|
import com.tangem.core.decompose.ui.UiMessageSender
|
||||||
|
import com.tangem.core.error.UniversalError
|
||||||
|
import com.tangem.core.ui.message.dialog.Dialogs
|
||||||
|
|
||||||
|
fun UiMessageSender.showErrorDialog(universalError: UniversalError) {
|
||||||
|
send(Dialogs.universalErrorDialog(universalError) {})
|
||||||
|
}
|
||||||
|
|
@ -148,6 +148,7 @@ include(":core:deep-links")
|
||||||
include(":core:deep-links:global")
|
include(":core:deep-links:global")
|
||||||
include(":core:decompose")
|
include(":core:decompose")
|
||||||
include(":core:pagination")
|
include(":core:pagination")
|
||||||
|
include(":core:error")
|
||||||
// endregion Core modules
|
// endregion Core modules
|
||||||
|
|
||||||
// region Common modules
|
// region Common modules
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue