diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/ActionViewModel.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/ActionViewModel.kt index 3c04d86d59..8ba6cf2f72 100644 --- a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/ActionViewModel.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/ui/ActionViewModel.kt @@ -3,7 +3,6 @@ package com.tangem.devkit.ucase.ui import android.view.View import androidx.annotation.UiThread import androidx.lifecycle.* -import com.google.gson.Gson import com.tangem.SessionError import com.tangem.TangemSdk import com.tangem.commands.Card @@ -16,7 +15,6 @@ 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 @@ -134,7 +132,6 @@ class ActionViewModel(private val itemsManager: ItemsManager) : ViewModel(), Lif internal class Notifier(private val vm: ActionViewModel) { private var notShowedError: SessionError? = null - private val gson: Gson = ResponseJsonConverter().gson fun handleActionResult(result: CompletionResult<*>, list: List) { if (list.isNotEmpty()) notifyItemsChanged(list) diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/BaseResponseConverter.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/BaseResponseConverter.kt index c1eded3858..34ead3b362 100644 --- a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/BaseResponseConverter.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/converter/BaseResponseConverter.kt @@ -2,8 +2,8 @@ package com.tangem.devkit.ucase.variants.responses.converter 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 com.tangem.tangem_sdk_new.converter.ResponseFieldConverter import ru.dev.gbixahue.eu4d.lib.kotlin.stringOf /** diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/ResponseFragment.kt b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/ResponseFragment.kt index 0dcb15e807..ea236daef2 100644 --- a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/ResponseFragment.kt +++ b/tangem-devkit/src/main/java/com/tangem/devkit/ucase/variants/responses/ui/ResponseFragment.kt @@ -12,10 +12,10 @@ 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 +import com.tangem.tangem_sdk_new.converter.ResponseConverter /** [REDACTED_AUTHOR] @@ -68,7 +68,7 @@ open class ResponseFragment : BaseFragment() { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.action_share -> { - shareText(ResponseJsonConverter().convertResponse(mainActivityVM.commandResponse)) + shareText(ResponseConverter().convertResponse(mainActivityVM.commandResponse)) } } return super.onOptionsItemSelected(item) diff --git a/tangem-sdk/build.gradle b/tangem-sdk/build.gradle index 14d86acb0d..9c2742da98 100644 --- a/tangem-sdk/build.gradle +++ b/tangem-sdk/build.gradle @@ -58,4 +58,6 @@ dependencies { testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' -} + + implementation 'com.google.code.gson:gson:2.8.6' +} \ No newline at end of file diff --git a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/responses/ResponseJsonConverter.kt b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/converter/ResponseConverter.kt similarity index 97% rename from tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/responses/ResponseJsonConverter.kt rename to tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/converter/ResponseConverter.kt index 4c6148b6f9..392bdc9f96 100644 --- a/tangem-devkit/src/main/java/com/tangem/devkit/ucase/domain/responses/ResponseJsonConverter.kt +++ b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/converter/ResponseConverter.kt @@ -1,9 +1,9 @@ -package com.tangem.devkit.ucase.domain.responses +package com.tangem.tangem_sdk_new.converter import com.google.gson.* import com.tangem.commands.* import com.tangem.common.extensions.toHexString -import com.tangem.devkit.extensions.print +import com.tangem.tangem_sdk_new.extensions.print import java.lang.reflect.Type import java.text.DateFormat import java.util.* @@ -11,7 +11,7 @@ import java.util.* /** [REDACTED_AUTHOR] */ -class ResponseJsonConverter { +class ResponseConverter { val gson: Gson by lazy { init() } diff --git a/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/extensions/List.kt b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/extensions/List.kt new file mode 100644 index 0000000000..a86c326453 --- /dev/null +++ b/tangem-sdk/src/main/java/com/tangem/tangem_sdk_new/extensions/List.kt @@ -0,0 +1,13 @@ +package com.tangem.tangem_sdk_new.extensions + +fun List.print(delimiter: String = ", ", wrap: Boolean = true): String { + val builder = StringBuilder() + forEach { builder.append(it).append(delimiter) } + val length = builder.length + if (length > delimiter.length) { + builder.delete(length - delimiter.length, length) + } + val result = builder.toString() + + return if (wrap) "[$result]" else result +} \ No newline at end of file