Description You are required to implement an Android application described by the specifications below. You are not allowed to use third-party libraries. The only libraries you can use are the...

1 answer below »

Description


You are required to implement an Android application described by the specifications below.



You are not allowed to use third-party libraries. The only libraries you can use are the standard Android API libraries found in the following URL:


https://developer.android.com/reference/



It is important to follow exactly the specifications and your implementation must conform to these:


The application developed will help the user to keep track of the movies he/she has watched, organise them and look up information about them from the IMDB database.


1. When the application starts, it presents the user with 6 buttons labelled
Register Movie,
Display Movies,
Favourites,
Edit Movies,
Search
and
Ratings.
(3 marks)


2. Clicking on the
Register Movie
button, it should display to the user a page where the user can register (create) a movie that he/she has watched. The page should contain 6 textboxes which can be used to enter the title of the movie, the year, the director, a list of actors/actresses separated by commas, rating and review. For example, the user can enter the following information corresponding to the 6 textboxes “Godzilla vs. Kong”, “2021”, “Adam Wingard”, “Alexander Skarsg˚ard, Millie Bobby Brown, Rebecca Hall, Brian Tyree Henry, Shun Oguri, Eiza Gonz´alez, Julian Dennison”, “6”, “A fast-paced action movie keeping you in suspense for 90 minutes. Excellent performance by Shun Oguri.”.


The year textbox should accept only numeric values which are greater than 1895. The rating textbox should accept only numeric values corresponding to the range of 1−10 (the user gives between 1 and 10 stars as his rating)


The page should also contain a
Save
button, which when pressed saves all the details entered in an SQLite database local to the mobile device.


(15 marks)


3. Clicking on the
Display Movies
button it displays to the user a list of movies sorted in alphabetical order (one per line using the title of the movie entered in the previous question). A tickbox next to each movie is also displayed (the tickbox should initially be blank, i.e. not ticked). The displayed movies should come from the database and they should correspond to movies which the user created using the
Register Movie
functionality in this instance of running the application or a previous instance that the application was run (i.e. the application should NOT delete any saved movies when it exits and all data are persisted in the database).


If the list of movies is more than one page long, it should provide scrollbars that the user can use to see all the movies.


The page should also provide a button
Add to Favourites. The user can select which movies he/she wishes to add as favourites by using the tickboxes and subsequently pressing the
Add to Favourites
button the application will add the selected movies to the database as favourites (for this part, simply add an extra column in the database table containing the list of all all movies).


(13 marks)


4. Pressing the
Favourites
button the application should display to the user a list of all his/her favourite movies (one per line), i.e. all the movies that the user added to his favourites list using the
Add to Favourites
button in the
Display Movies
page in the previous question. Next to each movie there is a checked tickbox (ticked it means it is a favourite and as only favourite movies are shown in this page, all tickboxes should be initially checked).


A button titled
Save
is also present in the page. The user can deselect any favourite movie by unchecking the tickbox for any movie(s) and subsequently pressing
Save
will update the list of favourite movies in the database, i.e. the status of any unselected movie will be updated in the database and become not favourite.


(13 marks)


5. Clicking on the
Edit Movies
button the list of all watched movies in the database will appear (i.e. all movies watched whether they are favourites or not favourites)


After the list of movies appear, the user can click on the name of any movie and a new page will display all the details of that movie from the database, i.e. title, year, director, actors, rating, review and its favourite status indicated as “Favourite” or “Not Favourite”. The rating should appear by displaying the appropriate number of stars in yellow colour (e.g. if 6 is given then 6 stars should appear in yellow, followed by 4 stars in white colour).


The user should be able to edit the information displayed, in order to change any of the details of the movie including whether it is a favourite or not, and then pressing an
Update
button which is also present on the page will update the details of the movie in the database. The user should be able to edit the rating by clicking in any of stars which will becoming yellow (active) or white (inactive). E.g. a rating of 6 should be indicated by 6 yellow starts followed by 4 white stars (6 out of 10).


(12 marks)


6. Pressing the
Search
button, the user is presented with a single textbox and a Lookup button. The user can type in the textbox any string and subsequently press the Lookup button to display all movies in the database which contain the typed string in either the
Title
or the
Director
or
Actors
fields of the movie in the database.


The search should be case insensitive and a match does not have to be a complete match but partial. I.e. if the user types the string “rUISE” the displayed movie(s) could be, a movie which contains “Tom Cruise” in the list of actors or containing in its Title “The Cruise to London”.


(11 marks)


7. (a) Pressing the
Ratings
button the user is presented with the list of movies available in his database and a
Find movie in IMDB
button.


The user can select which movie he/she would like to lookup its IMDB rating, by selecting a movie title (for simplicity you can use radio buttons next to each movie) .


After the selection of a movie the user can click on the
Find movie in IMDB
button to display the list of titles and their ratings (ONLY the titles of the movies) which matches with the title of the selected movie.


The list of movies should come from the following web service:



https://imdb-api.com/


You will need to create a free account on that web service which gives you a unique key which you can use to make queries.


You will need to parse the returned JSON formatted response after you send a similar request with the following (you need to replace the YOUR API KEY with your own key): https://imdb-api.com/en/API/SearchTitle/YOUR_API_KEY/Inception 2010}


The above retrieves from the web service all titles which contain both the title “Inception” and 2010 as the year.


The returned id (starting with tt, the first title above returns an id of tt1375666) which then can be used to extract the rating of that title:


https://imdb-api.com/en/API/UserRatings/YOUR_API_KEY/tt1375666


This request returns a JSON format reply containing the rating (8.8) of the title with ID tt1375666. The rating can be found in the totalRating field.
(15 marks)


(b)
This subquestion should only be attempted if you completed the previous “Ratings” subquestion. Hardcoded solutions, i.e. ratings not coming from the web service will not receive any marks.


Expand the “Ratings” functionality so that when the user clicks on the title of a movie, the image of the movie is displayed in an ImageView. For this you will need to extract the URL corresponding to the movie image from the JSON response, i.e.


the “image” field which follows the “title” field.


(8 marks)



Marking Scheme: The marks achieved for each part of the program are indicated in the description of the task above. In addition to these the following will be taken into account:



Code readability
(structure, comments, variable naming, etc,): 5%



Implementation
(e.g. quality, efficiency, look and feel of the application, based on fonts, colours, etc.): 5%


The maximum for work which does not compile (or XML files with syntax errors causing the Java code not to compile) is 30%.

Answered 30 days AfterMar 09, 2021

Answer To: Description You are required to implement an Android application described by the specifications...

Gaurav answered on Apr 03 2021
145 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here