Files marked with @DoNotAlter should not be altered.
Known bugs:
- Sometimes after loading contacts there are duplicated entries in the list
- Application is unresponsive while loading the data
- Application accesses contacts service twice (check the entries "I/ContactsService: Loading contacts for user ID" in the logs)
- Number of items in the lower part of the screen and actual number of items are out of sync sometimes
- Refresh stops working after an error
Features to implement
- Contacts should be sorted by name
- Add search field that allows to filter contacts to the ones that contain search query in the e-mail or the name. The number at the bottom should still show total number of contacts, not the filtered ones.
What to refactor
- Refactor adapter into a Kotlin class using View Binding
- (optional) Also refactor UsersAdapter to use view binding
- Refactor UserManager from a singleton into injected object that is scoped to whole application. Rewrite it in Kotlin and add reactive API instead of change listeners.
- Anything else that you may want to refactor.