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 index 5a221ebc9..3fe9a6752 100644 --- 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 @@ -1,26 +1,81 @@ package app.omnivore.omnivore.ui.settings -import androidx.compose.foundation.layout.height +import androidx.compose.foundation.clickable +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.Switch +import androidx.compose.material.Text +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Check +import androidx.compose.material.icons.filled.KeyboardArrowDown +import androidx.compose.material.icons.filled.KeyboardArrowRight +import androidx.compose.material.icons.filled.Refresh +import androidx.compose.material3.Icon import androidx.compose.material3.Surface import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment 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.Stepper +import app.omnivore.omnivore.ui.reader.WebFont 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) -// } -// } -//} +@Composable +fun ManageAccountDialog(onDismiss: () -> Unit, settingsViewModel: SettingsViewModel) { + Dialog(onDismissRequest = { onDismiss() }) { + Surface( + shape = RoundedCornerShape(16.dp), + color = Color.White, + modifier = Modifier + .height(300.dp) + ) { + ManageAccountView(settingsViewModel = settingsViewModel) + } + } +} + +@Composable +fun ManageAccountView(settingsViewModel: SettingsViewModel) { +// val currentWebPreferences = webReaderViewModel.storedWebPreferences(isSystemInDarkTheme()) +// val isFontListExpanded = remember { mutableStateOf(false) } +// val highContrastTextSwitchState = remember { mutableStateOf(currentWebPreferences.prefersHighContrastText) } +// val selectedWebFontRawValue = remember { mutableStateOf(currentWebPreferences.fontFamily.rawValue) } + + Column( + modifier = Modifier + .padding(top = 6.dp, start = 6.dp, end = 6.dp, bottom = 6.dp) + ) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(top = 12.dp, bottom = 12.dp), + horizontalArrangement = Arrangement.Center + ) { + Text("Manage Account") + } + + Column( + modifier = Modifier + .verticalScroll(rememberScrollState()) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier + .clickable(onClick = { settingsViewModel.resetDataCache() }) + ) { + Text("Reset Data Cache") + Spacer(modifier = Modifier.weight(1.0F)) + Icon(imageVector = Icons.Filled.Refresh, contentDescription = null) + } + } + } +} + 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 e033d9e6f..21a0baaf8 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 @@ -9,9 +9,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ArrowForward import androidx.compose.material.icons.filled.Home import androidx.compose.material3.* -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext @@ -22,6 +20,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.ManageAccountDialog 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 @@ -68,6 +67,7 @@ fun SettingsView( @Composable fun SettingsViewContent(loginViewModel: LoginViewModel, settingsViewModel: SettingsViewModel, navController: NavHostController, modifier: Modifier) { val showLogoutDialog = remember { mutableStateOf(false) } + val showManageAccountDialog = remember { mutableStateOf(false ) } Box( modifier = modifier.fillMaxSize() @@ -110,8 +110,8 @@ fun SettingsViewContent(loginViewModel: LoginViewModel, settingsViewModel: Setti SectionSpacer() -// SettingRow(text = "Manage Account") { Log.d("settings", "logout button tapped") } -// RowDivider() + SettingRow(text = "Manage Account") { showManageAccountDialog.value = true } + RowDivider() SettingRow(text = "Logout", includeIcon = false) { showLogoutDialog.value = true } RowDivider() } @@ -124,6 +124,13 @@ fun SettingsViewContent(loginViewModel: LoginViewModel, settingsViewModel: Setti showLogoutDialog.value = false } } + + if (showManageAccountDialog.value) { + ManageAccountDialog( + onDismiss = { showManageAccountDialog.value = false }, + settingsViewModel = settingsViewModel + ) + } } } 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 index f0b0b349b..3204b0ea0 100644 --- 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 @@ -13,5 +13,7 @@ class SettingsViewModel @Inject constructor( private val dataService: DataService, private val datastoreRepo: DatastoreRepository ): ViewModel() { - fun stubby() {} + fun resetDataCache() { + + } }