Vadim
передать результат из Application'a в свой класс Intereptor который находится в другом модуле
Yury
метод какого класса вызывается и откуда?
Vadim
метод какого класса вызывается и откуда?
в своём AuthenticatorApplication создал переменную в которой храню результат функции которая находится во втором модуле.
Получил её резульат всё круто и классно(это User-Agent инфа если что)
и после этого я хочу это значение засунуть во второй модуль в качестве value для моего Interceptor'a
Vadim
Сюда вместо "here"
internal class HeaderInterceptor : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
return try {
val originalRequest = chain.request()
val requestBuilder = originalRequest.newBuilder()
.header(HEADER_CONTENT_TYPE, HEADER_VALUE_JSON)
.header(HEADER_KEY_USER_AGENT, "here")
chain.proceed(requestBuilder.build())
} catch (e: Exception) {
e.printStackTrace()
chain.proceed(chain.request())
}
}
}
Yury
ну, топорное решение это хранить статик ссылку на Application, и по ней получить доступ к твоему результату
Yury
а лучше хранить где-нибудь в хранилище, и оттуда читать, не через Application
Vadim
Yury
в Application сделать статик поле Application
Yury
в onCreate в это поле засетить this
Yury
и потом из любого места ты можешь получить к нему доступ
Yury
но это считается плохим решением с точки зрения архитектуры.
Oleg
Yury
Application должен быть public, почему не получается-то
Vadim
Application должен быть public, почему не получается-то
ну они по умолчанию все public
может я что то не так сделал
но всё таки
первое я сделал переменную статик в Application
companion object {
var application = Application()
}
после в onCreate:
application = this
в другом модуле пытаюсь вызвать переменную
.header(HEADER_KEY_USER_AGENT, AuthenticatorApplication.application)
ошибка unresolved reference
Vadim
Mike
Konstantin
завези абстракций в модуль интерчептора
Vadim
проблема не поэтому
проблема в том что у меня нет общего модуля где была бы зависимость между этими модулями
Konstantin
типа UserAgentInterface
Vadim
Konstantin
Konstantin
говоришь что где то нужен интерфейс, в другом месте реализуешь, в di втыкаешь второе в первое, профит
Vadim
Konstantin
ну ты интерсептор же как то делаешь, руками собираешь?
Mike
Vadim
Yury
хранить user agent в application это single responsibility?
A
Подскажите, пожалуйста, где искать ошибку.
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)
webview.apk (offset 0x8f9000)
backtrace:
#00 pc 0000000000677330 /system/app/webview/webview.apk (offset 0x8f9000)
Больше никакой инфы нет...
Ruslan
Vadim
Andrey
Хочется сделать автоматическое задание размера шрифта кнопок, подстраивающееся под размер кнопок на разных экранах, желательно в хмл-лэйауте. Но android:autoSizeTextType="uniform" пытается выставить максимально возможный размер, что выглядит не очень. Есть какие-то другие варианты?
awawa
Andrey
Я догадываюсь, что можно наваять кучу разных со статическими абсолютными размерами лэйаутов под разные экраны, но хотелось чтобы оно автоматически из одного лэйаута бралось и масштабировалось...
Andrey
Можно на каждую кнопку наверное накладывать текст меньшего размера с авторесайзом его штифта, но это же костыли
awawa
Да не надо кучу лэйаутов, просто задать значения шрифтов для разных экранов, а лэйаут один.
awawa
По размеру экрана будет автоматически браться нужный шрифт. Имхо, самый удобный способ решения
Andrey
а что, так можно было? не в коде, а прямо в файле разметки?
awawa
Ну конечно, почитай про ресурсы в андроиде. Есть такой тип как dimen, он определяет всевозможные числовые значения. Можно задать значения для разных экранов, разных локалей, разных ориентаций экранов и т.д.
Andrey
пасиб! )
Александр
всем привет! метод OkHttp .enqueue работает в главном потоке или нет? и можно ли как-то узнать в каком потоке он работает?
Dug
Александр
Почитать доки, например
ну в доках нет про это, например, а авторитетные товарищи утверждают, что в другом потоке
Schedules the request to be executed at some point in the future.
The dispatcher defines when the request will run: usually immediately unless there are several other requests currently being executed.
This client will later call back responseCallback with either an HTTP response or a failure exception.
Александр
впрочем, узнатиь что не в главном можно просто попытавшись из него в главный поток вернуть результат, а вот как узнать в каком потоке идет выполнение, если не в главном?
Aleksey
Александр
Aleksey
спасибо! 👍🏻
но да, в доку с такими вопросами)))
Евгений
Евгений
Евгений
Самый лучший варик, заморочиться и прогонять каждую вьшку через класс, где будешь высчитывать размеры и шрифтыв зависимости от screen width/height
Anonymous
народ, подскажите как в нотепад++ искать несколько слов одновременно ? что бы в логе результата подсвечивались все слова, что я вбил
Андрей
Anonymous
не работает
Anonymous
а стоп
Anonymous
мерси
Lev
Вот у меня есть apk, на основе кордовы. Это приложение для работы с сервером. Я хочу собрать его один раз и раздать на разные серверы (разные ip - test, dev, prod, прочее). Но при запуске, апкшки должны сразу коннектиться к нужному серваку. Как мне это автоматизировать, чтобы не пересобирать под каджый сервер?
Anonymous
Как нарисовать линейку на телефоне ,так чтобы миллиметры везде были миллиметрами (не зависимо от дипгонали и разрешения экрана)?
Valentin
Anonymous
да
Anonymous
и они были точно такими как на физической линейке
Valentin
Погугли про перевод px(или dp) в миллиметры
Valentin
И рисуй с помощью этого потом
Valentin
Те же обычные линии на канвасе
Valentin
Следуя правилам
Hasan
Привет. Как можно отправить запрос на Retrofit с таким URL адресом? dishes?menuids[0]=2&menuids[1]=4&menuids[2]=3
Hasan
Попробовал делать так:
Hasan
@GET("dishes?{queryString}")
Hasan
но из за вопросительного знака не работает.
Hasan
тут queryString = menuids[0]=2&menuids[1]=4&menuids[2]=3
DeniskaAb
Здравствуйте. Сказали у вас есть пример приложения на котлин с использованием база данных фаерстор от гугла
SerJanna
Hasan
SerJanna
? Подставляется сам по идее
SerJanna
Достаточно просто указать GET("dishes")