pec-css / moviedroid Goto Github PK
View Code? Open in Web Editor NEWAndroid Application for a user’s favorite Movies, TV shows and Anime while keeping up to date with the latest releases.
License: MIT License
Android Application for a user’s favorite Movies, TV shows and Anime while keeping up to date with the latest releases.
License: MIT License
Add a navigation drawer that will show general options like profile, settings, log out. These options will be changed or implemented later
Refer official android docs:
https://developer.android.com/guide/navigation/navigation-ui#add_a_navigation_drawer
Create a template for pull requests that will be created in this repo
The AboutActivity
should display a brief info about this project and have a button to redirect the user to this github repo. An about should be added to the navigation drawer, which will be used to open this activity
Limit the description to 4 lines in the detail fragments
Add a down arrow below the description to expand it
When expanded, replace the down with an up arrow to close it back
Add a feature to favorite a movie or tv show. The favorite icon should appear in the detail fragments. The favorites can be stored as a field of type MutableList<ListItem>
in the User
data class
The items in the user lists need to be sorted according to the title of the item.
In the all list, the items should be sorted such that they appear in the order
These items must be sorted within themselves, i.e., all the watching items must appear before all the competed items but they should appear in sorted order according to their title
Example:-
The current UI of the login activity is very dull with just a single sign in button. Improve upon the UI to make it more attractive and preferably add animations to make it more appealing
Replace all the static strings in the codebase by creating string resource for each string in the strings.xml file
How to create a string resource?
Go to the strings.xml file and under the resources tag, add a resource in the following format
<string name="name of string res">"The value of string resource"</string>
Example:-
<string name="hello_world">"Hello World!"</string>
In the StatusBottomSheet
, add an option to remove the item from the user's list. Clicking on this option should open a dialog to confirm the removal
Lottie is an animation library used for easily adding animations to the app.
Add the dependencies for the Lottie animation library in the app level build.gradle file
How to do that?
Open the app level build.gradle file and under dependencies, add the following
implementation 'com.airbnb.android:lottie:3.4.0'
Add suitable colors for night mode in the night colors.xml file and corresponding light mode colors in the original colors.xml and use the colors wherever required. Each color in the night colors.xml should have the same name as their light mode counterpart in the original colors.xml.
Like for example
In the original colors.xml
<color name="text_color">#000000</color>
Then subsequently in the night colors.xml
<color name="text_color">#FFFFFF</color>
Add a basic onboarding to the LoginActivity
initially consisting of three pages. They can remain empty for now as they will be filled with the appropriate content later. Along with this, the login functionality should be shifted to a fragment inside the LoginActivity
instead of the LoginActivity
so that onboarding can be used along with it.
Currently the SearchFragment
uses a basic search view which is not at all appealing, improve upon the design of the search view to make it similar to those present in most of the apps. Try to make the design relevant to its purpose, i.e., searching movies and TV shows
Create a template for issues that will be created in this repo
Change color of the status bar to match the app's theme
Exactly what it says
Currently we can only search for movies in the SearchFragment
. Add chips below the search bar to select whether to search for movie or Tv Show. We can keep the movie chip as checked by default.
Chips in Material UI
https://material.io/components/chips/android#using-chips
Let's remove java completely :)
After migrating, remove the java badge from readme 😇
Exactly what the title says, gl
Display a pie chart in the ProfileActivity
showing the count of movies or tv shows with the status
Use the corresponding colors of each list when representing them in pie chart
Add suitable lottie animations that should appear when search results are loading, movie details are loading and at any other relevant places.
Create a splash screen for the app
One of the ways of implementing a splash screen:-
https://stackoverflow.com/a/5486970/17369066
It is preferrable to make a design for the splash screen in figma before implementing it in xml
Implement on-device training for the movie recommendation model that will be integrated into the app (#45 ).
Reference
https://www.tensorflow.org/lite/examples/on_device_training/overview
Should be pretty ez
The all list is sorted, sort the the other individual lists as well according to name
Currently the LoginActivity
is written in Java. Migrate the Java code to Kotlin.
Java -> Kotlin pls, thank you 😇
Java -> Kotlin pls, thank you 😇
Exactly what it says
Display 3 average ratings, overall, movies and tv shows
While calculating average ignore unrated movies or tv shows
Java -> Kotlin pls, thank you 😇
Open the ProfileActivity
when user clicks on the profile pic on the app bar
Create a layout for the cards that will appear in the user list
For this, first create a design for the card in the figma workspace and then implement it in xml.
Java -> Kotlin pls, thank you 😇
Java -> Kotlin pls, thank you 😇
Java -> Kotlin pls, thank you 😇
Display the a list of different trailers and videos in the detail fragments as a horizontal pager where one can swipe or press on an arrow button (your choice which implementation you wanna go with, or you can implement both) to move to the next video
You can use YoutubeView
in the layout to display a video, usage in kt file to display a video->
youtubeView.loadData(key, "text/html", "utf-8")
The videos and their keys can be obtained using this api endpoint
For now we'll stick ourselves to only youtube videos so ignore the videos which have site
other than "Youtube"
Display list of cast and a list of crew of a movie or tv show in the detail fragments as a horizontal RecyclerView
IMDB API has request limits in its free version and hence we have decided to replace it with TMDB API that has no such request limits.
TMDB API docs
https://developers.themoviedb.org/3
The default font is being used right now, would be nice to have good looking font, can check out google fonts for any good ones
Java -> Kotlin pls, thank you 😇
The score bottom sheet contains no option to remove rating, add an option for it. On removing the rating, score property of the user should be set to 0
Integrate dagger hilt into the application and use it to inject the TMDB API instead of creating an instance of it
No response
Limit the title to one line and show ...
at the end when the text exceeds the limit, also reduce the font size of the title a bit
No response
No response
Currently most of the activities and fragments use findViewById for accessing the views from the xml file. However, it is preferred to replace it with Jetpack ViewBinding to ensure type and null check and avoid unnecessary boilerplate code.
What is ViewBinding and how to implement it?
Refer the official android docs
https://developer.android.com/topic/libraries/view-binding
Create a profile page, either using activity or fragment, displaying general information of the user. It may be opened through the navigation drawer.
No response
The text in the card should be centered, the font size is a bit small , need to increase that. Also, show ellipses ...
when the title overflows
No response
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.