diff --git a/.gitignore b/.gitignore index ae9ed9c524..d741153000 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ local.properties .idea/caches/ .idea/libraries/ .idea/*.xml +.idea/codeStyles # OS-specific files .DS_Store diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Item.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Item.kt index 2cfbc69173..40a546b78b 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Item.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/abstraction/Item.kt @@ -25,7 +25,7 @@ abstract class BaseItem( viewModel.data = value } - fun restoreDefaultData(){ + fun restoreDefaultData() { setData(viewModel.defaultData) } } \ No newline at end of file diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt index 11ea5510c0..5e6d10bd37 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/_arch/structure/impl/Items.kt @@ -16,4 +16,4 @@ class ListItem(override val id: Id, value: List, selectedValue: Any?) : BaseItem(ListViewModel(ListValueWrapper(selectedValue, value)) ) -inline fun BaseItem.getData(): T? = viewModel.data \ No newline at end of file +inline fun BaseItem.getData(): T? = viewModel.data \ 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 index 5f61c31c34..41bd4cd0a3 100644 --- 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 @@ -22,7 +22,7 @@ interface ItemsChangeConsequence { fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List? } -class SignScanConsequence: ItemsChangeConsequence { +class SignScanConsequence : ItemsChangeConsequence { override fun affectChanges(payload: PayloadHolder, changedItem: Item, itemList: List): List? { if (changedItem.id != TlvId.CardId) return null @@ -35,7 +35,7 @@ class SignScanConsequence: ItemsChangeConsequence { 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) { + val hashedData = when (card.curve) { EllipticCurve.Secp256k1 -> dataForHashing.calculateSha256() EllipticCurve.Ed25519 -> dataForHashing.calculateSha512() else -> return null diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/responses/GsonInitializer.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/responses/GsonInitializer.kt index 32c93a7ff8..4d6e2407d7 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/responses/GsonInitializer.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/domain/responses/GsonInitializer.kt @@ -57,7 +57,7 @@ class SigningMethodTypeAdapter : JsonSerializer { } } -class DateTypeAdapter: JsonSerializer { +class DateTypeAdapter : JsonSerializer { override fun serialize(src: Date, typeOfSrc: Type, context: JsonSerializationContext): JsonElement { val formatter = DateFormat.getDateInstance(DateFormat.DEFAULT, Locale("en_US")) return JsonPrimitive(formatter.format(src).toString()) diff --git a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizeFragment.kt b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizeFragment.kt index d206e1f3d1..f6501e0187 100644 --- a/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizeFragment.kt +++ b/tangem-demo/src/main/java/com/tangem/tangemtest/ucase/variants/personalize/ui/PersonalizeFragment.kt @@ -3,8 +3,6 @@ package com.tangem.tangemtest.ucase.variants.personalize.ui import android.os.Bundle import android.view.View import android.view.ViewGroup -import android.widget.LinearLayout -import androidx.core.os.bundleOf import androidx.fragment.app.activityViewModels import androidx.fragment.app.viewModels import androidx.lifecycle.Observer @@ -24,7 +22,6 @@ import com.tangem.tangemtest.ucase.tunnel.ActionView import com.tangem.tangemtest.ucase.tunnel.CardError import com.tangem.tangemtest.ucase.tunnel.ItemError import com.tangem.tangemtest.ucase.ui.ActionViewModelFactory -import com.tangem.tangemtest.ucase.ui.BaseCardResponseFragment import com.tangem.tangemtest.ucase.ui.BaseFragment import com.tangem.tangemtest.ucase.ui.ParamsViewModel import com.tangem.tangemtest.ucase.variants.personalize.dto.PersonalizeConfig @@ -36,19 +33,21 @@ import ru.dev.gbixahue.eu4d.lib.android.global.log.Log */ class PersonalizeFragment : BaseFragment(), ActionView { + private lateinit var itemContainer: ViewGroup + private lateinit var actionFab: FloatingActionButton + private val mainActivityVM: MainViewModel by activityViewModels() private val personalizeVM: PersonalizeViewModel by viewModels { PersonalizeViewModelFactory(PersonalizeConfig()) } private val paramsVM: ParamsViewModel by viewModels() { ActionViewModelFactory(itemsManager) } - private val blockContainer: ViewGroup by lazy { mainView.findViewById(R.id.ll_container) } - private val actionFab: FloatingActionButton by lazy { mainView.findViewById(R.id.fab_action) } - private val itemsManager: ItemsManager by lazy { ParamsManagerFactory.createFactory().get(ActionType.Personalize)!! } override fun getLayoutId(): Int = R.layout.fg_personalize override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + itemContainer = mainView.findViewById(R.id.ll_container) + actionFab = mainView.findViewById(R.id.fab_action) paramsVM.setCardManager(CardManager.init(requireActivity())) paramsVM.attachToPayload(mutableMapOf(PayloadKey.actionView to this as ActionView)) @@ -58,16 +57,17 @@ class PersonalizeFragment : BaseFragment(), ActionView { } private fun initFab() { - enableActionFab(true) actionFab.setOnClickListener { paramsVM.invokeMainAction() } } private fun createWidgets(widgetCreatedCallback: () -> Unit) { + Log.d(this, "createWidgets") val blockList = mutableListOf() personalizeVM.ldBlockList.observe(viewLifecycleOwner, Observer { list -> + Log.d(this, "ldBlockList size: ${list.size}") blockList.clear() blockList.addAll(list) - blockList.forEach { WidgetBuilder(PersonalizeItemBuilder()).build(it, blockContainer) } + blockList.forEach { WidgetBuilder(PersonalizeItemBuilder()).build(it, itemContainer) } paramsVM.attachToPayload(mutableMapOf( PayloadKey.actionView to this as ActionView, PayloadKey.itemList to blockList @@ -76,25 +76,17 @@ class PersonalizeFragment : BaseFragment(), ActionView { }) } - override fun enableActionFab(enable: Boolean) { - if (enable) actionFab.show() else actionFab.hide() - } - private fun subscribeToViewModelChanges() { Log.d(this, "subscribeToViewModelChanges") - listenReadResponse() - listenResponse() + listenEvent() listenError() -// listenChangedItems() listenDescriptionSwitchChanges() } - private fun listenReadResponse() {} - - private fun listenResponse() { - paramsVM.seResponse.observe(viewLifecycleOwner, Observer { - navigateTo(R.id.action_nav_card_action_to_response_screen, - bundleOf(Pair(BaseCardResponseFragment.response, it))) + private fun listenEvent() { + paramsVM.seResponseEvent.observe(viewLifecycleOwner, Observer { + mainActivityVM.changeResponseEvent(it) + navigateTo(R.id.action_nav_card_action_to_response_screen) }) } @@ -109,6 +101,10 @@ class PersonalizeFragment : BaseFragment(), ActionView { }) } + override fun enableActionFab(enable: Boolean) { + if (enable) actionFab.show() else actionFab.hide() + } + override fun showSnackbar(id: Id) { // MainResourceHolder.safeGet<>() when (id) { 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 11a16f5fb0..ff1428465b 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 @@ -7,7 +7,7 @@ import androidx.lifecycle.Observer import com.tangem.tangemtest.R import com.tangem.tangemtest.ucase.resources.ActionType import com.tangem.tangemtest.ucase.ui.BaseCardActionFragment -import com.tangem.tangemtest.ucase.ui.BaseCardResponseFragment +import com.tangem.tangemtest.ucase.ui.response.BaseCardResponseFragment /** [REDACTED_AUTHOR] diff --git a/tangem-demo/src/main/res/layout/w_response_item.xml b/tangem-demo/src/main/res/layout/w_response_item.xml index a18a8a24b7..c44aa9cd78 100644 --- a/tangem-demo/src/main/res/layout/w_response_item.xml +++ b/tangem-demo/src/main/res/layout/w_response_item.xml @@ -4,7 +4,10 @@ android:id="@+id/root" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="@dimen/def_indent"> + android:paddingStart="@dimen/def_indent" + android:paddingTop="6dp" + android:paddingEnd="@dimen/def_indent" + android:paddingBottom="6dp">