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")
){