From 635f38bb8699ffc795277616c00c7ed3d20ad8ca Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 9 Apr 2020 20:55:12 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/tangemtest/Old_MainActivity.kt | 1 - .../_arch/widget/abstraction/ViewWidget.kt | 2 +- .../tangem/tangemtest/_main/MainActivity.kt | 10 +++--- .../tangem/tangemtest/_main/MainViewModel.kt | 5 +-- .../tangemtest/ucase/ui/BaseFragment.kt | 2 -- .../personalize/ui/widgets/BaseAppWidget.kt | 2 +- .../variants/responses/ResponseViewModel.kt | 19 ++++++++++- .../variants/responses/ui/ResponseFragment.kt | 32 ++++++++++--------- .../variants/scan/ui/ScanActionFragment.kt | 7 +--- tangem-demo/src/main/res/values/strings.xml | 5 ++- 10 files changed, 50 insertions(+), 35 deletions(-) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt index b39081b6b0..f2c89bc9b4 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/Old_MainActivity.kt @@ -5,7 +5,6 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.tangem.CardManager import com.tangem.tangem_sdk_new.extensions.init -import com.tangem.tangemtest.extensions.create import com.tangem.tasks.ScanEvent import com.tangem.tasks.TaskError import com.tangem.tasks.TaskEvent diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/abstraction/ViewWidget.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/abstraction/ViewWidget.kt index 9047cdacc1..20fcb7f37f 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/abstraction/ViewWidget.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/widget/abstraction/ViewWidget.kt @@ -30,8 +30,8 @@ abstract class BaseViewWidget( ) : ViewWidget { override val view: View = inflate(getLayoutId(), parent) - private var defaultBackground: Drawable = view.background + private var defaultBackground: Drawable? = view.background init { if (item.viewModel.viewState.isHidden) { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt index 4e774f0be7..92e093d2c8 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainActivity.kt @@ -2,7 +2,6 @@ package com.tangem.tangemtest._main import android.content.res.Resources import android.os.Bundle -import android.util.Log import android.view.Menu import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity @@ -12,8 +11,9 @@ import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp -import androidx.navigation.ui.setupActionBarWithNavController +import androidx.navigation.ui.setupWithNavController import com.tangem.tangemtest.R +import ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** [REDACTED_AUTHOR] @@ -34,8 +34,8 @@ class MainActivity : AppCompatActivity() { .findFragmentById(R.id.nav_host_fragment) as NavHostFragment? ?: return val navController = host.navController - appBarConfiguration = AppBarConfiguration(setOf(R.id.nav_entry_point)) - setupActionBarWithNavController(navController, appBarConfiguration) + appBarConfiguration = AppBarConfiguration(navController.graph) + toolbar.setupWithNavController(navController, appBarConfiguration) navController.addOnDestinationChangedListener { _, destination, _ -> val dest: String = try { @@ -43,7 +43,7 @@ class MainActivity : AppCompatActivity() { } catch (e: Resources.NotFoundException) { destination.id.toString() } - Log.d("NavigationActivity", "Navigated to $dest") + Log.d(this, "Navigated to $dest") } } diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt index a7d2eef283..a599bcb479 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_main/MainViewModel.kt @@ -10,7 +10,8 @@ import ru.dev.gbixahue.eu4d.lib.android.global.log.Log */ class MainViewModel : ViewModel() { val ldDescriptionSwitch = MutableLiveData(false) - val ldResponseEvent = MutableLiveData>() + + var responseEvent: TaskEvent<*>? = null fun switchToggled(state: Boolean) { ldDescriptionSwitch.postValue(state) @@ -20,6 +21,6 @@ class MainViewModel : ViewModel() { Log.d(this, "changeResponseEvent") val reqEvent = event ?: return - ldResponseEvent.value = reqEvent + responseEvent = reqEvent } } \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseFragment.kt index a7fabc3df0..29dfeec6be 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseFragment.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/ui/BaseFragment.kt @@ -10,7 +10,6 @@ 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 ru.dev.gbixahue.eu4d.lib.android.global.log.Log import ru.dev.gbixahue.eu4d.lib.kotlin.common.LayoutHolder /** @@ -26,7 +25,6 @@ abstract class BaseFragment : Fragment(), LayoutHolder, SnackbarHolder { } protected fun navigateTo(navigationId: Int, bundle: Bundle? = null, options: NavOptions? = getDefaultNavigationOptions()) { - Log.d(this, "navigateTo id: $navigationId") findNavController(this).navigate(navigationId, bundle, options) } diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt index 60ab69c243..65f110c8c2 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/widgets/BaseAppWidget.kt @@ -13,7 +13,7 @@ import ru.dev.gbixahue.eu4d.lib.android._android.views.stringFrom /** [REDACTED_AUTHOR] */ -abstract class BaseAppWidget(parent: ViewGroup, item: Item): BaseViewWidget(parent, item) { +abstract class BaseAppWidget(parent: ViewGroup, item: Item) : BaseViewWidget(parent, item) { override fun getName(): String { return when (val id = item.id) { is StringId -> id.value diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ResponseViewModel.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ResponseViewModel.kt index 50e8df7aa2..6216ffbddc 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ResponseViewModel.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ResponseViewModel.kt @@ -2,10 +2,15 @@ package com.tangem.tangemtest.ucase.variants.responses import android.view.View import androidx.lifecycle.ViewModel +import com.tangem.commands.Card +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.tasks.ScanEvent import com.tangem.tasks.TaskEvent import ru.dev.gbixahue.eu4d.lib.android.global.log.Log @@ -17,7 +22,7 @@ class ResponseViewModel : ViewModel() { private val convertersHolder = ConvertersStore() private var itemList: List? = null - fun createItemList(taskEvent: TaskEvent<*>): List { + fun createItemList(taskEvent: TaskEvent<*>?): List { Log.d(this, "createItemList: itemList size: ${itemList?.size ?: 0}") val event = taskEvent as? TaskEvent.Event ?: return emptyList() @@ -32,6 +37,18 @@ class ResponseViewModel : ViewModel() { it.viewModel.viewState.descriptionVisibility = if (state) View.VISIBLE else View.GONE } } + + fun determineTitleId(taskEvent: TaskEvent<*>?): Int { + val event = taskEvent as? TaskEvent.Event ?: return R.string.unknown + + return when (event.data) { + is ScanEvent.OnReadEvent -> R.string.fg_name_response_scan + is SignResponse -> R.string.fg_name_response_sign + is Card -> R.string.fg_name_response_personalization + is DepersonalizeResponse -> R.string.fg_name_response_depersonalization + else -> R.string.unknown + } + } } diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt index e3009a8787..683ebd7e86 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/responses/ui/ResponseFragment.kt @@ -1,6 +1,7 @@ package com.tangem.tangemtest.ucase.variants.responses.ui import android.os.Bundle +import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.LinearLayout @@ -13,17 +14,12 @@ import com.tangem.tangemtest._main.MainViewModel 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 ru.dev.gbixahue.eu4d.lib.android.global.log.Log /** [REDACTED_AUTHOR] */ open class ResponseFragment : BaseFragment() { - companion object Arg { - val response = "response" - } - private val mainActivityVM: MainViewModel by activityViewModels() private val selfVM: ResponseViewModel by viewModels() @@ -31,22 +27,28 @@ open class ResponseFragment : BaseFragment() { override fun getLayoutId(): Int = R.layout.fg_card_response + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + setTittle() + return super.onCreateView(inflater, container, savedInstanceState) + } + + private fun setTittle() { + val titleId = selfVM.determineTitleId(mainActivityVM.responseEvent) + activity?.setTitle(titleId) + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - mainActivityVM.ldResponseEvent.observe(viewLifecycleOwner, Observer { event -> - val builder = WidgetBuilder(ResponseItemBuilder()) - val itemList = selfVM.createItemList(event) - itemList.forEach { builder.build(it, itemContainer) } - }) - subscribeToViewModelChanges() - } - - private fun subscribeToViewModelChanges() { - Log.d(this, "subscribeToViewModelChanges") + buildWidgets() listenDescriptionSwitchChanges() } + private fun buildWidgets() { + val builder = WidgetBuilder(ResponseItemBuilder()) + val itemList = selfVM.createItemList(mainActivityVM.responseEvent) + itemList.forEach { builder.build(it, itemContainer) } + } private fun listenDescriptionSwitchChanges() { mainActivityVM.ldDescriptionSwitch.observe(viewLifecycleOwner, Observer { diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/scan/ui/ScanActionFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/scan/ui/ScanActionFragment.kt index 3ec710a4b7..1e5ed5eb9b 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/scan/ui/ScanActionFragment.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/scan/ui/ScanActionFragment.kt @@ -2,13 +2,11 @@ package com.tangem.tangemtest.ucase.variants.scan.ui import android.os.Bundle import android.view.View -import androidx.core.os.bundleOf import androidx.lifecycle.Observer 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 /** [REDACTED_AUTHOR] @@ -26,10 +24,7 @@ class ScanActionFragment : BaseCardActionFragment() { override fun listenReadResponse() { actionVM.seReadResponse.observe(viewLifecycleOwner, Observer { - navigateTo( - R.id.action_nav_card_action_to_response_screen, - bundleOf(Pair(ResponseFragment.response, it)) - ) + navigateTo(R.id.action_nav_card_action_to_response_screen) }) } } \ No newline at end of file diff --git a/tangem-demo/src/main/res/values/strings.xml b/tangem-demo/src/main/res/values/strings.xml index df8e87a708..cb44b6cc03 100644 --- a/tangem-demo/src/main/res/values/strings.xml +++ b/tangem-demo/src/main/res/values/strings.xml @@ -2,7 +2,10 @@ Tangem Development Kit @string/app_name - "Current card ID: " + Scan response + Sign response + Personalization response + Depersonalization response unknown Docs