I am 46 years old and a student... again :-)
As the great Lenin bequeathed, learn, learn, and learn again!
So I took up this difficult task-learning Java and Kotlin for Android development.
And you know what? I'm loving it. Which means I can do it. :-)
Вне очередного ДЗ к уроку выполнить рефакторинг и переименовать полностью фрагмент и все его компоненты с MoreDetailed на более информативное.
Допустим пакет пока пусть станет details
фрагмент и все его компоненты DetailMovie (я предполагаю, что в рамках развития проекта появятся еще фрагменты детализирующие информацию для чегонить еще)
Примерить @parcelize и привести объект получения данных в нормальный вид
(на момент написания задачи большая часть уже выполнена, это для фиксации выполнения задачи)
Необходимо реализовать загрузку (догрузку) следующей страницы (комплекта) данных при прокручивании RecyclerView, в идеале не доходя до конца текущей прокрутки 3-4 позиции.
Поиск по фильмам возвращает в том числе и «взрослый контент». Это параметр adult в ответе сервера. Создайте экран с настройками или чекбокс в меню приложения и добавьте туда настройку включения/выключения взрослого контента. Запоминайте эту настройку в SharedPreferences
В качестве альтернативы или дополнения: открывайте карту с местом рождения актёра. Если вы запрашиваете данные об актёре, с сервера приходит параметр place_of_birth, из которого можно получить координаты
Добавьте кинотеатры вашего города в геозоны и отображайте диалоговое окно при вхождении в геозону. На следующем уроке уведомление можно переделать в push-нотификацию
Согласно рекомендаций полученных на занятии, документации RecyclerView нужно попробовать убрать все ClickListener(ы) из ViewHolder(a) и поместить их у симметричный метод адаптера (симметричный в смысле что у данного метода есть обратный метода как например onStart - onStop) в котором и отключать ненужные белее ClickListener(ы)
Конкретно в рамках RecyclerView принято решение обкатать методы onViewAttachedToWindow (который отлично себя показывает при работе с динамически программно добавляемыми фрагментами в качестве элементов RV) и его отражение (:-) onViewDetachedFromWindow в котором будем обнулять ClickListener(ы)
из всех фрагментов у всех ViewHolder следует перенести подключение ClickListener(ов) в адаптеры в метод onViewAttachedToWindow
соответственно в методах onViewDetachedFromWindow все ClickListener(ы) обнулить
Из бокового меню (шторки) удалить пункт "поиск фильмов" и Детально о фильме
Они больше там не нужны, а передача пустого параметра вызывает краш программы.
Передача данных не идеальна. WeatherDTO переводится в список из Weather, хотя список нам не нужен, достаточно одного объекта Weather. Подумайте, как можно оптимизировать данный код
Проверить и исправить наименования пакетов в соответствии с Kotlin style guide
дополнительно считаю разумным в слое создавать отдельные пакеты, для начала для интерфейсов, ибо если выделил я интерфейс API отдельно пусть отдельно и лежат и нейминг будет соблюден.
в итоге планируется создать пакет interfaces в UI и в domain пусть в нем все интерфейсы и собираются. (провести рефакторинг)
Добавьте экран со списком контактов в ваше приложение
(этот вопрос требует разъяснения, в части какое отношение он имеет к данному приложению и какие контакты интересуют)
-Вынести бизнес-логику (запрос на сервер и парсинг данных) в отдельный класс. Фрагменты должны только запрашивать данные о фильмах и получать их из класса, занимающегося загрузкой