From d3d05d613ddca6fc298ef68b36a02ff9c65e801e Mon Sep 17 00:00:00 2001 From: Stypox Date: Sat, 16 Jan 2021 18:38:29 +0100 Subject: [PATCH] Fix reload feed button does nothing initListeners was being called before the bindings were assigned, and therefore the click listener was never setup --- .../schabi/newpipe/local/feed/FeedFragment.kt | 16 ++++++---------- .../subscription/item/PickerSubscriptionItem.kt | 2 +- 2 files changed, 7 insertions(+), 11 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 6e95f009f..878ce18e8 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 @@ -32,7 +32,6 @@ import androidx.appcompat.app.AlertDialog import androidx.core.content.edit import androidx.core.os.bundleOf import androidx.core.view.isVisible -import androidx.lifecycle.Observer import androidx.lifecycle.ViewModelProvider import androidx.preference.PreferenceManager import androidx.swiperefreshlayout.widget.SwipeRefreshLayout @@ -83,13 +82,13 @@ class FeedFragment : BaseListFragment() { } override fun onViewCreated(rootView: View, savedInstanceState: Bundle?) { - super.onViewCreated(rootView, savedInstanceState) + // super.onViewCreated() calls initListeners() which require the binding to be initialized _feedBinding = FragmentFeedBinding.bind(rootView) _errorBinding = feedBinding.errorPanel + super.onViewCreated(rootView, savedInstanceState) - feedBinding.swiperefresh.setOnRefreshListener { reloadContent() } viewModel = ViewModelProvider(this, FeedViewModel.Factory(requireContext(), groupId)).get(FeedViewModel::class.java) - viewModel.stateLiveData.observe(viewLifecycleOwner, Observer { it?.let(::handleResult) }) + viewModel.stateLiveData.observe(viewLifecycleOwner) { it?.let(::handleResult) } } override fun onPause() { @@ -112,10 +111,8 @@ class FeedFragment : BaseListFragment() { override fun initListeners() { super.initListeners() - // Using the non-null property may result in a NullPointerException - _feedBinding?.refreshRootView?.setOnClickListener { - triggerUpdate() - } + feedBinding.refreshRootView.setOnClickListener { reloadContent() } + feedBinding.swiperefresh.setOnRefreshListener { reloadContent() } } // ///////////////////////////////////////////////////////////////////////// @@ -317,11 +314,10 @@ class FeedFragment : BaseListFragment() { // ///////////////////////////////////////////////////////////////////////// override fun doInitialLoadLogic() {} - override fun reloadContent() = triggerUpdate() override fun loadMoreItems() {} override fun hasMoreItems() = false - private fun triggerUpdate() { + override fun reloadContent() { getActivity()?.startService( Intent(requireContext(), FeedLoadService::class.java).apply { putExtra(FeedLoadService.EXTRA_GROUP_ID, groupId) diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt index 3540e6938..d4d4e7db1 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/item/PickerSubscriptionItem.kt @@ -46,6 +46,6 @@ data class PickerSubscriptionItem( fun updateSelected(containerView: View, isSelected: Boolean) { this.isSelected = isSelected PickerSubscriptionItemBinding.bind(containerView).selectedHighlight - .animate(isSelected, 150, AnimationType.LIGHT_SCALE_AND_ALPHA) + .animate(isSelected, 150, AnimationType.LIGHT_SCALE_AND_ALPHA) } }