diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt index b71f56675..e9a26c825 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaApp.kt @@ -96,7 +96,7 @@ fun NiaApp( val snackbarHostState = remember { SnackbarHostState() } val isOffline by appState.isOffline.collectAsStateWithLifecycle() - val errorMessage by appState.errorMessage.collectAsStateWithLifecycle() + val snackbarMessage by appState.snackbarMessage.collectAsStateWithLifecycle() // If user is not connected to the internet show a snack bar to inform them. val notConnectedMessage = stringResource(R.string.not_connected) @@ -108,8 +108,8 @@ fun NiaApp( ) } } - LaunchedEffect(errorMessage) { - errorMessage?.let { + LaunchedEffect(snackbarMessage) { + snackbarMessage?.let { val snackBarResult = snackbarHostState.showSnackbar( message = it.message, actionLabel = "Continue", diff --git a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt index 4dd384f93..c4b3e12c6 100644 --- a/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt +++ b/app/src/main/kotlin/com/google/samples/apps/nowinandroid/ui/NiaAppState.kt @@ -89,7 +89,7 @@ class NiaAppState( errorMonitor: ErrorMonitor, userNewsResourceRepository: UserNewsResourceRepository, timeZoneMonitor: TimeZoneMonitor, -) { +) : ErrorMonitor by errorMonitor { val currentDestination: NavDestination? @Composable get() = navController .currentBackStackEntryAsState().value?.destination @@ -110,7 +110,7 @@ class NiaAppState( initialValue = false, ) - val errorMessage = errorMonitor.errorMessage.stateIn( + val snackbarMessage = errorMessage.stateIn( scope = coroutineScope, started = SharingStarted.WhileSubscribed(5_000), initialValue = null, diff --git a/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/ErrorMonitor.kt b/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/ErrorMonitor.kt index 6c54af621..588f7465c 100644 --- a/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/ErrorMonitor.kt +++ b/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/ErrorMonitor.kt @@ -25,4 +25,4 @@ interface ErrorMonitor { fun addErrorMessage(error: String): String? fun clearErrorMessage(id: String) val errorMessage: Flow -} \ No newline at end of file +} diff --git a/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/SnackbarErrorMonitor.kt b/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/SnackbarErrorMonitor.kt index 4cdb91b0b..6b8c232ed 100644 --- a/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/SnackbarErrorMonitor.kt +++ b/core/data/src/main/kotlin/com/google/samples/apps/nowinandroid/core/data/util/SnackbarErrorMonitor.kt @@ -21,12 +21,13 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.update import java.util.UUID +import javax.inject.Inject /** * Interface implementation for handling general errors. */ -class SnackbarErrorMonitor : ErrorMonitor { +class SnackbarErrorMonitor @Inject constructor() : ErrorMonitor { /** * List of [ErrorMessage] to be shown to the user, via Snackbar. */ @@ -68,4 +69,4 @@ class SnackbarErrorMonitor : ErrorMonitor { data class ErrorMessage( val message: String, val id: String = UUID.randomUUID().toString(), -) \ No newline at end of file +)