diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5a40dc4d..0431a1b8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,6 +5,8 @@ + + diff --git a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt index ae84cf76..f14d2645 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt @@ -185,13 +185,22 @@ class MainActivity : AppCompatActivity() { } private fun askPermissions() { - if (Build.VERSION.SDK_INT < VERSION_CODES.TIRAMISU && !checkFilePermission()) { - ActivityCompat.requestPermissions( - this, - arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), - 1 - ) - }else if (!checkNotificationPermission()){ + if (!checkFilePermission()) { + if (Build.VERSION.SDK_INT >= 33){ + ActivityCompat.requestPermissions( + this, + arrayOf(Manifest.permission.READ_MEDIA_VIDEO, Manifest.permission.READ_MEDIA_AUDIO), + 1 + ) + }else{ + ActivityCompat.requestPermissions( + this, + arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), + 1 + ) + } + } + if (!checkNotificationPermission()){ ActivityCompat.requestPermissions( this, arrayOf(Manifest.permission.POST_NOTIFICATIONS), @@ -218,7 +227,7 @@ class MainActivity : AppCompatActivity() { ) { super.onRequestPermissionsResult(requestCode, permissions, grantResults) for (i in permissions.indices) { - if (permissions.contains(Manifest.permission.POST_NOTIFICATIONS)) break + if (permissions.contains(Manifest.permission.POST_NOTIFICATIONS)) continue if (grantResults[i] == PackageManager.PERMISSION_DENIED) { createPermissionRequestDialog() }else{ @@ -233,8 +242,15 @@ class MainActivity : AppCompatActivity() { } private fun checkFilePermission(): Boolean { - return (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) - == PackageManager.PERMISSION_GRANTED) + return if(Build.VERSION.SDK_INT >= 33){ + (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_MEDIA_AUDIO) + == PackageManager.PERMISSION_GRANTED) && + (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_MEDIA_VIDEO) + == PackageManager.PERMISSION_GRANTED) + }else{ + (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) + == PackageManager.PERMISSION_GRANTED) + } } private fun checkNotificationPermission(): Boolean { diff --git a/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt b/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt index 7aac74d9..d955d331 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/util/FileUtil.kt @@ -7,6 +7,7 @@ import android.os.Build import android.provider.DocumentsContract import android.util.Log import android.webkit.MimeTypeMap +import androidx.documentfile.provider.DocumentFile import com.deniscerri.ytdlnis.R import okhttp3.internal.closeQuietly import okio.Path.Companion.toPath @@ -70,10 +71,9 @@ class FileUtil() { val path = File(formatPath(destDir)) try { - val files = path.listFiles()!! - files.filter { it.lastModified() > System.currentTimeMillis() - 10000} + var files = path.listFiles()!! + files = files.filter { it.lastModified() > System.currentTimeMillis() - 5000}.toTypedArray() Arrays.sort(files) { p0, p1 -> p0!!.lastModified().compareTo(p1!!.lastModified()) } - val paths = files.map { it.absolutePath }.toTypedArray() MediaScannerConnection.scanFile(context, paths, null, null) return files.reduce(Compare::max).absolutePath @@ -102,7 +102,6 @@ class FileUtil() { } val destFile = File(formatPath(destDir) + "/${it.name}") - Log.e("aa", destFile.absolutePath) if (destFile.absolutePath.contains("/storage/emulated/0/Download") || destFile.absolutePath.contains("/storage/emulated/0/Documents") ){