Тестовое задания для стажировки VK
Custodian - проводник. Реализована возможность "проваливаться" в подпапки, открывать и делится файлами, сортировать по имени (я решил сортировать вперемешку: файлы и папки вместе), по размеру (здесь уже присутствует деление: папки первее), по дате, по типу файла (папки первее - у них нет типа файла)
В качестве сущности использую дата-класс SFile. Стандартно реализую RecyclerView (из-за ограниченного времени - без кастомной анимации) при помощи классов SFileViewholder и SFileAdaptera, а также при помощи интерфейса onClickableListener, который их связывает (D, в слове SOLID). Учёл возможность переворота экрана (перерисовки) - состояние сохраняется. Старался минимизировать использование фрагментов, так как в таком простом проекте они "действительно" требуются только для всплывающих окон и меню.
Возможно код в MainActivity вышел большим - ошибку признаю, я старался поменьше.
Не успел реализовать сохранение хешей и поиск изменённых вне работы приложения файлов. Я бы использовал Room, сравнивал бы при помощи SELECT запросов SQLite.
Сначала я внимательно прочитал задание, определил функциональность будущего приложения и решил перед созданием Android приложения создать хорошо работающие отлаженные решения отдельно. Первым делом функции работы с файлами, потом отображение списка файлов.
