add web reader view model

This commit is contained in:
Satindar Dhillon 2022-09-19 20:18:47 -07:00
parent 817a3903b2
commit 8cf52a0458
5 changed files with 29 additions and 9 deletions

View file

@ -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)
}
}
}

View file

@ -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",

View file

@ -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
}
}

View file

@ -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 = ""
}

View file

@ -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
)
}