diff --git a/app/src/main/java/com/razeware/emitron/di/modules/NetModule.kt b/app/src/main/java/com/razeware/emitron/di/modules/NetModule.kt
index 82d84df2..8ce4d014 100644
--- a/app/src/main/java/com/razeware/emitron/di/modules/NetModule.kt
+++ b/app/src/main/java/com/razeware/emitron/di/modules/NetModule.kt
@@ -55,7 +55,10 @@ class NetModule {
authInterceptor: AuthInterceptorImpl
): OkHttpClient =
OkHttpClient.Builder()
- .connectTimeout(10, TimeUnit.SECONDS)
+ .connectTimeout(30, TimeUnit.SECONDS)
+ .callTimeout(30, TimeUnit.SECONDS)
+ .readTimeout(30, TimeUnit.SECONDS)
+ .writeTimeout(30, TimeUnit.SECONDS)
.addNetworkInterceptor(authInterceptor)
.addInterceptor(loggingInterceptor)
.build()
diff --git a/app/src/main/java/com/razeware/emitron/ui/library/LibraryFragment.kt b/app/src/main/java/com/razeware/emitron/ui/library/LibraryFragment.kt
index 8dd10fd9..ed92dedd 100644
--- a/app/src/main/java/com/razeware/emitron/ui/library/LibraryFragment.kt
+++ b/app/src/main/java/com/razeware/emitron/ui/library/LibraryFragment.kt
@@ -2,12 +2,10 @@ package com.razeware.emitron.ui.library
import android.annotation.SuppressLint
import android.os.Bundle
-import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.inputmethod.EditorInfo.*
-import androidx.appcompat.widget.PopupMenu
import androidx.core.view.isVisible
import androidx.core.view.setPadding
import androidx.fragment.app.activityViewModels
@@ -151,6 +149,10 @@ class LibraryFragment : DaggerFragment() {
binding.textInputLayoutSearch.setEndIconOnClickListener {
handleQueryCleared()
}
+
+ binding.libraryPullToRefresh.setOnRefreshListener {
+ loadCollections()
+ }
}
private fun showRecentSearchControls() {
@@ -224,6 +226,10 @@ class LibraryFragment : DaggerFragment() {
toggleControls(true, uiState == UiStateManager.UiState.INIT_EMPTY)
hideRecentSearchControls()
progressDelegate.hideProgressView()
+ binding.libraryPullToRefresh.isRefreshing = false
+ }
+ UiStateManager.UiState.INIT_FAILED -> {
+ loadCollections() // retry
}
else -> {
// Handled by the adapter
diff --git a/app/src/main/res/layout/fragment_library.xml b/app/src/main/res/layout/fragment_library.xml
index 8d1a4886..a507e4cd 100644
--- a/app/src/main/res/layout/fragment_library.xml
+++ b/app/src/main/res/layout/fragment_library.xml
@@ -163,24 +163,31 @@
app:icon="@drawable/ic_material_icon_sort"
app:iconPadding="@dimen/button_padding_internal_dense"
app:iconTint="@color/colorIcon2"
- app:layout_constraintBottom_toTopOf="@+id/recycler_view_library"
+ app:layout_constraintBottom_toTopOf="@+id/library_pull_to_refresh"
app:layout_constraintEnd_toEndOf="@id/guideline_right"
app:layout_constraintStart_toEndOf="@+id/text_library_count"
app:layout_constraintTop_toBottomOf="@+id/scroll_view_library_filter" />
-
+ app:layout_constraintTop_toBottomOf="@+id/text_library_count">
+
+
+