Commit Graph

294 Commits

Author SHA1 Message Date
Jannik a51001ec2e
replace MaterialDialog with MaterialAlertDialogBuilder in AboutFragment 2022-02-05 20:10:59 +01:00
Jannik 0b5a8e69fb
add preferred content language selection to AccountFragment
this contains only gui work
2022-02-05 20:02:33 +01:00
Jannik 61c96f5ce2
update playhead on manually selected next episode & start fully watched episodes from the beginning 2022-02-04 23:07:48 +01:00
Jannik 9bf0ae2f63
refresh access token, if it is expired, before doing a request 2022-02-01 17:21:42 +01:00
Jannik f66fca7ebb
MediaFragment: update playhead progress/fully watched on resume 2022-02-01 17:21:42 +01:00
Jannik df4f43c0a2
Player: load media async and use playhead for initial episode 2022-02-01 17:21:42 +01:00
Jannik 287ef57bdb
don't show next ep button or autoplay if the current ep is the last ep
next_episode_id can be non null, even if it's the last episode
2022-02-01 17:21:42 +01:00
Jannik aa41884db5
the media type should not change while playing a media (tv show/movie) 2022-02-01 17:21:42 +01:00
Jannik bec0dc2628
implement playhead reporting to crunchyroll 2022-02-01 17:21:42 +01:00
Jannik 4fed3ddb91
add upNextSeries
the MediaFragment will show the next episodes title instead for the series title and play the "next up" episode when the play button is clicked
2022-02-01 17:21:42 +01:00
Jannik e652c001d3
Update the onboarding process to support crunchyroll
* only save credentials during onboarding, if login was successful
* show onboarding, if login failed
2022-02-01 17:21:42 +01:00
Jannik 2f78fbea73
add highlight (random of newly added (n=10)) 2022-02-01 17:21:42 +01:00
Jannik a1fe08840f
add newly added title to HomeFragment
* add support for season_list to crunchyroll parser
2022-02-01 17:21:42 +01:00
Jannik 402fb06c9e
add playheads to crunchyroll parser
* show watched icon, if episode has been fully watched
* add seasonTag to browse()
2022-02-01 17:21:42 +01:00
Jannik 188d0d9162
add up next to home screen
for now up next will show the series and not play the actual episode
2022-02-01 17:21:42 +01:00
Jannik d5d70e49d2
add watchlist to home fragment 2022-02-01 17:21:42 +01:00
Jannik f2a798d4f7
add watchlist support for media fragment 2022-02-01 17:21:42 +01:00
Jannik d427691f6e
update copyright/license notice 2022-02-01 17:21:42 +01:00
Jannik b4daac0814
replace tmdb multi search with type search (movie/tv)
multi search often retuns a wrong result, therfore use movie or tv show search
2022-02-01 17:21:42 +01:00
Jannik 554af530e3
move TMDBApiCOntroller to Fuel and kotlinx.serialization
* add year and maturityRatings to MediaFragment
* don't show season selection if only one season is present
2022-02-01 17:21:42 +01:00
Jannik 27e7f2a249
add subtitle selection to player 2022-02-01 17:21:42 +01:00
Jannik f97d07c2b8
implement season selection in MediaFragment 2022-02-01 17:21:42 +01:00
Jannik ecbbc5db7b
implement preferred season/languag choosing in MediaFragment 2022-02-01 17:21:42 +01:00
Jannik 4fd6f9ca7e
add search for tv shows
media items are currently not selectable, the app will crash
2022-02-01 17:21:42 +01:00
Jannik 63ce910ec5
implement lazy loading for LibraryFragment & code cleanup 2022-02-01 17:21:42 +01:00
Jannik 7dc41da13c
add support for crunchyroll media playback in player 2022-02-01 17:21:42 +01:00
Jannik 236ca9a6c9
Implement media fragment for tv shows 2022-02-01 17:21:42 +01:00
Jannik a46fd4c6d2
implement index call
index is needed to retrieve identifiers necessary for streaming
2022-02-01 17:21:42 +01:00
Jannik c4bc3c7ea2
add rudimentary parsing for browsing results 2022-02-01 17:21:42 +01:00
Jannik 844ff41dd3
add crunchyroll login and browse (no parsing for now) 2022-02-01 17:21:42 +01:00
Jannik 3935f37267
update libraries
* kotlinx-coroutines-android 1.5.1 -> 1.5.2
* exoplayer 2.14.2 -> 2.15.0
* jsoup 1.13.1 -> 1.14.2
* gradle agp 7.0.1 -> 7.0.2
2021-09-05 13:43:27 +02:00
Jannik eeb1c33e43
use the epsidoeId for the next epsiode in PlayerViewModel 2021-09-05 11:54:55 +02:00
Jannik 8753d4f36f
fix tmdb episode description in player 2021-09-05 00:08:53 +02:00
Jannik 5ea94b7ded
add numberStr to AoDEpisode type & show tmdb episode info in player
* use numberStr instead of index to display the correct episode number, allowing for number such as "12.5"
* show tmdb episode description in player if found and aod description is missing
2021-09-05 00:08:03 +02:00
Jannik 062013489d
use notifyItem...() instead of notifyDataSetChanged() in MediaFragment 2021-09-05 00:04:59 +02:00
Jannik ed9eff433b
AoDParser Media handling rework [Part 2/2]
* move Player to new AoD media Implementation
* remove old AoD media Implementation from AoDParser
2021-09-04 13:33:46 +02:00
Jannik c2a5f768b8
AoDParser Media handling rework [Part 1/2] 2021-08-31 19:47:18 +02:00
Jannik a505315781
fix crash if media is not found in tmdb 2021-08-29 15:05:34 +02:00
Jannik d76538cf28
use locale instead of string for language in AoDPlaylist 2021-08-29 15:05:34 +02:00
Jannik 309a991007
fix for AoDParser related code clean up 2021-08-29 15:05:34 +02:00
Jannik 0340c83b47
clean up some AoDParser related code 2021-08-29 15:05:34 +02:00
Jannik 9dfd2cf70b
added skip opening for tv shows
* available for tv shows, where metaDB has the needed information
2021-08-29 15:05:34 +02:00
Jannik 26d2da923b
use Gson in TMDBApiController, adapt tmdb types to api documentation
* use gson fromJson() to parse tmdb response
* adapt tmd types to documentation (nullable/non nullable)
2021-08-29 15:05:34 +02:00
Jannik c66c725ee3
use tmdb data if missing on aod
*  episode description
2021-08-29 15:05:34 +02:00
Jannik 44f99295e9
rework the tmdb controller
the tmdb interation now provides additional information:
* tv seasons & episodes
* movie & tv show (air date, status)
2021-08-29 15:05:34 +02:00
Jannik d417181b70
update kotlin, gradle & libraries
* kotlin 1.5.21 -> 1.5.30
* gradle wrapper 7.0.2 -> 7.2
* gradle agp 7.0.0 -> 7.0.1
* constraintlayout 2.0.4 -> 2.1.0
2021-08-29 15:02:40 +02:00
Jannik 664959641f
fix tmdb search for movies
movies don't have name but titles
2021-07-04 13:01:49 +02:00
Jannik ba7d82bc2b
replace deprecated OnNavigationItemSelectedListener 2021-07-03 15:58:20 +02:00
Jannik e0a6485ed7
tmdb api improvements
* sort tmdb results by name
* remove season information in media title before searching
2021-07-03 15:51:52 +02:00
Jannik 5555269877
sort tmdb results with String.compareTo 2021-07-03 13:46:13 +02:00
Jannik 03e9c3dae5
fix crash on myList element not present in overall itemMediaList
fixes #42
2021-07-03 13:36:15 +02:00
Jannik 8afbae1e1a
set pip source hint & update exo player
* exo player 2.14.0 -> 2.14.1
2021-06-17 19:36:13 +02:00
Jannik 164db8ebd1
remove unneeded import 2021-06-12 21:03:19 +02:00
Jannik 44d1825095
minor code clean up 2021-06-12 21:02:09 +02:00
Jannik 1d071eafdb
add media session & update exo player to 2.14.0 2021-06-12 20:57:12 +02:00
Jannik 0decf317d9
remove some unneeded resources 2021-06-06 18:06:59 +02:00
Jannik 5e48e724a7
update some libraries & coroutines 1.5.0
* androidx.core 1.3.2 -> 1.5.0
* androidx.appcompat 1.2.0 -> 1.3.0
* gson 2.8.6 -> 2.8.7
* coroutines-android 1.4.3 -> 1.5.0
  * don't use GlobalScope, use lifecycleScope and vieModelScope instead. This fixes a few issues when fragments where destroied befor the coroutine finished.
* gradle wrapper 7.0 -> 7.9.2
2021-06-06 17:54:19 +02:00
Jannik 46e3d1f1b6
don't use "save" when selecting the media language, use "apply" instead 2021-06-04 00:18:33 +02:00
Jannik a3a89c6b64
don't use deprecated startActivityForResult() use registerForActivityResult() instead 2021-05-27 19:50:00 +02:00
Jannik 7ce67f57cd
add export/import of my list
fixes #39
2021-05-26 19:46:46 +02:00
Jannik 063b5405fc
add dev settings gui
enable dev settings by clicking the app icon in the about screen 5 times
2021-05-09 20:31:51 +02:00
Jannik be591a961a
update agp and kotlin
apg 4.1.3 -> 4.2.0
kotlin 1.4.32 -> 1.5.0
2021-05-09 19:32:31 +02:00
Jannik 86dfd69b4b
add subscription info to settings fragment
* update androidx.navigation: 2.3.4 -> 2.3.5
2021-04-17 20:59:37 +02:00
Jannik 0bb433b5cb
set timeout for laoding the playlist to 120 seconds
fixes #36
2021-03-13 22:08:53 +01:00
Jannik b05ecf64a6
minor code clean up 2021-03-11 19:11:12 +01:00
Jannik 1a9de4124d
minor pip mode fixes 2021-03-04 20:19:54 +01:00
Jannik 6cc59a72fc
don't exclude player from history
Previously it was possible to exit the player without going into pip mode and having no option to open this player activity again.
2021-03-02 14:52:46 +01:00
Jannik a07f291098
only update media title if there is one & update exoplayer to 2.13.2 2021-02-27 21:12:42 +01:00
Jannik 9d3e9c5019
dsiable scrolling on appbar if no tabs where added to media fragment
fixes #33
2021-02-20 22:57:00 +01:00
Jannik 09191f6732
fix possible and rare index out of bounds 2021-02-13 00:31:58 +01:00
Jannik e762745705
use CoordinatorLayout instead of NestedScrollView in media fragment 2021-02-08 00:22:50 +01:00
Jannik b02fadaa89
fix unchecked single choice button in theme dialog beeing white 2021-02-06 22:45:28 +01:00
Jannik 5bb51c9054 Add similar titles to media fragment (#28)
* update androidx navigation libraries
* add similar media to MediaFragment
* parse similar media in AoDParser

Reviewed-on: #28
Co-Authored-By: Jannik <seil0@mosad.xyz>
Co-Committed-By: Jannik <seil0@mosad.xyz>
2021-02-06 19:02:12 +01:00
Jannik 67c1e2bfdc
minor clean up 2021-01-21 20:31:15 +01:00
Jannik 373f5c56c9
rework the about fragment 2021-01-21 19:53:16 +01:00
Jannik 4c5d6e6e24
add top ten to home screen & minor fixes
* use plural for runtime and episodes
* code clean up
2021-01-21 18:22:53 +01:00
Jannik c6874d0e54
move showFragment to ActivityUtils 2021-01-20 16:10:41 +01:00
Jannik 8a22554846
add onboarding (login), change default theme to dark
closes #14
2021-01-16 00:16:47 +01:00
Jannik 3f45d769d2
rework initial loading, don't crash on login timeout on app start
closes #25
2021-01-13 20:57:21 +01:00
Jannik 7a95304ee1
fix episodes not showing, if scroll is not needed in MediaFragment 2021-01-11 22:12:21 +01:00
Jannik 8e8db386a0
play new media if selected while player is in pip & minor code clean up
move some player avtivity stuff to ActivityUtils
2021-01-08 10:58:24 +01:00
Jannik 86e07ba2cf
return to main activity if pip was launched before 2021-01-08 09:31:50 +01:00
Jannik e5037cf9ac
add pip support to player activity 2021-01-06 15:07:31 +01:00
Jannik e4ac01605f
fix crash after clicking on the highlight play button 2021-01-01 13:08:25 +01:00
Jannik 75ecac6144
always visible next ep button fix
the always visible next ep button cloud be hidden, when playing the last ep of a tv show and changing to a previous ep via the episodes list
2021-01-01 12:15:17 +01:00
Jannik 31197a5d44
minor fixes
* fix current language is set to preferred and not to actual language
* fix player episodes lists sometimes missing the play icon
2020-12-31 13:12:37 +01:00
Jannik 489ef02a35
fix controls autohide not working when epsiodes list was shown
fixes #19
2020-12-30 20:08:19 +01:00
Jannik 9705a752fb
don't crash if initial loading was not successful 2020-12-30 14:18:04 +01:00
Jannik 7a5f90cb82
don't initialize exoplayer, if view model exists and player is ready
this prevents the media being reloaded, when the app is moved to the background and to the foreground again
2020-12-28 20:45:52 +01:00
Jannik 800c2a144c
polish player episodes list ui
closes #16
2020-12-28 20:17:11 +01:00
Jannik 6bec0512ba
minor player fixes
* fix exoplayer access on wrong thread
* fix remaining time calculation sometimes failed
2020-12-27 20:41:18 +01:00
Jannik b3ce43c614
release player in PlayerVIewModel onCleared()
this fixes playback after the activity has been destroyed, while being in background
2020-12-27 20:31:18 +01:00
Jannik 7845770067
Clean up PlayerActivity and PlayerViewModel
* use Local instead of streamURL to save selected language, this allows nextEp/ selected Eps to use previously selected language
* hide episodes button, if media is a movie
2020-12-27 20:11:01 +01:00
Jannik 94da8c6cee
player language settings [Part 2]
* move player object to PlayerViewModel
* minor code clean up
2020-12-26 20:09:35 +01:00
Jannik 8a43567737
rework how different streams/languages per episode are handled
* potentially support more than 2 streams
* part of language settings in player
2020-12-26 14:39:35 +01:00
Jannik 8f60a30d61
improve media parsing / loadStreams()
* fix #20, return 0 as episode number on NumberFormatException
* don't crash if a episode can not be parsed
* update material components: 1.3.0-alpha04 -> 1.3.0-beta01
2020-12-26 11:32:09 +01:00
Jannik 00699aaec7
add language settings to player [Part 1] 2020-12-20 20:21:27 +01:00
Jannik bba642e9e3
use a random new title, if highlights is empty 2020-12-18 17:23:04 +01:00
Jannik 04893060e4
add episodes list to player [Part 2] 2020-12-15 23:15:14 +01:00
Jannik 6fc7bb2c1e
add episodes list to player [Part 1] 2020-12-14 23:46:55 +01:00
Jannik ab180ddd89
add new simulcasts and new titles to home screen
* simulcasts and new titles
* update some libraries
* don't crash if AoDPraser fails to parse mediaId
2020-12-11 10:54:40 +01:00
Jannik 98636d326e
make sure highlighted media has a valid mediaId
this also prevents non media from showing as highlights
2020-12-07 17:50:10 +01:00
Jannik 6775a4da2e
show AoD highlights on home fragment 2020-12-06 15:18:15 +01:00
Jannik a390bc9686
update exoplayer to version 2.12.2 2020-12-05 22:17:54 +01:00
Jannik 82bf34e4cb
update theme colors to better reflect material design guidelines
* dark primary: #000000 -> #121212
2020-12-05 21:51:12 +01:00
Jannik e34e5b2bbd
replace licenses dialog and about dialog with about fragment 2020-12-05 21:03:14 +01:00
Jannik 20407d9cac
add permanently visible next episode button & fix autoplay
* autoplay / play next episode could sometimes skip episodes
2020-12-02 11:14:09 +01:00
Jannik dbd4b26a65
minor text change 2020-11-29 20:25:22 +01:00
Jannik ac5aee20de
update material components to alpha 4 2020-11-29 18:23:02 +01:00
Jannik 32844223fc
minor episodes ui improvements
* show 3 lines of episode description
* episodes title: Episode xy -> Ep. xy
2020-11-28 15:09:39 +01:00
Jannik d01e87bf14
use suspending functions for coroutines when possible
* fix crash, when media is selected, but MediaFragment is removed before AoDParser could load data
2020-11-27 11:06:16 +01:00
Jannik 3ed55ca3c9
fix episodes without a streaming link make AoDParser crash 2020-11-26 17:32:15 +01:00
Jannik dfaf359952
fix poster not being scaled correctly
regression from 2de1419d36
2020-11-26 17:07:33 +01:00
Jannik db5758edf9
minor code clean up 2020-11-25 23:33:06 +01:00
Jannik 2de1419d36
fix theme not applying to nav bar
regression from 7df99ea0cc
2020-11-25 23:26:46 +01:00
Jannik 7df99ea0cc
use view binding wherever possible 2020-11-25 22:35:55 +01:00
Jannik 8d1c3d9a3f
move some player data to PlayerViewModel 2020-11-25 16:04:04 +01:00
Jannik c0c5cb9110
change themeSecondaryDark to #202020 2020-11-24 18:07:48 +01:00
Jannik 21b6e358e7
theme selection & gradle update
* it's now possible to change the app theme (light/dark)
* update gradle to version 6.7.1
* update gradle pugin to version 4.1.1
* update kotlin to  1.4.10
2020-11-23 20:11:10 +01:00
Jannik 0e5c697bce
set theme for dialogs 2020-11-23 09:53:44 +01:00
Jannik 830f7e753b
theme account fragment, new primary & accent color 2020-11-22 23:23:28 +01:00
Jannik 71079ddc92
add light and dark theme
* currently the theme can not be changed
2020-11-22 14:24:02 +01:00
Jannik 57897077ab
fix next episode button 2020-11-22 14:20:17 +01:00
Jannik dcd6ebccea
theme rework preparation 2020-11-21 19:40:55 +01:00
Jannik 91c9b6d716
fix some minor player gui issues
* hide rwd_10 button when indicator is shown
* update remaining time more often
2020-11-21 18:05:34 +01:00
Jannik 256c32aa3c
add rwd/ffwd double tap indicator & pause/play on long press 2020-11-20 11:20:11 +01:00
Jannik 3880b3ab75
add watched callback for next episode 2020-11-18 18:58:39 +01:00
Jannik 0f0573e5bd
adjust size of rewind/fast forward button 2020-11-16 20:42:25 +01:00
Jannik 6ce263832b
use custom rewind/fast forward button with animations 2020-11-16 19:23:06 +01:00
Jannik fd099e97e6
add visual indicator for rewind/forward gesture 2020-11-15 17:17:56 +01:00
Jannik d4fa726f9c
improve autoplay next episode
* add animations to show/hide next episode button
* add option to disable/enable autoplay
2020-11-15 13:39:33 +01:00
Jannik c8d80ddc9f
Fix my-list issues
* fix entries can be added multiple times to my list
* fix entries can’t be removed from my list after the app was restarted
* closes #15
2020-11-14 13:10:05 +01:00
Jannik 14377c3f18
don't show next episode, if there is no 2020-11-13 15:45:52 +01:00
Jannik 23713fc1e6
Player: add auto play next episode 2020-11-13 15:36:12 +01:00
Jannik 353ae6937a
Player: get media info by id
This allows us to get additional data (needed for "play next episode")
2020-11-13 11:23:09 +01:00
Jannik 2e0a114a80
player interface part 3
add double tap to rewind/forward
2020-11-08 18:05:46 +01:00
Jannik 0e9500e39d
Player: increase clickable area of back button 2020-11-07 18:30:12 +01:00
Jannik 27e8e1c3c2
player interface part 2
* replace current time position with remaining time
* show title and back button at the top
2020-11-07 18:23:09 +01:00
Jannik e51fb0b290
add remaining time to player 2020-11-07 13:33:59 +01:00
Jannik d3f078c661
disable time-bar animation 2020-11-06 10:21:57 +01:00
Jannik 1118c8339c
custom player interface: add progress-bar, rewind/forward 2020-11-05 20:07:41 +01:00
Jannik 1595ef52bc
start working on custom play controls 2020-11-05 18:47:49 +01:00
Jannik 1523e0235a
tv shows: play next episode, on play btn click 2020-11-03 18:21:23 +01:00
Jannik 8a516c640d
add splash activity 2020-11-01 20:17:17 +01:00
Jannik 49430e10bf
update exoplayer to version 2.12.1 2020-10-30 10:03:10 +01:00
Jannik 81b041ab61
added a app icon
closes #11
2020-10-25 20:04:48 +01:00
Jannik cf6a110455
set player rewind/forward to 10 sec 2020-10-23 11:51:09 +02:00
Jannik c138ab4587
add option to prefer the secondary stream, if present 2020-10-23 11:28:47 +02:00
Jannik f0ed6aa379
enable code shrink 2020-10-20 20:22:50 +02:00
Jannik a5fffd5d02
don't use gson.fromJson for a potentially unstable api 2020-10-20 20:07:59 +02:00