Skip to content

Instantly share code, notes, and snippets.

@bng86
Created January 5, 2021 15:33
Show Gist options
  • Save bng86/be37d4eb4939231c908824353e2d15c6 to your computer and use it in GitHub Desktop.
Save bng86/be37d4eb4939231c908824353e2d15c6 to your computer and use it in GitHub Desktop.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val fragment = MainFragment()
supportFragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit()
}
override fun onBackPressed() {
if (!onBackPressedDispatcher.hasEnabledCallbacks()) {
// handle activity back press when no other dispatch enabled
Log.e(MainActivity::class.java.simpleName, "MainActivity handleOnBackPressed")
}
super.onBackPressed()
}
}
class MainFragment : Fragment(R.layout.fragment_main) {
private lateinit var callback: OnBackPressedCallback
override fun onAttach(context: Context) {
super.onAttach(context)
callback = object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
Log.e(MainFragment::class.java.simpleName, "MainFragment handleOnBackPressed")
// do something and release back press call back
callback.isEnabled = false
}
}
requireActivity().onBackPressedDispatcher.addCallback(callback)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment