mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
add web reader view model
This commit is contained in:
parent
817a3903b2
commit
8cf52a0458
5 changed files with 29 additions and 9 deletions
|
|
@ -16,6 +16,7 @@ import androidx.core.view.WindowCompat
|
|||
import androidx.core.view.WindowInsetsCompat
|
||||
import app.omnivore.omnivore.ui.auth.LoginViewModel
|
||||
import app.omnivore.omnivore.ui.home.HomeViewModel
|
||||
import app.omnivore.omnivore.ui.reader.WebReaderViewModel
|
||||
import app.omnivore.omnivore.ui.root.RootView
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
|
|
@ -26,6 +27,7 @@ class MainActivity : ComponentActivity() {
|
|||
|
||||
val loginViewModel: LoginViewModel by viewModels()
|
||||
val homeViewModel: HomeViewModel by viewModels()
|
||||
val webReaderViewModel: WebReaderViewModel by viewModels()
|
||||
|
||||
setContent {
|
||||
OmnivoreTheme {
|
||||
|
|
@ -34,7 +36,7 @@ class MainActivity : ComponentActivity() {
|
|||
.fillMaxSize()
|
||||
.background(color = Color.Black)
|
||||
) {
|
||||
RootView(loginViewModel, homeViewModel)
|
||||
RootView(loginViewModel, homeViewModel, webReaderViewModel)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import androidx.compose.ui.viewinterop.AndroidView
|
|||
import app.omnivore.omnivore.models.LinkedItem
|
||||
|
||||
@Composable
|
||||
fun WebReaderLoadingContainer(slug: String, authCookieString: String) {
|
||||
fun WebReaderLoadingContainer(slug: String, webReaderViewModel: WebReaderViewModel) {
|
||||
// TODO: create a viewmodel where we can fetch item and articleContent
|
||||
val item = LinkedItem(
|
||||
id = "1",
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ data class WebReaderContent(
|
|||
val createdAt = "new Date().toISOString()"
|
||||
val publishedAt = "new Date().toISOString()" //if (item.publishDate != null) "new Date((item.publishDate!.timeIntervalSince1970 * 1000)).toISOString()" else "undefined"
|
||||
|
||||
val rrrr = """
|
||||
val content = """
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
|
|
@ -104,8 +104,8 @@ data class WebReaderContent(
|
|||
</html>
|
||||
"""
|
||||
|
||||
Log.d("Loggo", rrrr)
|
||||
Log.d("Loggo", content)
|
||||
|
||||
return rrrr
|
||||
return content
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
package app.omnivore.omnivore.ui.reader
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import app.omnivore.omnivore.DatastoreRepository
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class WebReaderViewModel @Inject constructor(
|
||||
private val datastoreRepo: DatastoreRepository
|
||||
): ViewModel() {
|
||||
val testVar = ""
|
||||
}
|
||||
|
|
@ -21,12 +21,14 @@ import app.omnivore.omnivore.ui.home.HomeViewModel
|
|||
import app.omnivore.omnivore.ui.reader.ArticleWebView
|
||||
import app.omnivore.omnivore.ui.reader.WebReader
|
||||
import app.omnivore.omnivore.ui.reader.WebReaderLoadingContainer
|
||||
import app.omnivore.omnivore.ui.reader.WebReaderViewModel
|
||||
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
||||
|
||||
@Composable
|
||||
fun RootView(
|
||||
loginViewModel: LoginViewModel,
|
||||
homeViewModel: HomeViewModel
|
||||
homeViewModel: HomeViewModel,
|
||||
webReaderViewModel: WebReaderViewModel
|
||||
) {
|
||||
val hasAuthToken: Boolean by loginViewModel.hasAuthTokenLiveData.observeAsState(false)
|
||||
val systemUiController = rememberSystemUiController()
|
||||
|
|
@ -48,7 +50,8 @@ fun RootView(
|
|||
if (hasAuthToken) {
|
||||
PrimaryNavigator(
|
||||
loginViewModel = loginViewModel,
|
||||
homeViewModel = homeViewModel
|
||||
homeViewModel = homeViewModel,
|
||||
webReaderViewModel = webReaderViewModel
|
||||
)
|
||||
} else {
|
||||
WelcomeScreen(viewModel = loginViewModel)
|
||||
|
|
@ -59,7 +62,8 @@ fun RootView(
|
|||
@Composable
|
||||
fun PrimaryNavigator(
|
||||
loginViewModel: LoginViewModel,
|
||||
homeViewModel: HomeViewModel
|
||||
homeViewModel: HomeViewModel,
|
||||
webReaderViewModel: WebReaderViewModel
|
||||
) {
|
||||
val navController = rememberNavController()
|
||||
|
||||
|
|
@ -71,6 +75,7 @@ fun PrimaryNavigator(
|
|||
)
|
||||
}
|
||||
|
||||
// TODO: delete this route and views
|
||||
composable("WebAppReader/{slug}") {
|
||||
ArticleWebView(
|
||||
it.arguments?.getString("slug") ?: "",
|
||||
|
|
@ -81,7 +86,7 @@ fun PrimaryNavigator(
|
|||
composable("WebReader/{slug}") {
|
||||
WebReaderLoadingContainer(
|
||||
it.arguments?.getString("slug") ?: "",
|
||||
authCookieString = loginViewModel.getAuthCookieString() ?: ""
|
||||
webReaderViewModel = webReaderViewModel
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue