diff --git a/app/src/main/java/co/nimblehq/compose/crypto/ui/navigation/AppNavigation.kt b/app/src/main/java/co/nimblehq/compose/crypto/ui/navigation/AppNavigation.kt index e1a4cda..e6f43b0 100644 --- a/app/src/main/java/co/nimblehq/compose/crypto/ui/navigation/AppNavigation.kt +++ b/app/src/main/java/co/nimblehq/compose/crypto/ui/navigation/AppNavigation.kt @@ -1,6 +1,7 @@ package co.nimblehq.compose.crypto.ui.navigation import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource import androidx.hilt.navigation.compose.hiltViewModel import androidx.navigation.* import androidx.navigation.compose.* @@ -38,10 +39,7 @@ fun AppNavigation( ) { composable(AppDestination.Home) { HomeScreen( - navigator = { destination -> navController.navigate(destination) }, - onInternetRestore = { - onInternetRestore = it - } + navigator = { destination -> navController.navigate(destination) } ) } @@ -49,8 +47,8 @@ fun AppNavigation( DetailScreen( navigator = { destination -> navController.navigate(destination) }, coinId = it.arguments?.getString(KEY_COIN_ID).orEmpty(), - onInternetRestore = { - onInternetRestore = it + onNetworkReconnected = { callback -> + onInternetRestore = callback } ) } @@ -62,9 +60,9 @@ fun AppNavigation( navController.popBackStack() onInternetRestore.invoke() }, - message = R.string.no_internet_message, - actionText = android.R.string.ok, - title = R.string.no_internet_title + message = stringResource(id = R.string.no_internet_message), + actionText = stringResource(id = android.R.string.ok), + title = stringResource(id = R.string.no_internet_title) ) } } diff --git a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/MainViewModel.kt b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/MainViewModel.kt index 27b2c3e..b8758f8 100644 --- a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/MainViewModel.kt +++ b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/MainViewModel.kt @@ -1,7 +1,7 @@ package co.nimblehq.compose.crypto.ui.screens import androidx.lifecycle.viewModelScope -import co.nimblehq.compose.crypto.domain.usecase.GetConnectionStatusUseCase +import co.nimblehq.compose.crypto.domain.usecase.IsNetworkConnectedUseCase import co.nimblehq.compose.crypto.ui.base.* import co.nimblehq.compose.crypto.util.DispatchersProvider import dagger.hilt.android.lifecycle.HiltViewModel @@ -16,7 +16,7 @@ interface Output : BaseOutput { @HiltViewModel class MainViewModel @Inject constructor( - getConnectionStatusUseCase: GetConnectionStatusUseCase, + isNetworkConnectedUseCase: IsNetworkConnectedUseCase, dispatchersProvider: DispatchersProvider, ) : BaseViewModel(dispatchersProvider), Input, Output { private val _isNetworkConnected = MutableSharedFlow() @@ -27,7 +27,7 @@ class MainViewModel @Inject constructor( override val output: BaseOutput = this init { - getConnectionStatusUseCase() + isNetworkConnectedUseCase() .catch { _error.emit(it) } diff --git a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt index 601d8e4..46d45a9 100644 --- a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt +++ b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreen.kt @@ -54,7 +54,7 @@ fun DetailScreen( viewModel: DetailViewModel = hiltViewModel(), navigator: (destination: AppDestination) -> Unit, coinId: String, - onInternetRestore: (() -> Unit) -> Unit + onNetworkReconnected: (() -> Unit) -> Unit ) { val context = LocalContext.current LaunchedEffect(Unit) { @@ -85,7 +85,7 @@ fun DetailScreen( viewModel.input.getCoinId(coinId = coinId) } - onInternetRestore { + onNetworkReconnected { viewModel.input.getCoinId(coinId = coinId) } } diff --git a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreen.kt b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreen.kt index c370307..0e79ba0 100644 --- a/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreen.kt +++ b/app/src/main/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreen.kt @@ -41,7 +41,6 @@ const val TestTagCoinsLoader = "CoinsLoader" fun HomeScreen( viewModel: HomeViewModel = hiltViewModel(), navigator: (destination: AppDestination) -> Unit, - onInternetRestore: (() -> Unit) -> Unit ) { val context = LocalContext.current @@ -58,10 +57,6 @@ fun HomeScreen( } } - onInternetRestore { - viewModel.input.loadData(isRefreshing = true) - } - val showMyCoinsLoading: IsLoading by viewModel.output.showMyCoinsLoading.collectAsState() val showTrendingCoinsLoading: LoadingState by viewModel.output.showTrendingCoinsLoading.collectAsState() val myCoins: List by viewModel.output.myCoins.collectAsState() diff --git a/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreenTest.kt b/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreenTest.kt index 62841b9..524c596 100644 --- a/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreenTest.kt +++ b/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/detail/DetailScreenTest.kt @@ -69,7 +69,7 @@ class DetailScreenTest : BaseViewModelTest() { viewModel = viewModel, navigator = { destination -> appDestination = destination }, coinId = "Bitcoin", - onInternetRestore = {} + onNetworkReconnected = {} ) } } diff --git a/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreenTest.kt b/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreenTest.kt index 5eec679..4c5a4b6 100644 --- a/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreenTest.kt +++ b/app/src/test/java/co/nimblehq/compose/crypto/ui/screens/home/HomeScreenTest.kt @@ -63,8 +63,7 @@ class HomeScreenTest : BaseViewModelTest() { composeAndroidTestRule.activity.setContent { HomeScreen( viewModel = viewModel, - navigator = { destination -> appDestination = destination }, - onInternetRestore = {} + navigator = { destination -> appDestination = destination } ) } }