• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package leakcanary.internal
2 
3 import android.app.Activity
4 import androidx.fragment.app.Fragment
5 import androidx.fragment.app.FragmentActivity
6 import androidx.fragment.app.FragmentManager
7 
<lambda>null8 private val hasAndroidXFragmentActivity: Boolean by lazy {
9   try {
10     Class.forName("androidx.fragment.app.FragmentActivity")
11     true
12   } catch (ignored: Throwable) {
13     false
14   }
15 }
16 
onAndroidXFragmentViewDestroyednull17 internal fun Activity.onAndroidXFragmentViewDestroyed(block: () -> Unit) {
18   if (!hasAndroidXFragmentActivity) {
19     return
20   }
21   if (this is FragmentActivity) {
22     supportFragmentManager.registerFragmentLifecycleCallbacks(
23       object : FragmentManager.FragmentLifecycleCallbacks() {
24         override fun onFragmentViewDestroyed(
25           fm: FragmentManager,
26           fragment: Fragment
27         ) {
28           block()
29         }
30       }, true
31     )
32   }
33 }
34