Serenity for Android 1.4.5

No development version for testing on this one, only a Play store release.   Changes were very minor.

 

* Fix channel up/channel down focus issue in TV Show and Seasons browser for Gallery view.

* Fix possible force close in Season view for channel up/channel down for Gallery view

* Toggling of Watched Status via Context menu should now follow format of offical Plex client.  Partial watched will toggle to Watched.  Watched and Unwatched toggle as normal.

* Partially watched overlay expands to width of poster/banner, making it clearer how much is left to watch.

 

For the issue with the Watch status after watching an episode not updating the poster right away.  I'll need to hold off on that one until 1.5.x, as I have more extensive code to rewrite and clean up around that area.   Development versions for 1.5.x should start appearing after October 12th.

 

All code is pushed to the github repository.

No development version for testing on this one, only a Play store release.   Changes were very minor.

Minor or not, this type of release raises another issue which I feel needs to be fixed.

Every time you make a release ONLY on google play or ONLY here/github, users who want to follow the latest development need to completely uninstall Serenity and start over from scratch each time, which is not very user-friendly.

In your place I would either change the license code to be identical for the two release forms, or duplicate each google play release here or at github with the dev license code, so that those of us who actively follow the project can update properly without having to uninstall. (In case you wonder, I already purchased the google play version, so that plays no part in my issue with this.)

This issue is not a dealbreaker for me, as I will continue testing each version anyway, but having to uninstall and start over is just a bit irritating.

* Fix channel up/channel down focus issue in TV Show and Seasons browser for Gallery view.
* Fix possible force close in Season view for channel up/channel down for Gallery view

Oh I see. That's why I never noticed that issue in recent versions, as I always use Grid view.

* Toggling of Watched Status via Context menu should now follow format of offical Plex client.  Partial watched will toggle to Watched.  Watched and Unwatched toggle as normal.
* Partially watched overlay expands to width of poster/banner, making it clearer how much is left to watch.

These improvements are in my opinion significant, as they should make it much clearer where to continue viewing from earlier sessions.
 

For the issue with the Watch status after watching an episode not updating the poster right away.  I'll need to hold off on that one until 1.5.x, as I have more extensive code to rewrite and clean up around that area.   Development versions for 1.5.x should start appearing after October 12th.

That's fine for now. The immediate watch status update on screen is not as crucial as the proper update to the server, and the most important thing display-wise is that correct status is shown when returning to the show in a future session, to simplify continued viewing in sequence.
 

All code is pushed to the github repository.

Source code you mean. But the latest dev binary is still 1.4.4-M2.
As I said above, I really wish you'd update the dev binary too, each time you release new changes to google play.
 
Best regards: dlanor

One thing I have been considering is the new Google Play Beta testers option which would eliminate the uninstall reinstall annoyance but you would need to be using Google plus and following the Serenity for Android page.

The original goal of the the freely downloadable APKs was that they would be development versions for the major.minor versions of the app.  Meaning that they would be avalable for a large changes or changes that had major stability implemcations.   What was considered a feature complete version for the major.minor version would be for release and for sale on the play store.   Functionally they would be the same except for some bug fixes, these would be released to the play store first, to get it to people that paid for the app as quickly as possible.    These would be the major.minor.revision (i.e 1.4.1).

The versions sold in the play store are a way to recover some minor development cost, and help fund my frosty beverages I drink while working on the app.  So the app is open source, and free, but free as in beer.   Those that pay for the app do get the convience of automatic updates, but I need a way to address those that want to test and have paid for the app.  So see the play store beta channel solution below.

I've deviated away from that pattern a bit with the 1.4.x release, but plan to get back to it with the 1.5.x series.

With that said, I understand that uninstalling and re-installing can be a pain, and want to give people that have paid for the app or are willing to do testing on the app a way to test new versions with out needing to sideload a different signed version of the app.   So this is where the Google Play Beta channel will come into play.   If you are interested in participating, please comment on the Google plus post below.

https://plus.google.com/u/0/b/100427843958963974912/100427843958963974912/posts/TJezD2JbZYs

This will allow me to restrict the Beta channel to those that are willing to provide feedback.   Yes, I know this limits it to people that are using Google plus, but that is where I get the most feedback about the app and the most interest so far.  It also integrates with the Google Play channel easily, so I can easily add and remove people as needed if necessary.    I will setup a Serenity for Android Beta community on Google plus and invite everybody that responds to the above post to that community.

The free downloadable APKs that are signed with a development certificate that expires sooner than the Google play version (which expires in 30 years), will still be available for people that want to test that way.   The Google Play is guaranteed to always get the bug fix versions for testing.

One thing I have been considering is the new Google Play Beta testers option which would eliminate the uninstall reinstall annoyance but you would need to be using Google plus and following the Serenity for Android page.

Sure, I can do that. I already had to get a Google+ account to follow an unrelated project.

----- snip ----- re: The motivation for split dev and play store releases

I have no problem with this, and fully agree with the idea of having a paid version on the Google Play store.
But for convenient beta testing the latest dev version should contain all released features too.
And that's also the traditional method of ensuring that untested code never reaches the paying customers.

With that said, I understand that uninstalling and re-installing can be a pain, and want to give people that have paid for the app or are willing to do testing on the app a way to test new versions with out needing to sideload a different signed version of the app. So this is where the Google Play Beta channel will come into play. If you are interested in participating, please comment on the Google plus post below.

https://plus.google.com/u/0/b/100427843958963974912/100427843958963974912/posts/TJezD2JbZYs

Done!

The free downloadable APKs that are signed with a development certificate that expires sooner than the Google play version (which expires in 30 years),

That's interesting. I never heard of an expiration date for either one before.
I can understand having it for the dev version, but not for the paid app.

Sure, in 30 years we surely won't be using a compatible Android system, but that's no excuse for a time bomb.
That has no proper reason to exist. (I'm not upset about it, but just confused as to why you'd want it.)

I'm also quite sure  that many paying beta testers might go on using the dev version only to find it expiring unexpectedly when that shorter time runs out. (Though that obviously depends on how much shorter it is, which I still don't know.) So a better solution than the old one is definitely needed.

------ Feedback on tests with Serenity 1.4.5 -----

Most things seem to work fine, except that the partially watched status flagging still malfunctions.

At first I saw no trace of the expected main improvement, that being the new partial watch overlays for show episodes.

As it turns out those ONLY work with internal player, which is impossible to use on some units as Serenity doesn't correctly deduce the need for transcoding. So simple AVI files with standard XviD and MP3 content fail playback in native mode on my OUYA, forcing me to use the external player setting. And with that setting active any video that has been launched at all will be flagged as fully played, even if terminated at any point of playback (even a fraction of a second).

Also, even when the setting is active that should make Plex resumption point be used, ignoring MX Player's internal position memory, the resumption point for a video flagged as "fully played" is still always the point where play was previously terminated for that video, so this isn't working properly either. (If it was truly considered "fully played", new playback should restart it completely.)

Finally I think we need more toggle controls in the context menus.

In the main list of TV shows the context menu for a selected show  is currently empty.

I think it should allow setting/clearing of watched status for entire shows, like in PHT.

Similar reasoning applies to the context menu for a selected season, which currently only has a Queue command.

So to change the status of an entire show or an entire season, we now have to go through every episode in it, toggling them one by one.

This really needs similar improvement as done in the official Plex clients (not so long ago).


Best regards: dlanor

Thanks dlanor.  With 1.5.x I'll be working how the External Player interface works so I can provide better integration with MX Player and ViMu player, the two players that provide API to return the viewing offset.   Right now as you notice is kind of hacky, but mainly due to my own learning curve on how to interface with the players.

You are right the internal player works best with the Watched status.  As the app was originally designed for a Google TV device and these typically have a wider range of supported codecs, the internal player has better integration with the Plex api as I have more control when things happen.   With the external players I need to rework the code that works with them to provide the same level of interface.

There is a request for the 1.5.x series that'll be implemented that will allow you to choose the supported external player to use as default.  So for instance if you have MX Player, MX Player Pro, or ViMu installed.   You'll have a list of options in the settings preferences likeL

* MX Player

* MX Player Pro

* ViMu Player

* Other

If you choose Other, you'll just get the Watched toggle status and no view offset updating.    If you choose one of the supported players, you'll get everything the Internal Player supports, and should start seeing the Progress indicators for the overlays as you would with use of the external players.

I will be adding the additional context menu items for toggling a show.

I'll start the beta testing with Google Play with the 1.5.x series, only after people have verified or no reported bugs appear on the Beta forum will it be promoted to the final production version.

Those plans for the future all sound fine to me (so no need for me to debate individual points this time :))

I suppose I should check out that ViMu Player you mentioned, since I'm not familiar with it.

But I assume that the current Serenity versions don't have any special support for its API yet.

Best regards: dlanor

External player support is awesome, but given how much better the "internal" serenity player seems to work compared to official plex, and (so far) I've not noticed a great deal (if any) difference between playback of high bitrate 1080p content between say, MX and the internal player.. is this a big priority? :-)

**EDIT** I've just read DLanor's post.. so yer, I guess more comprehensive external player support would be nice.. though IMHO, the internal player has handled *everything* I've thrown at it (.MKVs of various profiles, .mp4s, .avis of divx/xvids with mp3 soundtracks etc.).. save for badly encoded stuff, but then nothing else seems to play it either

Yeah external player support is needed for non Google tv devices. The codec support varies greatly.

External player support is awesome, but given how much better the "internal" serenity player seems to work compared to official plex, and (so far) I've not noticed a great deal (if any) difference between playback of high bitrate 1080p content between say, MX and the internal player.. is this a big priority? :-)

**EDIT** I've just read DLanor's post.. so yer, I guess more comprehensive external player support would be nice.. though IMHO, the internal player has handled *everything* I've thrown at it (.MKVs of various profiles, .mp4s, .avis of divx/xvids with mp3 soundtracks etc.).. save for badly encoded stuff, but then nothing else seems to play it either

This post is just to clarify something you may have misunderstood earlier:

The "internal" player is NOT internal to Serenity. It's internal to the Android device you're using. And it can differ for each manufacturer/model.

That's also what kingargyle referred to in his latest post, where he commented on the varying codec support.

So my results with the 'internal' player differ for each of my Android devices, and most likely all of them differ from the device you refer to as handling all formats, because none of my devices can do that. They all need help by the PMS transcoding for some formats, and that only works if the client program knows when such transcoding is needed, so it will request this operation from the server. And unfortunately that is what Serenity fails to do for some of the media when running on my OUYA. And that is one reason why I must use an external player there, so it can handle the untranscoded media that the internal media player of the OUYA would fail to render.

Another reason is that the OUYA has a strong tendency to stutter in media playback using its internal player, though hopefully that tendency will be fixed in some future system update. But until then some external player is the only reliable way of playing high quality media files on the OUYA.

Best regards: dlanor

Hmmm interesting... could you clarify why in that case, on my Justop K9 (MK809) android stick, the Official Android Plex client struggles to smoothly playback 1080p .mkv files, yet Serenity plays back the exact same files smoothly and judder free?

(And this is without transcoding in all cases)

Surely they're both using the same "Internal" android player as you describe?

Cheers :-)

I believe that plex may be doing transcoding for Mkvs. Serenity does no transcoding. Just passes the urls to the internal android media player and has it play it back. Even in direct play I believe plex may try to transcode based on bit rate and some other factors. But I don’t know the internals and how or when the Offical client decides it needs transcoding. But have seen they do special handling for mkv and transcoding.


I don’t do anything special just pass the url and let it play.

Fair enough.. bit of a shame that there appears to be an "issue" with the official player still requesting a transcode when what the user really wants is a "genuine" direct play.. I'm glad that's what Serenity does, because being able to play 1080p .mkvs on a £40 android TV stick and have plex functionality is pretty cool :-)

Some deeper tests on this 1.4.5 version:

  • Lost focus issue at show level after using fast forward/backward.
    • In fact the focus I still lost but we could retrieve it using dpad arrows. It could be better that the focus do not change its position when we use fast forward/backward. On movies menu we do not encounters this behaviour.
  • Begin a show/movie from a device and continue to another:
    • The issue is still there: If we begin to play the video from a serenity device and the go to another for play it do not start at right position. It starts at the beginning even if the show status bar is correct.
    • If we do the same thing from the same device all is running well as it stored the position locally.
    • For this test I used MX player pro as external player with “force MX player to start at the Plex position” on both devices. I tested from a tablet and an android TV box on both directions -> same behaviour.

I was able to sorta reproduce the issue, but only if I used the FF/REW keys on the Sony Google TV remote and didn't hit the buttons in the right spot.  The keys on this remote are built into the touch pad, and it can be easy to get the mouse pointer to do a click off the View instead of on the gallery view itself.  When this happens the focus gets lost.   Not much I can do in that case if the mouse pointer causes the focus to move, however, I did catch a force close that could happen in this case and have fixed that.

I'm working on 1.5.x, which should hopefully address the issues you are experiencing with the external player and resuming from another device.  Haven't had a chance to try and replicate them yet.

Yes, the "force close" we had before has been fixed. This focus behaviour is only a small inconvenient in regards to what it was before.

Ok, I will wait on 1.5.x for the resuming from another device issue.

Dave! Thanks for all your hard work on this project.. Ted.

Thanks. Going to be quiet for the next few days. Presenting Serenity and how to design for a tv device running Android at the big android bbq. More info on 1.5.x development when I get back.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.