Browse Source

Replace deprecated ACTION_MEDIA_SCANNER_SCAN_FILE intent

(cherry picked from commit 0b4f3f553263281333c6475cdd1a9aea414ce877)
arkon 2 years ago
parent
commit
c7e44aa22f

+ 2 - 1
app/src/main/java/eu/kanade/tachiyomi/data/notification/NotificationReceiver.kt

@@ -7,6 +7,7 @@ import android.content.Intent
 import android.net.Uri
 import android.os.Build
 import androidx.core.content.ContextCompat
+import androidx.core.net.toUri
 import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.data.backup.BackupRestoreService
 import eu.kanade.tachiyomi.data.database.DatabaseHelper
@@ -193,7 +194,7 @@ class NotificationReceiver : BroadcastReceiver() {
         val file = File(path)
         file.delete()
 
-        DiskUtil.scanMedia(context, file)
+        DiskUtil.scanMedia(context, file.toUri())
     }
 
     /**

+ 2 - 1
app/src/main/java/eu/kanade/tachiyomi/data/saver/ImageSaver.kt

@@ -8,6 +8,7 @@ import android.net.Uri
 import android.os.Build
 import android.os.Environment
 import android.provider.MediaStore
+import androidx.core.net.toUri
 import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.util.storage.DiskUtil
 import eu.kanade.tachiyomi.util.storage.cacheImageDir
@@ -82,7 +83,7 @@ class ImageSaver(
             }
         }
 
-        DiskUtil.scanMedia(context, destFile)
+        DiskUtil.scanMedia(context, destFile.toUri())
 
         return destFile.getUriCompat(context)
     }

+ 2 - 13
app/src/main/java/eu/kanade/tachiyomi/util/storage/DiskUtil.kt

@@ -1,12 +1,11 @@
 package eu.kanade.tachiyomi.util.storage
 
 import android.content.Context
-import android.content.Intent
+import android.media.MediaScannerConnection
 import android.net.Uri
 import android.os.Environment
 import android.os.StatFs
 import androidx.core.content.ContextCompat
-import androidx.core.net.toUri
 import com.hippo.unifile.UniFile
 import eu.kanade.tachiyomi.util.lang.Hash
 import java.io.File
@@ -74,21 +73,11 @@ object DiskUtil {
         }
     }
 
-    /**
-     * Scans the given file so that it can be shown in gallery apps, for example.
-     */
-    fun scanMedia(context: Context, file: File) {
-        scanMedia(context, file.toUri())
-    }
-
     /**
      * Scans the given file so that it can be shown in gallery apps, for example.
      */
     fun scanMedia(context: Context, uri: Uri) {
-        val action = Intent.ACTION_MEDIA_SCANNER_SCAN_FILE
-        val mediaScanIntent = Intent(action)
-        mediaScanIntent.data = uri
-        context.sendBroadcast(mediaScanIntent)
+        MediaScannerConnection.scanFile(context, arrayOf(uri.path), null, null)
     }
 
     /**