Profile cover photo
Profile photo
Serenity for Android
Serenity for Android a Plex Media Server Client
Serenity for Android a Plex Media Server Client

Serenity for Android's interests
Serenity for Android's posts

It's taken a while but slowly making progress on upgrading the underlying libraries of the app. Migrated completely to Gradle, upgraded to OkHttp 3,and retrofit. Next step is to rip out Volley and add in the green robot event bus and the android priority job queue.

Then I can start to look at upgrading the image libraries to glide and look at finally adding in some initial support for Emby. 

The RecyclerView transition is about complete. However as I've been working on it, I've decided to refocus a bit of the effort and the code in general. Serenity started out as a way for me to mainly learn Android development, and it has done the job well. However, I think that at this point, the app needs to focus on it's roots which is for the TV. So for the time being Tablet support will be dropped in the next version. This will allow me to focus and concentrate on getting the TV piece working as smoothly as I can.

Because of this breaking change, the next release when it is ready will be 2.0.0. With this, I'll unfortunately be dropping support for Google TV devices. I don't personally use it any more, and these legacy devices are the least used devices for Serenity now.

In addition, I'm going to add support with 2.0.0, for the Emby media server. This includes support for the multi-user and login features of that platform. I'll also be trying to add Plex user login's as well, but that might not be as simple as for Emby. See, Emby being a true open source product, provides a Java API and actually encourages developers to integrate with their system. Unfortunately, much of working with Plex and the REST endpoints is a real nightmare from a developer's stand point. There is no official Java client for Plex that is publicly available. I don't see them changing that at any particular point to make it easier to work with.

So while I will continue to support Plex, my main focus with 2.0.0 will be supporting Emby and getting the current functionality I have for TV Shows and Movies working with that platform. Maybe plex will eventually publish a true SDK so that developer's can leverage their platform, but unfortunately I don't see that happening.

I'll post here when versions are available for testing.

Post has attachment
So I'm getting some time to get back to some much needed technology upgrades to the application. I have the recycler view items working fairly well now, and starting to make sure that the app functions with the latest design libraries and Android 7.x.

While doing this I ran into an issue upgrading Robolectric that was causing a bunch of issues. In particular the issue linked to below with the fix. Apparently the Robolectric folks didn't include one of the libraries they needed to. Luckily there is the internet and there is a fix.

I'm still debating on Supporting older Google TV devices, but may be forced to drop support as many of the libraries I use are starting to require at least Jelly Bean to work. Regardless you will still have the older versions of the app that will work.

Managed to get both the TV Shows and TV Seasons screens converted this weekend to use the Recycler View, things are mostly working, still need to re-add the long click listeners. Still have the Episode Details screen, Search, and the Music screens to go.

Managed to finally get the movie browsers switched to using recyclerviews. Both the grid and the detail views now leverage recyclerviews. It will be a little while longer before I get the tv show screens switched over and can get another milestone out for testing but for now everything is working. 

Post has attachment
Here is a shot of the Movie Browser page, now using a Recycler View. Browsing is a bit better and faster. If you are button mashing through the list, the background image and content only changes once the Item gains focus and there are no more dpad keycodes being sent.

This is working on my ADT-1, however, there will need to be some more work to get it to work on my Google TV. The plan right now is to continue working on the Android TV implementation and once that is complete, I'll work on getting the Google TV implementation working.

It'll be a while before the next milestone is released with this change.

Post has attachment
Plex announces DVR capabilities with HD Home run built into Plex. What is funny is that there has already been a plex plugin that provided this functionality for the last couple of years. The DVR functionality is going to be Plex Pass only, which is fine, but one of the reason they give is that they are using Gracenote to obtain the metadata for the shows.

However, there are free options that could have been used, and infact there is a open source specification that could be used called XMLTV. This has been used extensively by many PVRs, I used it when I used to use GBPVR back in 2008. For a long time Zap2It provided XML TV data directly... eventually they shut the service down, and formed to provide a cheap alternative to getting the guide data. For $25 a year or $6 for a two month membership you can get your guide data for you r HTPC software such as NextPVR, MythTV, etc. The restriction though is that the software has to be free.

Plex has partnered with GraceNote to provide the same thing that an XMLTV source could provide. A free guide source could have been provided if Plex developers had choosen to do so. But alas it is not.

Now, Serenity may or may not support this, it depends on what type of API access there is after I implement the Plex server authorization code. We'll see what happens, but Plex didn't necessarily have to make this Plex Pass only because of guide data, they could eventually make it available if they let the user choose where the guide data comes from.

I suspect the ultimate reason they did this was to try and provide a decent User Experience, and a more reliable uniform source of data for the Guide information.

Who ever came up with the bright idea to change view.getContext so that it returns a TintContextWrapper when using the support library.... I hate you. Still hunting down breakages, think I now have the majority of them. App is working on Android TV and yes.. Google TV devices. Amazingly enough my Sony Google TV device is still running strong, so I was able to test back on that device. So those that still have that the 1.9.5 update will still support it.

Not sure when the next milestone will be out but hopefully not too long, it all depends on how ripping out the Gallery View and TwoWayGridView goes.

So I have made some progress on bring things up to at least Android M. I have basic functionality working with the new support libraries. Still plenty of work to do replace the Gallery View with a Recycler View, and to update some of the other functionality. When a version is ready for testing again, I'll post a link as in the past.

Updated the App to use API 23 and the latest Leanback libraries. Waiting on a debug cable to arrive so I can re-verify on my ADT-1 before releasing a minor release. 
Wait while more posts are being loaded