diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ce8a2776e1..3081823d17 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,7 +53,7 @@ This card has enforced security delay Please hold the card firmly\n until the operation is completed… You may be required to repeat this operation a few times depending on the NFC performance of your smartphone.\n This is made for safety of your funds. - This is a genuine Tangem card. Please follow instructions written on the card to install the official app. + Uh oh!\nYour Tangem card was made to work with a different application. Please see the name and instructions on your card, and install the correct app. Manage user PIN1… diff --git a/settings.gradle b/settings.gradle index db8941d8f2..9a87107347 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':app', ':tangem-sdk-old', ':server-android', ':tangem-card-old', ':tangem-core', ':tangem-sdk', ':tangem-demo', ':blockchain', ':blockchain-demo' \ No newline at end of file +include ':app', ':tangem-sdk-old', ':server-android', ':tangem-card-old', ':tangem-core', ':tangem-sdk', ':tangem-devkit', ':blockchain', ':blockchain-demo' \ No newline at end of file diff --git a/tangem-core/src/main/java/com/tangem/CardFilter.kt b/tangem-core/src/main/java/com/tangem/CardFilter.kt new file mode 100644 index 0000000000..d1275d1d1d --- /dev/null +++ b/tangem-core/src/main/java/com/tangem/CardFilter.kt @@ -0,0 +1,14 @@ +package com.tangem + +import com.tangem.common.extensions.CardType +import java.util.* + +/** + * Filter that can be used to limit cards that can be interacted with in TangemSdk. + * + * @property allowedCardTypes Type of cards that are allowed to be interacted with in TangemSdk. + */ +data class CardFilter( + + var allowedCardTypes: EnumSet = EnumSet.allOf(CardType::class.java) +) \ No newline at end of file diff --git a/tangem-core/src/main/java/com/tangem/CardSession.kt b/tangem-core/src/main/java/com/tangem/CardSession.kt index 450c056997..e2cbafb179 100644 --- a/tangem-core/src/main/java/com/tangem/CardSession.kt +++ b/tangem-core/src/main/java/com/tangem/CardSession.kt @@ -8,6 +8,7 @@ import com.tangem.common.CompletionResult import com.tangem.common.apdu.CommandApdu import com.tangem.common.apdu.ResponseApdu import com.tangem.common.extensions.calculateSha256 +import com.tangem.common.extensions.getType import com.tangem.crypto.EncryptionHelper import com.tangem.crypto.FastEncryptionHelper import com.tangem.crypto.StrongEncryptionHelper @@ -20,7 +21,7 @@ interface CardSessionRunnable { /** * The starting point for custom business logic. - * Implement this interface and use [TangemSdk.startSession] to run. + * Implement this interface and use [TangemSdk.startSessionWithRunnable] to run. * @param session run commands in this [CardSession]. * @param callback trigger the callback to complete the task. */ @@ -136,6 +137,12 @@ class CardSession( callback(CompletionResult.Failure(SessionError.WrongCard())) return@run } + val allowedCardTypes = environment.cardFilter.allowedCardTypes + if (!allowedCardTypes.contains(result.data.getType())) { + stopWithError(SessionError.WrongCardType()) + callback(CompletionResult.Failure(SessionError.WrongCardType())) + return@run + } environment.card = result.data cardId = receivedCardId callback(CompletionResult.Success(result.data)) diff --git a/tangem-core/src/main/java/com/tangem/Config.kt b/tangem-core/src/main/java/com/tangem/Config.kt index d99c57fcf9..20c5c849bd 100644 --- a/tangem-core/src/main/java/com/tangem/Config.kt +++ b/tangem-core/src/main/java/com/tangem/Config.kt @@ -18,16 +18,21 @@ class Config( the correctness of Terminal_Transaction_Signature using previously stored Terminal_PublicKey and, if correct, will skip security delay for the current SIGN operation. */ - val linkedTerminal: Boolean = true, + var linkedTerminal: Boolean = true, /** * If not null, it will be used to validate Issuer data and issuer extra data. * If null, issuerPublicKey from current card will be used. */ - val issuerPublicKey: ByteArray? = null, + var issuerPublicKey: ByteArray? = null, /** * Level of encryption used in communication with a Tangem Card. */ - val encryptionMode: EncryptionMode = EncryptionMode.NONE + var encryptionMode: EncryptionMode = EncryptionMode.NONE, + + /** + * Filter that can be used to limit cards that can be interacted with in TangemSdk. + */ + val cardFilter: CardFilter = CardFilter() ) \ No newline at end of file diff --git a/tangem-core/src/main/java/com/tangem/SessionEnvironment.kt b/tangem-core/src/main/java/com/tangem/SessionEnvironment.kt index 0dabbc74d6..6400e98e39 100644 --- a/tangem-core/src/main/java/com/tangem/SessionEnvironment.kt +++ b/tangem-core/src/main/java/com/tangem/SessionEnvironment.kt @@ -20,7 +20,8 @@ data class SessionEnvironment( val terminalKeys: KeyPair? = null, var encryptionMode: EncryptionMode = EncryptionMode.NONE, var encryptionKey: ByteArray? = null, - val cvc: ByteArray? = null + val cvc: ByteArray? = null, + var cardFilter: CardFilter ) { fun setPin1(pin1: String) { diff --git a/tangem-core/src/main/java/com/tangem/SessionError.kt b/tangem-core/src/main/java/com/tangem/SessionError.kt index 07209b6a3f..b5f702ceb2 100644 --- a/tangem-core/src/main/java/com/tangem/SessionError.kt +++ b/tangem-core/src/main/java/com/tangem/SessionError.kt @@ -106,6 +106,13 @@ sealed class SessionError(val code: Int) : Exception() { */ class HashSizeMustBeEqual : SessionError(3005) + + /** + * This error is returned when a user scans a card of a [com.tangem.common.extensions.CardType] + * that is not specified in [Config.allowedCards]. + */ + class WrongCardType : SessionError(3006) + /** * This error is returned when [com.tangem.TangemSdk] was called with a new [Task], * while a previous [Task] is still in progress. diff --git a/tangem-core/src/main/java/com/tangem/TangemSdk.kt b/tangem-core/src/main/java/com/tangem/TangemSdk.kt index 145efc088e..a5f90dc0ca 100644 --- a/tangem-core/src/main/java/com/tangem/TangemSdk.kt +++ b/tangem-core/src/main/java/com/tangem/TangemSdk.kt @@ -49,7 +49,7 @@ class TangemSdk( * in the form of [Card] if the task was performed successfully or [SessionError] in case of an error. */ fun scanCard(initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { - startSession(ScanTask(), null, initialMessage, callback) + startSessionWithRunnable(ScanTask(), null, initialMessage, callback) } /** @@ -72,7 +72,7 @@ class TangemSdk( */ fun sign(hashes: Array, cardId: String, initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { - startSession(SignCommand(hashes), cardId, initialMessage, callback) + startSessionWithRunnable(SignCommand(hashes), cardId, initialMessage, callback) } /** @@ -90,7 +90,7 @@ class TangemSdk( */ fun readIssuerData(cardId: String, initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { - startSession(ReadIssuerDataCommand(config.issuerPublicKey), cardId, initialMessage, callback) + startSessionWithRunnable(ReadIssuerDataCommand(config.issuerPublicKey), cardId, initialMessage, callback) } /** @@ -109,7 +109,7 @@ class TangemSdk( */ fun readIssuerExtraData(cardId: String, callback: (result: CompletionResult) -> Unit) { - startSession(ReadIssuerExtraDataCommand(config.issuerPublicKey), cardId, null, callback) + startSessionWithRunnable(ReadIssuerExtraDataCommand(config.issuerPublicKey), cardId, null, callback) } /** @@ -140,7 +140,7 @@ class TangemSdk( issuerDataCounter, config.issuerPublicKey ) - startSession(command, cardId, initialMessage, callback) + startSessionWithRunnable(command, cardId, initialMessage, callback) } /** @@ -179,7 +179,7 @@ class TangemSdk( issuerDataCounter, config.issuerPublicKey ) - startSession(command, cardId, initialMessage, callback) + startSessionWithRunnable(command, cardId, initialMessage, callback) } /** @@ -206,7 +206,7 @@ class TangemSdk( callback: (result: CompletionResult) -> Unit ) { val command = WriteUserDataCommand(userData, userProtectedData, userCounter, userProtectedCounter) - startSession(command, cardId, initialMessage, callback) + startSessionWithRunnable(command, cardId, initialMessage, callback) } /** @@ -228,7 +228,7 @@ class TangemSdk( */ fun readUserData(cardId: String, initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { - startSession(ReadUserDataCommand(), cardId, initialMessage, callback) + startSessionWithRunnable(ReadUserDataCommand(), cardId, initialMessage, callback) } /** @@ -250,7 +250,7 @@ class TangemSdk( */ fun createWallet(cardId: String, initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { - startSession(CreateWalletTask(), cardId, initialMessage, callback) + startSessionWithRunnable(CreateWalletTask(), cardId, initialMessage, callback) } /** @@ -269,7 +269,7 @@ class TangemSdk( */ fun purgeWallet(cardId: String, initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { - startSession(PurgeWalletCommand(), cardId, initialMessage, callback) + startSessionWithRunnable(PurgeWalletCommand(), cardId, initialMessage, callback) } /** @@ -287,7 +287,7 @@ class TangemSdk( * */ fun depersonalize(cardId: String, initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { - startSession(DepersonalizeCommand(), cardId, initialMessage, callback) + startSessionWithRunnable(DepersonalizeCommand(), cardId, initialMessage, callback) } /** @@ -313,7 +313,7 @@ class TangemSdk( initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { val command = PersonalizeCommand(config, issuer, manufacturer, acquirer) - startSession(command, null, initialMessage, callback) + startSessionWithRunnable(command, null, initialMessage, callback) } /** @@ -330,7 +330,7 @@ class TangemSdk( * If null, default message will be used. * @callback: Standard [TangemSdk] callback. */ - fun startSession( + fun startSessionWithRunnable( runnable: CardSessionRunnable, cardId: String? = null, initialMessage: Message? = null, callback: (result: CompletionResult) -> Unit) { val cardSession = CardSession(buildEnvironment(), reader, viewDelegate, cardId, initialMessage) @@ -349,8 +349,7 @@ class TangemSdk( * @callback: At first, you should check that the [SessionError] is not null, * then you can use the [CardSession] to interact with a card. */ - fun startSession( - cardId: String? = null, initialMessage: Message? = null, + fun startSession(cardId: String? = null, initialMessage: Message? = null, callback: (session: CardSession, error: SessionError?) -> Unit) { val cardSession = CardSession(buildEnvironment(), reader, viewDelegate, cardId, initialMessage) Thread().run { cardSession.start(callback) } @@ -367,7 +366,8 @@ class TangemSdk( private fun buildEnvironment(): SessionEnvironment { val terminalKeys = if (config.linkedTerminal) terminalKeysService?.getKeys() else null return SessionEnvironment( - terminalKeys = terminalKeys + terminalKeys = terminalKeys, + cardFilter = config.cardFilter ) } diff --git a/tangem-core/src/main/java/com/tangem/common/extensions/Card.kt b/tangem-core/src/main/java/com/tangem/common/extensions/Card.kt new file mode 100644 index 0000000000..97243f3655 --- /dev/null +++ b/tangem-core/src/main/java/com/tangem/common/extensions/Card.kt @@ -0,0 +1,22 @@ +package com.tangem.common.extensions + +import com.tangem.commands.Card + +fun Card.getType(): CardType { + val firmware = this.firmwareVersion ?: return CardType.Unknown + return when { + firmware.endsWith("d SDK") -> { + CardType.Sdk + } + firmware.endsWith("r") -> { + CardType.Release + } + else -> { + CardType.Unknown + } + } +} + +enum class CardType { + Sdk, Release, Unknown +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/ItemWidgetBuilder.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/ItemWidgetBuilder.kt deleted file mode 100644 index 2ed1e1ab8f..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/ItemWidgetBuilder.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.tangem.tangemtest._arch.widget - -import android.view.ViewGroup -import com.tangem.tangemtest._arch.structure.abstraction.BaseItem -import com.tangem.tangemtest._arch.widget.abstraction.ViewWidget - -/** -[REDACTED_AUTHOR] - */ -interface ItemWidgetBuilder { - fun build(item: BaseItem, parent: ViewGroup): ViewWidget? -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/impl/StubWidget.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/impl/StubWidget.kt deleted file mode 100644 index 1b832e362a..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/impl/StubWidget.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.tangem.tangemtest._arch.widget.impl - -import android.view.ViewGroup -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.abstraction.BaseItem -import com.tangem.tangemtest._arch.structure.abstraction.BaseItemViewModel -import com.tangem.tangemtest._arch.widget.abstraction.BaseViewWidget - -/** -[REDACTED_AUTHOR] - */ -class StubWidget(id: Id, parent: ViewGroup) : BaseViewWidget(parent, BaseItem(id, BaseItemViewModel())) { - override fun getLayoutId(): Int = R.layout.w_empty -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/SimpleManagers.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/SimpleManagers.kt deleted file mode 100644 index c892b6761b..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/SimpleManagers.kt +++ /dev/null @@ -1,31 +0,0 @@ -package com.tangem.tangemtest.ucase.domain.paramsManager.managers - -import com.tangem.tangemtest._arch.structure.impl.EditTextItem -import com.tangem.tangemtest.ucase.domain.actions.DepersonalizeAction -import com.tangem.tangemtest.ucase.domain.actions.ScanAction -import com.tangem.tangemtest.ucase.domain.actions.SignAction -import com.tangem.tangemtest.ucase.domain.paramsManager.triggers.changeConsequence.SignScanConsequence -import com.tangem.tangemtest.ucase.variants.TlvId - -/** -[REDACTED_AUTHOR] - */ -class ScanItemsManager : BaseItemsManager(ScanAction()) - -class DepersonalizeItemsManager : BaseItemsManager(DepersonalizeAction()) { - - init { - setItems(listOf(EditTextItem(TlvId.CardId, null))) - } -} - -class SignItemsManager : BaseItemsManager(SignAction()) { - - init { - setItemChangeConsequences(SignScanConsequence()) - setItems(listOf( - EditTextItem(TlvId.CardId, null), - EditTextItem(TlvId.TransactionOutHash, "Data used for hashing") - )) - } -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt deleted file mode 100644 index bb771e86f6..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt +++ /dev/null @@ -1,48 +0,0 @@ -package com.tangem.tangemtest.ucase.domain.paramsManager.triggers.changeConsequence - -import com.tangem.commands.Card -import com.tangem.commands.EllipticCurve -import com.tangem.common.extensions.calculateSha256 -import com.tangem.common.extensions.calculateSha512 -import com.tangem.common.extensions.toHexString -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.findItem -import com.tangem.tangemtest.ucase.domain.paramsManager.PayloadKey -import com.tangem.tangemtest.ucase.tunnel.ActionView -import com.tangem.tangemtest.ucase.variants.TlvId -import ru.dev.gbixahue.eu4d.lib.android.global.threading.postUI - -/** -[REDACTED_AUTHOR] - * - * The ParamsChangeConsequence class family modifies parameters depending on the state - * of the incoming parameter - */ -interface ItemsChangeConsequence { - fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List? -} - -class SignScanConsequence : ItemsChangeConsequence { - - override fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List? { - if (changedItem.id != TlvId.CardId) return null - - val hashItem = itemList.findItem(TlvId.TransactionOutHash) ?: return null - val affectedItems = mutableListOf(hashItem) - val card = payload.remove(PayloadKey.card) as Card? - if (card == null) { - hashItem.restoreDefaultData() - postUI { (payload.get(PayloadKey.actionView) as? ActionView)?.enableActionFab(false) } - } else { - val dataForHashing = hashItem.getData() as? String ?: "Any data mother...s" - val hashedData = when (card.curve) { - EllipticCurve.Secp256k1 -> dataForHashing.calculateSha256() - EllipticCurve.Ed25519 -> dataForHashing.calculateSha512() - else -> return null - } - hashItem.setData(hashedData.toHexString()) - } - return affectedItems.toList() - } -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/Ids.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/Ids.kt deleted file mode 100644 index 13f4ddcf27..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/Ids.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.tangem.tangemtest.ucase.variants - -import com.tangem.tangemtest._arch.structure.Id - -/** -[REDACTED_AUTHOR] - */ -enum class TlvId : Id { - CardId, - TransactionOutHash, -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/depersonalize/ui/DepersonalizeActionFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/depersonalize/ui/DepersonalizeActionFragment.kt deleted file mode 100644 index 107ab9b3b3..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/depersonalize/ui/DepersonalizeActionFragment.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.tangem.tangemtest.ucase.variants.depersonalize.ui - -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.domain.paramsManager.managers.DepersonalizeItemsManager -import com.tangem.tangemtest.ucase.ui.BaseCardActionFragment - -/** -[REDACTED_AUTHOR] - */ -class DepersonalizeActionFragment : BaseCardActionFragment() { - - override val itemsManager: ItemsManager by lazy { DepersonalizeItemsManager() } -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/item/TextItem.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/item/TextItem.kt deleted file mode 100644 index 452b1e47bc..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/item/TextItem.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.tangem.tangemtest.ucase.variants.responses.item - -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.abstraction.BaseItemViewModel -import com.tangem.tangemtest._arch.structure.abstraction.ItemViewModel -import com.tangem.tangemtest._arch.structure.abstraction.ViewState -import com.tangem.tangemtest._arch.structure.impl.TypedItem - -open class TextHeaderItem(id: Id, viewModel: ItemViewModel) : TypedItem(id, viewModel) { - constructor(id: Id, value: String? = null, viewState: ViewState = ViewState()) - : this(id, BaseItemViewModel(value, viewState)) -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseItemBuilder.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseItemBuilder.kt deleted file mode 100644 index ec39879032..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseItemBuilder.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.tangem.tangemtest.ucase.variants.responses.ui.widget - -import android.view.ViewGroup -import com.tangem.tangemtest._arch.structure.abstraction.BaseItem -import com.tangem.tangemtest._arch.structure.impl.BoolItem -import com.tangem.tangemtest._arch.structure.impl.TextItem -import com.tangem.tangemtest._arch.widget.ItemWidgetBuilder -import com.tangem.tangemtest._arch.widget.abstraction.ViewWidget -import com.tangem.tangemtest.ucase.variants.responses.item.TextHeaderItem - -/** -[REDACTED_AUTHOR] - */ -class ResponseItemBuilder : ItemWidgetBuilder { - override fun build(item: BaseItem, parent: ViewGroup): ViewWidget? { - return when (item) { - is TextHeaderItem -> ResponseHeaderWidget(parent, item) - is TextItem -> ResponseTextWidget(parent, item) - is BoolItem -> CheckBoxWidget(parent, item) - else -> null - } - } -} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/sign/ui/SignActionFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/sign/ui/SignActionFragment.kt deleted file mode 100644 index 4453eec6e1..0000000000 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/sign/ui/SignActionFragment.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.tangem.tangemtest.ucase.variants.sign.ui - -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.domain.paramsManager.managers.SignItemsManager -import com.tangem.tangemtest.ucase.ui.BaseCardActionFragment - -/** -[REDACTED_AUTHOR] - */ -class SignActionFragment : BaseCardActionFragment() { - - override val itemsManager: ItemsManager by lazy { SignItemsManager() } -} \ No newline at end of file diff --git a/tangem-demo/src/main/res/drawable/ic_launcher_background.xml b/tangem-demo/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 0d025f9bf6..0000000000 --- a/tangem-demo/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tangem-demo/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/tangem-demo/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index eca70cfe52..0000000000 --- a/tangem-demo/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tangem-demo/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/tangem-demo/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index eca70cfe52..0000000000 --- a/tangem-demo/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/tangem-demo/src/main/res/mipmap-hdpi/ic_launcher.png b/tangem-demo/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 898f3ed59a..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-hdpi/ic_launcher_round.png b/tangem-demo/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index dffca3601e..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-mdpi/ic_launcher.png b/tangem-demo/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 64ba76f75e..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-mdpi/ic_launcher_round.png b/tangem-demo/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index dae5e08234..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-xhdpi/ic_launcher.png b/tangem-demo/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index e5ed46597e..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/tangem-demo/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 14ed0af350..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-xxhdpi/ic_launcher.png b/tangem-demo/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index b0907cac3b..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/tangem-demo/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index d8ae031549..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/tangem-demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 2c18de9e66..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/tangem-demo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/tangem-demo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index beed3cdd2c..0000000000 Binary files a/tangem-demo/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/tangem-demo/.gitignore b/tangem-devkit/.gitignore similarity index 100% rename from tangem-demo/.gitignore rename to tangem-devkit/.gitignore diff --git a/tangem-demo/build.gradle b/tangem-devkit/build.gradle similarity index 97% rename from tangem-demo/build.gradle rename to tangem-devkit/build.gradle index fd56546bed..e692140432 100644 --- a/tangem-demo/build.gradle +++ b/tangem-devkit/build.gradle @@ -6,7 +6,7 @@ android { buildToolsVersion "29.0.3" defaultConfig { - applicationId "com.tangem.tangemtest" + applicationId "com.tangem.devkit" minSdkVersion 21 targetSdkVersion 29 versionCode 1 diff --git a/tangem-demo/proguard-rules.pro b/tangem-devkit/proguard-rules.pro similarity index 100% rename from tangem-demo/proguard-rules.pro rename to tangem-devkit/proguard-rules.pro diff --git a/tangem-demo/src/main/AndroidManifest.xml b/tangem-devkit/src/main/AndroidManifest.xml similarity index 91% rename from tangem-demo/src/main/AndroidManifest.xml rename to tangem-devkit/src/main/AndroidManifest.xml index cf184dcfe2..e0749468f0 100644 --- a/tangem-demo/src/main/AndroidManifest.xml +++ b/tangem-devkit/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="com.tangem.devkit"> - + @@ -48,7 +48,7 @@ android:resource="@xml/nfc_tech_filter" /> - + diff --git a/tangem-devkit/src/main/ic_launcher-playstore.png b/tangem-devkit/src/main/ic_launcher-playstore.png new file mode 100644 index 0000000000..6e5af9f8f6 Binary files /dev/null and b/tangem-devkit/src/main/ic_launcher-playstore.png differ diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/AppTangemDemo.kt b/tangem-devkit/src/main/java/com/tangem/devkit/AppTangemDemo.kt similarity index 79% rename from tangem-demo/src/main/java/com/tangem/tangemtest/AppTangemDemo.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/AppTangemDemo.kt index ab604ee506..60ee3d4564 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/AppTangemDemo.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/AppTangemDemo.kt @@ -1,11 +1,11 @@ -package com.tangem.tangemtest +package com.tangem.devkit import android.app.Application import android.content.Context import android.content.SharedPreferences -import com.tangem.tangemtest._arch.structure.ILog -import com.tangem.tangemtest._arch.structure.ItemLogger -import com.tangem.tangemtest.commons.TangemLogger +import com.tangem.devkit._arch.structure.ILog +import com.tangem.devkit._arch.structure.ItemLogger +import com.tangem.devkit.commons.TangemLogger import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt b/tangem-devkit/src/main/java/com/tangem/devkit/Old_MainActivity.kt similarity index 99% rename from tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/Old_MainActivity.kt index 40998ca19b..ffccc70603 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/Old_MainActivity.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest +package com.tangem.devkit import android.content.Intent import android.os.Bundle diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/TestUserDataActivity.kt b/tangem-devkit/src/main/java/com/tangem/devkit/TestUserDataActivity.kt similarity index 99% rename from tangem-demo/src/main/java/com/tangem/tangemtest/TestUserDataActivity.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/TestUserDataActivity.kt index 7f3ba0639d..c6124d542f 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/TestUserDataActivity.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/TestUserDataActivity.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest +package com.tangem.devkit import android.os.Bundle import android.view.View diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/SingleLiveEvent.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/SingleLiveEvent.kt similarity index 96% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/SingleLiveEvent.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/SingleLiveEvent.kt index 943023a1c1..1e6ed8667e 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/SingleLiveEvent.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/SingleLiveEvent.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._arch +package com.tangem.devkit._arch import android.util.Log import androidx.annotation.MainThread diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/HelpAbstracts.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/HelpAbstracts.kt similarity index 86% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/HelpAbstracts.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/HelpAbstracts.kt index 309309c947..018e074061 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/HelpAbstracts.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/HelpAbstracts.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._arch.structure +package com.tangem.devkit._arch.structure /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/Ids.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/Ids.kt similarity index 82% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/Ids.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/Ids.kt index 5e517808f2..e3fcb31dbf 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/Ids.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/Ids.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._arch.structure +package com.tangem.devkit._arch.structure /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/Logger.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/Logger.kt similarity index 94% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/Logger.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/Logger.kt index e71fc33cb6..5ba36bbbaa 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/Logger.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/Logger.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._arch.structure +package com.tangem.devkit._arch.structure import ru.dev.gbixahue.eu4d.lib.android.global.log.Logger import ru.dev.gbixahue.eu4d.lib.android.global.log.TagLogger diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Extension.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Extension.kt similarity index 81% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Extension.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Extension.kt index 2aa3fb6af5..41a4aab5ae 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Extension.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Extension.kt @@ -1,6 +1,6 @@ -package com.tangem.tangemtest._arch.structure.abstraction +package com.tangem.devkit._arch.structure.abstraction -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.Id /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Item.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Item.kt similarity index 87% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Item.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Item.kt index 7800192199..d1fae9c535 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Item.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Item.kt @@ -1,6 +1,6 @@ -package com.tangem.tangemtest._arch.structure.abstraction +package com.tangem.devkit._arch.structure.abstraction -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.Id /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ItemGroup.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ItemGroup.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ItemGroup.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ItemGroup.kt index 20a8def0e6..1d38ba6f6d 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ItemGroup.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ItemGroup.kt @@ -1,7 +1,7 @@ -package com.tangem.tangemtest._arch.structure.abstraction +package com.tangem.devkit._arch.structure.abstraction -import com.tangem.tangemtest._arch.structure.ILog -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.ILog +import com.tangem.devkit._arch.structure.Id /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ItemViewModel.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ItemViewModel.kt similarity index 93% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ItemViewModel.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ItemViewModel.kt index fc106588e6..eead6c8e3d 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ItemViewModel.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ItemViewModel.kt @@ -1,8 +1,8 @@ -package com.tangem.tangemtest._arch.structure.abstraction +package com.tangem.devkit._arch.structure.abstraction -import com.tangem.tangemtest._arch.structure.ILog -import com.tangem.tangemtest._arch.structure.Payload -import com.tangem.tangemtest._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.ILog +import com.tangem.devkit._arch.structure.Payload +import com.tangem.devkit._arch.structure.PayloadHolder /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ModelConverter.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ModelConverter.kt similarity index 86% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ModelConverter.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ModelConverter.kt index 09823a8495..d6b1cdb38c 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/ModelConverter.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/ModelConverter.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._arch.structure.abstraction +package com.tangem.devkit._arch.structure.abstraction import ru.dev.gbixahue.eu4d.lib.kotlin.common.Converter diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Plugin.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Plugin.kt similarity index 75% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Plugin.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Plugin.kt index 71bdc779c7..aaa6254d7c 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Plugin.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/abstraction/Plugin.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._arch.structure.abstraction +package com.tangem.devkit._arch.structure.abstraction /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/impl/Items.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/impl/Items.kt index d4e4dde775..80145d31e4 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/structure/impl/Items.kt @@ -1,7 +1,7 @@ -package com.tangem.tangemtest._arch.structure.impl +package com.tangem.devkit._arch.structure.impl -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.abstraction.* +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.abstraction.* /** [REDACTED_AUTHOR] diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/ItemWidgetBuilder.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/ItemWidgetBuilder.kt new file mode 100644 index 0000000000..4659c0ac49 --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/ItemWidgetBuilder.kt @@ -0,0 +1,12 @@ +package com.tangem.devkit._arch.widget + +import android.view.ViewGroup +import com.tangem.devkit._arch.structure.abstraction.BaseItem +import com.tangem.devkit._arch.widget.abstraction.ViewWidget + +/** +[REDACTED_AUTHOR] + */ +interface ItemWidgetBuilder { + fun build(item: BaseItem, parent: ViewGroup): ViewWidget? +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/WidgetBuilder.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/WidgetBuilder.kt similarity index 65% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/WidgetBuilder.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/WidgetBuilder.kt index 3d9a3493a5..cb39aa9072 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/WidgetBuilder.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/WidgetBuilder.kt @@ -1,12 +1,12 @@ -package com.tangem.tangemtest._arch.widget +package com.tangem.devkit._arch.widget import android.view.ViewGroup -import com.tangem.tangemtest._arch.structure.abstraction.BaseItem -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.ItemGroup -import com.tangem.tangemtest._arch.widget.abstraction.ViewWidget -import com.tangem.tangemtest._arch.widget.impl.LinearGroupWidget -import com.tangem.tangemtest._arch.widget.impl.StubWidget +import com.tangem.devkit._arch.structure.abstraction.BaseItem +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.ItemGroup +import com.tangem.devkit._arch.widget.abstraction.ViewWidget +import com.tangem.devkit._arch.widget.impl.LinearGroupWidget +import com.tangem.devkit._arch.widget.impl.StubWidget /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/abstraction/ViewWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/abstraction/ViewWidget.kt similarity index 87% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/abstraction/ViewWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/abstraction/ViewWidget.kt index 9b6c5f9d2c..752d178400 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/abstraction/ViewWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/abstraction/ViewWidget.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._arch.widget.abstraction +package com.tangem.devkit._arch.widget.abstraction import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable @@ -6,11 +6,11 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.annotation.ColorRes -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.StringId -import com.tangem.tangemtest._arch.structure.StringResId -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.ViewState +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.StringId +import com.tangem.devkit._arch.structure.StringResId +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.ViewState import ru.dev.gbixahue.eu4d.lib.android._android.views.colorFrom import ru.dev.gbixahue.eu4d.lib.kotlin.common.LayoutHolder diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/impl/LinearGroupWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/impl/LinearGroupWidget.kt similarity index 53% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/impl/LinearGroupWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/impl/LinearGroupWidget.kt index 97c8d36a35..54948387de 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/impl/LinearGroupWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/impl/LinearGroupWidget.kt @@ -1,9 +1,9 @@ -package com.tangem.tangemtest._arch.widget.impl +package com.tangem.devkit._arch.widget.impl import android.view.ViewGroup -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.abstraction.ItemGroup -import com.tangem.tangemtest._arch.widget.abstraction.BaseViewWidget +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.abstraction.ItemGroup +import com.tangem.devkit._arch.widget.abstraction.BaseViewWidget /** [REDACTED_AUTHOR] diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/impl/StubWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/impl/StubWidget.kt new file mode 100644 index 0000000000..0edc41b3be --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_arch/widget/impl/StubWidget.kt @@ -0,0 +1,15 @@ +package com.tangem.devkit._arch.widget.impl + +import android.view.ViewGroup +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.abstraction.BaseItem +import com.tangem.devkit._arch.structure.abstraction.BaseItemViewModel +import com.tangem.devkit._arch.widget.abstraction.BaseViewWidget + +/** +[REDACTED_AUTHOR] + */ +class StubWidget(id: Id, parent: ViewGroup) : BaseViewWidget(parent, BaseItem(id, BaseItemViewModel())) { + override fun getLayoutId(): Int = R.layout.w_empty +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_main/MainActivity.kt similarity index 97% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_main/MainActivity.kt index c47ac39601..dbfd82105f 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_main/MainActivity.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._main +package com.tangem.devkit._main import android.content.res.Resources import android.os.Bundle @@ -12,7 +12,7 @@ import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupWithNavController -import com.tangem.tangemtest.R +import com.tangem.devkit.R import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_main/MainViewModel.kt similarity index 95% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_main/MainViewModel.kt index 3900d86530..6766c6d77f 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_main/MainViewModel.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._main +package com.tangem.devkit._main import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/entryPoint/ActionListFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_main/entryPoint/ActionListFragment.kt similarity index 84% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_main/entryPoint/ActionListFragment.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_main/entryPoint/ActionListFragment.kt index 4e10211223..78af64f574 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/entryPoint/ActionListFragment.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_main/entryPoint/ActionListFragment.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest._main.entryPoint +package com.tangem.devkit._main.entryPoint import android.os.Bundle import android.view.View @@ -7,13 +7,13 @@ import androidx.lifecycle.Observer import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.tangem.tangemtest.R -import com.tangem.tangemtest._main.MainViewModel -import com.tangem.tangemtest.extensions.view.beginDelayedTransition -import com.tangem.tangemtest.ucase.getDefaultNavigationOptions -import com.tangem.tangemtest.ucase.resources.ActionType -import com.tangem.tangemtest.ucase.resources.MainResourceHolder -import com.tangem.tangemtest.ucase.ui.BaseFragment +import com.tangem.devkit.R +import com.tangem.devkit._main.MainViewModel +import com.tangem.devkit.extensions.view.beginDelayedTransition +import com.tangem.devkit.ucase.getDefaultNavigationOptions +import com.tangem.devkit.ucase.resources.ActionType +import com.tangem.devkit.ucase.resources.MainResourceHolder +import com.tangem.devkit.ucase.ui.BaseFragment import kotlinx.android.synthetic.main.fg_entry_point.* /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/entryPoint/RvActions.kt b/tangem-devkit/src/main/java/com/tangem/devkit/_main/entryPoint/RvActions.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/_main/entryPoint/RvActions.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/_main/entryPoint/RvActions.kt index 5433027e92..01162d2eee 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/entryPoint/RvActions.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/_main/entryPoint/RvActions.kt @@ -1,14 +1,14 @@ -package com.tangem.tangemtest._main.entryPoint +package com.tangem.devkit._main.entryPoint import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx.annotation.StringRes import androidx.recyclerview.widget.RecyclerView -import com.tangem.tangemtest.R -import com.tangem.tangemtest.ucase.resources.ActionRes -import com.tangem.tangemtest.ucase.resources.ActionType -import com.tangem.tangemtest.ucase.resources.MainResourceHolder +import com.tangem.devkit.R +import com.tangem.devkit.ucase.resources.ActionRes +import com.tangem.devkit.ucase.resources.ActionType +import com.tangem.devkit.ucase.resources.MainResourceHolder import ru.dev.gbixahue.eu4d.lib.android._android.views.inflate import ru.dev.gbixahue.eu4d.lib.android._android.views.recycler_view.RvBaseAdapter import ru.dev.gbixahue.eu4d.lib.android._android.views.recycler_view.RvBaseVH diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/Abstractions.kt b/tangem-devkit/src/main/java/com/tangem/devkit/commons/Abstractions.kt similarity index 87% rename from tangem-demo/src/main/java/com/tangem/tangemtest/commons/Abstractions.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/commons/Abstractions.kt index 6c3b1abc26..3a1776e7c6 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/Abstractions.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/commons/Abstractions.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.commons +package com.tangem.devkit.commons /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/DialogController.kt b/tangem-devkit/src/main/java/com/tangem/devkit/commons/DialogController.kt similarity index 98% rename from tangem-demo/src/main/java/com/tangem/tangemtest/commons/DialogController.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/commons/DialogController.kt index de7db7ae3e..5d4c924409 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/DialogController.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/commons/DialogController.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.commons +package com.tangem.devkit.commons import android.app.Activity import android.app.Dialog diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/GlobalFunctions.kt b/tangem-devkit/src/main/java/com/tangem/devkit/commons/GlobalFunctions.kt similarity index 83% rename from tangem-demo/src/main/java/com/tangem/tangemtest/commons/GlobalFunctions.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/commons/GlobalFunctions.kt index 59ae0da2b9..0f80ba2e83 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/GlobalFunctions.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/commons/GlobalFunctions.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.commons +package com.tangem.devkit.commons /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/Logger.kt b/tangem-devkit/src/main/java/com/tangem/devkit/commons/Logger.kt similarity index 77% rename from tangem-demo/src/main/java/com/tangem/tangemtest/commons/Logger.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/commons/Logger.kt index 795c23c726..94e709455a 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/Logger.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/commons/Logger.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.commons +package com.tangem.devkit.commons import ru.dev.gbixahue.eu4d.lib.android.global.log.TagLogger diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/view/MultiActionView.kt b/tangem-devkit/src/main/java/com/tangem/devkit/commons/view/MultiActionView.kt similarity index 90% rename from tangem-demo/src/main/java/com/tangem/tangemtest/commons/view/MultiActionView.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/commons/view/MultiActionView.kt index ce21b9fae6..4e134e0336 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/commons/view/MultiActionView.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/commons/view/MultiActionView.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.commons.view +package com.tangem.devkit.commons.view import android.widget.TextView import androidx.annotation.StringRes -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.StringId -import com.tangem.tangemtest._arch.structure.abstraction.SafeValueChanged +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.StringId +import com.tangem.devkit._arch.structure.abstraction.SafeValueChanged import ru.dev.gbixahue.eu4d.lib.android.global.log.Log import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/AndroidComponents.kt b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/AndroidComponents.kt similarity index 92% rename from tangem-demo/src/main/java/com/tangem/tangemtest/extensions/AndroidComponents.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/extensions/AndroidComponents.kt index 3a9205574c..032e162d53 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/AndroidComponents.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/AndroidComponents.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.extensions +package com.tangem.devkit.extensions import android.content.Intent import androidx.activity.ComponentActivity diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/CardConfig.kt b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/CardConfig.kt similarity index 99% rename from tangem-demo/src/main/java/com/tangem/tangemtest/extensions/CardConfig.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/extensions/CardConfig.kt index ab8c84334b..fb3fefaeed 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/CardConfig.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/CardConfig.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.extensions +package com.tangem.devkit.extensions import android.app.Application import android.content.Context diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/List.kt b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/List.kt similarity index 90% rename from tangem-demo/src/main/java/com/tangem/tangemtest/extensions/List.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/extensions/List.kt index d637d6f89a..f40be815b4 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/List.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/List.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.extensions +package com.tangem.devkit.extensions /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/view/Transitions.kt b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/view/Transitions.kt similarity index 87% rename from tangem-demo/src/main/java/com/tangem/tangemtest/extensions/view/Transitions.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/extensions/view/Transitions.kt index d58f12aa97..1a6762eca0 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/extensions/view/Transitions.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/extensions/view/Transitions.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.extensions.view +package com.tangem.devkit.extensions.view import android.view.ViewGroup import androidx.transition.AutoTransition diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/NavigationOp.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/NavigationOp.kt similarity index 85% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/NavigationOp.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/NavigationOp.kt index fa588f2b68..c006bf6aa4 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/NavigationOp.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/NavigationOp.kt @@ -1,8 +1,8 @@ -package com.tangem.tangemtest.ucase +package com.tangem.devkit.ucase import androidx.navigation.NavOptions import androidx.navigation.navOptions -import com.tangem.tangemtest.R +import com.tangem.devkit.R /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/Action.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/Action.kt similarity index 72% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/Action.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/Action.kt index e8358b8071..f0c92ad43e 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/Action.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/Action.kt @@ -1,14 +1,14 @@ -package com.tangem.tangemtest.ucase.domain.actions +package com.tangem.devkit.ucase.domain.actions import com.tangem.TangemSdk import com.tangem.common.CompletionResult -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.Payload -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tangemtest.ucase.domain.paramsManager.triggers.afterAction.AfterActionModification -import com.tangem.tangemtest.ucase.domain.paramsManager.triggers.changeConsequence.ItemsChangeConsequence +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.Payload +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback +import com.tangem.devkit.ucase.domain.paramsManager.triggers.afterAction.AfterActionModification +import com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence.ItemsChangeConsequence /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/DepersonalizeAction.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/DepersonalizeAction.kt similarity index 67% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/DepersonalizeAction.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/DepersonalizeAction.kt index 5dd9d80fc1..d938eb85ad 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/DepersonalizeAction.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/DepersonalizeAction.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.domain.actions +package com.tangem.devkit.ucase.domain.actions -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.findItem -import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tangemtest.ucase.variants.TlvId +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.findItem +import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback +import com.tangem.devkit.ucase.variants.TlvId /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/PersonalizeAction.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/PersonalizeAction.kt similarity index 66% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/PersonalizeAction.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/PersonalizeAction.kt index 457b4baac3..b289159d6c 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/PersonalizeAction.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/PersonalizeAction.kt @@ -1,19 +1,19 @@ -package com.tangem.tangemtest.ucase.domain.actions +package com.tangem.devkit.ucase.domain.actions -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.findItem -import com.tangem.tangemtest._arch.structure.impl.EditTextItem -import com.tangem.tangemtest._arch.structure.impl.NumberItem -import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tangemtest.ucase.domain.paramsManager.PayloadKey -import com.tangem.tangemtest.ucase.tunnel.ActionView -import com.tangem.tangemtest.ucase.tunnel.ItemError -import com.tangem.tangemtest.ucase.variants.personalize.CardNumber -import com.tangem.tangemtest.ucase.variants.personalize.converter.PersonalizationConfigConverter -import com.tangem.tangemtest.ucase.variants.personalize.converter.PersonalizationConfigToCardConfig -import com.tangem.tangemtest.ucase.variants.personalize.dto.DefaultPersonalizationParams -import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizationConfig +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.findItem +import com.tangem.devkit._arch.structure.impl.EditTextItem +import com.tangem.devkit._arch.structure.impl.NumberItem +import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback +import com.tangem.devkit.ucase.domain.paramsManager.PayloadKey +import com.tangem.devkit.ucase.tunnel.ActionView +import com.tangem.devkit.ucase.tunnel.ItemError +import com.tangem.devkit.ucase.variants.personalize.CardNumber +import com.tangem.devkit.ucase.variants.personalize.converter.PersonalizationConfigConverter +import com.tangem.devkit.ucase.variants.personalize.converter.PersonalizationConfigToCardConfig +import com.tangem.devkit.ucase.variants.personalize.dto.DefaultPersonalizationParams +import com.tangem.devkit.ucase.variants.personalize.dto.PersonalizationConfig import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/ScanAction.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/ScanAction.kt similarity index 50% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/ScanAction.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/ScanAction.kt index 213fea8b63..5e4e42aa08 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/ScanAction.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/ScanAction.kt @@ -1,8 +1,8 @@ -package com.tangem.tangemtest.ucase.domain.actions +package com.tangem.devkit.ucase.domain.actions -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tangemtest.ucase.domain.paramsManager.triggers.afterAction.AfterScanModifier +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback +import com.tangem.devkit.ucase.domain.paramsManager.triggers.afterAction.AfterScanModifier /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/SignAction.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/SignAction.kt similarity index 71% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/SignAction.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/SignAction.kt index f44f36d1ee..a1cf64ae35 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/actions/SignAction.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/actions/SignAction.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.domain.actions +package com.tangem.devkit.ucase.domain.actions -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.findItem -import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tangemtest.ucase.variants.TlvId +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.findItem +import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback +import com.tangem.devkit.ucase.variants.TlvId import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/ItemsManager.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/ItemsManager.kt similarity index 73% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/ItemsManager.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/ItemsManager.kt index 20d2ed3eb8..35022b0af4 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/ItemsManager.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/ItemsManager.kt @@ -1,12 +1,12 @@ -package com.tangem.tangemtest.ucase.domain.paramsManager +package com.tangem.devkit.ucase.domain.paramsManager import com.tangem.TangemSdk import com.tangem.common.CompletionResult -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.Payload -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest.ucase.domain.paramsManager.triggers.changeConsequence.ItemsChangeConsequence +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.Payload +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence.ItemsChangeConsequence typealias ActionResponse = CompletionResult<*> typealias AffectedList = List diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/BaseItemsManager.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/BaseItemsManager.kt similarity index 72% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/BaseItemsManager.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/BaseItemsManager.kt index a3308d623d..7fcba9d02c 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/BaseItemsManager.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/BaseItemsManager.kt @@ -1,18 +1,18 @@ -package com.tangem.tangemtest.ucase.domain.paramsManager.managers +package com.tangem.devkit.ucase.domain.paramsManager.managers import androidx.lifecycle.LifecycleObserver import com.tangem.TangemSdk -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.Payload -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.findItem -import com.tangem.tangemtest._arch.structure.abstraction.iterate -import com.tangem.tangemtest.ucase.domain.actions.Action -import com.tangem.tangemtest.ucase.domain.actions.AttrForAction -import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tangemtest.ucase.domain.paramsManager.AffectedItemsCallback -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.domain.paramsManager.triggers.changeConsequence.ItemsChangeConsequence +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.Payload +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.findItem +import com.tangem.devkit._arch.structure.abstraction.iterate +import com.tangem.devkit.ucase.domain.actions.Action +import com.tangem.devkit.ucase.domain.actions.AttrForAction +import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback +import com.tangem.devkit.ucase.domain.paramsManager.AffectedItemsCallback +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence.ItemsChangeConsequence import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/PersonalizationItemsManager.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/PersonalizationItemsManager.kt similarity index 64% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/PersonalizationItemsManager.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/PersonalizationItemsManager.kt index 4a9c0b0572..a8125f2a51 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/managers/PersonalizationItemsManager.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/PersonalizationItemsManager.kt @@ -1,13 +1,13 @@ -package com.tangem.tangemtest.ucase.domain.paramsManager.managers +package com.tangem.devkit.ucase.domain.paramsManager.managers import androidx.lifecycle.Lifecycle import androidx.lifecycle.OnLifecycleEvent import com.tangem.TangemSdk -import com.tangem.tangemtest.commons.Store -import com.tangem.tangemtest.ucase.domain.actions.PersonalizeAction -import com.tangem.tangemtest.ucase.domain.paramsManager.ActionCallback -import com.tangem.tangemtest.ucase.variants.personalize.converter.PersonalizationConfigConverter -import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizationConfig +import com.tangem.devkit.commons.Store +import com.tangem.devkit.ucase.domain.actions.PersonalizeAction +import com.tangem.devkit.ucase.domain.paramsManager.ActionCallback +import com.tangem.devkit.ucase.variants.personalize.converter.PersonalizationConfigConverter +import com.tangem.devkit.ucase.variants.personalize.dto.PersonalizationConfig /** [REDACTED_AUTHOR] diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/SimpleManagers.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/SimpleManagers.kt new file mode 100644 index 0000000000..a2a7ab9e8b --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/managers/SimpleManagers.kt @@ -0,0 +1,32 @@ +package com.tangem.devkit.ucase.domain.paramsManager.managers + +import com.tangem.devkit._arch.structure.impl.EditTextItem +import com.tangem.devkit.ucase.domain.actions.DepersonalizeAction +import com.tangem.devkit.ucase.domain.actions.ScanAction +import com.tangem.devkit.ucase.domain.actions.SignAction +import com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence.CardIdConsequence +import com.tangem.devkit.ucase.variants.TlvId + +/** +[REDACTED_AUTHOR] + */ +class ScanItemsManager : BaseItemsManager(ScanAction()) + +class DepersonalizeItemsManager : BaseItemsManager(DepersonalizeAction()) { + + init { + setItemChangeConsequences(CardIdConsequence()) + setItems(listOf(EditTextItem(TlvId.CardId, null))) + } +} + +class SignItemsManager : BaseItemsManager(SignAction()) { + + init { + setItemChangeConsequences(CardIdConsequence()) + setItems(listOf( + EditTextItem(TlvId.CardId, null), + EditTextItem(TlvId.TransactionOutHash, "Data used for hashing") + )) + } +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterActionModifiers.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/afterAction/AfterActionModifiers.kt similarity index 66% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterActionModifiers.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/afterAction/AfterActionModifiers.kt index 48ab757ff0..74940b79d1 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterActionModifiers.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/afterAction/AfterActionModifiers.kt @@ -1,8 +1,8 @@ -package com.tangem.tangemtest.ucase.domain.paramsManager.triggers.afterAction +package com.tangem.devkit.ucase.domain.paramsManager.triggers.afterAction import com.tangem.common.CompletionResult -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.Item /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt similarity index 72% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt index f63694fcc7..219f6a72c9 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/afterAction/AfterScanModifier.kt @@ -1,15 +1,15 @@ -package com.tangem.tangemtest.ucase.domain.paramsManager.triggers.afterAction +package com.tangem.devkit.ucase.domain.paramsManager.triggers.afterAction import com.tangem.commands.Card import com.tangem.commands.CardStatus import com.tangem.common.CompletionResult -import com.tangem.tangemtest._arch.structure.PayloadHolder -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.findItem -import com.tangem.tangemtest.ucase.domain.paramsManager.PayloadKey -import com.tangem.tangemtest.ucase.tunnel.ActionView -import com.tangem.tangemtest.ucase.tunnel.CardError -import com.tangem.tangemtest.ucase.variants.TlvId +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.findItem +import com.tangem.devkit.ucase.domain.paramsManager.PayloadKey +import com.tangem.devkit.ucase.tunnel.ActionView +import com.tangem.devkit.ucase.tunnel.CardError +import com.tangem.devkit.ucase.variants.TlvId import ru.dev.gbixahue.eu4d.lib.android.global.threading.postUI diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt new file mode 100644 index 0000000000..6da18ea8b7 --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/paramsManager/triggers/changeConsequence/ParamChangeConsequence.kt @@ -0,0 +1,30 @@ +package com.tangem.devkit.ucase.domain.paramsManager.triggers.changeConsequence + +import com.tangem.devkit._arch.structure.PayloadHolder +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit.ucase.domain.paramsManager.PayloadKey +import com.tangem.devkit.ucase.tunnel.ActionView +import com.tangem.devkit.ucase.variants.TlvId +import ru.dev.gbixahue.eu4d.lib.android.global.threading.postUI + +/** +[REDACTED_AUTHOR] + * + * The ParamsChangeConsequence class family modifies parameters depending on the state + * of the incoming parameter + */ +interface ItemsChangeConsequence { + fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List +} + +class CardIdConsequence : ItemsChangeConsequence { + + override fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List { + val affectedList = mutableListOf() + if (changedItem.id != TlvId.CardId) return affectedList + + val cidDataIsNull = changedItem.getData() == null + postUI { (payload.get(PayloadKey.actionView) as? ActionView)?.enableActionFab(!cidDataIsNull) } + return affectedList + } +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/responses/ResponseJsonConverter.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/responses/ResponseJsonConverter.kt similarity index 97% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/responses/ResponseJsonConverter.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/responses/ResponseJsonConverter.kt index 5533c3682d..06ca8702e5 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/responses/ResponseJsonConverter.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/responses/ResponseJsonConverter.kt @@ -1,9 +1,9 @@ -package com.tangem.tangemtest.ucase.domain.responses +package com.tangem.devkit.ucase.domain.responses import com.google.gson.* import com.tangem.commands.* import com.tangem.common.extensions.toHexString -import com.tangem.tangemtest.extensions.print +import com.tangem.devkit.extensions.print import java.lang.reflect.Type import java.text.DateFormat import java.util.* diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/Ids.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/Ids.kt similarity index 75% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/Ids.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/Ids.kt index e686f0f8c3..1daedb6326 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/Ids.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/Ids.kt @@ -1,6 +1,6 @@ -package com.tangem.tangemtest.ucase.resources +package com.tangem.devkit.ucase.resources -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.Id /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/MainResourceHolder.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/MainResourceHolder.kt similarity index 68% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/MainResourceHolder.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/MainResourceHolder.kt index 86c7454365..e62d993f69 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/MainResourceHolder.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/MainResourceHolder.kt @@ -1,14 +1,14 @@ -package com.tangem.tangemtest.ucase.resources +package com.tangem.devkit.ucase.resources -import com.tangem.tangemtest.AppTangemDemo -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.StringId -import com.tangem.tangemtest._arch.structure.StringResId -import com.tangem.tangemtest.ucase.resources.initializers.ActionResources -import com.tangem.tangemtest.ucase.resources.initializers.PersonalizationResources -import com.tangem.tangemtest.ucase.resources.initializers.ResponseResources -import com.tangem.tangemtest.ucase.resources.initializers.TlvResources +import com.tangem.devkit.AppTangemDemo +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.StringId +import com.tangem.devkit._arch.structure.StringResId +import com.tangem.devkit.ucase.resources.initializers.ActionResources +import com.tangem.devkit.ucase.resources.initializers.PersonalizationResources +import com.tangem.devkit.ucase.resources.initializers.ResponseResources +import com.tangem.devkit.ucase.resources.initializers.TlvResources import ru.dev.gbixahue.eu4d.lib.kotlin.common.BaseTypedHolder /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/ResourseTypes.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/ResourseTypes.kt similarity index 85% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/ResourseTypes.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/ResourseTypes.kt index 72fad2464a..8ba64f087d 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/ResourseTypes.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/ResourseTypes.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.resources +package com.tangem.devkit.ucase.resources /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/ActionResources.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/ActionResources.kt similarity index 88% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/ActionResources.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/ActionResources.kt index 053710adf7..2d7adcea1c 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/ActionResources.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/ActionResources.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.resources.initializers +package com.tangem.devkit.ucase.resources.initializers -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest.ucase.resources.ActionRes -import com.tangem.tangemtest.ucase.resources.ActionType -import com.tangem.tangemtest.ucase.resources.ResourceHolder +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit.ucase.resources.ActionRes +import com.tangem.devkit.ucase.resources.ActionType +import com.tangem.devkit.ucase.resources.ResourceHolder /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/PersonalizationResources.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/PersonalizationResources.kt similarity index 97% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/PersonalizationResources.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/PersonalizationResources.kt index a45bc55ed4..f92eee7e95 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/PersonalizationResources.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/PersonalizationResources.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.resources.initializers +package com.tangem.devkit.ucase.resources.initializers -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest.ucase.resources.ResourceHolder -import com.tangem.tangemtest.ucase.resources.Resources -import com.tangem.tangemtest.ucase.variants.personalize.* +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit.ucase.resources.ResourceHolder +import com.tangem.devkit.ucase.resources.Resources +import com.tangem.devkit.ucase.variants.personalize.* import ru.dev.gbixahue.eu4d.lib.kotlin.common.TypedHolder /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/ResponseResources.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/ResponseResources.kt similarity index 92% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/ResponseResources.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/ResponseResources.kt index a199a04a26..37a044c9fa 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/ResponseResources.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/ResponseResources.kt @@ -1,12 +1,12 @@ -package com.tangem.tangemtest.ucase.resources.initializers +package com.tangem.devkit.ucase.resources.initializers -import com.tangem.tangemtest.R -import com.tangem.tangemtest.ucase.resources.MainResourceHolder -import com.tangem.tangemtest.ucase.resources.Resources -import com.tangem.tangemtest.ucase.variants.responses.CardDataId -import com.tangem.tangemtest.ucase.variants.responses.CardId -import com.tangem.tangemtest.ucase.variants.responses.DepersonalizeId -import com.tangem.tangemtest.ucase.variants.responses.SignId +import com.tangem.devkit.R +import com.tangem.devkit.ucase.resources.MainResourceHolder +import com.tangem.devkit.ucase.resources.Resources +import com.tangem.devkit.ucase.variants.responses.CardDataId +import com.tangem.devkit.ucase.variants.responses.CardId +import com.tangem.devkit.ucase.variants.responses.DepersonalizeId +import com.tangem.devkit.ucase.variants.responses.SignId /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/TlvResources.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/TlvResources.kt similarity index 61% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/TlvResources.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/TlvResources.kt index 4de4ab008f..a1b64dd45d 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/resources/initializers/TlvResources.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/resources/initializers/TlvResources.kt @@ -1,9 +1,9 @@ -package com.tangem.tangemtest.ucase.resources.initializers +package com.tangem.devkit.ucase.resources.initializers -import com.tangem.tangemtest.R -import com.tangem.tangemtest.ucase.resources.MainResourceHolder -import com.tangem.tangemtest.ucase.resources.Resources -import com.tangem.tangemtest.ucase.variants.TlvId +import com.tangem.devkit.R +import com.tangem.devkit.ucase.resources.MainResourceHolder +import com.tangem.devkit.ucase.resources.Resources +import com.tangem.devkit.ucase.variants.TlvId /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/Errors.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/tunnel/Errors.kt similarity index 65% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/Errors.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/tunnel/Errors.kt index 8ae2a5370a..72cbde4699 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/Errors.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/tunnel/Errors.kt @@ -1,6 +1,6 @@ -package com.tangem.tangemtest.ucase.tunnel +package com.tangem.devkit.ucase.tunnel -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.Id /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/ViewScreen.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/tunnel/ViewScreen.kt similarity index 81% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/ViewScreen.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/tunnel/ViewScreen.kt index 53ab0b4883..64aa754c6b 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/tunnel/ViewScreen.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/tunnel/ViewScreen.kt @@ -1,7 +1,7 @@ -package com.tangem.tangemtest.ucase.tunnel +package com.tangem.devkit.ucase.tunnel import com.google.android.material.snackbar.Snackbar -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.Id interface SnackbarHolder { fun showSnackbar(message: String, length: Int = Snackbar.LENGTH_SHORT) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/ActionViewModel.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/ActionViewModel.kt similarity index 87% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/ActionViewModel.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/ActionViewModel.kt index 80e1840a9d..3c04d86d59 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/ActionViewModel.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/ActionViewModel.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.ui +package com.tangem.devkit.ucase.ui import android.view.View import androidx.annotation.UiThread @@ -9,17 +9,19 @@ import com.tangem.TangemSdk import com.tangem.commands.Card import com.tangem.commands.CommandResponse import com.tangem.common.CompletionResult -import com.tangem.tangemtest._arch.SingleLiveEvent -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.Payload -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.iterate -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.domain.responses.ResponseJsonConverter -import com.tangem.tangemtest.ucase.resources.ActionType -import com.tangem.tangemtest.ucase.tunnel.ViewScreen -import com.tangem.tangemtest.ucase.variants.personalize.converter.ItemTypes +import com.tangem.common.extensions.CardType +import com.tangem.devkit._arch.SingleLiveEvent +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.Payload +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.iterate +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.domain.responses.ResponseJsonConverter +import com.tangem.devkit.ucase.resources.ActionType +import com.tangem.devkit.ucase.tunnel.ViewScreen +import com.tangem.devkit.ucase.variants.personalize.converter.ItemTypes import ru.dev.gbixahue.eu4d.lib.android.global.log.Log +import java.util.* /** [REDACTED_AUTHOR] @@ -43,6 +45,7 @@ class ActionViewModel(private val itemsManager: ItemsManager) : ViewModel(), Lif fun setCardManager(tangemSdk: TangemSdk) { this.tangemSdk = tangemSdk + this.tangemSdk.config.cardFilter.allowedCardTypes = EnumSet.of(CardType.Sdk) } @Deprecated("Events must be send directly from the Widget") diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseCardActionFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/BaseCardActionFragment.kt similarity index 92% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseCardActionFragment.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/BaseCardActionFragment.kt index 32c0746431..97bb78f808 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseCardActionFragment.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/BaseCardActionFragment.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.ui +package com.tangem.devkit.ucase.ui import android.os.Bundle import android.view.LayoutInflater @@ -13,15 +13,15 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton import com.tangem.TangemSdk import com.tangem.commands.Card import com.tangem.commands.CommandResponse +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._main.MainViewModel +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.domain.paramsManager.PayloadKey +import com.tangem.devkit.ucase.tunnel.ActionView +import com.tangem.devkit.ucase.tunnel.CardError +import com.tangem.devkit.ucase.ui.widgets.ParameterWidget import com.tangem.tangem_sdk_new.extensions.init -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._main.MainViewModel -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.domain.paramsManager.PayloadKey -import com.tangem.tangemtest.ucase.tunnel.ActionView -import com.tangem.tangemtest.ucase.tunnel.CardError -import com.tangem.tangemtest.ucase.ui.widgets.ParameterWidget import ru.dev.gbixahue.eu4d.lib.android._android.views.enable import ru.dev.gbixahue.eu4d.lib.android.global.log.Log diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/BaseFragment.kt similarity index 88% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseFragment.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/BaseFragment.kt index 29dfeec6be..e3b6f16cad 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseFragment.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/BaseFragment.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.ui +package com.tangem.devkit.ucase.ui import android.os.Bundle import android.view.LayoutInflater @@ -8,8 +8,8 @@ import androidx.fragment.app.Fragment import androidx.navigation.NavOptions import androidx.navigation.fragment.NavHostFragment.findNavController import com.google.android.material.snackbar.Snackbar -import com.tangem.tangemtest.ucase.getDefaultNavigationOptions -import com.tangem.tangemtest.ucase.tunnel.SnackbarHolder +import com.tangem.devkit.ucase.getDefaultNavigationOptions +import com.tangem.devkit.ucase.tunnel.SnackbarHolder import ru.dev.gbixahue.eu4d.lib.kotlin.common.LayoutHolder /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/widgets/ParameterWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/widgets/ParameterWidget.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/widgets/ParameterWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/widgets/ParameterWidget.kt index ab01e1a692..1187a6d9db 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/widgets/ParameterWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/widgets/ParameterWidget.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.ui.widgets +package com.tangem.devkit.ucase.ui.widgets import android.text.Editable import android.text.TextWatcher @@ -8,14 +8,14 @@ import android.widget.Button import android.widget.TextView import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.impl.EditTextItem -import com.tangem.tangemtest.extensions.view.beginDelayedTransition -import com.tangem.tangemtest.ucase.resources.ActionType -import com.tangem.tangemtest.ucase.resources.MainResourceHolder -import com.tangem.tangemtest.ucase.resources.Resources +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.impl.EditTextItem +import com.tangem.devkit.extensions.view.beginDelayedTransition +import com.tangem.devkit.ucase.resources.ActionType +import com.tangem.devkit.ucase.resources.MainResourceHolder +import com.tangem.devkit.ucase.resources.Resources import ru.dev.gbixahue.eu4d.lib.android.global.log.Log import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/Ids.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/Ids.kt new file mode 100644 index 0000000000..e372276e8a --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/Ids.kt @@ -0,0 +1,11 @@ +package com.tangem.devkit.ucase.variants + +import com.tangem.devkit._arch.structure.Id + +/** +[REDACTED_AUTHOR] + */ +enum class TlvId : Id { + CardId, + TransactionOutHash, +} \ No newline at end of file diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/depersonalize/ui/DepersonalizeActionFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/depersonalize/ui/DepersonalizeActionFragment.kt new file mode 100644 index 0000000000..802ba1e807 --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/depersonalize/ui/DepersonalizeActionFragment.kt @@ -0,0 +1,13 @@ +package com.tangem.devkit.ucase.variants.depersonalize.ui + +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.domain.paramsManager.managers.DepersonalizeItemsManager +import com.tangem.devkit.ucase.ui.BaseCardActionFragment + +/** +[REDACTED_AUTHOR] + */ +class DepersonalizeActionFragment : BaseCardActionFragment() { + + override val itemsManager: ItemsManager by lazy { DepersonalizeItemsManager() } +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/Ids.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/Ids.kt similarity index 94% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/Ids.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/Ids.kt index 6305b68975..2e10c89ab8 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/Ids.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/Ids.kt @@ -1,6 +1,6 @@ -package com.tangem.tangemtest.ucase.variants.personalize +package com.tangem.devkit.ucase.variants.personalize -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.Id /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/PersonalizationConfigStore.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/PersonalizationConfigStore.kt similarity index 85% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/PersonalizationConfigStore.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/PersonalizationConfigStore.kt index 9c774a8071..a0c9435a4f 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/PersonalizationConfigStore.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/PersonalizationConfigStore.kt @@ -1,13 +1,13 @@ -package com.tangem.tangemtest.ucase.variants.personalize +package com.tangem.devkit.ucase.variants.personalize import android.content.Context import android.content.SharedPreferences import androidx.core.content.edit import com.google.gson.Gson -import com.tangem.tangemtest.AppTangemDemo -import com.tangem.tangemtest.commons.KeyedStore -import com.tangem.tangemtest.commons.Store -import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizationConfig +import com.tangem.devkit.AppTangemDemo +import com.tangem.devkit.commons.KeyedStore +import com.tangem.devkit.commons.Store +import com.tangem.devkit.ucase.variants.personalize.dto.PersonalizationConfig class PersonalizationConfigStore(context: Context) : Store, KeyedStore { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/DefaultValues.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/DefaultValues.kt similarity index 95% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/DefaultValues.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/DefaultValues.kt index 2f406d98c3..bb3edb89e9 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/DefaultValues.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/DefaultValues.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.variants.personalize.converter +package com.tangem.devkit.ucase.variants.personalize.converter import com.tangem.commands.EllipticCurve -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.abstraction.KeyValue -import com.tangem.tangemtest.ucase.variants.personalize.* -import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizationConfig +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.abstraction.KeyValue +import com.tangem.devkit.ucase.variants.personalize.* +import com.tangem.devkit.ucase.variants.personalize.dto.PersonalizationConfig import ru.dev.gbixahue.eu4d.lib.kotlin.common.BaseTypedHolder /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/ItemTypes.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/ItemTypes.kt similarity index 96% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/ItemTypes.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/ItemTypes.kt index b1013de610..209036fc03 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/ItemTypes.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/ItemTypes.kt @@ -1,7 +1,7 @@ -package com.tangem.tangemtest.ucase.variants.personalize.converter +package com.tangem.devkit.ucase.variants.personalize.converter -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest.ucase.variants.personalize.* +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit.ucase.variants.personalize.* class ItemTypes { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/PersonalizationConfigConverter.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/PersonalizationConfigConverter.kt similarity index 96% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/PersonalizationConfigConverter.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/PersonalizationConfigConverter.kt index 3d7fb1e3d1..c2c6810da3 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/PersonalizationConfigConverter.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/PersonalizationConfigConverter.kt @@ -1,11 +1,11 @@ -package com.tangem.tangemtest.ucase.variants.personalize.converter +package com.tangem.devkit.ucase.variants.personalize.converter -import com.tangem.tangemtest._arch.structure.Additional -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.abstraction.* -import com.tangem.tangemtest._arch.structure.impl.* -import com.tangem.tangemtest.ucase.variants.personalize.* -import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizationConfig +import com.tangem.devkit._arch.structure.Additional +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.abstraction.* +import com.tangem.devkit._arch.structure.impl.* +import com.tangem.devkit.ucase.variants.personalize.* +import com.tangem.devkit.ucase.variants.personalize.dto.PersonalizationConfig import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/PersonalizationConfigToCardConfig.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/PersonalizationConfigToCardConfig.kt similarity index 97% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/PersonalizationConfigToCardConfig.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/PersonalizationConfigToCardConfig.kt index a1c710527b..e71acdacd5 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/converter/PersonalizationConfigToCardConfig.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/converter/PersonalizationConfigToCardConfig.kt @@ -1,9 +1,9 @@ -package com.tangem.tangemtest.ucase.variants.personalize.converter +package com.tangem.devkit.ucase.variants.personalize.converter import com.tangem.commands.* import com.tangem.commands.personalization.entities.CardConfig import com.tangem.commands.personalization.entities.NdefRecord -import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizationConfig +import com.tangem.devkit.ucase.variants.personalize.dto.PersonalizationConfig import ru.dev.gbixahue.eu4d.lib.kotlin.common.Converter import java.util.* diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/DefaultPersonalizationParams.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/DefaultPersonalizationParams.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/DefaultPersonalizationParams.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/DefaultPersonalizationParams.kt index ace112c0af..afa1d5f114 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/DefaultPersonalizationParams.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/DefaultPersonalizationParams.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.personalize.dto +package com.tangem.devkit.ucase.variants.personalize.dto import com.tangem.KeyPair import com.tangem.commands.personalization.entities.Acquirer @@ -41,7 +41,7 @@ interface DefaultPersonalizationParams { } fun manufacturer(): Manufacturer { - val keys = Manufacturer(com.tangem.tangemtest.ucase.variants.personalize.dto.Manufacturer.Mode.Developer) + val keys = Manufacturer(com.tangem.devkit.ucase.variants.personalize.dto.Manufacturer.Mode.Developer) return Manufacturer( name = "Tangem", keyPair = KeyPair(keys.publicKey, keys.privateKey) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/Manufacturer.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/Manufacturer.kt similarity index 98% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/Manufacturer.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/Manufacturer.kt index 8a366eeb26..eccc075888 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/Manufacturer.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/Manufacturer.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.personalize.dto +package com.tangem.devkit.ucase.variants.personalize.dto class Manufacturer(private val mode: Mode) { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/PersonalizationConfig.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/PersonalizationConfig.kt similarity index 98% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/PersonalizationConfig.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/PersonalizationConfig.kt index ebb7daea63..836eac58bb 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/dto/PersonalizationConfig.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/dto/PersonalizationConfig.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.personalize.dto +package com.tangem.devkit.ucase.variants.personalize.dto import com.tangem.commands.EllipticCurve diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizationFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/PersonalizationFragment.kt similarity index 82% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizationFragment.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/PersonalizationFragment.kt index cab78e4834..9fbc9d8b01 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizationFragment.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/PersonalizationFragment.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui +package com.tangem.devkit.ucase.variants.personalize.ui import android.content.DialogInterface import android.os.Bundle @@ -15,29 +15,29 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.transition.Fade import com.tangem.commands.Card -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.StringId -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.SafeValueChanged -import com.tangem.tangemtest._arch.widget.WidgetBuilder -import com.tangem.tangemtest.commons.DialogController -import com.tangem.tangemtest.commons.view.MultiActionView -import com.tangem.tangemtest.commons.view.ViewAction -import com.tangem.tangemtest.extensions.view.beginDelayedTransition -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.domain.paramsManager.PayloadKey -import com.tangem.tangemtest.ucase.domain.paramsManager.managers.PersonalizationItemsManager -import com.tangem.tangemtest.ucase.resources.ActionType -import com.tangem.tangemtest.ucase.tunnel.ActionView -import com.tangem.tangemtest.ucase.tunnel.ItemError -import com.tangem.tangemtest.ucase.ui.BaseCardActionFragment -import com.tangem.tangemtest.ucase.variants.personalize.PersonalizationConfigStore -import com.tangem.tangemtest.ucase.variants.personalize.ui.presets.PersonalizationPresetManager -import com.tangem.tangemtest.ucase.variants.personalize.ui.presets.PersonalizationPresetView -import com.tangem.tangemtest.ucase.variants.personalize.ui.presets.RvPresetNamesAdapter -import com.tangem.tangemtest.ucase.variants.personalize.ui.widgets.PersonalizationItemBuilder -import com.tangem.tangemtest.ucase.variants.responses.ui.ResponseFragment +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.StringId +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.SafeValueChanged +import com.tangem.devkit._arch.widget.WidgetBuilder +import com.tangem.devkit.commons.DialogController +import com.tangem.devkit.commons.view.MultiActionView +import com.tangem.devkit.commons.view.ViewAction +import com.tangem.devkit.extensions.view.beginDelayedTransition +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.domain.paramsManager.PayloadKey +import com.tangem.devkit.ucase.domain.paramsManager.managers.PersonalizationItemsManager +import com.tangem.devkit.ucase.resources.ActionType +import com.tangem.devkit.ucase.tunnel.ActionView +import com.tangem.devkit.ucase.tunnel.ItemError +import com.tangem.devkit.ucase.ui.BaseCardActionFragment +import com.tangem.devkit.ucase.variants.personalize.PersonalizationConfigStore +import com.tangem.devkit.ucase.variants.personalize.ui.presets.PersonalizationPresetManager +import com.tangem.devkit.ucase.variants.personalize.ui.presets.PersonalizationPresetView +import com.tangem.devkit.ucase.variants.personalize.ui.presets.RvPresetNamesAdapter +import com.tangem.devkit.ucase.variants.personalize.ui.widgets.PersonalizationItemBuilder +import com.tangem.devkit.ucase.variants.responses.ui.ResponseFragment import ru.dev.gbixahue.eu4d.lib.android._android.views.inflate import ru.dev.gbixahue.eu4d.lib.android.global.log.Log import ru.dev.gbixahue.eu4d.lib.android.global.threading.post diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PersonalizationPresetManager.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PersonalizationPresetManager.kt similarity index 75% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PersonalizationPresetManager.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PersonalizationPresetManager.kt index ff63bca036..c1fd8e43a6 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PersonalizationPresetManager.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PersonalizationPresetManager.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.presets +package com.tangem.devkit.ucase.variants.personalize.ui.presets -import com.tangem.tangemtest.R -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.variants.personalize.PersonalizationConfigStore -import com.tangem.tangemtest.ucase.variants.personalize.converter.PersonalizationConfigConverter -import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizationConfig +import com.tangem.devkit.R +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.variants.personalize.PersonalizationConfigStore +import com.tangem.devkit.ucase.variants.personalize.converter.PersonalizationConfigConverter +import com.tangem.devkit.ucase.variants.personalize.dto.PersonalizationConfig class PersonalizationPresetManager( private val itemsManager: ItemsManager, diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PersonalizationPresetView.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PersonalizationPresetView.kt similarity index 55% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PersonalizationPresetView.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PersonalizationPresetView.kt index d4988973dc..be3fb55716 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PersonalizationPresetView.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PersonalizationPresetView.kt @@ -1,7 +1,7 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.presets +package com.tangem.devkit.ucase.variants.personalize.ui.presets -import com.tangem.tangemtest._arch.structure.abstraction.SafeValueChanged -import com.tangem.tangemtest.ucase.tunnel.SnackbarHolder +import com.tangem.devkit._arch.structure.abstraction.SafeValueChanged +import com.tangem.devkit.ucase.tunnel.SnackbarHolder interface PersonalizationPresetView : SnackbarHolder { fun showSavePresetDialog(onOk: SafeValueChanged) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PresetRv.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PresetRv.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PresetRv.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PresetRv.kt index ff00dcf179..b32f84a29b 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/presets/PresetRv.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/presets/PresetRv.kt @@ -1,11 +1,10 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.presets +package com.tangem.devkit.ucase.variants.personalize.ui.presets import android.view.View import android.view.ViewGroup -import android.widget.Button import android.widget.TextView -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.abstraction.SafeValueChanged +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.abstraction.SafeValueChanged import ru.dev.gbixahue.eu4d.lib.android._android.views.inflate import ru.dev.gbixahue.eu4d.lib.android._android.views.recycler_view.RvBaseAdapter import ru.dev.gbixahue.eu4d.lib.android._android.views.recycler_view.RvVH diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt similarity index 62% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt index 5900b5da37..8b79b64bc9 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt @@ -1,12 +1,12 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.view.ViewGroup -import com.tangem.tangemtest._arch.structure.StringId -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.widget.abstraction.BaseViewWidget -import com.tangem.tangemtest._arch.widget.abstraction.ViewWidget -import com.tangem.tangemtest.ucase.resources.MainResourceHolder -import com.tangem.tangemtest.ucase.resources.Resources +import com.tangem.devkit._arch.structure.StringId +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.widget.abstraction.BaseViewWidget +import com.tangem.devkit._arch.widget.abstraction.ViewWidget +import com.tangem.devkit.ucase.resources.MainResourceHolder +import com.tangem.devkit.ucase.resources.Resources import ru.dev.gbixahue.eu4d.lib.android._android.views.stringFrom /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/DescriptionWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/DescriptionWidget.kt similarity index 78% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/DescriptionWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/DescriptionWidget.kt index a8fe8af66c..4867a63afe 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/DescriptionWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/DescriptionWidget.kt @@ -1,11 +1,11 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.view.ViewGroup import android.widget.TextView -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.ViewState -import com.tangem.tangemtest.extensions.view.beginDelayedTransition +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.ViewState +import com.tangem.devkit.extensions.view.beginDelayedTransition /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/EditTextWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/EditTextWidget.kt similarity index 90% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/EditTextWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/EditTextWidget.kt index df0951947d..2fce4d4f11 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/EditTextWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/EditTextWidget.kt @@ -1,12 +1,12 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.text.Editable import android.text.TextWatcher import android.view.ViewGroup import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.impl.EditTextItem +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.impl.EditTextItem import ru.dev.gbixahue.eu4d.lib.android._android.views.moveCursorToEnd import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/NumberWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/NumberWidget.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/NumberWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/NumberWidget.kt index 61cab1f430..2fef1e296f 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/NumberWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/NumberWidget.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.text.Editable import android.text.InputFilter @@ -6,9 +6,9 @@ import android.text.TextWatcher import android.view.ViewGroup import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.impl.NumberItem -import com.tangem.tangemtest.ucase.variants.personalize.CardNumber +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.impl.NumberItem +import com.tangem.devkit.ucase.variants.personalize.CardNumber import ru.dev.gbixahue.eu4d.lib.android._android.views.addInputFilter import ru.dev.gbixahue.eu4d.lib.android._android.views.moveCursorToEnd import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/PersonalizationItemBuilder.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/PersonalizationItemBuilder.kt similarity index 63% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/PersonalizationItemBuilder.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/PersonalizationItemBuilder.kt index f18839f056..09c134bc2d 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/PersonalizationItemBuilder.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/PersonalizationItemBuilder.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.view.ViewGroup -import com.tangem.tangemtest._arch.structure.abstraction.BaseItem -import com.tangem.tangemtest._arch.structure.impl.* -import com.tangem.tangemtest._arch.widget.ItemWidgetBuilder -import com.tangem.tangemtest._arch.widget.abstraction.ViewWidget +import com.tangem.devkit._arch.structure.abstraction.BaseItem +import com.tangem.devkit._arch.structure.impl.* +import com.tangem.devkit._arch.widget.ItemWidgetBuilder +import com.tangem.devkit._arch.widget.abstraction.ViewWidget /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/SpinnerWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/SpinnerWidget.kt similarity index 91% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/SpinnerWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/SpinnerWidget.kt index c1c9a5a3f8..e42afb0571 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/SpinnerWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/SpinnerWidget.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.view.View import android.view.ViewGroup @@ -6,10 +6,10 @@ import android.widget.AdapterView import android.widget.BaseAdapter import android.widget.Spinner import android.widget.TextView -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.abstraction.KeyValue -import com.tangem.tangemtest._arch.structure.abstraction.ListViewModel -import com.tangem.tangemtest._arch.structure.impl.SpinnerItem +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.abstraction.KeyValue +import com.tangem.devkit._arch.structure.abstraction.ListViewModel +import com.tangem.devkit._arch.structure.impl.SpinnerItem import ru.dev.gbixahue.eu4d.lib.android._android.views.inflate import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/SwitchWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/SwitchWidget.kt similarity index 86% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/SwitchWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/SwitchWidget.kt index ffa0b6879b..0b9c534056 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/SwitchWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/SwitchWidget.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.view.ViewGroup import android.widget.CompoundButton import androidx.appcompat.widget.SwitchCompat -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.impl.BoolItem +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.impl.BoolItem /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/TextHeaderWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/TextHeaderWidget.kt similarity index 70% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/TextHeaderWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/TextHeaderWidget.kt index ab52a1981b..0892061a0a 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/TextHeaderWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/personalize/ui/widgets/TextHeaderWidget.kt @@ -1,9 +1,9 @@ -package com.tangem.tangemtest.ucase.variants.personalize.ui.widgets +package com.tangem.devkit.ucase.variants.personalize.ui.widgets import android.view.ViewGroup import android.widget.TextView -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.impl.TextItem +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.impl.TextItem /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/Ids.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/Ids.kt similarity index 89% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/Ids.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/Ids.kt index 2e84215136..8e00cef963 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/Ids.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/Ids.kt @@ -1,6 +1,6 @@ -package com.tangem.tangemtest.ucase.variants.responses +package com.tangem.devkit.ucase.variants.responses -import com.tangem.tangemtest._arch.structure.Id +import com.tangem.devkit._arch.structure.Id /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ResponseViewModel.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ResponseViewModel.kt similarity index 80% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ResponseViewModel.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ResponseViewModel.kt index 488b8f014b..0da3fbceb4 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ResponseViewModel.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ResponseViewModel.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.responses +package com.tangem.devkit.ucase.variants.responses import android.view.View import androidx.lifecycle.ViewModel @@ -6,11 +6,11 @@ import com.tangem.commands.Card import com.tangem.commands.CommandResponse import com.tangem.commands.SignResponse import com.tangem.commands.personalization.DepersonalizeResponse -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.ModelToItems -import com.tangem.tangemtest._arch.structure.abstraction.iterate -import com.tangem.tangemtest.ucase.variants.responses.converter.ConvertersStore +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.ModelToItems +import com.tangem.devkit._arch.structure.abstraction.iterate +import com.tangem.devkit.ucase.variants.responses.converter.ConvertersStore import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/BaseResponseConverter.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/BaseResponseConverter.kt similarity index 68% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/BaseResponseConverter.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/BaseResponseConverter.kt index b685392de9..c1eded3858 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/BaseResponseConverter.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/BaseResponseConverter.kt @@ -1,9 +1,9 @@ -package com.tangem.tangemtest.ucase.variants.responses.converter +package com.tangem.devkit.ucase.variants.responses.converter -import com.tangem.tangemtest._arch.structure.Id -import com.tangem.tangemtest._arch.structure.abstraction.* -import com.tangem.tangemtest.ucase.domain.responses.ResponseFieldConverter -import com.tangem.tangemtest.ucase.variants.responses.item.TextHeaderItem +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.abstraction.* +import com.tangem.devkit.ucase.domain.responses.ResponseFieldConverter +import com.tangem.devkit.ucase.variants.responses.item.TextHeaderItem import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf /** diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/CardConverter.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/CardConverter.kt similarity index 86% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/CardConverter.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/CardConverter.kt index 6b3ad13430..44e2a5d571 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/CardConverter.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/CardConverter.kt @@ -1,16 +1,16 @@ -package com.tangem.tangemtest.ucase.variants.responses.converter +package com.tangem.devkit.ucase.variants.responses.converter import com.tangem.commands.* -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.StringId -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.abstraction.ItemGroup -import com.tangem.tangemtest._arch.structure.abstraction.iterate -import com.tangem.tangemtest._arch.structure.impl.BoolItem -import com.tangem.tangemtest._arch.structure.impl.TextItem -import com.tangem.tangemtest.ucase.variants.responses.CardDataId -import com.tangem.tangemtest.ucase.variants.responses.CardId -import com.tangem.tangemtest.ucase.variants.responses.item.TextHeaderItem +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.StringId +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.abstraction.ItemGroup +import com.tangem.devkit._arch.structure.abstraction.iterate +import com.tangem.devkit._arch.structure.impl.BoolItem +import com.tangem.devkit._arch.structure.impl.TextItem +import com.tangem.devkit.ucase.variants.responses.CardDataId +import com.tangem.devkit.ucase.variants.responses.CardId +import com.tangem.devkit.ucase.variants.responses.item.TextHeaderItem /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/ConvertersStore.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/ConvertersStore.kt similarity index 90% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/ConvertersStore.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/ConvertersStore.kt index 067d47027c..85b9f38442 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/ConvertersStore.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/ConvertersStore.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.responses.converter +package com.tangem.devkit.ucase.variants.responses.converter import com.tangem.commands.Card import com.tangem.commands.SignResponse diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/SimpleConverters.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/SimpleConverters.kt similarity index 74% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/SimpleConverters.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/SimpleConverters.kt index 64b8edbec5..980c10f01d 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/converter/SimpleConverters.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/SimpleConverters.kt @@ -1,11 +1,11 @@ -package com.tangem.tangemtest.ucase.variants.responses.converter +package com.tangem.devkit.ucase.variants.responses.converter import com.tangem.commands.SignResponse import com.tangem.commands.personalization.DepersonalizeResponse -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest._arch.structure.impl.TextItem -import com.tangem.tangemtest.ucase.variants.responses.DepersonalizeId -import com.tangem.tangemtest.ucase.variants.responses.SignId +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit._arch.structure.impl.TextItem +import com.tangem.devkit.ucase.variants.responses.DepersonalizeId +import com.tangem.devkit.ucase.variants.responses.SignId import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf /** diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/item/TextItem.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/item/TextItem.kt new file mode 100644 index 0000000000..bb677f0dec --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/item/TextItem.kt @@ -0,0 +1,12 @@ +package com.tangem.devkit.ucase.variants.responses.item + +import com.tangem.devkit._arch.structure.Id +import com.tangem.devkit._arch.structure.abstraction.BaseItemViewModel +import com.tangem.devkit._arch.structure.abstraction.ItemViewModel +import com.tangem.devkit._arch.structure.abstraction.ViewState +import com.tangem.devkit._arch.structure.impl.TypedItem + +open class TextHeaderItem(id: Id, viewModel: ItemViewModel) : TypedItem(id, viewModel) { + constructor(id: Id, value: String? = null, viewState: ViewState = ViewState()) + : this(id, BaseItemViewModel(value, viewState)) +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/ResponseFragment.kt similarity index 81% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/ResponseFragment.kt index 07676a18f2..0dcb15e807 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/ResponseFragment.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.responses.ui +package com.tangem.devkit.ucase.variants.responses.ui import android.os.Bundle import android.view.* @@ -8,14 +8,14 @@ import androidx.core.os.bundleOf import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.lifecycle.Observer -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.widget.WidgetBuilder -import com.tangem.tangemtest._main.MainViewModel -import com.tangem.tangemtest.extensions.shareText -import com.tangem.tangemtest.ucase.domain.responses.ResponseJsonConverter -import com.tangem.tangemtest.ucase.ui.BaseFragment -import com.tangem.tangemtest.ucase.variants.responses.ResponseViewModel -import com.tangem.tangemtest.ucase.variants.responses.ui.widget.ResponseItemBuilder +import com.tangem.devkit.R +import com.tangem.devkit._arch.widget.WidgetBuilder +import com.tangem.devkit._main.MainViewModel +import com.tangem.devkit.extensions.shareText +import com.tangem.devkit.ucase.domain.responses.ResponseJsonConverter +import com.tangem.devkit.ucase.ui.BaseFragment +import com.tangem.devkit.ucase.variants.responses.ResponseViewModel +import com.tangem.devkit.ucase.variants.responses.ui.widget.ResponseItemBuilder /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/CheckBoxWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/CheckBoxWidget.kt similarity index 81% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/CheckBoxWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/CheckBoxWidget.kt index 65dd1a5831..bafc6e7500 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/CheckBoxWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/CheckBoxWidget.kt @@ -1,9 +1,9 @@ -package com.tangem.tangemtest.ucase.variants.responses.ui.widget +package com.tangem.devkit.ucase.variants.responses.ui.widget import android.view.ViewGroup import com.google.android.material.checkbox.MaterialCheckBox -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.impl.BoolItem +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.impl.BoolItem import ru.dev.gbixahue.eu4d.lib.android._android.views.colorFrom /** diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseItemBuilder.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseItemBuilder.kt new file mode 100644 index 0000000000..172cca0c83 --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseItemBuilder.kt @@ -0,0 +1,23 @@ +package com.tangem.devkit.ucase.variants.responses.ui.widget + +import android.view.ViewGroup +import com.tangem.devkit._arch.structure.abstraction.BaseItem +import com.tangem.devkit._arch.structure.impl.BoolItem +import com.tangem.devkit._arch.structure.impl.TextItem +import com.tangem.devkit._arch.widget.ItemWidgetBuilder +import com.tangem.devkit._arch.widget.abstraction.ViewWidget +import com.tangem.devkit.ucase.variants.responses.item.TextHeaderItem + +/** +[REDACTED_AUTHOR] + */ +class ResponseItemBuilder : ItemWidgetBuilder { + override fun build(item: BaseItem, parent: ViewGroup): ViewWidget? { + return when (item) { + is TextHeaderItem -> ResponseHeaderWidget(parent, item) + is TextItem -> ResponseTextWidget(parent, item) + is BoolItem -> CheckBoxWidget(parent, item) + else -> null + } + } +} \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseTextWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseTextWidget.kt similarity index 80% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseTextWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseTextWidget.kt index a221c03124..8ef678b37c 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseTextWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseTextWidget.kt @@ -1,10 +1,10 @@ -package com.tangem.tangemtest.ucase.variants.responses.ui.widget +package com.tangem.devkit.ucase.variants.responses.ui.widget import android.view.ViewGroup import android.widget.TextView -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.impl.TextItem -import com.tangem.tangemtest.ucase.variants.responses.item.TextHeaderItem +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.impl.TextItem +import com.tangem.devkit.ucase.variants.responses.item.TextHeaderItem /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseWidget.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseWidget.kt similarity index 80% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseWidget.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseWidget.kt index f6554124cf..9931b63df4 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/widget/ResponseWidget.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/widget/ResponseWidget.kt @@ -1,12 +1,12 @@ -package com.tangem.tangemtest.ucase.variants.responses.ui.widget +package com.tangem.devkit.ucase.variants.responses.ui.widget import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.view.ViewGroup -import com.tangem.tangemtest.R -import com.tangem.tangemtest._arch.structure.abstraction.Item -import com.tangem.tangemtest.ucase.variants.personalize.ui.widgets.DescriptionWidget +import com.tangem.devkit.R +import com.tangem.devkit._arch.structure.abstraction.Item +import com.tangem.devkit.ucase.variants.personalize.ui.widgets.DescriptionWidget import ru.dev.gbixahue.eu4d.lib.android._android.views.stringFrom import ru.dev.gbixahue.eu4d.lib.android._android.views.toast import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/scan/ui/ScanActionFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/scan/ui/ScanActionFragment.kt similarity index 81% rename from tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/scan/ui/ScanActionFragment.kt rename to tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/scan/ui/ScanActionFragment.kt index a125e30adf..f5dc1bcf94 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/scan/ui/ScanActionFragment.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/scan/ui/ScanActionFragment.kt @@ -1,4 +1,4 @@ -package com.tangem.tangemtest.ucase.variants.scan.ui +package com.tangem.devkit.ucase.variants.scan.ui import android.os.Bundle import android.util.TypedValue @@ -7,11 +7,11 @@ import android.view.View import android.widget.FrameLayout import android.widget.TextView import com.tangem.commands.Card -import com.tangem.tangemtest.R -import com.tangem.tangemtest.ucase.domain.paramsManager.ItemsManager -import com.tangem.tangemtest.ucase.domain.paramsManager.managers.ScanItemsManager -import com.tangem.tangemtest.ucase.ui.BaseCardActionFragment -import com.tangem.tangemtest.ucase.variants.responses.ui.ResponseFragment +import com.tangem.devkit.R +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.domain.paramsManager.managers.ScanItemsManager +import com.tangem.devkit.ucase.ui.BaseCardActionFragment +import com.tangem.devkit.ucase.variants.responses.ui.ResponseFragment import ru.dev.gbixahue.eu4d.lib.android._android.views.dpToPx /** diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/sign/ui/SignActionFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/sign/ui/SignActionFragment.kt new file mode 100644 index 0000000000..760d09e39d --- /dev/null +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/sign/ui/SignActionFragment.kt @@ -0,0 +1,13 @@ +package com.tangem.devkit.ucase.variants.sign.ui + +import com.tangem.devkit.ucase.domain.paramsManager.ItemsManager +import com.tangem.devkit.ucase.domain.paramsManager.managers.SignItemsManager +import com.tangem.devkit.ucase.ui.BaseCardActionFragment + +/** +[REDACTED_AUTHOR] + */ +class SignActionFragment : BaseCardActionFragment() { + + override val itemsManager: ItemsManager by lazy { SignItemsManager() } +} \ No newline at end of file diff --git a/tangem-demo/src/main/res/anim/fade_in.xml b/tangem-devkit/src/main/res/anim/fade_in.xml similarity index 100% rename from tangem-demo/src/main/res/anim/fade_in.xml rename to tangem-devkit/src/main/res/anim/fade_in.xml diff --git a/tangem-demo/src/main/res/anim/fade_out.xml b/tangem-devkit/src/main/res/anim/fade_out.xml similarity index 100% rename from tangem-demo/src/main/res/anim/fade_out.xml rename to tangem-devkit/src/main/res/anim/fade_out.xml diff --git a/tangem-demo/src/main/res/anim/slide_in_left.xml b/tangem-devkit/src/main/res/anim/slide_in_left.xml similarity index 100% rename from tangem-demo/src/main/res/anim/slide_in_left.xml rename to tangem-devkit/src/main/res/anim/slide_in_left.xml diff --git a/tangem-demo/src/main/res/anim/slide_in_right.xml b/tangem-devkit/src/main/res/anim/slide_in_right.xml similarity index 100% rename from tangem-demo/src/main/res/anim/slide_in_right.xml rename to tangem-devkit/src/main/res/anim/slide_in_right.xml diff --git a/tangem-demo/src/main/res/anim/slide_out_left.xml b/tangem-devkit/src/main/res/anim/slide_out_left.xml similarity index 100% rename from tangem-demo/src/main/res/anim/slide_out_left.xml rename to tangem-devkit/src/main/res/anim/slide_out_left.xml diff --git a/tangem-demo/src/main/res/anim/slide_out_right.xml b/tangem-devkit/src/main/res/anim/slide_out_right.xml similarity index 100% rename from tangem-demo/src/main/res/anim/slide_out_right.xml rename to tangem-devkit/src/main/res/anim/slide_out_right.xml diff --git a/tangem-demo/src/main/res/color/menu_switch_color_thumb.xml b/tangem-devkit/src/main/res/color/menu_switch_color_thumb.xml similarity index 100% rename from tangem-demo/src/main/res/color/menu_switch_color_thumb.xml rename to tangem-devkit/src/main/res/color/menu_switch_color_thumb.xml diff --git a/tangem-demo/src/main/res/color/menu_switch_color_track.xml b/tangem-devkit/src/main/res/color/menu_switch_color_track.xml similarity index 100% rename from tangem-demo/src/main/res/color/menu_switch_color_track.xml rename to tangem-devkit/src/main/res/color/menu_switch_color_track.xml diff --git a/tangem-demo/src/main/res/color/mtrl_fab_bg_color_selector.xml b/tangem-devkit/src/main/res/color/mtrl_fab_bg_color_selector.xml similarity index 100% rename from tangem-demo/src/main/res/color/mtrl_fab_bg_color_selector.xml rename to tangem-devkit/src/main/res/color/mtrl_fab_bg_color_selector.xml diff --git a/tangem-demo/src/main/res/color/mtrl_fab_icon_text_color_selector.xml b/tangem-devkit/src/main/res/color/mtrl_fab_icon_text_color_selector.xml similarity index 100% rename from tangem-demo/src/main/res/color/mtrl_fab_icon_text_color_selector.xml rename to tangem-devkit/src/main/res/color/mtrl_fab_icon_text_color_selector.xml diff --git a/tangem-demo/src/main/res/drawable-v24/ic_launcher_foreground.xml b/tangem-devkit/src/main/res/drawable-v24/ic_launcher_foreground.xml similarity index 100% rename from tangem-demo/src/main/res/drawable-v24/ic_launcher_foreground.xml rename to tangem-devkit/src/main/res/drawable-v24/ic_launcher_foreground.xml diff --git a/tangem-devkit/src/main/res/drawable/ic_launcher_background.xml b/tangem-devkit/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000..ca3826a46c --- /dev/null +++ b/tangem-devkit/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tangem-demo/src/main/res/drawable/ic_share_white_18dp.xml b/tangem-devkit/src/main/res/drawable/ic_share_white_18dp.xml similarity index 100% rename from tangem-demo/src/main/res/drawable/ic_share_white_18dp.xml rename to tangem-devkit/src/main/res/drawable/ic_share_white_18dp.xml diff --git a/tangem-demo/src/main/res/layout/a_main.xml b/tangem-devkit/src/main/res/layout/a_main.xml similarity index 100% rename from tangem-demo/src/main/res/layout/a_main.xml rename to tangem-devkit/src/main/res/layout/a_main.xml diff --git a/tangem-demo/src/main/res/layout/activity_test_user_data.xml b/tangem-devkit/src/main/res/layout/activity_test_user_data.xml similarity index 100% rename from tangem-demo/src/main/res/layout/activity_test_user_data.xml rename to tangem-devkit/src/main/res/layout/activity_test_user_data.xml diff --git a/tangem-demo/src/main/res/layout/dlg_personalization_preset_load.xml b/tangem-devkit/src/main/res/layout/dlg_personalization_preset_load.xml similarity index 100% rename from tangem-demo/src/main/res/layout/dlg_personalization_preset_load.xml rename to tangem-devkit/src/main/res/layout/dlg_personalization_preset_load.xml diff --git a/tangem-demo/src/main/res/layout/dlg_personalization_preset_save.xml b/tangem-devkit/src/main/res/layout/dlg_personalization_preset_save.xml similarity index 100% rename from tangem-demo/src/main/res/layout/dlg_personalization_preset_save.xml rename to tangem-devkit/src/main/res/layout/dlg_personalization_preset_save.xml diff --git a/tangem-demo/src/main/res/layout/fg_base_action_layout.xml b/tangem-devkit/src/main/res/layout/fg_base_action_layout.xml similarity index 100% rename from tangem-demo/src/main/res/layout/fg_base_action_layout.xml rename to tangem-devkit/src/main/res/layout/fg_base_action_layout.xml diff --git a/tangem-demo/src/main/res/layout/fg_card_response.xml b/tangem-devkit/src/main/res/layout/fg_card_response.xml similarity index 100% rename from tangem-demo/src/main/res/layout/fg_card_response.xml rename to tangem-devkit/src/main/res/layout/fg_card_response.xml diff --git a/tangem-demo/src/main/res/layout/fg_entry_point.xml b/tangem-devkit/src/main/res/layout/fg_entry_point.xml similarity index 100% rename from tangem-demo/src/main/res/layout/fg_entry_point.xml rename to tangem-devkit/src/main/res/layout/fg_entry_point.xml diff --git a/tangem-demo/src/main/res/layout/m_divider_h.xml b/tangem-devkit/src/main/res/layout/m_divider_h.xml similarity index 100% rename from tangem-demo/src/main/res/layout/m_divider_h.xml rename to tangem-devkit/src/main/res/layout/m_divider_h.xml diff --git a/tangem-demo/src/main/res/layout/m_divider_v.xml b/tangem-devkit/src/main/res/layout/m_divider_v.xml similarity index 100% rename from tangem-demo/src/main/res/layout/m_divider_v.xml rename to tangem-devkit/src/main/res/layout/m_divider_v.xml diff --git a/tangem-demo/src/main/res/layout/menu_item_switch.xml b/tangem-devkit/src/main/res/layout/menu_item_switch.xml similarity index 100% rename from tangem-demo/src/main/res/layout/menu_item_switch.xml rename to tangem-devkit/src/main/res/layout/menu_item_switch.xml diff --git a/tangem-demo/src/main/res/layout/old_activity_main.xml b/tangem-devkit/src/main/res/layout/old_activity_main.xml similarity index 100% rename from tangem-demo/src/main/res/layout/old_activity_main.xml rename to tangem-devkit/src/main/res/layout/old_activity_main.xml diff --git a/tangem-demo/src/main/res/layout/v_content_container.xml b/tangem-devkit/src/main/res/layout/v_content_container.xml similarity index 100% rename from tangem-demo/src/main/res/layout/v_content_container.xml rename to tangem-devkit/src/main/res/layout/v_content_container.xml diff --git a/tangem-demo/src/main/res/layout/v_item_list_container.xml b/tangem-devkit/src/main/res/layout/v_item_list_container.xml similarity index 100% rename from tangem-demo/src/main/res/layout/v_item_list_container.xml rename to tangem-devkit/src/main/res/layout/v_item_list_container.xml diff --git a/tangem-demo/src/main/res/layout/vh_actions.xml b/tangem-devkit/src/main/res/layout/vh_actions.xml similarity index 100% rename from tangem-demo/src/main/res/layout/vh_actions.xml rename to tangem-devkit/src/main/res/layout/vh_actions.xml diff --git a/tangem-demo/src/main/res/layout/vh_personalization_preset_name.xml b/tangem-devkit/src/main/res/layout/vh_personalization_preset_name.xml similarity index 100% rename from tangem-demo/src/main/res/layout/vh_personalization_preset_name.xml rename to tangem-devkit/src/main/res/layout/vh_personalization_preset_name.xml diff --git a/tangem-demo/src/main/res/layout/vh_sp_dropdown_item.xml b/tangem-devkit/src/main/res/layout/vh_sp_dropdown_item.xml similarity index 100% rename from tangem-demo/src/main/res/layout/vh_sp_dropdown_item.xml rename to tangem-devkit/src/main/res/layout/vh_sp_dropdown_item.xml diff --git a/tangem-demo/src/main/res/layout/vh_sp_item.xml b/tangem-devkit/src/main/res/layout/vh_sp_item.xml similarity index 100% rename from tangem-demo/src/main/res/layout/vh_sp_item.xml rename to tangem-devkit/src/main/res/layout/vh_sp_item.xml diff --git a/tangem-demo/src/main/res/layout/view_simple_button.xml b/tangem-devkit/src/main/res/layout/view_simple_button.xml similarity index 100% rename from tangem-demo/src/main/res/layout/view_simple_button.xml rename to tangem-devkit/src/main/res/layout/view_simple_button.xml diff --git a/tangem-demo/src/main/res/layout/w_action_response_json.xml b/tangem-devkit/src/main/res/layout/w_action_response_json.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_action_response_json.xml rename to tangem-devkit/src/main/res/layout/w_action_response_json.xml diff --git a/tangem-demo/src/main/res/layout/w_card_incoming_param.xml b/tangem-devkit/src/main/res/layout/w_card_incoming_param.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_card_incoming_param.xml rename to tangem-devkit/src/main/res/layout/w_card_incoming_param.xml diff --git a/tangem-demo/src/main/res/layout/w_empty.xml b/tangem-devkit/src/main/res/layout/w_empty.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_empty.xml rename to tangem-devkit/src/main/res/layout/w_empty.xml diff --git a/tangem-demo/src/main/res/layout/w_field_description.xml b/tangem-devkit/src/main/res/layout/w_field_description.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_field_description.xml rename to tangem-devkit/src/main/res/layout/w_field_description.xml diff --git a/tangem-demo/src/main/res/layout/w_personalize_item_edit_text.xml b/tangem-devkit/src/main/res/layout/w_personalize_item_edit_text.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_personalize_item_edit_text.xml rename to tangem-devkit/src/main/res/layout/w_personalize_item_edit_text.xml diff --git a/tangem-demo/src/main/res/layout/w_personalize_item_header.xml b/tangem-devkit/src/main/res/layout/w_personalize_item_header.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_personalize_item_header.xml rename to tangem-devkit/src/main/res/layout/w_personalize_item_header.xml diff --git a/tangem-demo/src/main/res/layout/w_personalize_item_number.xml b/tangem-devkit/src/main/res/layout/w_personalize_item_number.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_personalize_item_number.xml rename to tangem-devkit/src/main/res/layout/w_personalize_item_number.xml diff --git a/tangem-demo/src/main/res/layout/w_personalize_item_spinner.xml b/tangem-devkit/src/main/res/layout/w_personalize_item_spinner.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_personalize_item_spinner.xml rename to tangem-devkit/src/main/res/layout/w_personalize_item_spinner.xml diff --git a/tangem-demo/src/main/res/layout/w_personalize_item_switch.xml b/tangem-devkit/src/main/res/layout/w_personalize_item_switch.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_personalize_item_switch.xml rename to tangem-devkit/src/main/res/layout/w_personalize_item_switch.xml diff --git a/tangem-demo/src/main/res/layout/w_personalize_widgets_together.xml b/tangem-devkit/src/main/res/layout/w_personalize_widgets_together.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_personalize_widgets_together.xml rename to tangem-devkit/src/main/res/layout/w_personalize_widgets_together.xml diff --git a/tangem-demo/src/main/res/layout/w_personilize_block.xml b/tangem-devkit/src/main/res/layout/w_personilize_block.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_personilize_block.xml rename to tangem-devkit/src/main/res/layout/w_personilize_block.xml diff --git a/tangem-demo/src/main/res/layout/w_response_item.xml b/tangem-devkit/src/main/res/layout/w_response_item.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_response_item.xml rename to tangem-devkit/src/main/res/layout/w_response_item.xml diff --git a/tangem-demo/src/main/res/layout/w_response_item_checkbox.xml b/tangem-devkit/src/main/res/layout/w_response_item_checkbox.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_response_item_checkbox.xml rename to tangem-devkit/src/main/res/layout/w_response_item_checkbox.xml diff --git a/tangem-demo/src/main/res/layout/w_response_item_header.xml b/tangem-devkit/src/main/res/layout/w_response_item_header.xml similarity index 100% rename from tangem-demo/src/main/res/layout/w_response_item_header.xml rename to tangem-devkit/src/main/res/layout/w_response_item_header.xml diff --git a/tangem-demo/src/main/res/menu/menu_activity_main.xml b/tangem-devkit/src/main/res/menu/menu_activity_main.xml similarity index 100% rename from tangem-demo/src/main/res/menu/menu_activity_main.xml rename to tangem-devkit/src/main/res/menu/menu_activity_main.xml diff --git a/tangem-demo/src/main/res/menu/menu_fg_peronalization.xml b/tangem-devkit/src/main/res/menu/menu_fg_peronalization.xml similarity index 100% rename from tangem-demo/src/main/res/menu/menu_fg_peronalization.xml rename to tangem-devkit/src/main/res/menu/menu_fg_peronalization.xml diff --git a/tangem-demo/src/main/res/menu/menu_fg_response.xml b/tangem-devkit/src/main/res/menu/menu_fg_response.xml similarity index 100% rename from tangem-demo/src/main/res/menu/menu_fg_response.xml rename to tangem-devkit/src/main/res/menu/menu_fg_response.xml diff --git a/tangem-devkit/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/tangem-devkit/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000..036d09bc5f --- /dev/null +++ b/tangem-devkit/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/tangem-devkit/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/tangem-devkit/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000000..036d09bc5f --- /dev/null +++ b/tangem-devkit/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher.png b/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000..ab0b9f8707 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000..b474df4060 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher_round.png b/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000..334c1411a6 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher.png b/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000..9e66da64b2 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000..aa294642f2 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher_round.png b/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000..5d2270c85d Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher.png b/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000..e141514ce0 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000..8ae5df3319 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000..a7d5201273 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher.png b/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000..645b3d79dc Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000..03e74f693a Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000..6d19be8f7f Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000..3229c5217c Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000..d24821ce81 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000..b9b1c8f1a6 Binary files /dev/null and b/tangem-devkit/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/tangem-demo/src/main/res/navigation/navigation.xml b/tangem-devkit/src/main/res/navigation/navigation.xml similarity index 80% rename from tangem-demo/src/main/res/navigation/navigation.xml rename to tangem-devkit/src/main/res/navigation/navigation.xml index c8d276f4d7..a6cd6c3ff8 100644 --- a/tangem-demo/src/main/res/navigation/navigation.xml +++ b/tangem-devkit/src/main/res/navigation/navigation.xml @@ -16,7 +16,7 @@ @@ -61,79 +61,79 @@ diff --git a/tangem-demo/src/main/res/values/colors.xml b/tangem-devkit/src/main/res/values/colors.xml similarity index 100% rename from tangem-demo/src/main/res/values/colors.xml rename to tangem-devkit/src/main/res/values/colors.xml diff --git a/tangem-demo/src/main/res/values/dimens.xml b/tangem-devkit/src/main/res/values/dimens.xml similarity index 100% rename from tangem-demo/src/main/res/values/dimens.xml rename to tangem-devkit/src/main/res/values/dimens.xml diff --git a/tangem-demo/src/main/res/values/dimens_item_widget.xml b/tangem-devkit/src/main/res/values/dimens_item_widget.xml similarity index 100% rename from tangem-demo/src/main/res/values/dimens_item_widget.xml rename to tangem-devkit/src/main/res/values/dimens_item_widget.xml diff --git a/tangem-devkit/src/main/res/values/ic_launcher_background.xml b/tangem-devkit/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000000..c5d5899fdf --- /dev/null +++ b/tangem-devkit/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/tangem-demo/src/main/res/values/strings.xml b/tangem-devkit/src/main/res/values/strings.xml similarity index 96% rename from tangem-demo/src/main/res/values/strings.xml rename to tangem-devkit/src/main/res/values/strings.xml index 38c96cca46..07540ce2b6 100644 --- a/tangem-demo/src/main/res/values/strings.xml +++ b/tangem-devkit/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - Tangem Development Kit + Tangem DevKit Description diff --git a/tangem-demo/src/main/res/values/strings_action.xml b/tangem-devkit/src/main/res/values/strings_action.xml similarity index 100% rename from tangem-demo/src/main/res/values/strings_action.xml rename to tangem-devkit/src/main/res/values/strings_action.xml diff --git a/tangem-demo/src/main/res/values/strings_personalization.xml b/tangem-devkit/src/main/res/values/strings_personalization.xml similarity index 100% rename from tangem-demo/src/main/res/values/strings_personalization.xml rename to tangem-devkit/src/main/res/values/strings_personalization.xml diff --git a/tangem-demo/src/main/res/values/strings_response.xml b/tangem-devkit/src/main/res/values/strings_response.xml similarity index 100% rename from tangem-demo/src/main/res/values/strings_response.xml rename to tangem-devkit/src/main/res/values/strings_response.xml diff --git a/tangem-demo/src/main/res/values/strings_scan.xml b/tangem-devkit/src/main/res/values/strings_scan.xml similarity index 100% rename from tangem-demo/src/main/res/values/strings_scan.xml rename to tangem-devkit/src/main/res/values/strings_scan.xml diff --git a/tangem-demo/src/main/res/values/strings_tlv.xml b/tangem-devkit/src/main/res/values/strings_tlv.xml similarity index 100% rename from tangem-demo/src/main/res/values/strings_tlv.xml rename to tangem-devkit/src/main/res/values/strings_tlv.xml diff --git a/tangem-demo/src/main/res/values/styles.xml b/tangem-devkit/src/main/res/values/styles.xml similarity index 100% rename from tangem-demo/src/main/res/values/styles.xml rename to tangem-devkit/src/main/res/values/styles.xml diff --git a/tangem-demo/src/main/res/values/theme_debug.xml b/tangem-devkit/src/main/res/values/theme_debug.xml similarity index 100% rename from tangem-demo/src/main/res/values/theme_debug.xml rename to tangem-devkit/src/main/res/values/theme_debug.xml diff --git a/tangem-demo/src/main/res/xml/nfc_tech_filter.xml b/tangem-devkit/src/main/res/xml/nfc_tech_filter.xml similarity index 100% rename from tangem-demo/src/main/res/xml/nfc_tech_filter.xml rename to tangem-devkit/src/main/res/xml/nfc_tech_filter.xml diff --git a/tangem-sdk-android-config/.circleci/config.yml b/tangem-sdk-android-config/.circleci/config.yml new file mode 100755 index 0000000000..a4cf65b34c --- /dev/null +++ b/tangem-sdk-android-config/.circleci/config.yml @@ -0,0 +1,23 @@ +version: 2.1 + +orbs: + android: circleci/android@0.2.0 + +jobs: + build: + executor: android/android + environment: + JVM_OPTS: -Xmx2048m + GRADLE_OPTS: -Xmx1536m -XX:+HeapDumpOnOutOfMemoryError -Dorg.gradle.caching=true -Dorg.gradle.configureondemand=true -Dkotlin.compiler.execution.strategy=in-process -Dkotlin.incremental=false + steps: + - checkout + - run: + name: Build + command: ./gradlew build + - run: + name: Run Tests + command: ./gradlew test + - store_test_results: # for display in Test Summary: https://circleci.com/docs/2.0/collect-test-data/ + path: tangem-core/build/test-results/ + + diff --git a/tangem-sdk-android-config/README.md b/tangem-sdk-android-config/README.md index 5447c511bb..5acf8ff48f 100644 --- a/tangem-sdk-android-config/README.md +++ b/tangem-sdk-android-config/README.md @@ -1,5 +1,6 @@ -![Release](https://jitpack.io/v/Tangem/tangem-sdk-android.svg) +[![Release](https://jitpack.io/v/Tangem/tangem-sdk-android.svg)](https://jitpack.io/#tangem/tangem-sdk-android) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![CircleCI](https://circleci.com/gh/Tangem/tangem-sdk-android.svg?style=shield)](https://circleci.com/gh/Tangem/tangem-sdk-android) # Welcome to Tangem The Tangem card is a self-custodial hardware wallet for blockchain assets. The main functions of Tangem cards are to securely create and store a private key from a blockchain wallet and sign blockchain transactions. The Tangem card does not allow users to import/export, backup/restore private keys, thereby guaranteeing that the wallet is unique and unclonable. @@ -12,10 +13,24 @@ The Tangem card is a self-custodial hardware wallet for blockchain assets. The m - [Card interaction](#card-interaction) - [Scan card](#scan-card) - [Sign](#sign) + - [Wallet](#wallet) + - [Create Wallet](#create-wallet) + - [Purge Wallet](#purge-wallet) + - [Issuer Data](#issuer-data) + - [Read Issuer Data](#read-issuer-data) + - [Read Issuer Extra Data](#read-issuer-extra-data) + - [Write Issuer Data](#write-issuer-data) + - [Write Issuer Extra Data](#write-issuer-extra-data) + - [User Data](#user-data) + - [Write User Data](#write-user-data) + - [Read User Data](#read-user-data) + - [Personalization](#personalization) + - [Depersonalize](#depersonalize) + - [Personalize](#personalize) - [Customization](#customization) - [UI](#ui) - - [Tasks](#tasks) - - [Localization](#localization) + - [Reader](#reader) + - [Custom Tasks](#custom-tasks) ## Getting Started @@ -25,9 +40,9 @@ Android with minimal SDK version of 21 and a device with NFC support ### Installation -1) Add Tangem library to the project: +1. Add Tangem library to the project: -Add to a project build.gradle file: +Add to a project `build.gradle` file: ```gradle allprojects { @@ -37,18 +52,18 @@ allprojects { } ``` -And add Tangem library to the dependencies (in an app or module build.gradle file): +And add Tangem library to the dependencies (in an app or module `build.gradle` file): ```gradle dependencies { - implementation "com.github.tangem.tangem-sdk-android:tangem-core:$latestVersionOfCore" - implementation "com.github.tangem.tangem-sdk-android:tangem-sdk:$latestVersionOfSdk" + implementation "com.github.tangem.tangem-sdk-android:tangem-core:$latestVersion" + implementation "com.github.tangem.tangem-sdk-android:tangem-sdk:$latestVersion" } ``` -Tangem Core is a JVM library (without Android dependencies) that provides core functionality of interacting with Tangem cards. -Tangem Sdk is an Android library that implements NFC interaction between Android devices and Tangem cards and graphical interface for this interaction. +`tangem-core` is a JVM library (without Android dependencies) that provides core functionality of interacting with Tangem cards. +`tangem-sdk` is an Android library that implements NFC interaction between Android devices and Tangem cards and graphical interface for this interaction. -2) Add res file ‘tech_filter’ with the following: +2. Save the file (you can name it anything you wish) with the following tech-list filters in the `/res/xml` ```xml @@ -60,170 +75,361 @@ Tangem Sdk is an Android library that implements NFC interaction between Android ``` -3) Add to Manifest: +3. Add to `AndroidManifest.xml`: ```xml - + + android:name=“android.nfc.action.TECH_DISCOVERED” + android:resource=“@xml/tech_filter” /> ``` ## Usage - Tangem SDK is a self-sufficient solution that implements a card abstraction model, methods of interaction with the card and interactions with the user via UI. ### Initialization -To get started, you need to create an instance of the `CardManager` class. It provides the simple way of interacting with the card. -Our default implementation of `CardManager` requires `NfcReader` and `DefaultCardManagerDelegate`. - +To get started, you need to create an instance of the `TangemSdk` class. It provides the simple way of interacting with the card. ```kotlin -private val nfcManager = NfcManager() -private val cardManagerDelegate: DefaultCardManagerDelegate = DefaultCardManagerDelegate(nfcManager.reader) -private val cardManager = CardManager(nfcManager.reader, cardManagerDelegate) +val tangemSdk: TangemSdk = TangemSdk.init(activity) ``` -NfcManager requires a reference to activity in order to use Android API for interacting with NFC. DefaultCardManagerDelegate requires a reference to activity in order to render views. - -```kotlin -nfcManager.setCurrentActivity(this) -cardManagerDelegate.activity = this -``` - -```kotlin -lifecycle.addObserver(NfcLifecycleObserver(nfcManager)) -``` - -Default implementation of `NfcManager`, `CardReader` and `CardManagerDelegate` allows you to start using CardManager in your application without any additional setup. - -You can also provide your implementations of `CardReader` and `CardManagerDelegate`. -You can read more about this in [Customization](#сustomization). - -### Tasks +TangemSdk requires a reference to activity in order to use Android API for interacting with NFC and to render views. +Default implementation of `TangemSdk` allows you to start using SDK in your application without any additional setup. +(You can read about additional options in [Customization](#customization)). +### Card interaction #### Scan card -To start using any card, you first need to read it using the `scanCard()` method. This method launches an NFC session, and once it’s connected with the card, it obtains the card data. Optionally, if the card contains a wallet (private and public key pair), it proves that the wallet owns a private key that corresponds to a public one. +To obtain data from the card use `scanCard()` method. This method launches an NFC session, and once it’s connected with the card, it obtains the card data. If the card contains a wallet (private and public key pair), it proves that the wallet owns a private key that corresponds to a public one. Example: - ```kotlin -cardManager.scanCard { taskEvent -> - when (taskEvent) { - is TaskEvent.Event -> { - when (taskEvent.data) { - is ScanEvent.OnReadEvent -> { - // Handle returned card data - cardId = (taskEvent.data as ScanEvent.OnReadEvent).card.cardId - // Switch to UI thread to show results in UI - runOnUiThread {} - } - is ScanEvent.OnVerifyEvent -> { - //Handle card verification - val isGenuine = (taskEvent.data as ScanEvent.OnVerifyEvent).isGenuine - } +tangemSdk.scanCard { result -> + when (result) { + is CompletionResult.Success -> { + // Handle returned card data + val card = result.data + cardId = card.cardId + // Switch to UI thread to show results in UI + runOnUiThread { + tv_card_cid?.text = cardId } - } - is TaskEvent.Completion -> { - if (taskEvent.error != null) { - if (taskEvent.error is TaskError.UserCancelledError) { - // Handle case when user cancelled manually - } - // Handle other errors + } + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually } - // Handle completion + // Handle other errors } } } ``` -Communication with the card is an asynchronous operation. In order to get a result for the method, you need to subscribe to the task callback. In order to render the callback results on UI, you need to switch to the main thread. +Communication with the card is an asynchronous operation. In order to get a result for the method, you need to implement the callback function. In order to render the callback results on UI, you need to switch to the main thread. -Every task can invoke callback several times with different events: +`CompletionResult` – this is the sealed class for the results of `CardSessionRunnable`. -`Completion(val error: TaskError? = null)` – this event is triggered only once when task is completely finished. It means that it's the final callback. If error is not nil, then something went wrong during the operation. - -`Event(val data: T)` – this event is triggered when one of operations inside the task is completed. - -**Possible events of the Scan card task:** - -`OnReadEvent(val result: Card)` – this event is triggered after the card has been successfully read. In addition, the obtained card object is contained inside the enum. At this stage, the authenticity of the card is ***NOT*** verified. - -`OnVerifyEvent(val isGenuine: Boolean)` – this event is triggered when the card’s authenticity has been verified. If the card is authentic, isGenuine will be set to true, otherwise, it will be set to false. +`Success(val data: T)` is triggered after successful operation and contains a `CommandResponse`. +`Failure(val error: SessionError)` is triggered on error. #### Sign This method allows you to sign one or multiple hashes. Simultaneous signing of array of hashes in a single SIGN command is required to support Bitcoin-type multi-input blockchains (UTXO). The SIGN command will return a corresponding array of signatures. ```kotlin -cardManager.sign( +tangemSdk.sign( hashes = arrayOf(hash1, hash2), - cardId = card.cardId) { taskEvent -> - when (taskEvent) { - is TaskEvent.Event -> { - // Handle sign response data - val signResponse = taskEvent.data + cardId) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors } - is TaskEvent.Completion -> { - if (taskEvent.error != null) { - if (taskEvent.error is TaskError.UserCancelledError) { - // Handle case when user cancelled manually - } - // Handle other errors - } - // Handle completion + is CompletionResult.Success -> { + val signResponse = result.data } } } ``` +#### Issuer Data + +##### Read Issuer Data +An example of usage (description is available at documentation for `TangemSdk.readIssuerData` method and corresponding command class): + +```kotlin + tangemSdk.readIssuerData(cardId) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> { + val issuerData = result.data.issuerData + val issuerDataSignature = result.data.issuerDataSignature + } + } + } +``` + +##### Read Issuer Extra Data +An example of usage (description is available at documentation for `TangemSdk.readIssuerExtraData` method and corresponding command class): + +```kotlin + tangemSdk.readIssuerExtraData(cardId) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> { + val issuerData = result.data.issuerData + val issuerDataSignature = result.data.issuerDataSignature + } + } + } +``` + +##### Write Issuer Data +An example of usage (description is available at documentation for `TangemSdk.writeIssuerData` method and corresponding command class): + +```kotlin + tangemSdk.writeIssuerData(cardId, issuerData, issuerDataSignature, issuerDataCounter) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> { + val writeIssuerDataResult = result.data + } + } + } +``` + +##### Write Issuer Extra Data +An example of usage (description is available at documentation for `TangemSdk.writeIssuerExtraData` method and corresponding command class): + +```kotlin + tangemSdk.writeIssuerExtraData(cardId, + issuerData, startingSignature, finalizingSignature, issuerDataCounter + ) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> runOnUiThread { + val writeIssuerDataResult = result.data + } + } + } +``` +#### User Data +##### Write User Data +An example of usage (description is available at documentation for `TangemSdk.writeUserData` method and corresponding command class): + +```kotlin + tangemSdk.writeUserData( + cardId, userData, userProtectedData, userCounter, userProtectedCounter + ) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> runOnUiThread { + val writeUserDataResult = result.data + } + } + } +``` + +##### Read User Data +An example of usage (description is available at documentation for `TangemSdk.readUserData` method and corresponding command class): + +```kotlin + tangemSdk.readUserData(cardId) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> runOnUiThread { + val readUserDataResult = result.data + } + } + } +``` +#### Wallet +##### Create Wallet +An example of usage (description is available at documentation for `TangemSdk.createWallet` method and corresponding command class): + +```kotlin + tangemSdk.createWallet(cardId) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> runOnUiThread { + val createWalletResult = result.data + } + } + } +``` + +##### Purge Wallet +An example of usage (description is available at documentation for `TangemSdk.purgeWallet` method and corresponding command class): + +```kotlin + tangemSdk.purgeWallet(cardId) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> runOnUiThread { + val purgeWalletResult = result.data + } + } + } +``` + +#### Personalization +##### Depersonalize +An example of usage (description is available at documentation for `TangemSdk.depersonalize` method and corresponding command class): + +```kotlin + tangemSdk.depersonalize(cardId) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> runOnUiThread { + val depersonalizeResult = result.data + } + } + } +``` + +##### Personalize +An example of usage (description is available at documentation for `TangemSdk.personalize` method and corresponding command class): + +```kotlin + tangemSdk.personalize(config, issuer, manufacturer, acquirer) { result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> runOnUiThread { + val card = result.data + } + } + } +``` + + ## Customization ### UI -If the interaction with user is required, the SDK performs the entire cycle of this interaction. In order to change the appearance or behavior of the user UI, you can provide you own implementation of the `CardManagerDelegate` inteface. After this, initialize the `CardManager` class with your delegate class. +If the interaction with user is required, the SDK performs the entire cycle of this interaction. In order to change the appearance or behavior of the user UI, you can provide you own implementation of the `SessionViewDelegate` interface. After this, initialize the `TangemSdk` class with your delegate class. ```kolin -val myCardManagerDelegate = MyCardManagerDelegate() -val cardManager = CardManager(cardManagerDelegate = myCardManagerDelegate) +val tangemSdk = TangemSdk.customInit(this, MySessionViewDelegate()) ``` -> If you pass null instead of `cardManagerDelegate`, the SDK won’t be able to process errors that require user intervention and return them to `.failure(let error)`. +### Reader -### Tasks -`CardManager` only covers general tasks. If you want to trigger card commands in a certain order, you need to create your own task. +TangemSdk uses Android NFC capabilities to communicate with TangemCards. If there is a need to use other means of communication or other platforms, it is possible to implement this functionality by implementing `CardReader` interface and using it instead of the default `NfcReader`. -To do this, you need to create a subclass of the `Task` class, and override the `onRun(..)` method. +### Custom Tasks +`TangemSdk` specific methods run particular commands and tasks. If you want to trigger card commands in a different order, or implement additional + business logic, you have several options. + +One option is to start a session, get an instance of `CardSession`, and use it to perform commands. +To do this, you need to call `tangemSdk.startSession()` method and get a `CardSession` instance in a callback. -Then call the `runTask(..)` method of the `CardManager` class with you task. +> For example, if you want to read the card and immediately sign a transaction with it, you can achieve it this way. ```kotlin -val task = YourTask() -cardManager.runTask(task) { taskEvent -> - // Handle your events -} -``` -> For example, you want to read the card and immediately sign a transaction on it. In such a case, you need to inherit from the `Task` class and override the `onRun(..)` method, in which you implement the required behavior. - -It’s possible to run just one command without the need to create a separate task by using the `runCommand(..)` method. -> For example, if you need to read the card details, but don’t need to check the authenticity. -```kotlin -// Create command -val readCommand = ReadCardCommand() -// Run command with the callback -cardManager.runCommand(readCommand) { taskEvent -> - when (taskEvent) { - is TaskEvent.Event -> { - // Handle returned card data - val card: Card = taskEvent.data - } - is TaskEvent.Completion -> { - if (taskEvent.error != null) { - if (taskEvent.error is TaskError.UserCancelledError) { - // Handle case when user cancelled manually + tangemSdk.startSession { session, error -> + if (error == null) { + session.startWithRunnable( + SignCommand(createSampleHashes())) {result -> + when (result) { + is CompletionResult.Failure -> { + if (result.error is SessionError.UserCancelledError) { + // Handle case when user cancelled manually + } + // Handle other errors + } + is CompletionResult.Success -> { + val signResponse = result.data + } + } + } + } + } +``` + +Another option is to put all logic in a in `CardSessionRunnable` class and launch it using `tangemSdk.startSessionWithRunnable()` method. +In Tangem SDK we use this approach for our `ScanTask`. + +> For example, if you want to read the card and immediately sign a transaction with it, with subclassing `CardSessionRunnable` you can achieve it this way. + +```kotlin +class OneTapSignTask(private val hashesToSign: Array) : CardSessionRunnable { + + override fun run(session: CardSession, callback: (result: CompletionResult) -> Unit) { + + val card = session.environment.card + + if (card == null) { + callback(CompletionResult.Failure(SessionError.MissingPreflightRead())) + + } else if (card.cardData?.productMask?.contains(Product.Tag) != false) { + callback(CompletionResult.Success(card)) + + } else if (card.status != CardStatus.Loaded) { + callback(CompletionResult.Success(card)) + + } else if (card.curve == null || card.walletPublicKey == null) { + callback(CompletionResult.Failure(SessionError.CardError())) + + } else { + val signCommand = SignCommand(hashesToSign) + + signCommand.run(session) { result -> + when (result) { + is CompletionResult.Success -> callback(CompletionResult.Success(result.data)) + is CompletionResult.Failure -> callback(CompletionResult.Failure(result.error)) } - // Handle other errors } - // Handle completion } } } diff --git a/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/extensions/TangemSdk.kt b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/extensions/TangemSdk.kt index f69b7c96cf..e9a6ab555c 100644 --- a/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/extensions/TangemSdk.kt +++ b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/extensions/TangemSdk.kt @@ -1,21 +1,47 @@ package com.tangem.tangem_sdk_new.extensions import androidx.fragment.app.FragmentActivity +import com.tangem.Config +import com.tangem.SessionViewDelegate import com.tangem.TangemSdk import com.tangem.tangem_sdk_new.DefaultSessionViewDelegate import com.tangem.tangem_sdk_new.NfcLifecycleObserver import com.tangem.tangem_sdk_new.TerminalKeysStorage import com.tangem.tangem_sdk_new.nfc.NfcManager -fun TangemSdk.Companion.init(activity: FragmentActivity): TangemSdk { - val nfcManager = NfcManager().apply { - this.setCurrentActivity(activity) - activity.lifecycle.addObserver(NfcLifecycleObserver(this)) - } - val viewDelegate = DefaultSessionViewDelegate(nfcManager.reader).apply { - this.activity = activity - } - return TangemSdk(nfcManager.reader, viewDelegate).apply { - this.setTerminalKeysService(TerminalKeysStorage(activity.application)) - } +fun TangemSdk.Companion.init(activity: FragmentActivity, config: Config = Config()): TangemSdk { + val nfcManager = TangemSdk.initNfcManager(activity) + + val viewDelegate = DefaultSessionViewDelegate(nfcManager.reader) + viewDelegate.activity = activity + + val tangemSdk = TangemSdk(nfcManager.reader, viewDelegate, config) + tangemSdk.setTerminalKeysService(TerminalKeysStorage(activity.application)) + + return tangemSdk +} + +fun TangemSdk.Companion.customInit( + activity: FragmentActivity, + viewDelegate: SessionViewDelegate? = null, + config: Config = Config() +): TangemSdk { + val nfcManager = TangemSdk.initNfcManager(activity) + + val tangemSdk = TangemSdk( + nfcManager.reader, + viewDelegate ?: DefaultSessionViewDelegate(nfcManager.reader) + .apply { this.activity = activity }, + config + ) + tangemSdk.setTerminalKeysService(TerminalKeysStorage(activity.application)) + + return tangemSdk +} + +fun TangemSdk.Companion.initNfcManager(activity: FragmentActivity): NfcManager { + val nfcManager = NfcManager() + nfcManager.setCurrentActivity(activity) + activity.lifecycle.addObserver(NfcLifecycleObserver(nfcManager)) + return nfcManager } \ No newline at end of file