Refactor: Migrate network layer from Retrofit to Ktor
This commit migrates the network layer from Retrofit to Ktor. Specific changes include: - Replaced Retrofit with Ktor for network requests. - Updated dependencies to include Ktor libraries. - Refactored network service and data classes to use Ktor's API. - Removed Retrofit-specific code and dependencies. - Adjusted network module to provide Ktor client and services. - Updated Pixabay ImageRepository to use the new Ktor-based PixabayService. - Introduced Result sealed class to handle network responses. - Updated PhotoDetailViewModel to handle Result.Error state.
This commit is contained in:
@ -5,6 +5,7 @@ import androidx.lifecycle.viewModelScope
|
||||
import dagger.assisted.Assisted
|
||||
import dagger.assisted.AssistedInject
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import dev.adriankuta.pixabay.data.Result
|
||||
import dev.adriankuta.pixabay.data.repository.ImageRepository
|
||||
import dev.adriankuta.pixabay.feature.details.di.PhotoDetailsViewModelFactory
|
||||
import kotlinx.coroutines.flow.SharingStarted
|
||||
@ -23,7 +24,12 @@ class PhotoDetailViewModel @AssistedInject constructor(
|
||||
}
|
||||
|
||||
val uiState = loadedData
|
||||
.map { PhotoDetailUiState.Success(it) }
|
||||
.map {
|
||||
when (it) {
|
||||
is Result.Success -> PhotoDetailUiState.Success(it.data)
|
||||
is Result.Error -> PhotoDetailUiState.Error
|
||||
}
|
||||
}
|
||||
.stateIn(
|
||||
scope = viewModelScope,
|
||||
started = SharingStarted.WhileSubscribed(stopTimeoutMillis = 5000),
|
||||
|
Reference in New Issue
Block a user