4. The latest changes
• Noteworthy changes in the latest alpha version
• Activity Results API in activity 1.2.0 alpha
• Fragment Result API in fragment 1.3.0 alpha
7. Activity Results API
• Deprecated method we have been familiar with.
• ActivityResultLauncher and ActivityResultContract
• Resolution for Tight Coupling, Type-Safety, Unwanted NPE
11. Activity Results API
• Available to get result returned like typical Intent
• e.g. Picking Image, Opening Camera using Intent
12. val pickImages = registerForActivityResult(GetContent()){ uri ->
...
}
binding.btnImagePick.setOnClickListener {
pickImages.launch("image/*")
}
13. Activity Results API
• Can handle permission dialog and callback
• Not only single permission but multiple one
14. val permission = registerForActivityResult(RequestPermission()){ enabled ->
// Do what you want
}
binding.btnPermission.setOnClickListener {
permission.launch(android.Manifest.permission.ACCESS_FINE_LOCATION)
}
15. val multiplePermission = registerForActivityResult(RequestMultiplePermissions()) { map ->
// Can do actions we want
}
binding.btnMultipermission.setOnClickListener {
multiplePermission(
arrayOf(
android.Manifest.permission.CAMERA,
android.Manifest.permission.WRITE_EXTERNAL_STORAGE
)
)
}
20. val customActivity = registerForActivityResult(customContract){ activityResult->
// Can do whatever
}
21. Fragment Results API
• To pass data between Fragments
• No need sharedViewModel or Listener in Activity
• FragmentManager in responsible for working on this