Fix closing welcome bottom sheet

master
Koitharu 1 year ago
parent 79f3fe196c
commit e1c46f0604
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -428,10 +428,16 @@ class AppRouter private constructor(
} }
fun closeWelcomeSheet(): Boolean { fun closeWelcomeSheet(): Boolean {
val fm = fragment?.parentFragmentManager ?: activity?.supportFragmentManager ?: return false val tag = fragmentTag<WelcomeSheet>()
val sheet = fm.findFragmentByTag(fragmentTag<WelcomeSheet>()) as? WelcomeSheet ?: return false val sheet = fragment?.findFragmentByTagRecursive(tag)
sheet.dismissAllowingStateLoss() ?: activity?.supportFragmentManager?.findFragmentByTag(tag)
return true ?: return false
return if (sheet is WelcomeSheet) {
sheet.dismissAllowingStateLoss()
true
} else {
false
}
} }
/** Private utils **/ /** Private utils **/
@ -478,6 +484,18 @@ class AppRouter private constructor(
) )
} }
private fun Fragment.findFragmentByTagRecursive(fragmentTag: String): Fragment? {
childFragmentManager.findFragmentByTag(fragmentTag)?.let {
return it
}
val parent = parentFragment
return if (parent != null) {
parent.findFragmentByTagRecursive(fragmentTag)
} else {
parentFragmentManager.findFragmentByTag(fragmentTag)
}
}
companion object { companion object {
fun from(view: View): AppRouter? = runCatching { fun from(view: View): AppRouter? = runCatching {

Loading…
Cancel
Save