[feat] Bulk Requests
This commit is contained in:
@@ -47,12 +47,12 @@ class ComicGridViewModel : ViewModel()
|
||||
{
|
||||
viewModelScope.launch {
|
||||
if(comic.value == null) {
|
||||
comic.value = MediaManager.queryComicInfo(id)
|
||||
comic.value = MediaManager.queryComicInfoSingle(id)
|
||||
val c = comic.value!!
|
||||
for (i in c.comic.bookmarks) {
|
||||
chapterList.add(i)
|
||||
}
|
||||
}else comic.value = MediaManager.queryComicInfo(id)
|
||||
}else comic.value = MediaManager.queryComicInfoSingle(id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ class ComicPageViewModel : ViewModel()
|
||||
if(comic.value != null) return
|
||||
LaunchedEffect(id, page) {
|
||||
coroutineScope?.launch {
|
||||
comic.value = MediaManager.queryComicInfo(id)
|
||||
comic.value = MediaManager.queryComicInfoSingle(id)
|
||||
comic.value?.let {
|
||||
pageList.addAll(it.comic.list)
|
||||
title.value = it.comic.comic_name
|
||||
|
||||
@@ -57,14 +57,14 @@ class ComicScreenViewModel : ViewModel() {
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
val l = MediaManager.listComics()
|
||||
for(i in l)
|
||||
{
|
||||
val m = MediaManager.queryComicInfo(i)
|
||||
if(m != null) {
|
||||
comics.add(m)
|
||||
for(i in m.comic.tags)
|
||||
val m = MediaManager.queryComicInfoBulk(l)
|
||||
if(m != null) {
|
||||
for(i in m)
|
||||
{
|
||||
comics.add(i)
|
||||
for(j in i.comic.tags)
|
||||
{
|
||||
insertItem(i)
|
||||
insertItem(j)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.acitelight.aether.helper.insertInNaturalOrder
|
||||
import com.acitelight.aether.model.Video
|
||||
import com.acitelight.aether.service.ApiClient.createOkHttp
|
||||
import com.acitelight.aether.service.MediaManager
|
||||
import com.acitelight.aether.service.MediaManager.queryVideoKlasses
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.flow.map
|
||||
@@ -56,9 +57,15 @@ class VideoScreenViewModel(application: Application) : AndroidViewModel(applicat
|
||||
classesMap[it] = mutableStateListOf<Video>()
|
||||
}
|
||||
updatingMap[0] = true
|
||||
MediaManager.listVideos(classes[0], listOf()){
|
||||
v -> classesMap[classes[0]]?.insertInNaturalOrder(v)
|
||||
}
|
||||
val vl = MediaManager.queryVideoBulk(classes[0],
|
||||
queryVideoKlasses(classes[0])
|
||||
)
|
||||
|
||||
if(vl != null)
|
||||
for(it in vl)
|
||||
{
|
||||
classesMap[classes[0]]?.insertInNaturalOrder(it)
|
||||
}
|
||||
}
|
||||
|
||||
fun setTabIndex(index: Int)
|
||||
@@ -69,12 +76,16 @@ class VideoScreenViewModel(application: Application) : AndroidViewModel(applicat
|
||||
if(updatingMap[index] == true) return@launch
|
||||
|
||||
updatingMap[index] = true
|
||||
MediaManager.listVideos(classes[index], (classesMap[classes[index]]?:listOf()).map{ it.id })
|
||||
{
|
||||
v ->
|
||||
if(classesMap[classes[index]]?.contains(v) == false)
|
||||
classesMap[classes[index]]?.insertInNaturalOrder(v)
|
||||
}
|
||||
|
||||
val vl = MediaManager.queryVideoBulk(classes[index],
|
||||
queryVideoKlasses(classes[index])
|
||||
)
|
||||
|
||||
if(vl != null)
|
||||
for(it in vl)
|
||||
{
|
||||
classesMap[classes[index]]?.insertInNaturalOrder(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user