From 8cf52a0458ae690dd52c09567f558f9b10f1f1c4 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Mon, 19 Sep 2022 20:18:47 -0700 Subject: [PATCH] add web reader view model --- .../main/java/app/omnivore/omnivore/MainActivity.kt | 4 +++- .../app/omnivore/omnivore/ui/reader/WebReader.kt | 2 +- .../omnivore/omnivore/ui/reader/WebReaderContent.kt | 6 +++--- .../omnivore/ui/reader/WebReaderViewModel.kt | 13 +++++++++++++ .../java/app/omnivore/omnivore/ui/root/RootView.kt | 13 +++++++++---- 5 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt index e4bc977bc..2a07a427b 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/MainActivity.kt @@ -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) } } } diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt index 5dfe92835..1bef4ba90 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReader.kt @@ -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", diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderContent.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderContent.kt index 6251f6923..700a97223 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderContent.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderContent.kt @@ -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 = """ @@ -104,8 +104,8 @@ data class WebReaderContent( """ - Log.d("Loggo", rrrr) + Log.d("Loggo", content) - return rrrr + return content } } diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt new file mode 100644 index 000000000..17cc970f9 --- /dev/null +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/reader/WebReaderViewModel.kt @@ -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 = "" +} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt index cccb38973..5cc7585aa 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/root/RootView.kt @@ -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 ) }