Browse Source

distinguish between different error types in ScheduledStatusActivity (#3487)

pull/3510/head
Konrad Pozniak 3 years ago committed by GitHub
parent
commit
24dd68c996
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt
  2. 6
      app/src/main/res/layout/activity_scheduled_status.xml

15
app/src/main/java/com/keylesspalace/tusky/components/scheduled/ScheduledStatusActivity.kt

@ -47,6 +47,7 @@ import com.mikepenz.iconics.utils.colorInt
import com.mikepenz.iconics.utils.sizeDp
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import java.io.IOException
import javax.inject.Inject
class ScheduledStatusActivity :
@ -98,10 +99,18 @@ class ScheduledStatusActivity :
adapter.addLoadStateListener { loadState ->
if (loadState.refresh is LoadState.Error) {
binding.progressBar.hide()
binding.errorMessageView.setup(R.drawable.elephant_error, R.string.error_generic) {
refreshStatuses()
}
binding.errorMessageView.show()
val errorState = loadState.refresh as LoadState.Error
if (errorState.error is IOException) {
binding.errorMessageView.setup(R.drawable.elephant_offline, R.string.error_network) {
refreshStatuses()
}
} else {
binding.errorMessageView.setup(R.drawable.elephant_error, R.string.error_generic) {
refreshStatuses()
}
}
}
if (loadState.refresh != LoadState.Loading) {
binding.swipeRefreshLayout.isRefreshing = false

6
app/src/main/res/layout/activity_scheduled_status.xml

@ -38,9 +38,9 @@
<com.keylesspalace.tusky.view.BackgroundMessageView
android:id="@+id/errorMessageView"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@android:color/transparent"
android:layout_gravity="center"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
@ -51,4 +51,4 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

Loading…
Cancel
Save