// Imports...
import kotlinx.coroutines.*
class MainActivity : AppCompatActivity() {
lateinit var portal: Portal
lateinit var provisionButton: Button
// Your API instance.
private val exchangeApi: Api = Api()
// The user from your API instance.
lateinit var user: User
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
provisionButton = findViewById(R.id.provisionButton)
provisionButton.setOnClickListener { handleProvision() }
}
private fun handleProvision() {
lifecycleScope.launch {
try {
// Retrieve the existing encrypted client backup share from your API.
val backupShare = exchangeApi.getCipherText(user.id)
// Set a new signing share by running provisionWallet.
portal.provisionWallet(backupShare) { status ->
// Ensure UI interactions are done on the main thread
// Do something with the status, such as update a progress bar
// or log the progress
Log.i("[PORTAL]", "Provision wallet status: ${status.status}, is done: ${status.done}")
}
} catch (e: Exception) {
// ❌ Handle any errors provisioning the wallet.
Log.e("[PORTAL]", "Error provisioning wallet: ${e.message}")
}
}
}
}