
John
13.07.2017
11:40:09
вопрос. Если я внутри этого же класса буду обращаться к recyclerView будет ли выполняться логика внутри get()
нет возможности проверить прямо сейчас, но ответ очень нужен

Евгений
13.07.2017
11:41:48
ну на null Вы же его проверяете

Google

Quantum Harmonizer
13.07.2017
11:42:12

John
13.07.2017
11:42:44
благодарю!

DarkMentat
13.07.2017
13:22:39
Народ, а у тех, у кого работает Anko Preview, какая у вас версия студии?

Dmitriy
13.07.2017
19:59:07
всем привет. я ковыряю фуллстэк пример на котлине и не совсем понимаю, как нужно организовывать работу с css? Я хочу подключить к проекту bootstrap. Я правильно понимаю, что мне нужно каким-то магическим образом сделать так, чтобы в webpack его css loader увидел файлы bootstrap и скомпилировал их? Я не сильно хорошо понимаю, как оно всё работает, поэтому подскажите просто в какую сторону копать.
всё, разобрался

Алексей
14.07.2017
02:32:59
Клуб людей, которые всегда и везде делают деньги!!!
?????
Делюсь мануалами, практическими советами и темами, которые проверены лично на моем опыте и опыте моих близких!
?Вступайте в мой паблик прямо сейчас: @moneycl

Dmitry
14.07.2017
03:24:05
@dshilnikov а можно ссылочку на статью/пример?

Tipok
14.07.2017
03:57:19
Может кто поможет?
http://screenshot.ru/0c60854ee59f40b6b2d70ca8c7be1e1e.png

Михаил
14.07.2017
04:26:52

Boris
14.07.2017
06:01:39
и пометить дженерик как reified

Dmitriy
14.07.2017
06:06:18

Dmitry
14.07.2017
06:10:04
@dshilnikov хорошо, если вспомню напишу

Google

Tipok
14.07.2017
06:18:50
и пометить дженерик как reified
Не затруднит написать пример для фабричной ф-ции, она должна вернуть KClass?
inline fun <reified DATA : Any>DATA.getKClass() = DATA::class

Boris
14.07.2017
10:10:24

Artem
14.07.2017
10:51:55
Сюда: @mobile_jobs

Alexey
14.07.2017
10:51:57
@AnnDemina не туда

Quantum Harmonizer
14.07.2017
10:58:51
@AnnDemina, чтобы опубликовать вакансию в @kotlin_jobs, пишите @HeapyHop или мне.

Nick Senchurin
14.07.2017
11:50:09
господа, всех приветсвую. Меня тут на работе заставили подготовить выступление про что нибудь )) Т.к Котлин подходит под это понятие, не поделитесь какими нибудь презентациями про плюсы котлина )
шапку чата читал, но может быть есть прям готовые вкусные со слайдами)

Tony
14.07.2017
11:50:41
Фига се
885 человек
Рили?
Недавно 100 было

Anton
14.07.2017
11:51:41
когда?)

Quantum Harmonizer
14.07.2017
11:51:49

Alexey
14.07.2017
11:51:50

Quantum Harmonizer
14.07.2017
11:52:02

Konstantin
14.07.2017
11:52:03

Tony
14.07.2017
11:52:46
Аа

Nick Senchurin
14.07.2017
11:54:48
надеюсь состряпаю что-нибудь убедительное для руководства

Google

Nikita
14.07.2017
12:56:58
А как красиво обернуть в лямбду интерфейс с тремя методами?
public void beforeTextChanged(CharSequence s, int start, int count, int after);
public void onTextChanged(CharSequence s, int start, int before, int count);
public void afterTextChanged(Editable s);
При этом два из них мне не нужны

Quantum Harmonizer
14.07.2017
12:59:49
Посмотри, как в Anko сделано.

Nikita
14.07.2017
13:02:01
Где?
Вот этот ужас сжать
message.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
override fun afterTextChanged(s: Editable?) = presenter.onNewText(s.toString())
})

Quantum Harmonizer
14.07.2017
13:09:46
В anko-listeners

Михаил
14.07.2017
13:09:58
fun TextView.addAfterTextChangedListener(block: (Editable) -> Unit) {
addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable) = block(s)
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) = Unit
override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) = Unit
})
}

Nikita
14.07.2017
13:21:03
Ладно. Сделал некрасиво :)

Михаил
14.07.2017
13:21:29

Nikita
14.07.2017
13:31:05
а обязательно использование всех трех методов?
хотя тут как раз 1 и используется, сорян не углядел.

Михаил
14.07.2017
13:33:02
это просто экстеншн
будет применение выглядеть editText.addAfterTextChangedListener {doDeal(it)}
в принципе банальная банальшина


Maxim
14.07.2017
15:38:32
Всем привет!
А подскажите, пожалуйста, как можно вызвать конструктор родителя сначала?
У меня есть класс
open class User(
var id: Int = 0,
var username: String? = null,
var name: String? = null,
var image: String? = null
) : Parcelable { ... }
и есть наследник
open class Profile(
var email: String? = null,
var bio: String? = null,
var birthday: String? = null,
var location: String? = null,
var phone: String? = null,
var website: String? = null,
var isPrivate: Boolean = false,
var isEmailVerified: Boolean = false
) : User() { ... }
студия предлагает такой конструктор, но вываливается Unmarshalling unknown type.
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readByte() != 0.toByte(),
parcel.readByte() != 0.toByte())
Как я понимаю, это из-за того, что сначала записываются поля родителя, но читаются не в том порядке.
Пока сделал так, но как-то не очень это красиво.
constructor(parcel: Parcel) : this() {
// читаю поля родителя
// читаю свои поля
}
Может есть другой способ?


Quantum Harmonizer
14.07.2017
15:47:57
Всем привет!
А подскажите, пожалуйста, как можно вызвать конструктор родителя сначала?
У меня есть класс
open class User(
var id: Int = 0,
var username: String? = null,
var name: String? = null,
var image: String? = null
) : Parcelable { ... }
и есть наследник
open class Profile(
var email: String? = null,
var bio: String? = null,
var birthday: String? = null,
var location: String? = null,
var phone: String? = null,
var website: String? = null,
var isPrivate: Boolean = false,
var isEmailVerified: Boolean = false
) : User() { ... }
студия предлагает такой конструктор, но вываливается Unmarshalling unknown type.
constructor(parcel: Parcel) : this(
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readString(),
parcel.readByte() != 0.toByte(),
parcel.readByte() != 0.toByte())
Как я понимаю, это из-за того, что сначала записываются поля родителя, но читаются не в том порядке.
Пока сделал так, но как-то не очень это красиво.
constructor(parcel: Parcel) : this() {
// читаю поля родителя
// читаю свои поля
}
Может есть другой способ?
Всё зависит также от реализации writeToParcel. В любом случае, рекомендую композицию.


Maxim
14.07.2017
15:51:05
мм, я не понял, что за композиция? %)

Quantum Harmonizer
14.07.2017
15:58:37

Ilya
14.07.2017
16:17:20
Всем привет. Пытаюсь передать в класс, написанный на Kotlin из Java экземпляр closure следующего вида: (Int) -> Unit
Однако, в Java компилятор ругается, что необходимо вернуть какое-то значение, т.к. (Int) -> Unit превращается в Function1<Int, Unit>
Как в такой ситуации поступить? Мне нужно чтоб был void return type

Google

? animufag ?
14.07.2017
16:18:17
мб вернуть юнит?

Ilya
14.07.2017
16:19:07
Я так и делаю, но это же треш

Admin
ERROR: S client not available

? animufag ?
14.07.2017
16:19:23
почему

Igor
14.07.2017
16:19:41

? animufag ?
14.07.2017
16:20:04
да тут все джавашники

Ilya
14.07.2017
16:20:12
Потому что приходится писать
recordingHandler.addProgressListener(progress -> {
synopsisProgressValue.set(progress);
return Unit.INSTANCE;
});
recordingHandler.addTimeListener(time -> {
synopsisTimerText.set(synopsisTimerFormatter.format(time));
return Unit.INSTANCE;
});
Вместо
recordingHandler.addProgressListener(progress -> {
synopsisProgressValue.set(progress);
});
recordingHandler.addTimeListener(time -> {
synopsisTimerText.set(synopsisTimerFormatter.format(time));
});
зачем мне return тип Unit, если мне нужен void?

? animufag ?
14.07.2017
16:21:09
ну можешь сделать возвращаемый тип Nothing
он ближе к воиду
я чёт не помню зачем нужен был юнит, но в общем нужен

Ilya
14.07.2017
16:22:09
Это ничего не меняет ?
Короче в интеропе с джавой такого не сделать, да?

? animufag ?
14.07.2017
16:23:06
лично я - хз. поставил бы на то что да, не сделать

Ilya
14.07.2017
16:23:58
Ясно, запилю значит два интерфейса, что поделать

Quantum Harmonizer
14.07.2017
16:29:16

Ilya
14.07.2017
16:30:16
Ну я так и делаю пока что, но не слишком красиво
Я бы лучше юзал closure + typealias

Quantum Harmonizer
14.07.2017
16:30:58
Можно (Int) -> Unit? и return null.

Google

Ilya
14.07.2017
16:31:41
тот же треш, по сути

Quantum Harmonizer
14.07.2017
16:32:00
А что не треш? Как должно быть?

Ilya
14.07.2017
16:33:15
Хочу чтобы вместо Consumer<T> юзать (T) -> Unit а в интеропе котлин компайлер сам бы въехал что Unit это то же самое, что void в Java и мне не нужен Function1<T, Unit>, а нужен какой-нибудь Consumer<T> со стороны Java.
ну это выглядит как исключительно логичное поведение

Михаил
14.07.2017
16:35:42
согласен. тоже не нравится Unit возвращать в джаве.

Igor
14.07.2017
16:36:02
В смысле в интеропе? Там код генерится один раз, откуда он знает что ты хочешь из java дергать (может анаташку для этого введут когда-нибудь)

Quantum Harmonizer
14.07.2017
16:36:10

Ilya
14.07.2017
16:37:31
Так понятнее?
@angmarr вообще-то документация глаголит что Unit это то же самое, что и void в Java. Так какого чёрта в интеропе этот тезис никак не учитывается?

Igor
14.07.2017
16:38:46
Там кстати и так 22 интрефейса для Function0.., давайте еще 22 для Action

Ilya
14.07.2017
16:39:02
Why not?