Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adcf4f43 authored by tibbi's avatar tibbi
Browse files

adding a 1 second timeout to MediaScannerConnection scanFile

parent 855a13b4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ buildscript {
        propMinSdkVersion = 21
        propTargetSdkVersion = propCompileSdkVersion
        propVersionCode = 1
        propVersionName = '5.5.18'
        propVersionName = '5.5.20'
        kotlin_version = '1.3.11'
    }

+11 −1
Original line number Diff line number Diff line
@@ -7,6 +7,8 @@ import android.hardware.usb.UsbManager
import android.media.MediaScannerConnection
import android.net.Uri
import android.os.Environment
import android.os.Handler
import android.os.Looper
import android.provider.DocumentsContract
import android.provider.MediaStore
import android.text.TextUtils
@@ -391,7 +393,15 @@ fun Context.rescanDeletedPath(path: String, callback: (() -> Unit)? = null) {
            return
        }

        MediaScannerConnection.scanFile(applicationContext, arrayOf(path), null) { s, uri ->
        // scanFile doesnt trigger in some cases, refresh items manually after some period
        val SCAN_FILE_MAX_DURATION = 1000L
        val scanFileHandler = Handler(Looper.getMainLooper())
        scanFileHandler.postDelayed({
            callback?.invoke()
        }, SCAN_FILE_MAX_DURATION)

        MediaScannerConnection.scanFile(applicationContext, arrayOf(path), null) { path, uri ->
            scanFileHandler.removeCallbacksAndMessages(null)
            try {
                applicationContext.contentResolver.delete(uri, null, null)
            } catch (e: Exception) {