===================================
One of the final projects produced for the Udacity Android Advanced Nanodegree.
Android Development Advanced Apps
Most of us can relate to kicking back on the couch and enjoying a movie with friends and family. In this project, you’ll build an app to allow users to discover the most popular movies playing.
Present the user with a grid arrangement of movie posters upon launch. Allow your user to change sort order via a setting:
- Popular Movies
- Highest Rated
- Favourites
Allow the user to tap on a movie poster and transition to a details screen with additional information such as:
- original title
- movie poster image thumbnail
- A plot synopsis (called overview in the api)
- user rating (called vote_average in the api) release date.
Allow users to view and play trailers in the youtube app or a web browser. Allow users to read reviews of a selected movie. Allow users to mark a movie as a favorite in the details view by tapping a button(star). Create a database and content provider to store the names and ids of the user's favorite movies.
- Build a UI layout for multiple Activities.
- Launch these Activities via Intent.
- Fetch data from themovieDB API.
- App is written solely in the Java Programming Language.
- Movies are displayed in the main layout via a grid of their corresponding movie poster thumbnails.
- UI contains a settings menu to toggle the sort order of the movies by: most popular, highest rated, favourites.
- UI contains a screen for displaying the details for a selected movie.
- Movie details layout contains title, release date, movie poster, vote average, and plot synopsis.
- When a user changes the sort criteria (“most popular and highest rated”) the main view gets updated correctly.
- When a movie poster thumbnail is selected, the movie details screen is launched.
- The titles and IDs of the user’s favorite movies are stored in a native SQLite database and are exposed via a ContentProvider. This ContentProvider is updated whenever the user favorites or unfavorites a movie. No other persistence libraries are used.
- When the "favorites" setting option is selected, the main view displays the entire favorites collection based on movie ids stored in the ContentProvider.