diff --git a/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt b/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt index 9ffd46e1..7b5c41f3 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/MainActivity.kt @@ -13,13 +13,16 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.unit.dp import androidx.datastore.core.DataStore import androidx.lifecycle.ViewModel +import androidx.lifecycle.compose.LifecycleStartEffect import androidx.lifecycle.lifecycleScope import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewmodel.navigation3.rememberViewModelStoreNavEntryDecorator @@ -208,13 +211,35 @@ class MainActivity : AppCompatActivity() { remember(appPreferences) { UserPreferences(appPreferences) } - ApplicationContent( - user = current.user, - server = current.server, - navigationManager = navigationManager, - preferences = preferences, - modifier = Modifier.fillMaxSize(), - ) + var showContent by remember { + mutableStateOf(true) + } + if (!preferences.appPreferences.signInAutomatically) { + LifecycleStartEffect(Unit) { + onStopOrDispose { + showContent = false + } + } + } + if (showContent) { + ApplicationContent( + user = current.user, + server = current.server, + navigationManager = navigationManager, + preferences = preferences, + modifier = Modifier.fillMaxSize(), + ) + } else { + Box( + modifier = Modifier.size(200.dp), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator( + color = MaterialTheme.colorScheme.border, + modifier = Modifier.align(Alignment.Center), + ) + } + } } } } diff --git a/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt b/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt index a396b873..1e5cade5 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/data/ServerRepository.kt @@ -242,7 +242,6 @@ class ServerRepository } suspend fun switchServerOrUser() { - apiClient.update(baseUrl = null, accessToken = null) userPreferencesDataStore.updateData { it .toBuilder() diff --git a/app/src/main/java/com/github/damontecres/wholphin/services/ImageUrlService.kt b/app/src/main/java/com/github/damontecres/wholphin/services/ImageUrlService.kt index 164035e7..cab8609e 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/services/ImageUrlService.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/services/ImageUrlService.kt @@ -31,7 +31,7 @@ class ImageUrlService imageType: ImageType, fillWidth: Int? = null, fillHeight: Int? = null, - ): String = + ): String? = when (imageType) { ImageType.BACKDROP, ImageType.LOGO, @@ -124,8 +124,9 @@ class ImageUrlService backgroundColor: String? = null, foregroundLayer: String? = null, imageIndex: Int? = null, - ): String = - api.imageApi.getItemImageUrl( + ): String? { + if (api.baseUrl.isNullOrBlank()) return null + return api.imageApi.getItemImageUrl( itemId = itemId, imageType = imageType, maxWidth = maxWidth, @@ -144,6 +145,7 @@ class ImageUrlService foregroundLayer = foregroundLayer, imageIndex = imageIndex, ) + } fun getUserImageUrl(userId: UUID) = api.imageApi.getUserImageUrl(userId) diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt index ac9ac814..c84045b3 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/GenreCardGrid.kt @@ -103,7 +103,7 @@ class GenreViewModel loading.value = LoadingState.Success } // val excludeItemIds = mutableSetOf() - val genreToUrl = ConcurrentHashMap() + val genreToUrl = ConcurrentHashMap() val semaphore = Semaphore(4) genres .map { genre ->