Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Media scanner update #4252

Open
wants to merge 4 commits into
base: release/4.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import com.amaze.filemanager.filesystem.SafRootHolder;
import com.amaze.filemanager.filesystem.cloud.CloudUtil;
import com.amaze.filemanager.filesystem.files.CryptUtil;
import com.amaze.filemanager.filesystem.files.FileUtils;
import com.amaze.filemanager.filesystem.files.MediaConnectionUtils;
import com.amaze.filemanager.ui.activities.MainActivity;
import com.amaze.filemanager.ui.fragments.CompressedExplorerFragment;
Expand Down Expand Up @@ -113,10 +114,14 @@ protected final AsyncTaskResult<Boolean> doInBackground(
}

// delete file from media database
if (!file.isSmb() && !file.isSftp())
if (!file.isSmb() && !file.isSftp()) {
MediaConnectionUtils.scanFile(
applicationContext, files.toArray(new HybridFile[files.size()]));

if (file.getName().equals(FileUtils.NOMEDIA_FILE))
VishnuSanal marked this conversation as resolved.
Show resolved Hide resolved
MediaConnectionUtils.scanFile(applicationContext, file.getParent(applicationContext));
}

// delete file entry from encrypted database
if (file.getName(applicationContext).endsWith(CryptUtil.CRYPT_EXTENSION)) {
CryptHandler handler = CryptHandler.INSTANCE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
package com.amaze.filemanager.asynchronous.asynctasks.movecopy

import android.app.ProgressDialog
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.widget.Toast
Expand All @@ -43,6 +44,7 @@ import com.amaze.filemanager.filesystem.HybridFile
import com.amaze.filemanager.filesystem.HybridFileParcelable
import com.amaze.filemanager.filesystem.MakeDirectoryOperation
import com.amaze.filemanager.filesystem.files.FileUtils
import com.amaze.filemanager.filesystem.files.MediaConnectionUtils
import com.amaze.filemanager.ui.activities.MainActivity
import com.amaze.filemanager.utils.OnFileFound
import com.amaze.filemanager.utils.Utils
Expand Down Expand Up @@ -140,6 +142,7 @@ class PreparePasteTask(strongRefMain: MainActivity) {
filesToCopy[0].getParent(context.get()) == targetPath
) {
Toast.makeText(context.get(), R.string.same_dir_move_error, Toast.LENGTH_SHORT).show()
MediaConnectionUtils.scanFile(context.get() as Context, filesToCopy.toTypedArray())
return
}

Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/com/amaze/filemanager/filesystem/Operations.java
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,17 @@ protected Void doInBackground(Void... params) {
}
return null;
}

@Override
protected void onPostExecute(Void unused) {
super.onPostExecute(unused);

// TODO: run this only when the operation gets completed successfully
MediaConnectionUtils.scanFile(context, file.path);

if (file.name.equals(FileUtils.NOMEDIA_FILE))
MediaConnectionUtils.scanFile(context, file.getParent(context));
}
}.executeOnExecutor(executor);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,24 @@ object MediaConnectionUtils {
LOG.info("MediaConnectionUtils#scanFile finished scanning path$path")
}
}

/**
* Invokes MediaScannerConnection#scanFile for a given file
*
* @param context the context
* @param filePath the path of the file to be scanned
*/
@JvmStatic
fun scanFile(
context: Context,
filePath: String,
) {
MediaScannerConnection.scanFile(
context,
arrayOf(filePath),
null,
) { path: String, _: Uri? ->
LOG.info("MediaConnectionUtils#scanFile finished scanning path$path")
}
}
}
Loading