Hello Android users!
We just pushed update 3.9.2 out to 100% of beta users this morning. We'll continue to monitor and roll out to production over the next few days. If you're interested in joining the beta and providing feedback to new updates, you can sign up in the Google Play Store on our app page here:
https://play.google.com/store/apps/details?id=com.roosterteeth.roosterteeth
For 3.9.2, here are the release notes:
π Returning to the app after using picture in picture will no longer open another instance of the app
π Fixed the picture in picture icon from disappearing after returning to the app
π Added the fullscreen button back to the video player. Now users that lock their screen orientation can go fullscreen!
π Added a close button to the video player. You can still swipe left to right to go back or use your device's back button if you prefer!
Now, I've always been a big fan of behind the scenes content from Rooster Teeth, and as a gamer, I love digging through patch notes. We thought it would be fun to share the longer list of everything that was accomplished in this update as well. If this is something you'd like to continue to see, definitely let me know!
Here are the more technical, all encompassing release notes for 3.9.2:
π Fixed crash occurring in CommentsFragment due to observing user properties with null data.
π Updated
com.android.billingclient:billing to 4.1.0.
π Updated BillingManager, SubscribeFragment, PriceChangeHelper with v4 changes.
π Added additional Crashlytics logging & Performance traces.
π Fixed an issue where the Offline Downloads swipe to delete for pending videos was attempting to delete in-progress videos.
π Refactored DownloadsAdapter to better handle data synching between remote videos and our local offline video data.
π Fixed caching issue when swipe deleting downloaded videos.
π Refactored SearchViewModel to be lifecycle aware.
π Fixed an issue where navigating from Search to series would cause a crash due to ContainerActivity attempting to launch the fragment when it should be launched from FragmentNavigator, MainActivity currently.
π Improved Offline Downloads stability. Specifically for in progress downloads across screens.
π Improved Downloads page syncing of remote videos and the various states with our local offline video metadata.
π Fixed an issue where deleted offline videos wouldnβt update the Downloads list fast enough and the remote video would still exists in the cache.
π Fixed an issue where the series selection wouldnβt update with userβs choice.
π Added full screen button to the VOD & Live control bars.
π Created PlayerCoordinator to handle video player related logic including orientation changes.
π Updated facebook-login dependency from 8.2.0 to 14.1.1.
π Added additional thread safety to CallHelperSingle & SingleKeyPagedRepository
π Refactored VOD & Live control bars to use custom button implementations for PiP & captions.
π Refactored control bar setup in PlayerFragment to reflect XML changes.
π Fixed an issue in SeasonsFragment where entering SeasonsFragment for a second time with a different series the list of episodes would show previous entryβs list of data. Now am forcing update of data in SeasonsFragment on entry.
π Fixed nav issue with Offline Downloads screen.
π Fixed player control bar setup bug when in offline mode.
π Un-modularized feature:video:live into :legacy. This module was modularized by a previous developer. The logic related to RTTV Live was not ready to be modularized due to itβs heavy dependency on :legacy core logic that has yet to be modularized. It was causing conflicts with the flattened structure.
π Created :core:corenavigation module to allow navigation logic to be shared between :legacy and new feature modules like downloads.
π Ran into an issue where the PlayerFragment instances arenβt destroyed as expected and in the case where a user navigates from a VOD video from Home screen and navigates to RTTV via newly exposed bottom navigation menu thanks to single activity. Back navigating in the stack causes the player to try and play the video due to current state management. Need to refine that to have proper back nav experience.
π Implemented workaround to double audio issue by using an exposed function on the PlayerFragment to stop playback and other Fragments like VideoFragment & LiveFragment call this when their onDestroy functions are fired. Sometimes the PlayerFragment is still retained, but only until the next instance is instantiated, or it appears that way. It seems RemoteVideoFragment is not firing itβs destroy logic until later for some reason. Will monitor for performance hits and memory leaks.
π Playback position handling updated.
π Created BottomNavigationViewModel functions to help features update MainActivity with the app state. This helps hide now available navigation UI until later updated to maintain current behavior.
π Implemented more dynamic Connectivity awareness logic. We were previously using function meant for debug only state checking.
Removed OfflineActivity. MainActivity now launches OfflineHomeFragment during loss of connection.
π Removed ActivityLauncher interface from our Application class. It only handles login launching now. To be removed in future update. Navigation is now handled at the root Activity level for the most part.
π Updated logic around OfflineHomeFragment displaying/dismissing due to connectivity state. MainActivity handles launching, but the OfflineHomeFragment can observe the connectivity and dismiss itself in the case of a reconnection event.
π Updated MainActivity XML with CoordinatorLayout to better handle combined showing of bottom components like bottom navigation, chat entry view, keyboard, Chromecast mini controller, etc.
π PiP is entered automatically when on the video player screen and the app is placed into the background, or system events like from users engaging Google Assistant prompts.
And if you got this far, we've officially resumed work on fixing background play! 3.9.3 will include background play and some additional bug fixes. We really appreciate your patience and look forward to bringing you more updates in the future!