For #9252: Update views visibility ony when list has finished loading
parent
f9cc2ccfe2
commit
f3bbcc4e17
|
@ -65,6 +65,7 @@ class SavedLoginsFragment : Fragment() {
|
||||||
savedLoginsStore = StoreProvider.get(this) {
|
savedLoginsStore = StoreProvider.get(this) {
|
||||||
SavedLoginsFragmentStore(
|
SavedLoginsFragmentStore(
|
||||||
SavedLoginsFragmentState(
|
SavedLoginsFragmentState(
|
||||||
|
isLoading = true,
|
||||||
items = listOf(),
|
items = listOf(),
|
||||||
filteredItems = listOf()
|
filteredItems = listOf()
|
||||||
)
|
)
|
||||||
|
|
|
@ -48,6 +48,7 @@ sealed class SavedLoginsFragmentAction : Action {
|
||||||
* @property items Filtered (or not) list of logins to display
|
* @property items Filtered (or not) list of logins to display
|
||||||
*/
|
*/
|
||||||
data class SavedLoginsFragmentState(
|
data class SavedLoginsFragmentState(
|
||||||
|
val isLoading: Boolean = false,
|
||||||
val items: List<SavedLoginsItem>,
|
val items: List<SavedLoginsItem>,
|
||||||
val filteredItems: List<SavedLoginsItem>
|
val filteredItems: List<SavedLoginsItem>
|
||||||
) : State
|
) : State
|
||||||
|
@ -61,14 +62,19 @@ private fun savedLoginsStateReducer(
|
||||||
): SavedLoginsFragmentState {
|
): SavedLoginsFragmentState {
|
||||||
return when (action) {
|
return when (action) {
|
||||||
is SavedLoginsFragmentAction.UpdateLogins -> state.copy(
|
is SavedLoginsFragmentAction.UpdateLogins -> state.copy(
|
||||||
|
isLoading = false,
|
||||||
items = action.list,
|
items = action.list,
|
||||||
filteredItems = action.list
|
filteredItems = action.list
|
||||||
)
|
)
|
||||||
is SavedLoginsFragmentAction.FilterLogins -> {
|
is SavedLoginsFragmentAction.FilterLogins -> {
|
||||||
if (action.newText.isNullOrBlank()) {
|
if (action.newText.isNullOrBlank()) {
|
||||||
state.copy(filteredItems = state.items)
|
state.copy(
|
||||||
|
isLoading = false,
|
||||||
|
filteredItems = state.items)
|
||||||
} else {
|
} else {
|
||||||
state.copy(filteredItems = state.items.filter { it.url.contains(action.newText) })
|
state.copy(
|
||||||
|
isLoading = false,
|
||||||
|
filteredItems = state.items.filter { it.url.contains(action.newText) })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,8 +69,10 @@ class SavedLoginsView(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun update(state: SavedLoginsFragmentState) {
|
fun update(state: SavedLoginsFragmentState) {
|
||||||
view.saved_logins_list.isVisible = state.items.isNotEmpty()
|
if (!state.isLoading) {
|
||||||
view.saved_passwords_empty_view.isVisible = state.items.isEmpty()
|
view.saved_logins_list.isVisible = state.items.isNotEmpty()
|
||||||
|
view.saved_passwords_empty_view.isVisible = state.items.isEmpty()
|
||||||
|
}
|
||||||
loginsAdapter.submitList(state.filteredItems)
|
loginsAdapter.submitList(state.filteredItems)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue