1 package leakcanary 2 3 import android.app.Application 4 import leakcanary.HeapAnalysisInterceptor.Chain 5 import leakcanary.HeapAnalysisJob.Result 6 7 class MinimumDiskSpaceInterceptor( 8 private val application: Application, 9 private val minimumDiskSpaceBytes: Long = 200_000_000, 10 private val processInfo: ProcessInfo = ProcessInfo.Real 11 ) : HeapAnalysisInterceptor { 12 interceptnull13 override fun intercept(chain: Chain): Result { 14 val availableDiskSpace = processInfo.availableDiskSpaceBytes(application.filesDir!!) 15 if (availableDiskSpace < minimumDiskSpaceBytes) { 16 chain.job.cancel("availableDiskSpace $availableDiskSpace < minimumDiskSpaceBytes $minimumDiskSpaceBytes") 17 } 18 return chain.proceed() 19 } 20 } 21