@@ -32,7 +32,6 @@ import androidx.appcompat.app.AlertDialog
3232import androidx.core.content.edit
3333import androidx.core.os.bundleOf
3434import androidx.core.view.isVisible
35- import androidx.lifecycle.Observer
3635import androidx.lifecycle.ViewModelProvider
3736import androidx.preference.PreferenceManager
3837import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
@@ -83,13 +82,13 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
8382 }
8483
8584 override fun onViewCreated (rootView : View , savedInstanceState : Bundle ? ) {
86- super .onViewCreated(rootView, savedInstanceState)
85+ // super.onViewCreated() calls initListeners() which require the binding to be initialized
8786 _feedBinding = FragmentFeedBinding .bind(rootView)
8887 _errorBinding = feedBinding.errorPanel
88+ super .onViewCreated(rootView, savedInstanceState)
8989
90- feedBinding.swiperefresh.setOnRefreshListener { reloadContent() }
9190 viewModel = ViewModelProvider (this , FeedViewModel .Factory (requireContext(), groupId)).get(FeedViewModel ::class .java)
92- viewModel.stateLiveData.observe(viewLifecycleOwner, Observer { it?.let (::handleResult) })
91+ viewModel.stateLiveData.observe(viewLifecycleOwner) { it?.let (::handleResult) }
9392 }
9493
9594 override fun onPause () {
@@ -112,10 +111,8 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
112111
113112 override fun initListeners () {
114113 super .initListeners()
115- // Using the non-null property may result in a NullPointerException
116- _feedBinding ?.refreshRootView?.setOnClickListener {
117- triggerUpdate()
118- }
114+ feedBinding.refreshRootView.setOnClickListener { reloadContent() }
115+ feedBinding.swiperefresh.setOnRefreshListener { reloadContent() }
119116 }
120117
121118 // /////////////////////////////////////////////////////////////////////////
@@ -317,11 +314,10 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
317314 // /////////////////////////////////////////////////////////////////////////
318315
319316 override fun doInitialLoadLogic () {}
320- override fun reloadContent () = triggerUpdate()
321317 override fun loadMoreItems () {}
322318 override fun hasMoreItems () = false
323319
324- private fun triggerUpdate () {
320+ override fun reloadContent () {
325321 getActivity()?.startService(
326322 Intent (requireContext(), FeedLoadService ::class .java).apply {
327323 putExtra(FeedLoadService .EXTRA_GROUP_ID , groupId)
0 commit comments