mirror of
https://github.com/omnivore-app/omnivore.git
synced 2026-03-11 08:54:26 +00:00
stub in a settings viewmodel
This commit is contained in:
parent
03adc8c3d6
commit
65843d3048
5 changed files with 58 additions and 6 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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() {}
|
||||
}
|
||||
Loading…
Reference in a new issue