Updated on 2026-08-14
This commit is contained in:
parent
d1798a2c49
commit
6dee2eeed7
112 changed files with 2146 additions and 1562 deletions
|
|
@ -9,9 +9,19 @@ sealed class DisclaimerAction : Action {
|
|||
val type: DisclaimerType,
|
||||
) : DisclaimerAction()
|
||||
|
||||
data class Show(val onAcceptCallback: VoidCallback? = null) : DisclaimerAction()
|
||||
data class Show(
|
||||
val onAcceptCallback: VoidCallback? = null,
|
||||
val onDismissCallback: VoidCallback? = null,
|
||||
) : DisclaimerAction()
|
||||
|
||||
data class AcceptDisclaimer(val type: DisclaimerType) : DisclaimerAction()
|
||||
|
||||
internal data class UpdateState(val type: DisclaimerType, val accepted: Boolean) : DisclaimerAction()
|
||||
internal data class SetOnAcceptCallback(val onAcceptCallback: VoidCallback? = null) : DisclaimerAction()
|
||||
|
||||
internal data class SetCallbacks(
|
||||
val onAcceptCallback: VoidCallback? = null,
|
||||
val onDismissCallback: VoidCallback? = null,
|
||||
) : DisclaimerAction()
|
||||
|
||||
object OnBackPressed : DisclaimerAction()
|
||||
}
|
||||
|
|
@ -28,7 +28,7 @@ private fun handleDisclaimerMiddleware(action: Action, appState: AppState) {
|
|||
}
|
||||
is DisclaimerAction.Show -> {
|
||||
handleUpdateState = state.type.createUpdateState()
|
||||
store.dispatch(DisclaimerAction.SetOnAcceptCallback(action.onAcceptCallback))
|
||||
store.dispatch(DisclaimerAction.SetCallbacks(action.onAcceptCallback, action.onDismissCallback))
|
||||
store.dispatch(NavigationAction.NavigateTo(AppScreen.Disclaimer))
|
||||
}
|
||||
is DisclaimerAction.AcceptDisclaimer -> {
|
||||
|
|
@ -36,7 +36,13 @@ private fun handleDisclaimerMiddleware(action: Action, appState: AppState) {
|
|||
handleUpdateState = action.type.createUpdateState()
|
||||
store.dispatch(NavigationAction.PopBackTo())
|
||||
state.onAcceptCallback?.invoke()
|
||||
store.dispatch(DisclaimerAction.SetOnAcceptCallback(null))
|
||||
store.dispatch(DisclaimerAction.SetCallbacks(null, null))
|
||||
}
|
||||
is DisclaimerAction.OnBackPressed -> {
|
||||
state.onDismissCallback?.invoke()
|
||||
store.dispatch(DisclaimerAction.SetCallbacks(null, null))
|
||||
store.dispatch(NavigationAction.PopBackTo())
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,8 +19,9 @@ private fun internalReduce(action: Action, state: AppState): DisclaimerState {
|
|||
type = action.type,
|
||||
accepted = action.accepted,
|
||||
)
|
||||
is DisclaimerAction.SetOnAcceptCallback -> disclaimerState.copy(
|
||||
is DisclaimerAction.SetCallbacks -> disclaimerState.copy(
|
||||
onAcceptCallback = action.onAcceptCallback,
|
||||
onDismissCallback = action.onDismissCallback,
|
||||
)
|
||||
else -> disclaimerState
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ data class DisclaimerState(
|
|||
val accepted: Boolean = false,
|
||||
val type: DisclaimerType = DisclaimerType.Tangem,
|
||||
val onAcceptCallback: VoidCallback? = null,
|
||||
val onDismissCallback: VoidCallback? = null,
|
||||
) : StateType
|
||||
|
||||
sealed class DisclaimerType(
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ import android.os.Bundle
|
|||
import android.view.View
|
||||
import androidx.transition.TransitionInflater
|
||||
import by.kirich1409.viewbindingdelegate.viewBinding
|
||||
import com.tangem.core.ui.fragments.setStatusBarColor
|
||||
import com.tangem.tap.common.extensions.configureSettings
|
||||
import com.tangem.tap.common.extensions.hide
|
||||
import com.tangem.tap.common.redux.AppState
|
||||
import com.tangem.tap.features.BaseFragment
|
||||
|
|
@ -32,6 +34,7 @@ class DisclaimerFragment : BaseFragment(R.layout.fragment_disclaimer), StoreSubs
|
|||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
setStatusBarColor(R.color.backgroundLightGray)
|
||||
store.subscribe(subscriber = this) { state ->
|
||||
state
|
||||
.skipRepeats { oldState, newState -> oldState.disclaimerState == newState.disclaimerState }
|
||||
|
|
@ -65,4 +68,8 @@ class DisclaimerFragment : BaseFragment(R.layout.fragment_disclaimer), StoreSubs
|
|||
|
||||
webView.loadUrl(state.type.uri.toString())
|
||||
}
|
||||
|
||||
override fun handleOnBackPressed() {
|
||||
store.dispatch(DisclaimerAction.OnBackPressed)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue