Skip to content

Commit

Permalink
Merge pull request #4893 from okan35/whatsNewSwipeRefresh
Browse files Browse the repository at this point in the history
Pull to Refresh Feed
  • Loading branch information
Stypox authored Nov 20, 2020
2 parents 7217703 + 7a432b3 commit 66d15ea
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
2 changes: 2 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,8 @@ dependencies {
implementation "androidx.room:room-rxjava2:${androidxRoomVersion}"
kapt "androidx.room:room-compiler:${androidxRoomVersion}"

implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"

implementation "com.xwray:groupie:${groupieVersion}"
implementation "com.xwray:groupie-kotlin-android-extensions:${groupieVersion}"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import androidx.core.view.isVisible
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.preference.PreferenceManager
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import icepick.State
import java.util.Calendar
import kotlinx.android.synthetic.main.error_retry.error_button_retry
Expand All @@ -57,6 +58,7 @@ import org.schabi.newpipe.util.Localization

class FeedFragment : BaseListFragment<FeedState, Unit>() {
private lateinit var viewModel: FeedViewModel
private lateinit var swipeRefreshLayout: SwipeRefreshLayout
@State
@JvmField
var listState: Parcelable? = null
Expand Down Expand Up @@ -84,7 +86,8 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {

override fun onViewCreated(rootView: View, savedInstanceState: Bundle?) {
super.onViewCreated(rootView, savedInstanceState)

swipeRefreshLayout = requireView().findViewById(R.id.swiperefresh)
swipeRefreshLayout.setOnRefreshListener { reloadContent() }
viewModel = ViewModelProvider(this, FeedViewModel.Factory(requireContext(), groupId)).get(FeedViewModel::class.java)
viewModel.stateLiveData.observe(viewLifecycleOwner, Observer { it?.let(::handleResult) })
}
Expand Down Expand Up @@ -190,6 +193,7 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {

empty_state_view?.let { animateView(it, false, 0) }
animateView(error_panel, false, 0)
swipeRefreshLayout.isRefreshing = false
}

override fun showEmptyState() {
Expand Down
21 changes: 14 additions & 7 deletions app/src/main/res/layout/fragment_feed.xml
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,22 @@
android:background="?attr/separator_color" />
</RelativeLayout>

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/items_list"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swiperefresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/refresh_root_view"
android:scrollbars="vertical"
android:visibility="gone"
tools:listitem="@layout/list_stream_item"
tools:visibility="visible" />
android:layout_below="@+id/refresh_root_view">

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/items_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:visibility="gone"
tools:listitem="@layout/list_stream_item"
tools:visibility="visible" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

<LinearLayout
android:id="@+id/loading_panel_root"
Expand Down

0 comments on commit 66d15ea

Please sign in to comment.