diff --git a/presentation/src/main/java/com/jcaique/presentation/di/injection.kt b/presentation/src/main/java/com/jcaique/presentation/di/injection.kt index 3461f60..4d29bdb 100644 --- a/presentation/src/main/java/com/jcaique/presentation/di/injection.kt +++ b/presentation/src/main/java/com/jcaique/presentation/di/injection.kt @@ -48,7 +48,8 @@ val presentationModule = Kodein.Module(name = "presentation") { ) DialectsViewModel( - machine = stateMachine + machine = stateMachine, + service = instance() ) } } diff --git a/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsActivity.kt b/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsActivity.kt index bde7a0b..a4d8a01 100644 --- a/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsActivity.kt +++ b/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsActivity.kt @@ -94,7 +94,7 @@ class DialectsActivity : AppCompatActivity(), KodeinAware { private fun setupRetry() { errorStateView.let { tryAgainBtn.setOnClickListener { - viewModel.handle(UserInteraction.RequestedFreshContent) + viewModel.handle(ShowDialects(region)) } } } diff --git a/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsViewModel.kt b/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsViewModel.kt index ae0fa78..97f91bd 100644 --- a/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsViewModel.kt +++ b/presentation/src/main/java/com/jcaique/presentation/dialects/DialectsViewModel.kt @@ -1,5 +1,6 @@ package com.jcaique.presentation.dialects +import com.jcaique.domain.dialects.DialectsService import com.jcaique.domain.models.Dialect import com.jcaique.utils.dataflow.StateMachine import com.jcaique.utils.dataflow.StateTransition @@ -8,33 +9,11 @@ import com.jcaique.utils.dataflow.UserInteraction import kotlinx.coroutines.coroutineScope internal class DialectsViewModel( - private val machine: StateMachine - // TODO inject dialects service + private val machine: StateMachine, + private val service: DialectsService ) { - // TODO mocked result - private val dialects by lazy { - listOf( - Dialect( - slug = "lasquei-em-banda", - dialect = "Lasquei em banda", - meanings = listOf("Sem pena", "Abrupto"), - examples = listOf("Oxe man, lasquei foi em banda mermo, quis nem saber.") - ), - Dialect( - slug = "lasquei-em-banda", - dialect = "Lasquei em banda", - meanings = listOf("Sem pena", "Abrupto"), - examples = listOf("Oxe man, lasquei foi em banda mermo, quis nem saber.") - ), - Dialect( - slug = "lasquei-em-banda", - dialect = "Lasquei em banda", - meanings = listOf("Sem pena", "Abrupto"), - examples = listOf("Oxe man, lasquei foi em banda mermo, quis nem saber.") - ) - ) - } + private var dialects = emptyList() fun bind() = machine.states() @@ -55,7 +34,9 @@ internal class DialectsViewModel( parameters: StateTransition.Parameters ): DialectsPresentation = coroutineScope { val interaction = parameters as ShowDialects - + + dialects = service.getDialectsBy(interaction.region.name.toLowerCase()) + dialects .let(::DialectsPresentation) } diff --git a/presentation/src/main/res/layout/error_state_layout.xml b/presentation/src/main/res/layout/error_state_layout.xml index 3573b42..cce3fd8 100644 --- a/presentation/src/main/res/layout/error_state_layout.xml +++ b/presentation/src/main/res/layout/error_state_layout.xml @@ -28,13 +28,13 @@ + android:theme="@style/AppTheme.Inverted" + android:visibility="visible" /> diff --git a/presentation/src/main/res/values/colors.xml b/presentation/src/main/res/values/colors.xml index fc755dd..bd6829a 100644 --- a/presentation/src/main/res/values/colors.xml +++ b/presentation/src/main/res/values/colors.xml @@ -10,4 +10,5 @@ #DCE0E9 #2D3844 #5a6872 + #2144F3