Роман
я понимаю это
Окей, поехали дальше ))
Andreu
пробовал явное
Роман
и?
Vladislav
Окей, поехали дальше ))
Вопрос только в том, как вызвать этот урл в контексте браузера, где пользователь авторизован
Anton
@BindView - не помогло
кинь холдер текстом напишу что сделать...Думаю решит твою проблему
Andreu
class ViewHolder extends RecyclerView.ViewHolder { @BindView(R.id.tv_task_id) TextView tvId; @BindView(R.id.tv_task_price) TextView tvPrice; @BindView(R.id.tv_task_command) TextView tvCommand; @BindView(R.id.tv_task_time) TextView tvTime; ImageView ivSelectedItemTriangle; public ViewHolder(@NonNull View itemView) { super(itemView); ButterKnife.bind(this, itemView); ivSelectedItemTriangle = itemView.findViewById(R.id.iv_selected_item); itemView.setOnClickListener(v -> { ivSelectedItemTriangle.setVisibility(View.VISIBLE); if (mItemClickListener != null && getAdapterPosition() != RecyclerView.NO_POSITION) mItemClickListener.onItemClick(v, getAdapterPosition()); }); } }
Anton
пробовал явное
А лучше кинь сгенерированный ViewHolder из generatedCode
Vladislav
Окей, поехали дальше ))
Сенкс, нашел удовлетворительное решение. https://developer.chrome.com/multidevice/android/customtabs
Роман
Вопрос только в том, как вызвать этот урл в контексте браузера, где пользователь авторизован
Чото туплю, наверное? client_id обязательный Идентификатор Вашего приложения.
Роман
при чём тут пользователь?
Роман
redirect_uri обязательный Адрес, на который будет передан code (домен указанного адреса должен соответствовать основному домену в настройках приложения и перечисленным значениям в списке доверенных redirect uri — адреса сравниваются вплоть до path-части).
Роман
доверенный адрес получит код
Vladislav
Чото туплю, наверное? client_id обязательный Идентификатор Вашего приложения.
Задача – открыть пользователю такой браузер, в котором он уже авторизован, чтобы он не вводил логин-пароль.
Vladislav
В контексте вебвью это невозможно
Andreu
может это что-то даст, каждый 8-й элемент
Andreu
совпадение?) не думаю
Andreu
нет
Роман
Задача – открыть пользователю такой браузер, в котором он уже авторизован, чтобы он не вводил логин-пароль.
"Authorization Code Flow для получения ключа доступа пользователя" - под словом "пользователь" имеется ввиду твой скрипт на сервере, а не Вася с самсунгом.
Andy
может это что-то даст, каждый 8-й элемент
Конечно нет, каждый 8-й это твой 1-й, на котрый ты тыкнул
Andreu
почему?
Andy
из-за особености RV они не особо меняются
Andy
.
Andy
RecyclerView довольно экономный и он не пересоздаёт элементы, а юзает те же, просто перезаполняя их, может проблема в этом?
Anton
может это что-то даст, каждый 8-й элемент
а они все сразу на экране или потом появляются при прокрутки ?
Andreu
потом
Andreu
не все сразу
Andreu
кажись я въезжаю, типо данные разные , а итем тотже
Anton
потом
тогда изучай метод который я тебе писал onViewRecycled ;)
Andreu
если грубо )
Anton
тебе нужно стейт viewHolder очищать ... Он же переиспользуется
Andy
+
Andreu
я так понимаю, это единственное решение и по-другому никак?)
Роман
сначала вася должен в браузере ввести данные, получить код и отправить его на сервер
Если пользователь не вошел на сайт, то в диалоговом окне ему будет предложено ввести свой логин и пароль.
Andreu
это по оптимизации ничего не испортит?) а то у меня данные очень динамические) каждые 5 сек у меня обновления прилетают
Vladislav
ну с чего ты так решил?
Потому что это так и есть^^
Роман
Потому что это так и есть^^
Ну так зайди, введи, переживи редирект, получи токен и всё?
Anton
А datasource свой был ? У меня просто datasource из dao приходит
Anton
Ну room умеет датасоурс возвращать
Anton
Но в принципе можно попробовать свой запилить
Роман
Свой если только тебе надо с веба страницы тащить, например
Роман
диапазоны, я имел ввиду
Anton
Да попробую
Роман
Это мне ответ ?
Ну если тебя чем-то не устраивает румовский, то - да, это ответ.
Роман
Хотел 115 раз спросить экспердов, да забываю всё время. Старость не в радость, да. Кто-нибудь делает вот так или похоже? https://medium.com/@andycherkashyn/how-to-organize-android-project-files-the-right-way-46b34289ad0a
Роман
Я, как начал раскладывать по лоджик релатед папочкам - сразу как-то жизнь наладилась
Роман
Но правильно ли это?..
Anton
Ну если тебя чем-то не устраивает румовский, то - да, это ответ.
Как с румовским показать список который начинается не с нулевого элемента ?
Роман
Румовский разве не заботится об этом сам?
Konstantin
а вместо п2 - делать отдельные модули для экранов, тогда еще удобнее будет
Konstantin
вдруг как то сразу находятся протекающие абстракции, дублированый код, и выделяется сам собой реюзабельный код
Роман
Я делаю так: основная единица - один экран. В папке скопом валяются фрагмент, вьюмодел, вьюхолдеры, адаптеры и модели итемов. Если модели надо шарить, они валяются в common
Роман
Это просто неебово удобно
Anton
Румовский разве не заботится об этом сам?
Не нашел как. Вот например у меня есть список в базе с 0 по 100. Мне нужно показать список начиная с 20ого. С возможностью крутить в обе стороны
Роман
Если экран по логике вложенный - папка дочернего экрана так же влаживается в папку родителя.
Anton
?
Роман
Или просто тупо отпозиционировать на №20?
Роман
rv.scrollToPosition(20)
Роман
rv = RecyclerView
Anton
rv.scrollToPosition(20)
В какой момент это сделать ?
Anton
Как поймать момент когда уже есть данные что проскролить?
Роман
блин, тяжко шарики ворочаются )) после 2 недель серверсайда
Роман
Там же есть события, навскидку не помню
Anton
Там же есть события, навскидку не помню
но там еще есть другая проблема. Если список например 10000 элементов в базе и нужно показать 5000ый. е грузить же весь список. И встанет вопрос как узнать позицию 5000 ого
Роман
Ну румовский датасорс сам беспокоится об этом
Роман
Для тебя процесс должен быть бесшовным - тупо сказал "хочу позицию 5000", а как оно этого добивается, уже не твоя забота
Роман
Попробуй выбрать позицию с задержкой 5 секунд от инициализации рецуклервью
Роман
И посмотришь, работает ли это так, как я сказал
Роман
Как ему сказать ?
Ну просто взять у дао двтасорс