Я пользуюсь Play Services Auth api Phone и пока у меня есть следующие
fun startSmsListener() {
val client = SmsRetriever.getClient(applicationContext /* context */);
val task = client.startSmsRetriever();
task.addOnSuccessListener(object : OnSuccessListener<Void> {
override fun onSuccess(p0: Void?) {
//do somethin
}
})
task.addOnFailureListener(object : OnFailureListener {
override fun onFailure(p0: Exception) {
//Handle error
}
})
}
Теперь я хочу поместить это в класс SmsManager и преобразовать его в Single / Observable, чтобы я мог обработать его реактивным способом в моей модели представления. Как я могу это сделать?
Пока у меня есть это:
var single = Single.create(SingleOnSubscribe<Void> { e ->
val task = client.startSmsRetriever()
task.addOnSuccessListener {
e.onSuccess(it)
}
task.addOnFailureListener {
e.onError(it)
}
})
Но я не уверен, является ли этот код правильным или нет, есть ли что-то, чего я пропускаю, например, удаление слушателей после удаления.
Любая помощь?