Skip to content

Commit 72c8376

Browse files
committed
Improve onBackPressedCallback behavior
1 parent 44720d7 commit 72c8376

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

app/src/main/java/com/ricknout/rugbyranker/ui/rankings/RankingsFragment.kt

+15-15
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import com.ricknout.rugbyranker.vo.WorldRugbyRanking
1818
import dagger.android.support.DaggerFragment
1919
import javax.inject.Inject
2020
import android.view.inputmethod.InputMethodManager
21+
import androidx.activity.OnBackPressedCallback
2122
import androidx.core.view.isInvisible
2223
import androidx.core.view.isVisible
2324
import androidx.emoji.text.EmojiCompat
@@ -73,6 +74,18 @@ class RankingsFragment : DaggerFragment() {
7374
}
7475
})
7576

77+
private val onBackPressedCallback = OnBackPressedCallback {
78+
if (::bottomSheetBehavior.isInitialized && bottomSheetBehavior.state == BottomSheetBehavior.STATE_EXPANDED) {
79+
if (bottomSheetBehavior.isHideable && bottomSheetBehavior.skipCollapsed) {
80+
bottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN
81+
} else {
82+
bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
83+
}
84+
return@OnBackPressedCallback true
85+
}
86+
false
87+
}
88+
7689
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?
7790
= inflater.inflate(R.layout.fragment_rankings, container, false)
7891

@@ -99,8 +112,8 @@ class RankingsFragment : DaggerFragment() {
99112
setupSnackbars()
100113
setupViewModel()
101114
setupSwipeRefreshLayout()
102-
setupOnBackPressed()
103115
setTitle()
116+
requireActivity().addOnBackPressedCallback(onBackPressedCallback)
104117
}
105118

106119
override fun onSaveInstanceState(outState: Bundle) {
@@ -320,20 +333,6 @@ class RankingsFragment : DaggerFragment() {
320333
}
321334
}
322335

323-
private fun setupOnBackPressed() {
324-
requireActivity().addOnBackPressedCallback {
325-
if (::bottomSheetBehavior.isInitialized && bottomSheetBehavior.state == BottomSheetBehavior.STATE_EXPANDED) {
326-
if (bottomSheetBehavior.isHideable && bottomSheetBehavior.skipCollapsed) {
327-
bottomSheetBehavior.state = BottomSheetBehavior.STATE_HIDDEN
328-
} else {
329-
bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
330-
}
331-
return@addOnBackPressedCallback true
332-
}
333-
false
334-
}
335-
}
336-
337336
private fun hasMatchResults() = viewModel.hasMatchResults()
338337

339338
private fun getMatchResultCount() = viewModel.getMatchResultCount()
@@ -528,6 +527,7 @@ class RankingsFragment : DaggerFragment() {
528527
override fun onDestroyView() {
529528
hideSoftInput()
530529
viewModel.resetAddOrEditMatchInputValid()
530+
requireActivity().removeOnBackPressedCallback(onBackPressedCallback)
531531
super.onDestroyView()
532532
}
533533

0 commit comments

Comments
 (0)