Igor
понял, спасибо
Только не советую там с куками работать, для этого есть специализированный CookieJar
Данил
наверное да, как выше написали, чтобы везде в параметр не впихивать токен
а как туда прокидывать, ведь получение token идет через Coroutine, а модуль Network как бы обособлен, там можно только base Token объявленный здесь же использовать
Данил
DI мб
А разве с помощью Di можно получать запись из database и передавать?
neikist
А разве с помощью Di можно получать запись из database и передавать?
Да я вроде тебе не раз уже схему описывал. Прокидывай TokenStorage в твой интерцептор через DI
George
А разве с помощью Di можно получать запись из database и передавать?
да можно вроде в экземпляр прокинуть после получения токен
Igor
Ну да)) god activity это жеска, mvp норм, остальное потому что модно 😌
Это называется эволюция - MVP подход 30 летней давности из времен популярности ООП и языкой типа Smalltalk Совершенно не отвечает современным реалиям представлению UI Тогда думали что UI это граф изменяемых ОБЪЕКТОВ с состояниями - ну бред же - MVVM - 13 лет, взлетел во времена любви к XML как результат: слабая динамичность UI и плохая композиция - TheElmArchitcture ~ лет 5, декларативная, функционально-ориентированный архитектура. Подходит для всех актуальных UI платформ react/swift-ui/jetpack-compose/xamarin fabulous и тд PS MVI - выкидишь декларативной архитектуры для фанатиков rxjava
Igor
Уууу, можно обсудить - первое ты же можешь менять только на уровне байндингов при этом в compose, в when можешь тупо разный UI возвращать в зависимости от модели
(
шо за слабая динамичность?) Про плохую композицию MVVM — просто неправда
наличие или отсутствие вьюх в зависимости от исходных данных
Igor
Если ты весь UI сведешь к одной LiveData, ну это по сути будет +- MVU (для бедных, конечно же, тк нет автоматической мемоизации)
Mike
наличие или отсутствие вьюх в зависимости от исходных данных
нуу, я не вижу принципиальной проблемы, которая мешала бы это сделать
Igor
шо за слабая динамичность?) Про плохую композицию MVVM — просто неправда
> Про плохую композицию MVVM — просто неправда ну тут спорно, все таки VM позиционируется как рутовый page-объект типа Presenter/Controller сложно представить большую вложенность VM друг в друга (опять таки этому мешает ограниченная динамичность) При этому если посмотришь хотя бы примеры compose - то это функция в функции в функции в функции ... Все просто дробится до простейших state-less виджетов
Igor
По хорошему через props (параметры) туда-сюда гонять из рутового компонента (обратно через callbacks)
Igor
Ну почему, это чистые функции - идеальные кирпичики)
Igor
https://t.me/g0lden_quotes/25
Mike
Ну почему, это чистые функции - идеальные кирпичики)
функции-то да, я про «props (параметры) туда-сюда гонять из рутового компонента»
Igor
функции-то да, я про «props (параметры) туда-сюда гонять из рутового компонента»
Сам понимаешь стейт это плохо) и лучше его в одном месте держать. А эти stateless виджеты вообще вынести в библиотеку и назвать ее - дизайн системой.
Igor
А какой мемоизации ты хочешь?
Ну shadow-dom / positional memoization из композа - короче то что позволит без оверхеда перерисовать весь ui на каждый чих
Anonymous
Anonymous
че за пиздец?
Ilya
для таких проблем можно и гугл юзать
Yurka
только с java 8 вроде как лямбды можно юзать в студии
Anonymous
Ilya
https://stackoverflow.com/questions/22703412/java-lambda-expressions-not-supported-at-this-language-level
Anonymous
все пофиксилось
⬤ vitaly
как получить логи, которые httpLoggingInterceptor посылает, в виде строк?
SuperHero ツ
Привет, друзья!😄 Как можно поставить обводку к тексту ?
Aleksey
⬤ vitaly
а куда он их посылает? в LogCat же пишет и все
ну вот я хочу те, которые он шлёт в логКэт, получать как строку и сохранять в файл
Lubomir
У кого нибудь было подобное? градл не может собрать проект. Уже попробывал почистить кэш, инвалидейт кэш и рестарт в студии. Билд скрипты без ошибок Android Studio Canary 4.1 Canary 4
⬤ vitaly
можешь кастомный логгер в конструктор передать
я уже понял. Думал, будет простое решение(
Данил
я уже понял. Думал, будет простое решение(
@Provides @Singleton fun provideHttpLoggingInterceptor(logger: HttpLoggingInterceptor.Logger): HttpLoggingInterceptor { return HttpLoggingInterceptor(logger) .setLevel(HttpLoggingInterceptor.Level.HEADERS) } @Provides @Singleton fun provideHttpLoggingInterceptorLogger(): HttpLoggingInterceptor.Logger { return HttpLoggingInterceptor.Logger { Timber.d("API: $it") } }
Данил
fun provideOkHttpClient(httpLoggingInterceptor: HttpLoggingInterceptor) : OkHttpClient{ return OkHttpClient.Builder() .connectTimeout(timeOut, TimeUnit.SECONDS) .writeTimeout(timeOut, TimeUnit.SECONDS) .readTimeout(timeOut, TimeUnit.SECONDS) .addInterceptor(httpLoggingInterceptor) .build() } А потом в сам OkHttp
Future Franklin
Пытаюсь сохранять хмл леяут в пдф :
Future Franklin
Вот как выглядит
Future Franklin
Вот что в итоге
Future Franklin
ты сделал root.measure(0, 0)
root.measure(595 , 842); ничего не поменялось
Future Franklin
нужно чтобы в пдф файле эта страница была по центру или как , как в хмл выше, а сохраняет как будто зум в левый угол
neikist
вот же
Вот же
Future Franklin
Вот же
это не то
Mike
это не то
А что это? Канва для рисования на пузике моей кошки?
neikist
это не то
View.draw только канвас аргументом и может принимать
Future Franklin
root.measure(page.getCanvas().getWidth() ,page.getCanvas().getHeight()); типа этого или что?
Future Franklin
MeasureSpec используй
там нету такого метода чисто measure
neikist
там нету такого метода чисто measure
View.measure(MeasureSpec.makeMeasureSpec(...),...)
Future Franklin
а
neikist
Какие то вьюхи вроде и без этого значения воспринимают, но не уверен.
Future Franklin
Какие то вьюхи вроде и без этого значения воспринимают, но не уверен.
root.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); root.layout(0, 0, root.getMeasuredWidth() , root.getMeasuredHeight()); root.draw(page.getCanvas()); всё равно зум в левый угол втф
neikist
Ну так UNSPECIFIED. Т.е. вьюшка себя рисует по максимуму во всех направлениях. Тебе AT_MOST или EXACTLY нужно. Если вообще у тебя масштаб от измерения вью зависит
Future Franklin
с EXACTLY пустой пдф
neikist
с EXACTLY пустой пдф
Ну потыкай логами на каком этапе идет не так что то. Может страница пдф твоего возвращает размеры неправильно, может вью работает не как ты ожидаешь
Mike
с EXACTLY пустой пдф
0, EXACTLY? Конец немного предсказуем
Mike
я уже сказал про размеры канвы, хз что тут добавить
neikist
0, EXACTLY? Конец немного предсказуем
О, 0 проморгал, да уж, естественно
Future Franklin
так я хз что куда
Future Franklin
root.measure(View.MeasureSpec.makeMeasureSpec(page.getCanvas().getWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(page.getCanvas().getHeight() , View.MeasureSpec.UNSPECIFIED)); root.layout(0, 0, page.getCanvas().getWidth(), page.getCanvas().getHeight()); root.draw(page.getCanvas());
Future Franklin
Уже рамку хоть нормально видно
Future Franklin
Но почему внутри не всё отображается?, Проблемы моего леяута разве?
Mike
Г — самостоятельностб
Future Franklin
из-за чего этот сраный зум в левый угол ? я всё сделал как вы сказали
Mike
СУУУУУКА, у тебя размеры хардкодом стоят, оказывается!
Future Franklin
где