diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b2c7091b088..03739fff0cb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -22,6 +22,41 @@ android:name="android.permission.QUERY_ALL_PACKAGES" tools:ignore="QueryAllPackagesPermission" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + = items.size) return@withLock -1 + val writtenIndex = + (metadata.bytesWritten - stream.startAt) / items.chuckSize + if (currentIndex > writtenIndex + (parallelConnections * 2).coerceAtLeast(5)) { + -2 + } else { + currentIndex++ + } + } + + if (index == -1) return@launch + if (index == -2) { + delay(500) + continue } // in case something has gone wrong set to failed if the fail is not caused by @@ -1307,7 +1319,7 @@ object VideoDownloadManager { metadata.type = DownloadType.IsDownloading val currentMutex = Mutex() - val current = (startAt until items.size).iterator() + var currentIndex = startAt val fileMutex = Mutex() val pendingData: HashMap = hashMapOf() @@ -1341,8 +1353,18 @@ object VideoDownloadManager { // mutex just in case, we never want this to fail due to multithreading val index = currentMutex.withLock { - if (!current.hasNext()) return@launch - current.nextInt() + if (currentIndex >= items.size) return@withLock -1 + if (currentIndex > metadata.hlsWrittenProgress + (parallelConnections * 2).coerceAtLeast(5)) { + -2 + } else { + currentIndex++ + } + } + + if (index == -1) return@launch + if (index == -2) { + delay(500) + continue } // in case something has gone wrong set to failed if the fail is not caused by diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a97145c3f81..e8cc86b86c9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.13.0" -androidGradlePlugin = "9.1.1" +androidGradlePlugin = "9.0.0" animeDb = "1.0.2" annotation = "1.10.0" appcompat = "1.7.1"