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