diff --git a/app/src/main/java/com/acitelight/aether/service/MediaManager.kt b/app/src/main/java/com/acitelight/aether/service/MediaManager.kt index 35c56de..32f36f0 100644 --- a/app/src/main/java/com/acitelight/aether/service/MediaManager.kt +++ b/app/src/main/java/com/acitelight/aether/service/MediaManager.kt @@ -72,7 +72,8 @@ class MediaManager @Inject constructor( it.extras.getString("class", "") == klass } - if(downloaded.all{ it.status == Status.COMPLETED }) + if(downloaded.any{ it.status == Status.COMPLETED } + && downloaded.all{ it.status == Status.COMPLETED || it.extras.getString("type", "") == "subtitle" }) { val jsonString = File( context.getExternalFilesDir(null), @@ -98,10 +99,14 @@ class MediaManager @Inject constructor( val remoteIds = mutableListOf() for (videoId in id) { - if (downloads.filter { - it.extras.getString("id", "") == videoId && - it.extras.getString("class", "") == klass - }.all{ it.status == Status.COMPLETED} ) { + val o = downloads.filter { + it.extras.getString("id", "") == videoId && + it.extras.getString("class", "") == klass + } + + if (o.any{ it.status == Status.COMPLETED } + && o.all{ it.status == Status.COMPLETED || it.extras.getString("type", "") == "subtitle" }) + { localIds.add(videoId) } else { remoteIds.add(videoId) diff --git a/app/src/main/java/com/acitelight/aether/viewModel/TransmissionScreenViewModel.kt b/app/src/main/java/com/acitelight/aether/viewModel/TransmissionScreenViewModel.kt index 89fbd3c..63654db 100644 --- a/app/src/main/java/com/acitelight/aether/viewModel/TransmissionScreenViewModel.kt +++ b/app/src/main/java/com/acitelight/aether/viewModel/TransmissionScreenViewModel.kt @@ -227,7 +227,7 @@ class TransmissionScreenViewModel @Inject constructor( downloads.clear() idToState.clear() - downloaded.sortedWith(compareBy(naturalOrder()) { it.extras.getString("name", "") }) + downloaded.filter { it.extras.getString("type", "") == "main" }.sortedWith(compareBy(naturalOrder()) { it.extras.getString("name", "") }) .forEach { d -> val s = downloadToState(d) downloads.add(s) diff --git a/app/src/main/java/com/acitelight/aether/viewModel/VideoPlayerViewModel.kt b/app/src/main/java/com/acitelight/aether/viewModel/VideoPlayerViewModel.kt index 287d9a4..55bf651 100644 --- a/app/src/main/java/com/acitelight/aether/viewModel/VideoPlayerViewModel.kt +++ b/app/src/main/java/com/acitelight/aether/viewModel/VideoPlayerViewModel.kt @@ -110,6 +110,8 @@ class VideoPlayerViewModel @Inject constructor( { vs = oId.split("|")[0].split(",").map { it.split("/") }.toMutableList() spec = oId.split("|")[1] + }else{ + vs = oId.split(",").map { it.split("/") }.toMutableList() } imageLoader = ImageLoader.Builder(context) diff --git a/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt b/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt index f073a7e..f445206 100644 --- a/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt +++ b/app/src/main/java/com/acitelight/aether/viewModel/VideoScreenViewModel.kt @@ -71,8 +71,9 @@ class VideoScreenViewModel @Inject constructor( if (vl != null) { val r = vl.sortedWith(compareBy(naturalOrder()) { it.video.name }) - videoLibrary.classesMap[videoLibrary.classes[0]]?.addAll(r) - videoLibrary.classesMap[videoLibrary.classes[0]]?.distinctBy { it.id } + val existsId = videoLibrary.classesMap[videoLibrary.classes[0]]?.map { it.id } + + videoLibrary.classesMap[videoLibrary.classes[0]]?.addAll(r.filter { existsId == null || it.id !in existsId }) } } else { @@ -110,8 +111,8 @@ class VideoScreenViewModel @Inject constructor( if (vl != null) { val r = vl.sortedWith(compareBy(naturalOrder()) { it.video.name }) - videoLibrary.classesMap[videoLibrary.classes[index]]?.addAll(r) - videoLibrary.classesMap[videoLibrary.classes[index]]?.distinctBy { it.id } + val existsId = videoLibrary.classesMap[videoLibrary.classes[index]]?.map { it.id } + videoLibrary.classesMap[videoLibrary.classes[index]]?.addAll(r.filter { existsId == null || it.id !in existsId }) } } }