diff --git a/android/Omnivore/app/build.gradle.kts b/android/Omnivore/app/build.gradle.kts index bc6c0b888..b3b0602fd 100644 --- a/android/Omnivore/app/build.gradle.kts +++ b/android/Omnivore/app/build.gradle.kts @@ -148,8 +148,6 @@ dependencies { implementation(libs.apollo.runtime) - // TODO: Remove in favor of new Compose libs - implementation(libs.accompanist.systemuicontroller) implementation(libs.accompanist.flowlayout) implementation(libs.coil.kt.compose) 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 0e4c818ee..4588dba40 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 @@ -19,7 +19,6 @@ import app.omnivore.omnivore.feature.editinfo.EditInfoViewModel import app.omnivore.omnivore.feature.library.SearchViewModel import app.omnivore.omnivore.feature.root.RootView import app.omnivore.omnivore.feature.save.SaveViewModel -import app.omnivore.omnivore.feature.settings.SettingsViewModel import app.omnivore.omnivore.feature.theme.OmnivoreTheme import com.pspdfkit.PSPDFKit import dagger.hilt.android.AndroidEntryPoint @@ -58,6 +57,7 @@ class MainActivity : ComponentActivity() { enableEdgeToEdge() setContent { + OmnivoreTheme { Box( modifier = Modifier diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/auth/WelcomeScreen.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/auth/WelcomeScreen.kt index 38f2c156d..c43ecd15b 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/auth/WelcomeScreen.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/auth/WelcomeScreen.kt @@ -4,7 +4,6 @@ import android.annotation.SuppressLint import android.content.Intent import android.net.Uri import androidx.compose.foundation.Image -import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.ClickableText import androidx.compose.material3.* @@ -22,31 +21,16 @@ import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.unit.dp import app.omnivore.omnivore.R import app.omnivore.omnivore.feature.theme.OmnivoreTheme -import com.google.accompanist.systemuicontroller.rememberSystemUiController import com.google.android.gms.common.GoogleApiAvailability import kotlinx.coroutines.launch @Composable fun WelcomeScreen(viewModel: LoginViewModel) { - - val systemUiController = rememberSystemUiController() - val useDarkIcons = !isSystemInDarkTheme() - - DisposableEffect(systemUiController, useDarkIcons) { - systemUiController.setSystemBarsColor( - color = Color.Black, - darkIcons = true - ) - onDispose { - systemUiController.setSystemBarsColor( - color = Color.Black, - darkIcons = useDarkIcons - ) - } - } - OmnivoreTheme(darkTheme = false) { - Surface(modifier = Modifier.fillMaxSize(), color = Color(0xFFFCEBA8)) { + Surface( + modifier = Modifier.fillMaxSize(), + color = Color(0xFFFCEBA8) + ) { WelcomeScreenContent(viewModel = viewModel) } } @@ -55,9 +39,9 @@ fun WelcomeScreen(viewModel: LoginViewModel) { @SuppressLint("CoroutineCreationDuringComposition") @Composable fun WelcomeScreenContent(viewModel: LoginViewModel) { - val registrationState: RegistrationState by viewModel - .registrationStateLiveData - .observeAsState(RegistrationState.SocialLogin) + val registrationState: RegistrationState by viewModel.registrationStateLiveData.observeAsState( + RegistrationState.SocialLogin + ) val snackBarHostState = remember { SnackbarHostState() } val coroutineScope = rememberCoroutineScope() @@ -92,11 +76,13 @@ fun WelcomeScreenContent(viewModel: LoginViewModel) { RegistrationState.SocialLogin -> { Text( text = stringResource(id = R.string.welcome_title), + color = MaterialTheme.colorScheme.onSurface, style = MaterialTheme.typography.headlineLarge ) Text( text = stringResource(id = R.string.welcome_subtitle), + color = MaterialTheme.colorScheme.onSurface, style = MaterialTheme.typography.titleSmall ) @@ -117,8 +103,7 @@ fun WelcomeScreenContent(viewModel: LoginViewModel) { if (viewModel.errorMessage != null) { coroutineScope.launch { - val result = snackBarHostState - .showSnackbar( + val result = snackBarHostState.showSnackbar( viewModel.errorMessage!!, actionLabel = "Dismiss", duration = SnackbarDuration.Indefinite @@ -135,9 +120,8 @@ fun WelcomeScreenContent(viewModel: LoginViewModel) { @Composable fun AuthProviderView(viewModel: LoginViewModel) { - val isGoogleAuthAvailable: Boolean = GoogleApiAvailability - .getInstance() - .isGooglePlayServicesAvailable(LocalContext.current) == 0 + val isGoogleAuthAvailable: Boolean = + GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(LocalContext.current) == 0 Row( horizontalArrangement = Arrangement.Center @@ -153,22 +137,17 @@ fun AuthProviderView(viewModel: LoginViewModel) { AppleAuthButton(viewModel) - ClickableText( - text = AnnotatedString(stringResource(R.string.welcome_screen_action_continue_with_email)), - style = MaterialTheme.typography.titleMedium - .plus(TextStyle(textDecoration = TextDecoration.Underline)), - onClick = { viewModel.showEmailSignIn() } - ) + ClickableText(text = AnnotatedString(stringResource(R.string.welcome_screen_action_continue_with_email)), + style = MaterialTheme.typography.titleMedium.plus(TextStyle(textDecoration = TextDecoration.Underline)), + onClick = { viewModel.showEmailSignIn() }) Spacer(modifier = Modifier.weight(1.0F)) ClickableText( text = AnnotatedString(stringResource(R.string.welcome_screen_action_self_hosting_options)), - style = MaterialTheme.typography.titleMedium - .plus(TextStyle(textDecoration = TextDecoration.Underline)), + style = MaterialTheme.typography.titleMedium.plus(TextStyle(textDecoration = TextDecoration.Underline)), onClick = { viewModel.showSelfHostedSettings() }, - modifier = Modifier - .padding(vertical = 10.dp) + modifier = Modifier.padding(vertical = 10.dp) ) } Spacer(modifier = Modifier.weight(1.0F)) @@ -184,8 +163,7 @@ fun MoreInfoButton() { text = AnnotatedString( stringResource(id = R.string.learn_more), ), - style = MaterialTheme.typography.titleSmall - .plus(TextStyle(textDecoration = TextDecoration.Underline)), + style = MaterialTheme.typography.titleSmall.plus(TextStyle(textDecoration = TextDecoration.Underline)), onClick = { context.startActivity(intent) }, diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/reader/WebReaderLoadingContainer.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/reader/WebReaderLoadingContainer.kt index 98f7230f6..e58b5f0cb 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/reader/WebReaderLoadingContainer.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/reader/WebReaderLoadingContainer.kt @@ -30,7 +30,6 @@ import androidx.compose.material3.IconButton import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState @@ -61,7 +60,6 @@ import app.omnivore.omnivore.feature.notebook.NotebookView import app.omnivore.omnivore.feature.notebook.NotebookViewModel import app.omnivore.omnivore.feature.savedItemViews.SavedItemContextMenu import app.omnivore.omnivore.feature.theme.OmnivoreTheme -import com.google.accompanist.systemuicontroller.rememberSystemUiController import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import kotlin.math.roundToInt @@ -81,18 +79,6 @@ class WebReaderLoadingContainerActivity : ComponentActivity() { viewModel.loadItem(slug = slug, requestID = requestID) setContent { - val systemUiController = rememberSystemUiController() - val useDarkIcons = !isSystemInDarkTheme() - - DisposableEffect(systemUiController, useDarkIcons) { - systemUiController.setSystemBarsColor( - color = Color.Black, - darkIcons = false - ) - - onDispose {} - } - OmnivoreTheme { Box( modifier = Modifier diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/root/RootView.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/root/RootView.kt index 5e48ad2ff..c56eb5557 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/root/RootView.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/feature/root/RootView.kt @@ -1,5 +1,6 @@ package app.omnivore.omnivore.feature.root +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsetsSides @@ -18,6 +19,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState import androidx.compose.runtime.remember import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController @@ -50,7 +52,7 @@ fun RootView( snackbarHost = { SnackbarHost(snackbarHostState) }, ) { padding -> Box( - modifier = Modifier + modifier = if (!hasAuthToken) Modifier.background(Color(0xFFFCEBA8)) else Modifier .fillMaxSize() .padding(padding) .consumeWindowInsets(padding)