Upnext: TV Series Manager is now officially part of the Google Developers Dev Library
NOTE: Upnext: TV Series Manager
is now using Jetpack Compose!
All screens are using ComposeView.
Each area of the app is being gradually converted to this modern UI toolkit.
There are quite a number of changes that need to be done in order to fully migrate Upnext: TV Series Manager
to Jetpack Compose and, therefore, the migration will be gradual. Should you wish to help with this effort, please see the contributing guidelines and code of conduct.
Have you ever been frustrated by your favorite series' production breaks to the point where you find it difficult to keep track of when the series will come back? This app aims to provide you with that information about the series' next air date as well as the episode's plot synopsis (if available at the time).
The app is currently on the Google Play Store https://play.google.com/store/apps/details?id=com.theupnextapp
- A Dashboard featuring yesterday, today, and tomorrow's shows
- An Explore screen featuring Popular, Trending, and Most Anticipated Shows courtesy of Trakt
Now you can add a show as a favorite, which will be synced to your Trakt account. All your favorites will be displayed on the Account screen when your Trakt account is connected. You will require a Trakt.tv account first before you can connect it on Upnext: TV Series Manager.
It is important that you ensure that the below are fully setup or the project will not run.
The project is configured to use Java 17. Please ensure that your Android Studio is set to use this and not the default 1.8 else the project will not build:
Build, Execution, Deployment > Build Tools > Gradle > Gradle JDK
- Ensure that you add your
google-services.json
file to be saved in the app/ directory
-
local.properties
should be used to contain the relevant keys. Note that this file is added in the.gitignore
to ensure this file is never committed to the repository for security reasons as these keys should only be known to you, the developer. -
Please obtain an API key from https://trakt.tv/ (directions below) in order for the Trakt functionality to work. You will need to place this key in
local.properties
(seelocal.properties.example
for a sample of how it should be) as follows:
TraktClientID="[your Trakt Client ID key goes here]"
TraktClientSecret="[your Trakt Client Secret key goes here]"
TraktRedirectURI="[your Trakt redirect URI goes here]"
In your Trakt account dashboard https://trakt.tv/oauth/applications:
- Add your new application
- Once created and on the application view in Trakt e.g https://trakt.tv/oauth/applications/<id> you will
find your Client ID and Client Secret
- When the user navigates to the Account screen while not logged in they will have the option to authorize
Upnext: TV Series Manager on their Trakt account. Once they click on the "Connect to Trakt" button in the app,
they will be redirected via Chrome Custom Tabs or Webview using OAuth. A callback URL is required by Trakt for when the
user has authorized Upnext. If you want to define your own, just make sure that the <data> tag in AndroidManifest.xml
for MainActivity is updated to reflect your chosen callback URL.
It is currently defined as the following in AndroidManifest.xml:
- host = 'callback'
- scheme = 'theupnextapp'
If you want to use the above as the callback, then in Trakt use "theupnextapp://callback" as your callback URL
Upnext: TV Series Manager
is an MVVM app built using Kotlin and the following libraries:
- Jetpack Compose
- ViewModel, LiveData, Kotlin Flow
- Jetpack Navigation
- Jetpack Datastore
- Room
- Hilt
- Data Binding
- Chrome Custom Tabs
- Glide
- Firebase Analytics
- Firebase Crashlytics
- Firebase Core
- Firebase Performance Monitoring
- Jsoup
- Kotlin Coroutines
- AndroidX Lifecycle
- Gson
- Leak Canary
- Flexbox
- Retrofit
- OkHttp
- Moshi
> bindings
> common
> database
> di
> domain
> extensions
> network
> repository
> ui
> work
|_ MainActivity.kt
|_ UpnextApplication.kt
The data safety form has been completed on the Play Store and accepted. Please find the CSV version here
MIT License
Copyright (c) 2022 Ahmed Tikiwa
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.