Tubitv / TubiPlayer

A media streaming video player based on ExoPlayer from google, with convenience methods for ad supported content
MIT License
95 stars 24 forks source link

Add playback speed function and UI #97

Open dahis39 opened 5 years ago

dahis39 commented 5 years ago

I utilize ExoPlayer's built in playback speed functionality and open up a button in player activity to set it. The UI is a simplified version of YouTube's.

UI walk thought: At Top right corner you will see a new setting button with the typical 3-vertical-dots image. Tab and it will open the first AlertDialog, the Setting Menu. Then you will see Playback Speed as the only option, notices the current speed text is set programmatically. Tab it and it will bring you to the second AlertDialog, the Speed Menu, where you choose the playback speed.

Following architecture: I followed the DI pattern and add a PlaybackSettingMenu class to handle all the nested menus. I also modularized the Option in Setting Menu, so adding and removing items will be easier in the future.

Things to consider: This is more like two features(Setting Menu & Speed Menu) in a PR. I should have asked you guys about the UI first. I also notices the visibility flag for the subtitle button. You may not want the Setting Menu at all, or want it as an option. Let me know.

As my first PR for this repo, hope I'm not doing too badly and is following practices correctly. You guys have good days ahead!