Size: a a a

Kotlin Community

2019 November 19

(

( in Kotlin Community
unrelated:
Ни у кого не было вот такой ерунды https://pastebin.com/eb4JbMwV
При попытке Build -> Build Project в идее?
С логов насколько я понял с сериализацией проблемы, но я сто лет не менял ни её версию, ни котлина и всё работало
источник

LS

Leonid Startsev in Kotlin Community
а старый serialization IDE плагин (от 1.2.x) удалён?
источник

(

( in Kotlin Community
Leonid Startsev
а старый serialization IDE плагин (от 1.2.x) удалён?
в градле у меня стоит 1.3.40
источник

АГ

Александр Горшков in Kotlin Community
Всем привет. Делаю авторизацию через Google, возник вопрос: возможно ли сделать это через одну корутину?

Например, до этого делал через Rx что-то типа:
Был класс, в котором был Maybe.create(), где был emitter, и дальше в него в метод onActivityResult вкидывался результат. Поэтому, наружу у меня был один метод

public Maybe<SocialInfo> doAuth()
который показывал экран с авторизацией и возвращал значение.

Вот тут не могу понять, как можно сделать, чтобы было
suspend fun doAuth() : SocialInfo

учитывая то, что есть метод onActivityResult

Смотрел в сторону continuation, но не уверен, что он тут подходит
источник

ch

central hardware in Kotlin Community
Александр Горшков
Всем привет. Делаю авторизацию через Google, возник вопрос: возможно ли сделать это через одну корутину?

Например, до этого делал через Rx что-то типа:
Был класс, в котором был Maybe.create(), где был emitter, и дальше в него в метод onActivityResult вкидывался результат. Поэтому, наружу у меня был один метод

public Maybe<SocialInfo> doAuth()
который показывал экран с авторизацией и возвращал значение.

Вот тут не могу понять, как можно сделать, чтобы было
suspend fun doAuth() : SocialInfo

учитывая то, что есть метод onActivityResult

Смотрел в сторону continuation, но не уверен, что он тут подходит
А зачем для одного действия в фоне использовать карунтины?
источник

АГ

Александр Горшков in Kotlin Community
Немного не понял, для какого одного действия?
источник

ch

central hardware in Kotlin Community
Александр Горшков
Немного не понял, для какого одного действия?
Запрос к Гугла
источник

I

Igor in Kotlin Community
Александр Горшков
Всем привет. Делаю авторизацию через Google, возник вопрос: возможно ли сделать это через одну корутину?

Например, до этого делал через Rx что-то типа:
Был класс, в котором был Maybe.create(), где был emitter, и дальше в него в метод onActivityResult вкидывался результат. Поэтому, наружу у меня был один метод

public Maybe<SocialInfo> doAuth()
который показывал экран с авторизацией и возвращал значение.

Вот тут не могу понять, как можно сделать, чтобы было
suspend fun doAuth() : SocialInfo

учитывая то, что есть метод onActivityResult

Смотрел в сторону continuation, но не уверен, что он тут подходит
Создай CompletableDeferred<SocialInfo> и вызове на нем await
Ну и в onActivityResult вызове на нем complete с SocialInfo
источник

АГ

Александр Горшков in Kotlin Community
Igor
Создай CompletableDeferred<SocialInfo> и вызове на нем await
Ну и в onActivityResult вызове на нем complete с SocialInfo
Спасибо, сейчас попробую
источник

DA

Denis Aleksandrov in Kotlin Community
susoendCoroutine вилимо?
источник

KZ

Konstantin Zolotov in Kotlin Community
Александр Горшков
Спасибо, сейчас попробую
Если что, смерть активити пока что нормально не обработать. Но в rx у вас те же проблемы.
источник

I

Igor in Kotlin Community
Denis Aleksandrov
susoendCoroutine вилимо?
Можно и так, но имхо слишком это низкоуровневый инструмент (еще и в проде можно креш словить, если два раз вызвать случайно)
источник

АГ

Александр Горшков in Kotlin Community
Igor
Создай CompletableDeferred<SocialInfo> и вызове на нем await
Ну и в onActivityResult вызове на нем complete с SocialInfo
Немного не понял тебя. Скажи, а функция auth() что именно будет возвращать? CompletableDeferred.await() ?
источник

I

Igor in Kotlin Community
Александр Горшков
Немного не понял тебя. Скажи, а функция auth() что именно будет возвращать? CompletableDeferred.await() ?
Возвращать будет SocialInfo
А внутри будет вызов await
источник

AN

Alexander Nozik in Kotlin Community
Ів∆н Чернухін
Да ладно вам, не так плохо было с джавой)
отлично. Особенно с 8
источник

I

Igor in Kotlin Community
Александр Горшков
Немного не понял тебя. Скажи, а функция auth() что именно будет возвращать? CompletableDeferred.await() ?
Просто вместо emitter ты будешь сохранять CompletableDeferred<SocialInfo> и в onAC дергать сomplete

PS это вообще android, так что => @kotlin_mobile
источник

АГ

Александр Горшков in Kotlin Community
Igor
Просто вместо emitter ты будешь сохранять CompletableDeferred<SocialInfo> и в onAC дергать сomplete

PS это вообще android, так что => @kotlin_mobile
Так и сделал, но что-то не работает)

val res = viewModelScope.async(Dispatchers.IO) {
   
authInteractor.auth()
}
val k = 0

Если поставлю брейкпоинт на k=0, то туда сразу переходит при клике на кнопку и после onAC не переходит туда
источник

АГ

Александр Горшков in Kotlin Community
Igor
Просто вместо emitter ты будешь сохранять CompletableDeferred<SocialInfo> и в onAC дергать сomplete

PS это вообще android, так что => @kotlin_mobile
Хорошо, спрошу там)
источник

AO

Alexey Otts in Kotlin Community
Александр Горшков
Так и сделал, но что-то не работает)

val res = viewModelScope.async(Dispatchers.IO) {
   
authInteractor.auth()
}
val k = 0

Если поставлю брейкпоинт на k=0, то туда сразу переходит при клике на кнопку и после onAC не переходит туда
Дак у тебя async
источник

AO

Alexey Otts in Kotlin Community
Есесно он сразу туда переходит
источник