Rooparsh
07/28/2021, 3:52 AMstartActivityForResult
and overrides onActivityResult
.
I am using Google Pay Wallet SDK and it has a function which simply accepts request code and internally calls startActivityForResult
. Can I do something at my end to make the code more modular using ActivityContracts?
Attaching sample code in thread.button.setOnClickListener{
AutoResolveHelper.resolveTask( GoogleClient.googlePaymentsClient.loadPaymentData(request), this,
REQ_CODE_PAYMENT_DATA
)
}
override fun onActivityResult(
requestCode: Int,
resultCode: Int,
data: Intent?
) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
REQ_CODE_PAYMENT_DATA -> {
when (resultCode) {
RESULT_OK -> {
// do something
}
RESULT_CANCELED -> {
// handle cancel
}
AutoResolveHelper.RESULT_ERROR -> {
//handle error
}
}
}
}
}
Jason Zoladz
08/04/2021, 2:14 PMval launcher = rememberLauncherForActivityResult(contract = ActivityResultContracts.StartActivityForResult(), onResult = { result ->
/* Do something with result */
})
launcher.launch(Intent(context, SomeActivityClass::class.java))