1
0
Fork 0

For #9252: Update views visibility ony when list has finished loading

master
mcarare 2020-03-20 17:41:34 +02:00 committed by Emily Kager
parent f9cc2ccfe2
commit f3bbcc4e17
3 changed files with 13 additions and 4 deletions

View File

@ -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()
) )

View File

@ -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) })
} }
} }
} }

View File

@ -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)
} }
} }