Size: a a a

Kotlin Community

2019 October 28

AM

Andrew Mikhaylov in Kotlin Community
Maxim Motorniy
Коллеги, подскажите
fun observeLocation(): Flow<UserLocation> = callbackFlow { callback = { offer(it) } }
что я делаю не так?
Получаю эксепшн ClosedSendChannelException: Channel was closed
Загляни в джавадок к callbackFlow
источник

AM

Andrew Mikhaylov in Kotlin Community
Там пример кода, в конце которого есть важный кусочек с отпиской. Он как раз среди прочего отвечает за то, чтобы канал пожил, если я ничего, конечно, не путаю.
источник

MM

Maxim Motorniy in Kotlin Community
Andrew Mikhaylov
Там пример кода, в конце которого есть важный кусочек с отпиской. Он как раз среди прочего отвечает за то, чтобы канал пожил, если я ничего, конечно, не путаю.
Да, меня как раз этот кусок и смутил. Спасибо, попробую добавить
источник

BP

Bogdan Panchenko in Kotlin Community
Andrey Antipov
sealed class Ctx
class SimpleCtx : Ctx()
class ComplexCtx : Ctx()

typealias SimpleCtxF<T> = (SimpleCtx) -> T
typealias ComplexCtxF<T> = (ComplexCtx) -> T

fun <T> evalSimple(simpleCtxF: SimpleCtxF<T>): T = evalImpl(SimpleCtx(), simpleCtxF)

fun <T> evalComplex(complexCtxF: ComplexCtxF<T>): T = evalImpl(ComplexCtx(), complexCtxF)

private fun <CTX : Ctx, T> evalImpl(ctx: CTX, f: (CTX) -> T): T {
   /** some common actions */
   val isComplex = when (ctx as Ctx) {
       is SimpleCtx -> false
       is ComplexCtx -> true
   }
   return try {
       if (isComplex) {
           /** pre eval actions for complex context */
       }
       val t = f(ctx)
       if (isComplex) {
           /** on success actions for complex context */
       }
       t
   } catch (t: Throwable) {
       if (isComplex) {
           /** on failure actions for complex context */
       }
       throw t
   } finally {
       if (isComplex) {
           /** cleanup actions for complex context */
       }
   }
}
Интерсно, с телефона не доконца все ясно
источник
2019 October 29

LS

Lasman Show in Kotlin Community
привет котам
источник

n

nasSA in Kotlin Community
Здороу
источник

См

Сломанный механизм in Kotlin Community
Йо
источник

AL

Alexander Levin in Kotlin Community
источник

LS

Lasman Show in Kotlin Community
Я не понимаю как библиотеку подключать к проекту https://github.com/VKCOM/vk-java-sdk
источник

AZ

Alex Z in Kotlin Community
Lasman Show
Я не понимаю как библиотеку подключать к проекту https://github.com/VKCOM/vk-java-sdk
источник

VP

Vladimir Petrakovich in Kotlin Community
Lasman Show
Я не понимаю как библиотеку подключать к проекту https://github.com/VKCOM/vk-java-sdk
Для начала стоит втащить в проект нормальную систему сборки (gradle), и там уже это делается одной строчкой.
Когда проект собирает IDEA, библиотеки подключаются не очень хорошо, хотя это и возможно через Project Structure -> Modules -> Dependencies.
А так вопрос уровня @kotlin_start/@javastart
источник

t

th9766319 in Kotlin Community
oh ,can not understand
источник

VM

Vadim Morozov in Kotlin Community
Такой вот вопрос
если я проинициилизоровал свой presenter как null
но позже в onStart засэтил ему значение
обязательно ли мне дальше во фрагменте во всех местах писать что presenter nullable?
источник

M

Mi in Kotlin Community
Vadim Morozov
Такой вот вопрос
если я проинициилизоровал свой presenter как null
но позже в onStart засэтил ему значение
обязательно ли мне дальше во фрагменте во всех местах писать что presenter nullable?
Можете использовать lateinit var
источник

Kd

Konstantin dmz9 in Kotlin Community
Vadim Morozov
Такой вот вопрос
если я проинициилизоровал свой presenter как null
но позже в onStart засэтил ему значение
обязательно ли мне дальше во фрагменте во всех местах писать что presenter nullable?
lateinit var
источник

VM

Vadim Morozov in Kotlin Community
но при lateinit'e проверка что мой presenter is null бесмысленна
источник

QH

Quantum Harmonizer in Kotlin Community
Vadim Morozov
но при lateinit'e проверка что мой presenter is null бесмысленна
вроде же именно это и нужно было?
источник

VM

Vadim Morozov in Kotlin Community
не уверен
но попробую описать и  возможно  получиться разобраться

мне необходимо тянуть данные один раз
это я решил делать в методе onStart
но есть дополнительные кейсы когда я ещё тяну данные
поэтому я подумал что было бы неплохо занулить мои презентеры, откуда я собственно тяну данные
и в методе onStart смотреть что если presenter == null
тогда я сэчу презентер
presenter = SomePresenter()
и после этого уже тяну данные
источник

QH

Quantum Harmonizer in Kotlin Community
Vadim Morozov
не уверен
но попробую описать и  возможно  получиться разобраться

мне необходимо тянуть данные один раз
это я решил делать в методе onStart
но есть дополнительные кейсы когда я ещё тяну данные
поэтому я подумал что было бы неплохо занулить мои презентеры, откуда я собственно тяну данные
и в методе onStart смотреть что если presenter == null
тогда я сэчу презентер
presenter = SomePresenter()
и после этого уже тяну данные
не знаю, что такое «тянуть данные», но тогда нужен как раз nullable
источник

VM

Vadim Morozov in Kotlin Community
Quantum Harmonizer
не знаю, что такое «тянуть данные», но тогда нужен как раз nullable
тогда возвращаясь к предыдущему вопросу

везде где дальше используется мой presenter
мне нужно будет изменять
presenter.setActiveGuids()
на
presenter?.setActiveGuids() ?: ""
?
источник