Updated on 2026-08-14

This commit is contained in:
Tangem 2021-09-24 18:28:40 +03:00
parent c558292816
commit ed8aa753ce
3 changed files with 41 additions and 24 deletions

View file

@ -2,18 +2,15 @@ package com.tangem.tap.common.redux.navigation
import android.view.View
import androidx.fragment.app.FragmentActivity
import androidx.transition.ChangeBounds
import androidx.transition.ChangeImageTransform
import androidx.transition.ChangeTransform
import androidx.transition.TransitionSet
import org.rekotlin.Action
import java.lang.ref.WeakReference
sealed class NavigationAction : Action {
data class NavigateTo(
val screen: AppScreen,
val addToBackstack: Boolean = true,
val fragmentShareTransition: FragmentShareTransition? = null
val screen: AppScreen,
val addToBackstack: Boolean = true,
val fragmentShareTransition: FragmentShareTransition? = null
) : NavigationAction()
data class PopBackTo(val screen: AppScreen? = null) : NavigationAction()
@ -25,19 +22,9 @@ sealed class NavigationAction : Action {
}
data class FragmentShareTransition(
val shareElements: List<ShareElement>,
val enterTransitionSet: TransitionSet,
val exitTransitionSet: TransitionSet
val shareElements: List<ShareElement>,
val enterTransitionSet: TransitionSet,
val exitTransitionSet: TransitionSet
)
data class ShareElement(val wView: WeakReference<View>, val name: String)
//TODO: remove transition example
class DetailsTransition : TransitionSet() {
init {
ordering = ORDERING_TOGETHER;
addTransition(ChangeBounds())
.addTransition(ChangeTransform())
.addTransition(ChangeImageTransform())
}
}
data class ShareElement(val wView: WeakReference<View>, val name: String)

View file

@ -0,0 +1,27 @@
package com.tangem.tap.common.transitions
import androidx.transition.ChangeBounds
import androidx.transition.ChangeImageTransform
import androidx.transition.TransitionSet
/**
[REDACTED_AUTHOR]
*/
class FrontCardEnterTransition : TransitionSet() {
init {
ordering = ORDERING_TOGETHER;
addTransition(ChangeImageTransform())
addTransition(ChangeBounds())
// addTransition(Fade())
// addTransition(Fade(Visibility.MODE_IN))
// addTransition(ChangeTransform())
}
}
class FrontCardExitTransition : TransitionSet() {
init {
ordering = ORDERING_TOGETHER;
addTransition(ChangeImageTransform())
addTransition(ChangeBounds())
}
}

View file

@ -10,11 +10,12 @@ import androidx.transition.TransitionInflater
import com.tangem.tap.common.extensions.safeStartActivity
import com.tangem.tap.common.extensions.toast
import com.tangem.tap.common.redux.global.StateDialog
import com.tangem.tap.common.redux.navigation.DetailsTransition
import com.tangem.tap.common.redux.navigation.FragmentShareTransition
import com.tangem.tap.common.redux.navigation.ShareElement
import com.tangem.tap.common.toggleWidget.IndeterminateProgressButtonWidget
import com.tangem.tap.common.toggleWidget.ViewStateWidget
import com.tangem.tap.common.transitions.FrontCardEnterTransition
import com.tangem.tap.common.transitions.FrontCardExitTransition
import com.tangem.tap.features.home.redux.HomeAction
import com.tangem.tap.features.home.redux.HomeDialog
import com.tangem.tap.features.home.redux.HomeState
@ -40,9 +41,11 @@ class HomeFragment : Fragment(R.layout.fragment_home), StoreSubscriber<HomeState
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val transitionViews = mutableListOf<ShareElement>()
transitionViews.add(ShareElement(WeakReference(imv_front_card), imv_front_card.transitionName))
val shareTransition = FragmentShareTransition(transitionViews, DetailsTransition(), DetailsTransition())
val shareTransition = FragmentShareTransition(
listOf(ShareElement(WeakReference(imv_front_card), imv_front_card.transitionName)),
FrontCardEnterTransition(),
FrontCardExitTransition()
)
store.dispatch(HomeAction.SetFragmentShareTransition(shareTransition))
store.dispatch(HomeAction.Init)