From 745773b207b339ea33f32a33cbecef164b22e849 Mon Sep 17 00:00:00 2001 From: okan35 Date: Sun, 15 Nov 2020 17:54:40 +0100 Subject: [PATCH 1/3] swipe to refresh added --- app/build.gradle | 1 + .../schabi/newpipe/local/feed/FeedFragment.kt | 10 +++++++ app/src/main/res/layout/fragment_feed.xml | 28 +++++++++++++------ 3 files changed, 31 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e78d5b144..035f6f89f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -167,6 +167,7 @@ dependencies { testImplementation 'junit:junit:4.13.1' testImplementation 'org.mockito:mockito-core:3.3.3' + implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" androidTestImplementation "androidx.test.ext:junit:1.1.1" androidTestImplementation "androidx.room:room-testing:${androidxRoomVersion}" diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index e4d10fb61..91f3acb53 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -34,6 +34,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 @@ -56,6 +57,7 @@ import org.schabi.newpipe.util.Localization class FeedFragment : BaseListFragment() { private lateinit var viewModel: FeedViewModel + private lateinit var swipeRefreshLayout: SwipeRefreshLayout @State @JvmField var listState: Parcelable? = null @@ -78,11 +80,16 @@ class FeedFragment : BaseListFragment() { } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_feed, container, false) } 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) }) @@ -189,6 +196,9 @@ class FeedFragment : BaseListFragment() { empty_state_view?.let { animateView(it, false, 0) } animateView(error_panel, false, 0) + if (swipeRefreshLayout.isRefreshing){ + swipeRefreshLayout.isRefreshing = false + } } override fun showEmptyState() { diff --git a/app/src/main/res/layout/fragment_feed.xml b/app/src/main/res/layout/fragment_feed.xml index 8d5c64f8d..19cc34106 100644 --- a/app/src/main/res/layout/fragment_feed.xml +++ b/app/src/main/res/layout/fragment_feed.xml @@ -1,10 +1,14 @@ - + + - + android:layout_below="@+id/refresh_root_view"> + + + Date: Tue, 17 Nov 2020 19:23:29 +0100 Subject: [PATCH 2/3] removed unnecessary spaces - code change --- .../org/schabi/newpipe/local/feed/FeedFragment.kt | 12 +++--------- app/src/main/res/layout/fragment_feed.xml | 9 ++------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt index 91f3acb53..855573461 100644 --- a/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt @@ -57,7 +57,7 @@ import org.schabi.newpipe.util.Localization class FeedFragment : BaseListFragment() { private lateinit var viewModel: FeedViewModel - private lateinit var swipeRefreshLayout: SwipeRefreshLayout + private lateinit var swipeRefreshLayout: SwipeRefreshLayout @State @JvmField var listState: Parcelable? = null @@ -80,17 +80,13 @@ class FeedFragment : BaseListFragment() { } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.fragment_feed, container, false) } override fun onViewCreated(rootView: View, savedInstanceState: Bundle?) { super.onViewCreated(rootView, savedInstanceState) swipeRefreshLayout = requireView().findViewById(R.id.swiperefresh) - swipeRefreshLayout.setOnRefreshListener { - reloadContent() - } - + swipeRefreshLayout.setOnRefreshListener { reloadContent() } viewModel = ViewModelProvider(this, FeedViewModel.Factory(requireContext(), groupId)).get(FeedViewModel::class.java) viewModel.stateLiveData.observe(viewLifecycleOwner, Observer { it?.let(::handleResult) }) } @@ -196,9 +192,7 @@ class FeedFragment : BaseListFragment() { empty_state_view?.let { animateView(it, false, 0) } animateView(error_panel, false, 0) - if (swipeRefreshLayout.isRefreshing){ - swipeRefreshLayout.isRefreshing = false - } + swipeRefreshLayout.isRefreshing = false } override fun showEmptyState() { diff --git a/app/src/main/res/layout/fragment_feed.xml b/app/src/main/res/layout/fragment_feed.xml index 19cc34106..9f873cea1 100644 --- a/app/src/main/res/layout/fragment_feed.xml +++ b/app/src/main/res/layout/fragment_feed.xml @@ -1,14 +1,10 @@ - - - - + Date: Tue, 17 Nov 2020 19:25:49 +0100 Subject: [PATCH 3/3] gradle change --- app/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 035f6f89f..7253f1d82 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -167,7 +167,6 @@ dependencies { testImplementation 'junit:junit:4.13.1' testImplementation 'org.mockito:mockito-core:3.3.3' - implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" androidTestImplementation "androidx.test.ext:junit:1.1.1" androidTestImplementation "androidx.room:room-testing:${androidxRoomVersion}" @@ -206,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}"