Skip to content

Commit 1d3f23b

Browse files
authored
Merge pull request #4252 from TeamAmaze/media-scanner-update
2 parents 48fc090 + 9e6e5af commit 1d3f23b

File tree

4 files changed

+40
-1
lines changed

4 files changed

+40
-1
lines changed

app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/DeleteTask.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import com.amaze.filemanager.filesystem.SafRootHolder;
3939
import com.amaze.filemanager.filesystem.cloud.CloudUtil;
4040
import com.amaze.filemanager.filesystem.files.CryptUtil;
41+
import com.amaze.filemanager.filesystem.files.FileUtils;
4142
import com.amaze.filemanager.filesystem.files.MediaConnectionUtils;
4243
import com.amaze.filemanager.ui.activities.MainActivity;
4344
import com.amaze.filemanager.ui.fragments.CompressedExplorerFragment;
@@ -113,10 +114,14 @@ protected final AsyncTaskResult<Boolean> doInBackground(
113114
}
114115

115116
// delete file from media database
116-
if (!file.isSmb() && !file.isSftp())
117+
if (!file.isSmb() && !file.isSftp()) {
117118
MediaConnectionUtils.scanFile(
118119
applicationContext, files.toArray(new HybridFile[files.size()]));
119120

121+
if (FileUtils.NOMEDIA_FILE.equals(file.getName()))
122+
MediaConnectionUtils.scanFile(applicationContext, file.getParent(applicationContext));
123+
}
124+
120125
// delete file entry from encrypted database
121126
if (file.getName(applicationContext).endsWith(CryptUtil.CRYPT_EXTENSION)) {
122127
CryptHandler handler = CryptHandler.INSTANCE;

app/src/main/java/com/amaze/filemanager/asynchronous/asynctasks/movecopy/PreparePasteTask.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package com.amaze.filemanager.asynchronous.asynctasks.movecopy
2222

2323
import android.app.ProgressDialog
24+
import android.content.Context
2425
import android.content.Intent
2526
import android.view.LayoutInflater
2627
import android.widget.Toast
@@ -43,6 +44,7 @@ import com.amaze.filemanager.filesystem.HybridFile
4344
import com.amaze.filemanager.filesystem.HybridFileParcelable
4445
import com.amaze.filemanager.filesystem.MakeDirectoryOperation
4546
import com.amaze.filemanager.filesystem.files.FileUtils
47+
import com.amaze.filemanager.filesystem.files.MediaConnectionUtils
4648
import com.amaze.filemanager.ui.activities.MainActivity
4749
import com.amaze.filemanager.utils.OnFileFound
4850
import com.amaze.filemanager.utils.Utils
@@ -140,6 +142,7 @@ class PreparePasteTask(strongRefMain: MainActivity) {
140142
filesToCopy[0].getParent(context.get()) == targetPath
141143
) {
142144
Toast.makeText(context.get(), R.string.same_dir_move_error, Toast.LENGTH_SHORT).show()
145+
MediaConnectionUtils.scanFile(context.get() as Context, filesToCopy.toTypedArray())
143146
return
144147
}
145148

app/src/main/java/com/amaze/filemanager/filesystem/Operations.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,6 +442,17 @@ protected Void doInBackground(Void... params) {
442442
}
443443
return null;
444444
}
445+
446+
@Override
447+
protected void onPostExecute(Void unused) {
448+
super.onPostExecute(unused);
449+
450+
// TODO: run this only when the operation gets completed successfully
451+
MediaConnectionUtils.scanFile(context, file.path);
452+
453+
if (file.name.equals(FileUtils.NOMEDIA_FILE))
454+
MediaConnectionUtils.scanFile(context, file.getParent(context));
455+
}
445456
}.executeOnExecutor(executor);
446457
}
447458

app/src/main/java/com/amaze/filemanager/filesystem/files/MediaConnectionUtils.kt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,24 @@ object MediaConnectionUtils {
5252
LOG.info("MediaConnectionUtils#scanFile finished scanning path$path")
5353
}
5454
}
55+
56+
/**
57+
* Invokes MediaScannerConnection#scanFile for a given file
58+
*
59+
* @param context the context
60+
* @param filePath the path of the file to be scanned
61+
*/
62+
@JvmStatic
63+
fun scanFile(
64+
context: Context,
65+
filePath: String,
66+
) {
67+
MediaScannerConnection.scanFile(
68+
context,
69+
arrayOf(filePath),
70+
null,
71+
) { path: String, _: Uri? ->
72+
LOG.info("MediaConnectionUtils#scanFile finished scanning path$path")
73+
}
74+
}
5575
}

0 commit comments

Comments
 (0)