Anonymous
Как этот callback передавать в презентер ? Как знать когда данные уже можно передать ?
Павел
Как этот callback передавать в презентер ? Как знать когда данные уже можно передать ?
Rx, интерфейсы. Интерфейс передаешь аргументом либо через Даггер/Мокси di
SLS
там 40 классов с тестами, иногда запускаются, но чаще всего эта фигня
Anonymous
Нужно без Rx решить задачу
Павел
Нужно без Rx решить задачу
Future, asynctask, coroutines, threads
Нужно без Rx решить задачу
зачем тебе ретрофит если нужен жсон?
Павел
Async это жб метод. Но не забудь про утечки
это костыли какие-то
обычный хттп клиент заюзай и все
Anonymous
Так это будет то самое что синхронный метод retrofit call.exucute() ?
Павел
Либо ты делаешь execute в побочном потоке, либо callasync в основном
Artur
Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type). Как найти проблемный класс? Room
Ivansuper
тот у которого нет конструктора
Неправильно. Тот, у которого конструктор не удовлетворяющий требованиям
Artur
тот у которого нет конструктора
всего 2 модели, у всех у них есть паблик пустой конструктор
Ivansuper
Ибо без конструктора тоже ок
Artur
все поля паблик
Ivansuper
всего 2 модели, у всех у них есть паблик пустой конструктор
Посмотри не повисла ли где аннотация Entity
Artur
только на двух моделях она есть
Artur
но у меня есть класс для Relation
Artur
там идёт Embeded + Relation на две таблицы
Artur
one-to-many
Ivansuper
А, да, там pojo тоже упоминается
Ivansuper
У них тоже конструкторы подходят?
Artur
да я делал уже и пустой
Artur
и без
Artur
и чтобы такие же поля были
Artur
public class LocalChatWithMembers { @Embedded public LocalChat chat; @Relation(parentColumn = "id", entityColumn = "chat_id", entity = LocalChatMember.class) public List<LocalChatMember> members; }
Ivansuper
Вынеси везде конструкторы, где классы касаются модели
Ivansuper
Что то где то висит
Artur
вынести это типо создать пустые?
Ivansuper
Но обычно по варнингу компиляции можно кликнуть и попасть на класс
Ivansuper
вынести это типо создать пустые?
Без явных конструкторов вообще
Ivansuper
Все что ты получаешь из Room им же и инстанциируется. Он не знает как работать со специальными конструкторами
Artur
аааа
Artur
вот что он пишет в другом месте
Artur
error: Cannot figure out how to read this field from a cursor. error: Cannot find the parent entity column id in .chat.local.member.LocalChatWithMembers. Options: chat
Artur
типо как я понимаю не может с маппить модель LocalChat
Ivansuper
Покажи содержимое LocalChatWithMembers
Artur
видимо есть нюансы с название филда этого если он эмбэдэд
Artur
public class LocalChatWithMembers { @Embedded public LocalChat chat; @Relation(parentColumn = "id", entityColumn = "chat_id", entity = LocalChatMember.class) public List<LocalChatMember> members; }
Ivansuper
LocalChat это entity?
Artur
The query returns some columns [id, name, page, description, group, image_url, new_messages_count] which are not use by .local.member.LocalChatWithMembers. You can use @ColumnInfo annotation on the fields to specify the mapping. .chat.local.member.LocalChatWithMembers has some fields [chat] which are not returned by the query. If they are not supposed to be read from the result, you can mark them with @Ignore annotation. You can suppress this warning by annotating the method with @SuppressWarnings(RoomWarnings.CURSOR_MISMATCH). Columns returned by the query: id, name, page, description, group, image_url, new_messages_count. Fields in .local.member.LocalChatWithMembers: chat.
Artur
дада
Ivansuper
С embedded очень много подводных камней
Artur
это Энтити
Ivansuper
Сделай LocalChatWithMembers extends LocalChat
Artur
@Entity(tableName = "chats") public class LocalChat { @PrimaryKey @ColumnInfo(name = "id") public long id; @Ignore public List<LocalChatMember> members; public LocalChat() { } }
Ivansuper
И положи просто поле с Relation
Artur
не все поля скинул, чтобы не флудить
Ivansuper
Не надо ColumnInfo если ты даже имя не меняешь
Artur
но примерно так
Artur
насчёт ColumnInfo я помню )
Artur
но мне так удобнее
Ivansuper
Суть в том, что рум дропает аннотации PrimaryKey из Embedded
Ivansuper
Возможно это тут замешано
Artur
ну вроде как собирается
Artur
что то всё таки с эмбэдод
Artur
если наследоваться
Ivansuper
Никогда не использовал в качестве эмбеддед энтити. Как то не поворачивалась рука
Ivansuper
Кстати будь аккуратнее с эмбеддед и где есть риск, указывай префикс в аннотации эмбеддед
Ivansuper
Иначе дубликацию полей схватишь
Artur
ага, помню это
Artur
но это же если эмбедед задано в энтити
Artur
и там указать префикс, то получается потом этот префикс нужно тянуть везде
Ivansuper
А вот то что тянуть везде -- да
Ivansuper
Короче глаз да глаз
Ivansuper
Мне не нравится на самом деле что рум не делает автоматически уменьшенную проекцию для Relation
Ivansuper
И ты либо в ручную пишешь поля, которые без контроля висят, либо в молоко из СКЛайт тянешь все колонки
Ivansuper
Ибо иногда нужно вернуть кастомную структуру с минимальными данными и не более
Artur
ну да
Artur
ну может потом чего добавят интересного
Artur
прикольно конечно, вернул всё обратно(без наследования) и уже в этот раз смог с маппить курсор (
Aleksandr
Игрушку собрали на Kotlin и openCV - супер фричную. Такой точно нигде нет, только что выкинули на Маркет. Здесь можно похвалиться ?
Aleksandr
Бровями нужно гонять мяч
Aleksandr
Точнее block breaker для бровей )
Vadim
Запускаю foreground с таким вот notification, а в итоге в уведомлениях стандартная надпись "коснитесь ....", как её можно сменить?