Updated on 2026-08-14

This commit is contained in:
Tangem 2022-07-06 18:26:10 +04:00
parent a0e31b3412
commit 9ead316ef7
3 changed files with 78 additions and 38 deletions

View file

@ -1,14 +1,39 @@
package com.tangem.tap.features.details.ui.securityprivacy
import android.os.Bundle
import android.view.View
import androidx.activity.OnBackPressedCallback
import by.kirich1409.viewbindingdelegate.viewBinding
import com.tangem.tap.common.redux.navigation.NavigationAction
import com.tangem.tap.features.BaseStoreFragment
import com.tangem.tap.features.details.redux.DetailsState
import com.tangem.tap.store
import com.tangem.wallet.R
import com.tangem.wallet.databinding.ViewComposeFragmentBinding
import org.rekotlin.StoreSubscriber
class ChangeAccessCodeFragment : BaseStoreFragment(R.layout.view_compose_fragment),
StoreSubscriber<DetailsState> {
private val binding: ViewComposeFragmentBinding
by viewBinding(ViewComposeFragmentBinding::bind)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity?.onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
store.dispatch(NavigationAction.PopBackTo())
}
})
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.toolbar.setNavigationOnClickListener {
store.dispatch(NavigationAction.PopBackTo())
}
}
override fun newState(state: DetailsState) {

View file

@ -2,7 +2,9 @@ package com.tangem.tap.features.details.ui.securityprivacy
import android.os.Bundle
import android.view.View
import androidx.activity.OnBackPressedCallback
import by.kirich1409.viewbindingdelegate.viewBinding
import com.tangem.tap.common.extensions.show
import com.tangem.tap.common.redux.navigation.AppScreen
import com.tangem.tap.common.redux.navigation.NavigationAction
import com.tangem.tap.features.BaseStoreFragment
@ -22,42 +24,62 @@ class SecurityAndPrivacyFragment : BaseStoreFragment(R.layout.fragment_details_s
by viewBinding(FragmentDetailsSecurityPrivacyBinding::bind)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity?.onBackPressedDispatcher?.addCallback(this, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
store.dispatch(NavigationAction.PopBackTo())
}
})
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
with(binding) {
tvAccessCode.setOnClickListener {
store.dispatch(NavigationAction.NavigateTo(AppScreen.ChangeAccessCode))
}
binding.toolbar.setNavigationOnClickListener {
store.dispatch(NavigationAction.PopBackTo())
}
setListeners()
switchSaveCards.setOnCheckedChangeListener { _, isChecked ->
store.dispatch(
DetailsAction.ManagePrivacy.SwitchPrivacySetting(
isChecked,
PrivacySetting.SAVE_CARDS
)
)
}
}
switchSavePasswords.setOnCheckedChangeListener { _, isChecked ->
store.dispatch(
DetailsAction.ManagePrivacy.SwitchPrivacySetting(
isChecked,
PrivacySetting.SAVE_ACCESS_CODE
)
private fun setListeners() = with(binding) {
tvAccessCode.setOnClickListener {
store.dispatch(NavigationAction.NavigateTo(AppScreen.ChangeAccessCode))
}
switchSaveCards.setOnCheckedChangeListener { _, isChecked ->
store.dispatch(
DetailsAction.ManagePrivacy.SwitchPrivacySetting(
allow = isChecked,
setting = PrivacySetting.SAVE_CARDS
)
}
)
}
switchSavePasswords.setOnCheckedChangeListener { _, isChecked ->
store.dispatch(
DetailsAction.ManagePrivacy.SwitchPrivacySetting(
allow = isChecked,
setting = PrivacySetting.SAVE_ACCESS_CODE
)
)
}
}
override fun newState(state: DetailsState) {
with(binding) {
llAccessManagement.setOnClickListener {
store.dispatch(
DetailsAction.ManageSecurity.CheckCurrentSecurityOption(
state.scanResponse!!.card
val card = state.scanResponse?.card
llAccessManagement.show(card != null)
if (card != null) {
llAccessManagement.setOnClickListener {
store.dispatch(
DetailsAction.ManageSecurity.CheckCurrentSecurityOption(
card
)
)
)
}
}
val currentSecurity = when (state.securityScreenState?.currentOption) {
@ -70,6 +92,8 @@ class SecurityAndPrivacyFragment : BaseStoreFragment(R.layout.fragment_details_s
switchSaveCards.isChecked = state.saveCards
switchSavePasswords.isChecked = state.savePasswords
tvAccessCode.show(state.scanResponse?.card?.isAccessCodeSet == true)
}
}

View file

@ -64,10 +64,9 @@
<TextView
android:id="@+id/tv_access_code"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="40dp"
android:drawablePadding="15dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:gravity="center_vertical"
android:text="@string/security_and_privacy_change_password"
android:textColor="@color/darkGray6"
android:textSize="16sp"
@ -80,11 +79,9 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/ll_access_management"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="40dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingTop="7dp"
android:paddingBottom="7dp"
app:layout_constraintTop_toBottomOf="@+id/tv_access_code">
<TextView
@ -134,10 +131,7 @@
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switch_save_cards"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="15dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:layout_height="40dp"
android:text="@string/security_and_privacy_save_card_switch"
android:textColor="@color/darkGray6"
android:textSize="16sp"
@ -147,10 +141,7 @@
<com.google.android.material.switchmaterial.SwitchMaterial
android:id="@+id/switch_save_passwords"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="15dp"
android:paddingTop="7dp"
android:paddingBottom="7dp"
android:layout_height="40dp"
android:text="@string/security_and_privacy_save_password_switch"
android:textColor="@color/darkGray6"
android:textSize="16sp"