Александр
Кул стори боб
Anonymous
Давайте все ему дизлайков поставим))
Данил
Andrew
Данил
Данил
У нас именно так, в ответ на авторизацию прилетает token, который уже хранят
Данил
У него есть время жизни, по этому через какое - то время запрашивается новый
awawa
Ну отправили Login и пароль и все, зачем в приложении то их хранить,
Кривой интерфейс со стороны сервера. А если сервер не умеет в токены? Я на работе сейчас пишу прилу, у нас сервер пока что в токены не умеет. Вся авторизация через пароли. И каждый раз просить пользователя вводить пароль не хочется. Поэтому храню пароли в открытом виде (в EncryptedSharedPreferences), как лох🤷♂️
awawa
В общем всякое бывает
Данил
Ну тогда в таком случае, не хранить, либо галочку поставить, что не безопасно и хранить в shared preferences
neikist
neikist
neikist
У них там вроде 21 минимальный
Данил
Nick
neikist
Проксимов
Данил
У нас пока 17 апи
у нас 18, но я думаю до 21 повышу, так как новая Android Studio уже минимальную версию 5.0 поставила
awawa
У нас пока 17 апи
Я пробовал с 17, потом удалось убедить руководство в том, что нам ниже 5 андроида поддерживать не нужно :D
awawa
Обычные префы это грустно
Это да, но я программист - птица гордая. Пока меня начальство не пнёт повышать секурность, ничего не делаю. Ну и жду релиз стабильной версии 1.1.0 security. У них там 21 поддержка должна быть
Vadim
Привет
такая история есть две строки для которых применяю стили span
после этого создаю переменную где эти строки складываю с помощью SpannableStringBuilder, но увы стиль не применятеся.
в чём может быть проблема?
https://gist.github.com/mnewlive/07a712e01ec0d0c865d56cdf0615d039
Проксимов
Anonymous
{
"result": {
"token": "",
"refresh_token":""
},
"error": {
"errorCode": "",
"message": "",
}
}
Как юзать Retrofit с RxJava2CallAdapterFactory, если в случае ошибки, у меня вызывется Exception?
А я должен получить Response и вытащить оттуда errorBody...
RxJava2CallAdapterFactory в таком случае не прокатит?
⬤ vitaly
Anonymous
awawa
Но ведь потом пиздюлей дадут тебе
Да у нас пока про безопасность и речи не идёт. Я ж говорю - голый UDP трафик гоняем без шифрования. Оттуда пароль даже проще вытащить, наверное. Что уж там хранение. Но по совести, конечно, надо бы нормально сделать.
Anonymous
Anonymous
хотнл задать вопрос Griffits_Devid_Head_First._Programmirovanie_dlya_Android._2-e_izd норм книга для новичка?
neikist
Alexander
Ребят, подскажите, плиз, по такому вопросу.
Firebase + Clean Architecture + Kotlin
Есть три модуля: data, domain, presentation
Зависимость: data <- domain <- presentation
———
Запросы Firebase делаются в модуле data. (Такие, как .addOnSuccessListener, .addListenerForSingleValueEvent со своим ovverride OnDataChange() и т.д.)
Вопрос: каким образом передавать обратно в модуль domain гарантированный результат из этих методов? Ведь мы не знаем, когда придёт ответ с сервера и, кроме того, не имеем возможности юзать классы из domain, т.к. это ограничения clean-архитектуры.
Данил
Как отключить подчеркивание для textinputeditext в textinputlayout? Пробовал inputType в значении none и text
neikist
SE
Привет всем
Нужен совет. У меня архитектура MVVM. У меня есть страница, где я должен показать данные с cети. Кроме этого я кэширую данные результата сервера. Валидность кэша 1 час. Всё работа касательно запросов в сеть и кэширование результатов ответа сервера происходит в Repository. Мне нужно сделать так, чтобы если запрос в сеть вернёт ошибку сервера, то в течение 1 часа показывать данные из кэша.
Пока у меня есть два решение проблемы, они похожие между собой, разница только в том, что в одном месте проверку я делаю в Repository, а другом месте во ViewModel.
Первый вариант, если произойдёт ошибка сервера, то в Repository в onErrorResumeNext узнать тип ошибки, если тип ошибки будет серверная ошибка, то зафиксировать время когда произошла ошибка и исходя из этого последующий час при запросе данных отправлять данные из кэша.
Второй вариант, если произойдёт ошибка сервера, то во ViewModel при обработки ответа с Repository в onError узнать тип ошибки, если тип ошибки будет серверная ошибка, то зафиксировать время когда произошла ошибка и исходя из этого последующий час при запросе данных отправлять данные из кэша.
Какой вариант лучше, делать проверки в Repository или во ViewModel? Или есть ли какие-то лучше решение данной задачи?
Это как я получаю данные с Repository
https://gist.github.com/githubgist123/7e027675bb4db07fef606e23f39f8a96
awawa
Привет всем
Нужен совет. У меня архитектура MVVM. У меня есть страница, где я должен показать данные с cети. Кроме этого я кэширую данные результата сервера. Валидность кэша 1 час. Всё работа касательно запросов в сеть и кэширование результатов ответа сервера происходит в Repository. Мне нужно сделать так, чтобы если запрос в сеть вернёт ошибку сервера, то в течение 1 часа показывать данные из кэша.
Пока у меня есть два решение проблемы, они похожие между собой, разница только в том, что в одном месте проверку я делаю в Repository, а другом месте во ViewModel.
Первый вариант, если произойдёт ошибка сервера, то в Repository в onErrorResumeNext узнать тип ошибки, если тип ошибки будет серверная ошибка, то зафиксировать время когда произошла ошибка и исходя из этого последующий час при запросе данных отправлять данные из кэша.
Второй вариант, если произойдёт ошибка сервера, то во ViewModel при обработки ответа с Repository в onError узнать тип ошибки, если тип ошибки будет серверная ошибка, то зафиксировать время когда произошла ошибка и исходя из этого последующий час при запросе данных отправлять данные из кэша.
Какой вариант лучше, делать проверки в Repository или во ViewModel? Или есть ли какие-то лучше решение данной задачи?
Это как я получаю данные с Repository
https://gist.github.com/githubgist123/7e027675bb4db07fef606e23f39f8a96
Я не эксперт в этом. Но, имхо, логичнее проверку надо делать в репозитории. Типа вью модель не должна знать откуда берутся данные, ей пофигу. Она данные попросила - репозиторий выдал. А где эти данные брать пусть сам репозиторий и решает
Данил
SE
Павел
Ребят можно ли как то программно задать все пермишены для нотификаций на ксяоми?
awawa
Мне помогло для настройки показа прилки поверх других окон
Alexsandr
Что то не увеличиваеться webView
Хотя использую webView.getSettings().setSupportZoom(true);
webView.getSettings().setDisplayZoomControls(true);
Anonymous
В чем разница между onRestoreInstanceState и onCreate Bundle? когда они вызываются
Anonymous
Проксимов
@serqoldstar не спамь людям в личку
Ivan
Ребят, привет! Такой вопрос, в приложении есть биллинг, если ставить со студии релизную, при этом подписывать таким же ключом, как потом на маркете, то пишет, что биллинг не поддерживается в приложении. Если залить на маркет, то все нормально. проблема в том, что не могу потестить подписки. В чем мб проблема?
Egor
Ребят, привет! Такой вопрос, в приложении есть биллинг, если ставить со студии релизную, при этом подписывать таким же ключом, как потом на маркете, то пишет, что биллинг не поддерживается в приложении. Если залить на маркет, то все нормально. проблема в том, что не могу потестить подписки. В чем мб проблема?
Надо обязательно лить в гп вроде как. Сам мучаюсь с этим, горит уже.
Данил
Я так с Referall Library мучался, не знал какой url придет. А чтобы придет нужно сначала в Pm залить. Поэтому пришлось внедрять в 2 обновления
Nikolai
Ivan
как бы под нужным аккаунтом тоже зашел, к которому консоль привязана
Ivan
по идее должен ими подписывать
Oleg
Ребят, привет! Такой вопрос, в приложении есть биллинг, если ставить со студии релизную, при этом подписывать таким же ключом, как потом на маркете, то пишет, что биллинг не поддерживается в приложении. Если залить на маркет, то все нормально. проблема в том, что не могу потестить подписки. В чем мб проблема?
Для тестирования покупок установи code version такую же, что уже есть в опубликованном на маркете приложении.
Nikolai
хотя у меня платежи ходят даже с дебаг сертификатом
Ivan
Oleg
Версия такая же
Google play сервисам необходимо понимать что версия приложения установлена c Google Play. Для этого необходимо подписать релизным ключом и установить версию кода уже опубликованного приложения, не повышая версию кода. Ну еще можно залить в alpha или beta для тестирования покупок
Ivan
в бете залита
Oleg
в бете залита
значит что-то сделано неправильно.
Я так тестирую уже много лет.
Egor
Ребят. Пытаюсь записать файл в папку загрузки. Проверяю путь файла, он такой /Download/TikTokDownloads/tiktok_1593175124964.mp4. При попытке вызвать destFile.createNewFile(), мне кидает ошибку No such file or directory. В чем подвох? Путь же верный вроде.
Egor
awawa
awawa
Какой андроид? На 10 же нельзя напрямую лезть в ФС
Egor
Я уже везде mkdirs прописал для всех файлов
IG
Ребя, всем доброго дня. Я получаю данные с одного сервера и в случае если они не получены обрабатываю исключение и заполняю всё нулевыми значениями. Теперь, если данные не получены, нужно попытаться их получить с другого сервера, и если нет, то уже тогда заполнить нулями. Подскажите, как это сделать, используя try и catch