Необходимо написать приложение (состоящее из одного экрана), которое отображает список транзакций, полученных с сервера. Условия следующие:
- Транзакции должны сохраняться в локальном хранилище. При старте приложения без интернета, должны отображаться все транзакции, которые были получены до этого.
- Список транзакций должен быть упорядоченным (сверху самые старые, снизу самые новые)
- Список должен быть сгруппирован по минутам (перед каждой группой должен быть заголовок со временем в формате HH:mm, как на картинку)
- Список должен обновляться каждые 10 секунд (для этого каждые 10 секунд можно делать запрос к серверу, который вернет новые транзакции, а также те, чьи статусы были изменены)
- При добавлении и обновлении транзакций весь список не должен перерисовываться (только необходимые элементы).
- Каждый элемент списка (транзакция) должен содержать: тип транзакции, статус (иконка), сумму, идентификатор (id), время создания в формате DD MMM HH:mm:ss
Для получения транзакций можно использовать метод: GET /dummy/transactionДля сброса списка транзакций перед получением новых: GET /dummy/transaction?clear=trueПараметр транзакции status имеет одно из значений IN_PROGRESS|SUCCESS|FAILUREПараметр транзакции type имеет одно из значений CASH|CARD|BANK|CARD_TO_CARD
Задание желательно выполнить в архитектуре MVVM, с ипользованием Room и Retorfit.
Скриншоты: