[feat] Image Recents
This commit is contained in:
@@ -25,7 +25,8 @@ import javax.inject.Inject
|
||||
@HiltViewModel
|
||||
class ComicGridViewModel @Inject constructor(
|
||||
@ApplicationContext val context: Context,
|
||||
val mediaManager: MediaManager
|
||||
val mediaManager: MediaManager,
|
||||
val recentManager: RecentManager
|
||||
) : ViewModel()
|
||||
{
|
||||
var imageLoader: ImageLoader? = null
|
||||
@@ -52,6 +53,7 @@ class ComicGridViewModel @Inject constructor(
|
||||
viewModelScope.launch {
|
||||
if(comic.value == null) {
|
||||
comic.value = mediaManager.queryComicInfoSingle(id)
|
||||
recentManager.pushComic(context, id)
|
||||
val c = comic.value!!
|
||||
for (i in c.comic.bookmarks) {
|
||||
chapterList.add(i)
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
package com.acitelight.aether.viewModel
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import android.content.Context
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import coil3.ImageLoader
|
||||
import coil3.network.okhttp.OkHttpNetworkFetcherFactory
|
||||
@@ -11,33 +9,27 @@ import com.acitelight.aether.service.ApiClient.createOkHttp
|
||||
import com.acitelight.aether.service.RecentManager
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import com.acitelight.aether.service.*
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
|
||||
|
||||
@HiltViewModel
|
||||
class HomeScreenViewModel @Inject constructor(
|
||||
val recentManager: RecentManager
|
||||
val recentManager: RecentManager,
|
||||
@ApplicationContext val context: Context
|
||||
) : ViewModel()
|
||||
{
|
||||
var _init = false
|
||||
var imageLoader: ImageLoader? = null;
|
||||
var imageLoader: ImageLoader? = null
|
||||
|
||||
@Composable
|
||||
fun Init(){
|
||||
if(_init) return
|
||||
_init = true
|
||||
|
||||
val context = LocalContext.current
|
||||
init{
|
||||
imageLoader = ImageLoader.Builder(context)
|
||||
.components {
|
||||
add(OkHttpNetworkFetcherFactory(createOkHttp()))
|
||||
}
|
||||
.build()
|
||||
remember {
|
||||
viewModelScope.launch {
|
||||
recentManager.Query(context)
|
||||
}
|
||||
viewModelScope.launch {
|
||||
recentManager.queryVideo(context)
|
||||
recentManager.queryComic(context)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
package com.acitelight.aether.viewModel
|
||||
|
||||
import android.app.Activity
|
||||
import android.net.Uri
|
||||
import androidx.annotation.OptIn
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableFloatStateOf
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
@@ -25,7 +23,6 @@ import androidx.media3.exoplayer.ExoPlayer
|
||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
|
||||
import coil3.ImageLoader
|
||||
import coil3.network.okhttp.OkHttpNetworkFetcherFactory
|
||||
import com.acitelight.aether.Global
|
||||
import com.acitelight.aether.model.Video
|
||||
import com.acitelight.aether.model.VideoQueryIndex
|
||||
import com.acitelight.aether.service.ApiClient.createOkHttp
|
||||
@@ -86,7 +83,7 @@ class VideoPlayerViewModel @Inject constructor(
|
||||
remember {
|
||||
viewModelScope.launch {
|
||||
video = mediaManager.queryVideo(v.split("/")[0], v.split("/")[1])!!
|
||||
recentManager.Push(context, VideoQueryIndex(v.split("/")[0], v.split("/")[1]))
|
||||
recentManager.pushVideo(context, VideoQueryIndex(v.split("/")[0], v.split("/")[1]))
|
||||
_player = (if(video!!.isLocal) ExoPlayer.Builder(context) else ExoPlayer.Builder(context).setMediaSourceFactory(DefaultMediaSourceFactory(dataSourceFactory)))
|
||||
.build().apply {
|
||||
val url = video?.getVideo() ?: ""
|
||||
|
||||
Reference in New Issue
Block a user