Updated on 2026-08-14

This commit is contained in:
Tangem 2021-11-07 20:16:28 +03:00
parent b99d91f31b
commit bdb8389c3f
8 changed files with 19 additions and 7 deletions

View file

@ -26,6 +26,10 @@ fun Store<*>.dispatchOpenUrl(url: String) {
store.dispatch(NavigationAction.OpenUrl(url))
}
fun Store<*>.dispatchShare(url: String) {
store.dispatch(NavigationAction.Share(url))
}
fun Store<*>.dispatchNotification(resId: Int) {
scope.launch(Dispatchers.Main) {
store.dispatch(GlobalAction.ShowNotification(resId))

View file

@ -13,6 +13,6 @@ sealed class AppDialog : StateDialog {
data class AddressInfoDialog(
val addressData: AddressData,
val onCopyAddress: VoidCallback,
val onExploreAddress: VoidCallback
val onShareAddress: VoidCallback
) : AppDialog()
}

View file

@ -15,6 +15,8 @@ sealed class NavigationAction : Action {
data class OpenUrl(val url: String) : NavigationAction()
data class Share(val data: String) : NavigationAction()
data class ActivityCreated(val activity: WeakReference<FragmentActivity>) : NavigationAction()
object ActivityDestroyed : NavigationAction()
}

View file

@ -3,6 +3,7 @@ package com.tangem.tap.common.redux.navigation
import com.tangem.tap.common.CustomTabsManager
import com.tangem.tap.common.extensions.openFragment
import com.tangem.tap.common.extensions.popBackTo
import com.tangem.tap.common.extensions.shareText
import com.tangem.tap.common.redux.AppState
import org.rekotlin.Middleware
@ -31,6 +32,11 @@ val navigationMiddleware: Middleware<AppState> = { dispatch, state ->
CustomTabsManager().openUrl(action.url, it)
}
}
is NavigationAction.Share -> {
navState?.activity?.get()?.let {
it.shareText(action.data)
}
}
}
}
next(action)

View file

@ -37,8 +37,8 @@ class AddressInfoBottomSheetDialog(
context.copyToClipboard(data.address)
stateDialog.onCopyAddress()
}
btn_fl_explore.setOnClickListener {
stateDialog.onExploreAddress()
btn_fl_share.setOnClickListener {
stateDialog.onShareAddress()
}
}
}

View file

@ -138,7 +138,7 @@ private fun handleNoteAction(action: Action, dispatch: DispatchFunction) {
val appDialog = AppDialog.AddressInfoDialog(
addressData,
onCopyAddress = { store.dispatchToastNotification(addressWasCopied) },
onExploreAddress = { store.dispatchOpenUrl(addressData.exploreUrl) }
onShareAddress = { store.dispatchShare(addressData.shareUrl) }
)
store.dispatchDialogShow(appDialog)
}

View file

@ -243,7 +243,7 @@ private fun handle(action: Action, dispatch: DispatchFunction) {
val appDialog = AppDialog.AddressInfoDialog(
addressData,
onCopyAddress = { store.dispatchToastNotification(addressWasCopied) },
onExploreAddress = { store.dispatchOpenUrl(addressData.exploreUrl) }
onShareAddress = { store.dispatchShare(addressData.shareUrl) }
)
store.dispatchDialogShow(appDialog)
}