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 609ec802c..b37795e62 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.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) } } } 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 93dfe469e..01e5ffb26 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 @@ -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) { diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/ManageAccount.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/ManageAccount.kt new file mode 100644 index 000000000..5a221ebc9 --- /dev/null +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/ManageAccount.kt @@ -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) +// } +// } +//} diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/SettingsContent.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/SettingsContent.kt index d53ee724b..e033d9e6f 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/SettingsContent.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/SettingsContent.kt @@ -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( diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/SettingsViewModel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/SettingsViewModel.kt new file mode 100644 index 000000000..f0b0b349b --- /dev/null +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/ui/settings/SettingsViewModel.kt @@ -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() {} +}