Необходимо разбить проект на слои согласно Clean Architecture, чтобы можно было явно отделить сущности ответсвенные за данные, представление и логику.
Так же нужно реализовать всё написанное в активити согласно паттерну MVP. UI должен быть отображен во фрагменте.
Работу следует выполнять в отдельном репозитории ответвлённого от представленного.