Dmitry
Да
ну давай рассказывай, как заинжектить контекст без "жёсткой зависимости" и чем это отличается от передачи в метод.
theakella122
мы так и не решили этот вопрос
Egor
ну давай рассказывай, как заинжектить контекст без "жёсткой зависимости" и чем это отличается от передачи в метод.
А если ты не знаешь как заинжектить в апп модуле контекст, то не надо говорить про "передачу контекста в метод, как инжект"
Egor
ну давай рассказывай, как заинжектить контекст без "жёсткой зависимости" и чем это отличается от передачи в метод.
https://github.com/EgorSigolaev/AlyaIntstagram/blob/master/app/src/main/java/com/egorsigolaev/alyaintstagram/app/di/AppModule.kt https://github.com/EgorSigolaev/AlyaIntstagram/blob/master/app/src/main/java/com/egorsigolaev/alyaintstagram/app/di/AppComponent.kt
Egor
ну давай рассказывай, как заинжектить контекст без "жёсткой зависимости" и чем это отличается от передачи в метод.
Держи Application класс) https://github.com/EgorSigolaev/AlyaIntstagram/blob/master/app/src/main/java/com/egorsigolaev/alyaintstagram/app/App.kt
Student
Вопрос адресую тем, кто разбирается с LiveData. Я в нее методом postvalue эмичу в определенных ситуациях set, он может быть одинаковым, там где я подписываюсь, я постоянно "проваливаюсь" в observer, не смотря на то, что использую fun observeLiveData(): LiveData<HashSet<Е>> =myLiveData.distinctUntilChanged() Вангую, что такое происходит, что distinctUntilChanged сравнивает предыдущий элемент с текущим по адресу сперва Кто знает, как можно переписать distinctUntilChanged, так чтобы он сравнивал предыдущий сет с нынешним поэлементно, и эмитил данные толко в случае если значения сетов отличаются?
Dmitry
Учи матчасть, так сказать)
Egor
Учи матчасть, так сказать)
Причём здесь матчасть, ты сказал, что нельзя заинжектить нормально контекст, я тебе сверху кинул ссылки с провайдом)
Kirill
Всем привет Подскажите, кто сталкивался, как сделать промоакцию на подписку, на время подписки? т.е. сейчас можно сделать промоакцию только на 3-90 дней.. как увеличить это ограничение?
Dmitry
https://github.com/EgorSigolaev/AlyaIntstagram/blob/master/app/src/main/java/com/egorsigolaev/alyaintstagram/app/di/AppModule.kt https://github.com/EgorSigolaev/AlyaIntstagram/blob/master/app/src/main/java/com/egorsigolaev/alyaintstagram/app/di/AppComponent.kt
Тут нет инверсии. Тут только инжект. Инверсия подразумевает определение интерфейса (абстракции)
Dmitry
Где твоя абстракция контекста?
Egor
Где твоя абстракция контекста?
Это к сообщению про невозможность инжект контекста без передачи в метод, сообщение своё перечитай
M
В приложении после регистрации пользователя, он должен обязательно подтвердить свой e-mail. Пока он этого не сделает пользоваться приложением запрещено. Никто не знает будет ли гугл блокировать приложение за такое?
Egor
ну давай рассказывай, как заинжектить контекст без "жёсткой зависимости" и чем это отличается от передачи в метод.
Dmitry
Я где то писал про невозможность инжекта кроме как в метод?
Egor
Я где то писал про невозможность инжекта кроме как в метод?
Где в di в провайде контекста жесткая зависимость?
Dmitry
Короче почитай про разницу инверсии и инжекции.
Artem
Спасибо всем. Инжект помог!
Egor
Так у тебя есть жёсткая зависимость))) на контекст. Абстракции нет.
Я могу получить контекст где хочу, где тут жесткая зависимость. А если ты посоветовал человеку передать в параметры метода, то точно не понимаешь, что такое хард зависимости. Если тебе потом не понадобиться юзать контекст, будешь до посинения искать куда ты всунул свой контекст.
Kanat
Тупо Subscribe не работает
Валерий
Тупо Subscribe не работает
сама функция вызывается? CompositeDisposable в этот момент в каком состоянии?
Kanat
В рабочем
Kanat
Хотя по Okhttp логу все видно что ок, но сама функция почему то тупит
Валерий
В рабочем
provider.doTransaction(model) это ретрофитный интерфейс?
Kanat
fun doTransaction(model: TaxTransaction) = getResService() .doTransaction(model) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread())
Kanat
@POST("delegate/rest/transaction/v1/transaction") fun doTransaction( @Body model: TaxTransaction ): Single<Response<TaxTransactionCard>>
Kanat
точно такая же структура работает у меня на ура
Dmitry
И передавать через метод всё таки не стоит
а даггер ведь умеет инжектить в метод?
Egor
а даггер ведь умеет инжектить в метод?
Лол зачем? Ведь мы и юзаем di, чтобы не привязываться к конструкторам и методам
Валерий
точно такая же структура работает у меня на ура
попробуй переписать нормально на flatMap вызывать следующий запрос из onSuccess первого не очень хорошо. Мало ли, вдруг какие взаимные блокировки потоков случились
Kanat
Не выйдет я уже пробовал
Валерий
Не выйдет я уже пробовал
что-то такое? fun createTransactionModel() = Single.fromCallable { // create model } fun doTransaction() { createTransactionModel() .flatMap { model -> sendTransactionToRest(model)} .subscribeOn(Schedulers.Io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { response -> // }, { error -> } ) .addToDisposables() }
Kanat
да
Johny
Добрый день, Коллеги! Подскажите пожалуйста кто какими библиотеками / системами (не знаю как правильно сказать) логирования пользуется? На одном из подкастов про Андроид я услышал как все участники согласились, что никто не использует стандартный Logcat, у всех свои...
Egor
Изучай даггер https://m.habr.com/ru/post/344314/
Где тут инжект в методе? Я не нашёл
Egor
Изучай даггер https://m.habr.com/ru/post/344314/
Если ты про MethodInjection, то это не инжект в метод, а инжект метода. Плюс в нём нет смысла никакого. Я чёто уверен, что никто почти не юзает его.
Dmitry
Пример можешб привести?
Первый видос из гугла https://youtu.be/P9vZ5UAiY_k
Egor
вопрос необходимости - это второй вопрос.
Ну так давайте не использовать тернарные операторы, а всё через if else проверять. Тут тоже самое.
Dmitry
Ну так давайте не использовать тернарные операторы, а всё через if else проверять. Тут тоже самое.
ну ты сказал, что даггер это не умеет... мы вроде про это говорили, а не про то, когда это нужно.
Артем
Привет, подскажите пожалуйста, кто заливал обновы в последние две недели, у вас нормально проходит проверку? И из-за чего могла проверка обновления застрять на 6 дней(изменений было минимум), обычно 12-36 часов и все проходило?!
Egor
ну ты сказал, что даггер это не умеет... мы вроде про это говорили, а не про то, когда это нужно.
Так эти инжекты нужны над методами, если ставишь анотации над конструкторами. Тогда и модули не нужны, можно все свои конструкторы и методы так помечать. Только потом заманаешься их ставить.
Dmitry
Это просто намёк тебе на то, что инжект в метод не противоречит принципам инжекции зависимостей. Дальше осталось понять разницу между инжекцией и инверсией и как они связаны. Тогда все встанет на свои места.
Dmitry
А спорить про "хорошо/плохо" давай не будем. Все от задач зависит
Dmitry
Не та же.
Egor
Не та же.
Больше абстракции же
Dmitry
Инжект, это про то, кто будет создавать экземпляр зависимости. А инверсия, это про то, что зависить нужно от абстракции (определённой на своём слое), и не знать о конкретной реализации (из других слоев).
Egor
Это недавно?
Ага, недели 2 назад
Egor
Это недавно?
Сейчас корона, 7 дней это норма
Артем
Сейчас корона, 7 дней это норма
Спасибо, тогда буду ждать, а то я уже дергаться начал вдруг что не так залил)
Egor
Спасибо, тогда буду ждать, а то я уже дергаться начал вдруг что не так залил)
Если что-то будет не то, гугл отклонит и напишет причину. А так, просто нужно подождать.
Roman
Ребят, интересно ваше мнение: кто и как хендлит ошибки загрузки данных при использовании Android Paging?
Roman
Ребят, интересно ваше мнение: кто и как хендлит ошибки загрузки данных при использовании Android Paging?
Окей, раз такая тишина, спрошу иначе: ребят, а через что вы пагинацию данных хендлите ?
Flogiston
можно юзать разние vertical chainstyle внутри одного леяута?
Roman
причем тут обработка ошибки, и paging Library?
ну как тебе сказать, проблемы с подключением не существует?))
Flogiston
А почему нет?
я пробовал сделать packed, для вьюх по центру, а все остальние по дефолт и chainstyle packed не применился(
Roman
А какие ошибки у тебя возникли?
У пользователя может пропадать сеть
Egor
У пользователя может пропадать сеть
Ну так значит будет тот список, который уже есть