stub in a settings viewmodel

This commit is contained in:
Satindar Dhillon 2023-03-20 15:27:39 -07:00
parent 03adc8c3d6
commit 65843d3048
5 changed files with 58 additions and 6 deletions

View file

@ -16,6 +16,7 @@ import androidx.core.view.WindowInsetsCompat
import app.omnivore.omnivore.ui.auth.LoginViewModel
import app.omnivore.omnivore.ui.library.LibraryViewModel
import app.omnivore.omnivore.ui.root.RootView
import app.omnivore.omnivore.ui.settings.SettingsViewModel
import app.omnivore.omnivore.ui.theme.OmnivoreTheme
import com.pspdfkit.PSPDFKit
import dagger.hilt.android.AndroidEntryPoint
@ -31,6 +32,7 @@ class MainActivity : ComponentActivity() {
val loginViewModel: LoginViewModel by viewModels()
val libraryViewModel: LibraryViewModel by viewModels()
val settingsViewModel: SettingsViewModel by viewModels()
val context = this
@ -51,7 +53,7 @@ class MainActivity : ComponentActivity() {
.fillMaxSize()
.background(color = Color.Black)
) {
RootView(loginViewModel, libraryViewModel)
RootView(loginViewModel, libraryViewModel, settingsViewModel)
}
}
}

View file

@ -19,12 +19,14 @@ import app.omnivore.omnivore.ui.auth.WelcomeScreen
import app.omnivore.omnivore.ui.library.LibraryView
import app.omnivore.omnivore.ui.library.LibraryViewModel
import app.omnivore.omnivore.ui.settings.PolicyWebView
import app.omnivore.omnivore.ui.settings.SettingsViewModel
import com.google.accompanist.systemuicontroller.rememberSystemUiController
@Composable
fun RootView(
loginViewModel: LoginViewModel,
libraryViewModel: LibraryViewModel
libraryViewModel: LibraryViewModel,
settingsViewModel: SettingsViewModel
) {
val hasAuthToken: Boolean by loginViewModel.hasAuthTokenLiveData.observeAsState(false)
val systemUiController = rememberSystemUiController()
@ -46,7 +48,8 @@ fun RootView(
if (hasAuthToken) {
PrimaryNavigator(
loginViewModel = loginViewModel,
libraryViewModel = libraryViewModel
libraryViewModel = libraryViewModel,
settingsViewModel = settingsViewModel
)
} else {
WelcomeScreen(viewModel = loginViewModel)
@ -64,7 +67,8 @@ fun RootView(
@Composable
fun PrimaryNavigator(
loginViewModel: LoginViewModel,
libraryViewModel: LibraryViewModel
libraryViewModel: LibraryViewModel,
settingsViewModel: SettingsViewModel
) {
val navController = rememberNavController()
@ -77,7 +81,7 @@ fun PrimaryNavigator(
}
composable(Routes.Settings.route) {
SettingsView(loginViewModel = loginViewModel, navController = navController)
SettingsView(loginViewModel = loginViewModel, settingsViewModel = settingsViewModel, navController = navController)
}
composable(Routes.Documentation.route) {

View file

@ -0,0 +1,26 @@
package app.omnivore.omnivore.ui.settings
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.Dialog
import app.omnivore.omnivore.ui.reader.WebPreferencesView
import app.omnivore.omnivore.ui.reader.WebReaderViewModel
//@Composable
//fun ManageAccountDialog(onDismiss: () -> Unit, webReaderViewModel: WebReaderViewModel) {
// Dialog(onDismissRequest = { onDismiss() }) {
// Surface(
// shape = RoundedCornerShape(16.dp),
// color = Color.White,
// modifier = Modifier
// .height(300.dp)
// ) {
// WebPreferencesView(webReaderViewModel)
// }
// }
//}

View file

@ -22,6 +22,7 @@ import app.omnivore.omnivore.R
import app.omnivore.omnivore.Routes
import app.omnivore.omnivore.ui.auth.LoginViewModel
import app.omnivore.omnivore.ui.settings.LogoutDialog
import app.omnivore.omnivore.ui.settings.SettingsViewModel
import com.google.android.gms.auth.api.signin.GoogleSignIn
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
import io.intercom.android.sdk.Intercom
@ -31,6 +32,7 @@ import io.intercom.android.sdk.IntercomSpace
@Composable
fun SettingsView(
loginViewModel: LoginViewModel,
settingsViewModel: SettingsViewModel,
navController: NavHostController,
) {
Scaffold(
@ -52,6 +54,7 @@ fun SettingsView(
) { paddingValues ->
SettingsViewContent(
loginViewModel = loginViewModel,
settingsViewModel = settingsViewModel,
navController = navController,
modifier = Modifier
.padding(
@ -63,7 +66,7 @@ fun SettingsView(
}
@Composable
fun SettingsViewContent(loginViewModel: LoginViewModel, navController: NavHostController, modifier: Modifier) {
fun SettingsViewContent(loginViewModel: LoginViewModel, settingsViewModel: SettingsViewModel, navController: NavHostController, modifier: Modifier) {
val showLogoutDialog = remember { mutableStateOf(false) }
Box(

View file

@ -0,0 +1,17 @@
package app.omnivore.omnivore.ui.settings
import androidx.lifecycle.ViewModel
import app.omnivore.omnivore.DatastoreRepository
import app.omnivore.omnivore.dataService.DataService
import app.omnivore.omnivore.networking.Networker
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
@HiltViewModel
class SettingsViewModel @Inject constructor(
private val networker: Networker,
private val dataService: DataService,
private val datastoreRepo: DatastoreRepository
): ViewModel() {
fun stubby() {}
}