Updated on 2026-08-14

This commit is contained in:
Tangem 2022-11-11 21:25:42 +04:00
parent 9cff1bbb89
commit 48ce9b4fd2
15 changed files with 1429 additions and 149 deletions

View file

@ -1,6 +1,7 @@
package com.tangem.tap.common.extensions
import androidx.activity.OnBackPressedCallback
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentManager
@ -29,12 +30,10 @@ import com.tangem.tap.features.wallet.ui.WalletFragment
import com.tangem.wallet.R
import timber.log.Timber
private class Navigation
fun FragmentActivity.openFragment(
screen: AppScreen,
addToBackstack: Boolean,
fgShareTransition: FragmentShareTransition? = null
fgShareTransition: FragmentShareTransition? = null,
) {
val transaction = this.supportFragmentManager.beginTransaction()
val fragment = fragmentFactory(screen)
@ -48,9 +47,14 @@ fun FragmentActivity.openFragment(
}
}
}
transaction.replace(R.id.fragment_container, fragment, screen.name)
if (addToBackstack && screen != AppScreen.Home) transaction.addToBackStack(null)
transaction.commitAllowingStateLoss()
if (screen.isDialogFragment) {
(fragment as DialogFragment).show(transaction, screen.name)
if (addToBackstack && screen != AppScreen.Home) transaction.addToBackStack(null)
} else {
transaction.replace(R.id.fragment_container, fragment, screen.name)
if (addToBackstack && screen != AppScreen.Home) transaction.addToBackStack(null)
transaction.commitAllowingStateLoss()
}
}
fun FragmentActivity.popBackTo(screen: AppScreen?, inclusive: Boolean = false) {

View file

@ -9,7 +9,9 @@ data class NavigationState(
val activity: WeakReference<AppCompatActivity>? = null,
) : StateType
enum class AppScreen {
enum class AppScreen(
val isDialogFragment: Boolean = false,
) {
Home,
Shop,
Disclaimer,
@ -19,5 +21,5 @@ enum class AppScreen {
Details, DetailsSecurity, CardSettings, AppSettings, ResetToFactory,
AddTokens, AddCustomToken,
WalletConnectSessions,
QrScan
QrScan,
}