File tree Expand file tree Collapse file tree 3 files changed +23
-19
lines changed
feature-add/src/main/java/com/hoc/flowmvi/ui/add
feature-search/src/main/java/com/hoc/flowmvi/ui/search Expand file tree Collapse file tree 3 files changed +23
-19
lines changed Original file line number Diff line number Diff line change @@ -35,7 +35,6 @@ data class ViewState(
35
35
lastName : String? ,
36
36
) = ViewState (
37
37
errors = emptySet(),
38
-
39
38
isLoading = false ,
40
39
emailChanged = false ,
41
40
firstNameChanged = false ,
@@ -97,9 +96,18 @@ internal sealed interface PartialStateChange {
97
96
sealed class FormValueChange : PartialStateChange {
98
97
override fun reduce (viewState : ViewState ): ViewState {
99
98
return when (this ) {
100
- is EmailChanged -> viewState.copy(email = email)
101
- is FirstNameChanged -> viewState.copy(firstName = firstName)
102
- is LastNameChanged -> viewState.copy(lastName = lastName)
99
+ is EmailChanged -> {
100
+ if (viewState.email == email) viewState
101
+ else viewState.copy(email = email)
102
+ }
103
+ is FirstNameChanged -> {
104
+ if (viewState.firstName == firstName) viewState
105
+ else viewState.copy(firstName = firstName)
106
+ }
107
+ is LastNameChanged -> {
108
+ if (viewState.lastName == lastName) viewState
109
+ else viewState.copy(lastName = lastName)
110
+ }
103
111
}
104
112
}
105
113
Original file line number Diff line number Diff line change @@ -16,7 +16,6 @@ import com.hoc.flowmvi.core.clicks
16
16
import com.hoc.flowmvi.core.navigator.IntentProviders
17
17
import com.hoc.flowmvi.core.queryTextEvents
18
18
import com.hoc.flowmvi.core.toast
19
- import com.hoc.flowmvi.core.unit
20
19
import com.hoc.flowmvi.domain.repository.UserError
21
20
import com.hoc.flowmvi.mvi_base.AbstractMviActivity
22
21
import com.hoc.flowmvi.ui.search.databinding.ActivitySearchBinding
@@ -115,24 +114,18 @@ class SearchActivity :
115
114
isIconified = false
116
115
queryHint = " Search user..."
117
116
118
- fun listen () = queryTextEvents()
119
- .onEach { searchViewQueryTextEventChannel.send(it) }
120
- .launchIn(lifecycleScope)
121
- .unit
122
-
123
117
vm.viewState.value
124
118
.originalQuery
125
119
.takeUnless { it.isNullOrBlank() }
126
120
?.let {
127
- post {
128
- menuItem.expandActionView()
129
- setQuery(it, true )
130
- clearFocus()
131
-
132
- listen()
133
- }
121
+ menuItem.expandActionView()
122
+ setQuery(it, true )
123
+ clearFocus()
134
124
}
135
- ? : listen()
125
+
126
+ queryTextEvents()
127
+ .onEach { searchViewQueryTextEventChannel.send(it) }
128
+ .launchIn(lifecycleScope)
136
129
}
137
130
}
138
131
Original file line number Diff line number Diff line change @@ -72,7 +72,10 @@ internal sealed interface PartialStateChange {
72
72
users = users,
73
73
submittedQuery = submittedQuery,
74
74
)
75
- is QueryChanged -> if (state.originalQuery == query) state else state.copy(originalQuery = query)
75
+ is QueryChanged -> {
76
+ if (state.originalQuery == query) state
77
+ else state.copy(originalQuery = query)
78
+ }
76
79
}
77
80
}
78
81
You can’t perform that action at this time.
0 commit comments