add loading and error status, with a simple implementation

This commit is contained in:
Carlos Martinez
2020-02-03 13:52:11 -03:00
parent 83d243ec58
commit c1bb08ee8f
9 changed files with 154 additions and 4 deletions

View File

@@ -7,8 +7,10 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import com.hako.base.domain.network.RequestStatus
import com.hako.base.extensions.gone
import com.hako.base.extensions.observeNonNull
import com.hako.base.extensions.toast
import com.hako.base.extensions.visible
import com.hako.userlist.model.UserViewable
import com.hako.userlist.viewmodel.UserlistViewmodel
import com.hako.userlist.widget.UserlistAdapter
@@ -40,15 +42,23 @@ class UserlistFragment : Fragment() {
viewModel.requestStatus.observeNonNull(this) {
when (it) {
RequestStatus.Ready -> { context?.toast("Ready") }
RequestStatus.Loading -> { context?.toast("Loading") }
RequestStatus.Errored -> { context?.toast("Errored") }
RequestStatus.Ready -> {
fragment_userlist_error_overlay.gone()
fragment_userlist_loading_overlay.gone()
}
RequestStatus.Loading -> {
fragment_userlist_error_overlay.gone()
fragment_userlist_loading_overlay.visible()
}
RequestStatus.Errored -> {
fragment_userlist_error_overlay.visible()
fragment_userlist_loading_overlay.gone()
}
}
}
}
private fun handleFetchError(throwable: Throwable) {
context?.toast("Could't get data")
Timber.e(throwable)
}

View File

@@ -15,4 +15,24 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.hako.base.widgets.LoadingOverlay
android:id="@+id/fragment_userlist_loading_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.hako.base.widgets.NetworkErrorOverlay
android:id="@+id/fragment_userlist_error_overlay"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>