- 简化对 registerForActivityResult 的使用.
- 使用者将不再需要在特定的生命周期去管理 registerForActivityResult 的调用.
- 支持流式调用,避免 callback hell.
- 为了快速进行开发,内置了一个 SimpleLauncher,如果它不能满足需求,则请扩展 BaseLauncher.
- 更多功能请参照 demo.
implementation("io.github.clistery:stream-arl:1.0.0")
val permissionsLauncher: PermissionsLauncher = bindLauncher(this)
val openMediaLauncher: SimpleLauncher<Array<String>, Uri> = simpleLauncher(ContractType.OpenDocument, this)
permissionsLauncher
.input(arrayOf(android.Manifest.permission.READ_EXTERNAL_STORAGE))
.next(openMediaLauncher)
.input(arrayOf("image/*"))
.checker { null != it }
.launch()
.onSuccess {
setResultTxt(it.toString())
}.onFailure {
setResultTxt(it.stackTraceToString())
}