1 package leakcanary.internal 2 3 import android.app.Application 4 import leakcanary.OnObjectRetainedListener 5 6 internal object LeakCanaryDelegate { 7 8 @Suppress("UNCHECKED_CAST") <lambda>null9 val loadLeakCanary by lazy { 10 try { 11 val leakCanaryListener = Class.forName("leakcanary.internal.InternalLeakCanary") 12 leakCanaryListener.getDeclaredField("INSTANCE") 13 .get(null) as (Application) -> Unit 14 } catch (ignored: Throwable) { 15 NoLeakCanary 16 } 17 } 18 19 object NoLeakCanary : (Application) -> Unit, OnObjectRetainedListener { invokenull20 override fun invoke(application: Application) { 21 } 22 onObjectRetainednull23 override fun onObjectRetained() { 24 } 25 } 26 }