Anonymous
понял, всем спасибо!)
Anonymous
Народ привет! Такой вопрос: Использую стандартный DatePicker при нажатии на TextView либо получении фокуса отображаю этот самый DatePicker для него добавил datePicker.setOnDateChangedListener в котором получаю выбранную дату и вставляю в текстовое поле, после этого (datePicker.visibility = View.INVISIBLE) скрываю календарик все в принципе хорошо работает НО! если в календарике начать выбирать год то после выбора года срабатывает DateChangedListener и подставляется дата, скрывается календарик это логично но не правильно! как определить пользователь выбрал год или он все-таки кликнул в дату?
Anonymous
Там ведь нужно указать OnDateSetListener
котлин((( у него datePicker.setOnDateChangedListener { view, year, monthOfYear, dayOfMonth ->
⁣
котлин((( у него datePicker.setOnDateChangedListener { view, year, monthOfYear, dayOfMonth ->
Без разницы, Котлин или нет. Что если попробуешь так?
⁣
Примерно. Вместо java.util.Calendar - java.time и т.д., что поновее
Anonymous
Без разницы, Котлин или нет. Что если попробуешь так?
тут понятно, используем DatePickerDialog, в нем выбираем и нажимаем "Ок" у него есть set эвент у меня же просто элемент DatePicker, не хочу пользователя напрягать нажатием лишней кнопки если можно сделать все в одно действие
Anonymous
А, DatePicker не в диалоге?
нет, просто в лайауте лежит, не подумал что прям так обязательно его диалогом делать
Aleksandr
всем привет, кто-то пользуется экспериментальным API корутин? оно вообще юзабельно в проде?
Aleksandr
интересуют BroadcastChannel-ы
Anonymous
скорость проверки для каждого кейса может сильно отличаться, тем более для большой вложенности @podocodenick
извиняюсь, у меня класс был помечен как @SuppressWarnings("ConstantConditions") 🤷🏻‍♂️
Aleksandr
да
это ответ на какой из двух вопросов? 😁 и да, а есть какой-то чатик по корутинам?
The The
Какая версия appcompat? Я юзаю 1.1.0, помню когда то давно changelog'е читал что были изменения по темной теме
аааааа чувак там действительно баг и причем именно в версии 1.1.0 !! есть альфа 1.3.0-alpha01 в ней исправлено
Mike
в принципе, на оба — я использовал корутины задолго до релиза, и, да, так можно Отдельного по корутинам не знаю, всегда есть @kotlin_lang
Roman
Всем привет! Нужно реализовать окно один в один, как у мобильной версии Телеграма, когда выбираешь фотографии из галереи для отправки. То есть есть окно с ресайклером, оно прежде чем будет скролиться едет вверх до упора и только потом начинает скролиться. Подкажите, куда копать? MotionLayout?
The The
у меня и без альфы работает, хз почему у тебя так
у тебя работает, потому что ты еще в активитях чекаешь
Anonymous
что? как?
ну блин. вот я юзаю стейбл. выходит альфа с фиксом. при этом в этой альфе что-нибудя опять сломали. надо вообще-то как бы фиксить и выпускать фикшеный стейбл а потом уже дальше ломать
Дмитрий
у тебя работает, потому что ты еще в активитях чекаешь
нет, я только recreate вызываю при изменении настройки, ну и перед этим тему применяю
The The
а у меня основная проблема была еще с языками, есть локализация на разные языки, они не обновлялись вместе с темой, потому что гугол забыл сделать овверрайд ресурсов
Anonymous
они я заметил просто как будто специальность поддерживают багованность своих стейблов
The The
не, я не про это.
это еще что. я как-то либу firebase обновил и приложение пустил в релиз, а там оказывается был баг приводящий к крашу
The The
причем это был стейбл релиз, который месяц где-то был в стейбл
Anonymous
причем это был стейбл релиз, который месяц где-то был в стейбл
ну помоему вместо фиксов в альфе надо выкладывать сразу стейбл
Anonymous
вот кто-нибудь тянет себе альфу в проект вообще?
The The
ну помоему вместо фиксов в альфе надо выкладывать сразу стейбл
ну так альфа пойдет в релиз, поэтому она и в альфе сейчас, а вдруг там какие-то краши найдутся? или ты сразу предлагаешь делать стейбл?
Anonymous
а кто берет альфу в прод?
The The
implementation 'com.google.android.material:material:1.3.0-alpha01' implementation 'androidx.appcompat:appcompat:1.3.0-alpha01' implementation 'androidx.appcompat:appcompat-resources:1.3.0-alpha01'
The The
мои альфы, люблю их
Anonymous
да ну, лучше и спокойнее когда крашлитикс забит своими багами а так свои + гугловские
Anonymous
и задалбывать юзеров релизами при релизе альфы не айс
The The
и задалбывать юзеров релизами при релизе альфы не айс
ну, первое, никто не требует с тебя обновлять каждый раз приложение как только выходит релиз новой альфы, второе, шанс словить краш где-то в гугловских либах в альфе не сильно выше чем в стейбл
Anonymous
ну, первое, никто не требует с тебя обновлять каждый раз приложение как только выходит релиз новой альфы, второе, шанс словить краш где-то в гугловских либах в альфе не сильно выше чем в стейбл
ладно. просто я если захожу в артефакты то беру последний стейбл, почему-то сложилось представление о том, что альфу юзают только разрабы альфы
The The
хотя, да, по возможности лучше сидеть на стейбл. ну вот сейчас конкретно мне нужен фикс, который только потом пойдет в релиз, а мне он нужен сейчас - потому и юзаю альфу. как выйдет стейбл с этим фиксом, пересяду на стейбл
Данил
И это была stable - версия
The The
И это была stable - версия
я же про это говорю. шанс словить краш в альфе либе не выше чем в стейбл
Anonymous
я же про это говорю. шанс словить краш в альфе либе не выше чем в стейбл
а если допустим себе тянуть код либ? и добавлять фикс руками
Anonymous
удачи
окей)) еще проще писать самому то что нужно, а не брать забагованные реализации..... которые никак не могут написать сразу нормально
Anonymous
согласен, нет ничего проще чем самому написать гугловские либы
не гугловские либы, тебе же только что-то одно надо ведь
leksss
Подскажите, почему не могу напрямую так обратиться? если в onCreate например, то нормально, не подчеркивает. А тут если только все это переменной делать
Nick
Подскажите пожалуйста: как хранить конфиденциальную информацию по типу ключей и паролей к серверам?
Oleg
Подскажите, почему не могу напрямую так обратиться? если в onCreate например, то нормально, не подчеркивает. А тут если только все это переменной делать
сделай в onCreate либо init. это ж выхов функции, он не может быть вызван вне выполнения инициализации класса. Все присвоения полей также выполняются в init неявно, насколько я понимаю
awawa
Подскажите пожалуйста: как хранить конфиденциальную информацию по типу ключей и паролей к серверам?
Лучше всего - ничего не хранить. А если уж хранить, то не в открытом виде, лучше в виде хешей SHA256/512, никакого MD5
awawa
Не хэши это все таки не хранение))
Ну речь про пароли шла. Оно нужны обычно чисто для авторизации нужны, а значит и хранить их не надо
neikist
Ну речь про пароли шла. Оно нужны обычно чисто для авторизации нужны, а значит и хранить их не надо
Пароли не надо, да. (хотя иногда такой бекенд что нужно, иначе никак, тогда можно под какой нибудь пин код или отпечаток засунуть).
neikist
Если это конечно не очень критичное к безопасности приложение)
Anonymous
Как правильно создать POJO объекты, когда в одном запросе один result и error, в другом другой. Делать для каждого по 2 POJO объекта это слишком думаю.... Знаю что API реализация не самая лучшая, но что уж есть https://pastebin.com/9X9q3TUW
Anonymous
так это 1 модель
Как может быть одна модель? когда в одном случае он массив принимает, в другом объект!
Данил
Response( result : AnyResponse? = null, error : List<ErrorResponse>? = null )
awawa
А почему? Легко к декодированию или что?
Да, MD5 уже давно доказал свою несостоятельность. Лучше заплатить немножко времени и сделать SHA256. В конце концов не "Войну и мир" хешировать.
Anonymous
Response( result : AnyResponse? = null, error : List<ErrorResponse>? = null )
А в случае когда "error": { Как тут лист поможет? Пролистайте до конца,в низу же еще код есть
awawa
Так смысл хэшировать если хранить нужно?)))
Я описал общий принцип - либо не хранить ничего, либо хешировать. В остальном надо вникать в архитектуру всей системы и смотреть где мы можем организовать безопасное хранилище и как сделать к нему безопасный доступ. Это если мы заботимся о безопасности. А если нет - тогда можно и в текстовый файлик всё писать.
awawa
Так смысл хэшировать если хранить нужно?)))
В конце концов мы не знаем, что автор вопроса имел в виду, когда говорил "хранить". Если надо хранить пароли для авторизации, то и хранить их не надо
neikist
Security through obscurity право на жизнь имеет если для приложения какой то уровень безопасности желателен но совершенно не критичен
Anonymous
сорян, не досмотрел. Это все к 1 запросу?
Ну это 2 разных запроса. Апи конечно как писал выше не ахти, но что есть. Вот и думаю как проще бы сделать....
awawa
для чего вообще пароли, есть же token
Пользователь же должен как-то первоначально авторизоваться. Вообще говоря, по вопросу не понятно что там к чему. Я подумал про систему аутентификации на сервере. А на стороне клиента да - хранить критические данные плохо. Ну и всякое бывает, тот же кривой апи, как выше говорили.
Andrew
А если кнопочку "пуск" не нажал?