It is a test task application with 5 screens:
- Main screen with list of aveliable genres, filter and search toolbar.
- Movies list sreen with movie cover, short info and "Add to favorite" button.
- Movie info screen with movie cover, full info and 4 tabs (Info, Cast, Review, Video).
- Favorite movies screen.
- Movie trailers screen.
- API calls made with Retrofit+OkHttp+GSON.
- Ability to work offline made by Room (saving/getting information from data base).
- For easy image loading used Glide library.
- To make asynchronous API calls and DB transactions and returning result in proper thread used RxJava2
- Made some custom views like GenreView on main screen, PinCodeView for Password reset dialog and CustomToolbarSearchView.
- Made sync with server for update all movies that saved in DB every 4 hours (by WorkManager).
- Loging to sync saved movies in DB with TMDB server.
- Parental control to avoid showing 18+ movies, protected by password.
- Adding movies to favorites.
- Filterig and sorting movies.
- Searching movies.
- Saving covers to disk when cover is long pressed.
- ZoomIn/ZoomOut on cover press.
- Support Horizontal/Vertical orientation.
- Ability to wotk offline.