From a8ff4fdc26ccec77bdceec55c7cea9ab142ceed2 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Sun, 14 Apr 2024 22:35:11 -0500 Subject: [PATCH] feat: nomedia file --- .../java/ani/dantotsu/download/DownloadsManager.kt | 13 +++++++++++++ .../java/ani/dantotsu/util/StoragePermissions.kt | 2 ++ 2 files changed, 15 insertions(+) diff --git a/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt b/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt index 30085ee0..75c6626c 100644 --- a/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt +++ b/app/src/main/java/ani/dantotsu/download/DownloadsManager.kt @@ -319,6 +319,19 @@ class DownloadsManager(private val context: Context) { return size } + fun addNoMedia(context: Context) { + val baseDirectory = getBaseDirectory(context) ?: return + if (baseDirectory.findFile(".nomedia") == null) { + baseDirectory.createFile("application/octet-stream", ".nomedia") + } + } + + private fun getBaseDirectory(context: Context): DocumentFile? { + val baseDirectory = Uri.parse(PrefManager.getVal(PrefName.DownloadsDir)) + if (baseDirectory == Uri.EMPTY) return null + return DocumentFile.fromTreeUri(context, baseDirectory) + } + private fun DocumentFile.findOrCreateFolder( name: String, overwrite: Boolean ): DocumentFile? { diff --git a/app/src/main/java/ani/dantotsu/util/StoragePermissions.kt b/app/src/main/java/ani/dantotsu/util/StoragePermissions.kt index d4f62bdd..4ef3bf28 100644 --- a/app/src/main/java/ani/dantotsu/util/StoragePermissions.kt +++ b/app/src/main/java/ani/dantotsu/util/StoragePermissions.kt @@ -13,6 +13,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import ani.dantotsu.R +import ani.dantotsu.download.DownloadsManager import ani.dantotsu.settings.saving.PrefManager import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.toast @@ -110,6 +111,7 @@ class LauncherWrapper( if (StoragePermissions.hasDirAccess(activity, uri)) { PrefManager.setVal(PrefName.DownloadsDir, uri.toString()) + DownloadsManager.addNoMedia(activity) complete(true) } else { toast(activity.getString(R.string.dir_error))