Skip to content

Commit 74e67f8

Browse files
committed
fix SearchActivity
1 parent 801f32c commit 74e67f8

File tree

5 files changed

+11
-8
lines changed

5 files changed

+11
-8
lines changed

core/src/main/java/com/hoc/flowmvi/core/FlowBinding.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ fun EditText.textChanges(): Flow<CharSequence?> {
118118
checkMainThread()
119119

120120
val listener = doOnTextChanged { text, _, _, _ -> trySend(text) }
121-
addTextChangedListener(listener)
122121
awaitClose { removeTextChangedListener(listener) }
123122
}.onStart { emit(text) }
124123
}

feature-add/src/main/java/com/hoc/flowmvi/ui/add/AddVM.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ import com.hoc.flowmvi.domain.entity.User
1212
import com.hoc.flowmvi.domain.usecase.AddUserUseCase
1313
import com.hoc.flowmvi.mvi_base.AbstractMviViewModel
1414
import com.hoc081098.flowext.flatMapFirst
15+
import com.hoc081098.flowext.mapTo
1516
import com.hoc081098.flowext.withLatestFrom
1617
import kotlinx.coroutines.ExperimentalCoroutinesApi
1718
import kotlinx.coroutines.flow.Flow
19+
import kotlinx.coroutines.flow.SharedFlow
1820
import kotlinx.coroutines.flow.SharingStarted
1921
import kotlinx.coroutines.flow.StateFlow
2022
import kotlinx.coroutines.flow.catch
@@ -84,7 +86,7 @@ class AddVM(
8486
}
8587
}
8688

87-
private fun Flow<ViewIntent>.toPartialStateChangesFlow(): Flow<PartialStateChange> {
89+
private fun SharedFlow<ViewIntent>.toPartialStateChangesFlow(): Flow<PartialStateChange> {
8890
val emailFlow = filterIsInstance<ViewIntent.EmailChanged>()
8991
.log("Intent")
9092
.map { it.email }
@@ -137,13 +139,13 @@ class AddVM(
137139
val firstChanges = merge(
138140
filterIsInstance<ViewIntent.EmailChangedFirstTime>()
139141
.log("Intent")
140-
.map { PartialStateChange.FirstChange.EmailChangedFirstTime },
142+
.mapTo(PartialStateChange.FirstChange.EmailChangedFirstTime),
141143
filterIsInstance<ViewIntent.FirstNameChangedFirstTime>()
142144
.log("Intent")
143-
.map { PartialStateChange.FirstChange.FirstNameChangedFirstTime },
145+
.mapTo(PartialStateChange.FirstChange.FirstNameChangedFirstTime),
144146
filterIsInstance<ViewIntent.LastNameChangedFirstTime>()
145147
.log("Intent")
146-
.map { PartialStateChange.FirstChange.LastNameChangedFirstTime }
148+
.mapTo(PartialStateChange.FirstChange.LastNameChangedFirstTime)
147149
)
148150

149151
val formValuesChanges = merge(

feature-search/src/main/java/com/hoc/flowmvi/ui/search/SearchContract.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ internal sealed interface PartialStateChange {
7272
users = users,
7373
submittedQuery = submittedQuery,
7474
)
75-
is QueryChanged -> state.copy(originalQuery = query)
75+
is QueryChanged -> if (state.originalQuery == query) state else state.copy(originalQuery = query)
7676
}
7777
}
7878

feature-search/src/main/java/com/hoc/flowmvi/ui/search/SearchVM.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.hoc081098.flowext.takeUntil
1010
import kotlinx.coroutines.ExperimentalCoroutinesApi
1111
import kotlinx.coroutines.FlowPreview
1212
import kotlinx.coroutines.flow.Flow
13+
import kotlinx.coroutines.flow.SharedFlow
1314
import kotlinx.coroutines.flow.SharingStarted
1415
import kotlinx.coroutines.flow.StateFlow
1516
import kotlinx.coroutines.flow.catch
@@ -52,7 +53,7 @@ class SearchVM(
5253
.stateIn(viewModelScope, SharingStarted.Eagerly, initialVS)
5354
}
5455

55-
private fun Flow<ViewIntent>.toPartialStateChangesFlow(): Flow<PartialStateChange> {
56+
private fun SharedFlow<ViewIntent>.toPartialStateChangesFlow(): Flow<PartialStateChange> {
5657
val executeSearch: suspend (String) -> Flow<PartialStateChange> = { query: String ->
5758
flow { emit(searchUsersUseCase(query)) }
5859
.map { result ->
@@ -70,6 +71,7 @@ class SearchVM(
7071
}
7172

7273
val queryFlow = filterIsInstance<ViewIntent.Search>()
74+
.log("Intent")
7375
.map { it.query }
7476
.shareWhileSubscribed()
7577

feature-search/src/main/res/menu/menu_search.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
android:icon="@drawable/ic_baseline_search_24"
88
android:title="Search"
99
app:actionViewClass="androidx.appcompat.widget.SearchView"
10-
app:showAsAction="always|collapseActionView" />
10+
app:showAsAction="always" />
1111
</menu>

0 commit comments

Comments
 (0)