Jump to content

Guide Navigation glitchy


Ceth
 Share

Recommended Posts

I have the latest Emby client (1.1.05a) running on Fire TV stick.  ServerWMC is the backend and Emby is the newest beta.

 

If I filter all genres (all box checked), navigating the guide gives strange results.  When I navigate, the highlight that shows the selected program isn't displayed, or the highlight jumps forward in time off the screen.  Or you can correctly navigate in one direction, but the highlight disappears when you navigate in the other direction.  I don't see any pattern to this.  Eventually, the highlight seems to start working again.

 

Also, when no genre's are filtered, I've always seen strange results when navigating up or down.  Sometimes the highlight will move forward in time on it's own.  That is, when you navigate down to the next channel, it might select the program airing in the immediate future, not the currently airing program.  And then navigating down again, it might move to another program further in the future.  

Link to comment
Share on other sites

How many channels do you have in your line up?

 

When you filter the guide, it tries to show you all channels for a shorter time period.  If there are still a lot of channels showing though this could be a problem - especially on the stick which is a very under-powered device (your phone is much more powerful).

 

As for the second issue, this is  something I have not found any way around yet.  It is caused by the fact that Android wants to go from the center of the current item to the center of the next one.  So, if those centers don't line up, you could end up either hopping over something (like a long movie) or getting moved over to the next one (if coming from a long movie).  You can, however, always get to every item, you just might have to travel around it once :).

Link to comment
Share on other sites

I have a lot of channels (>150).  I did some more testing and it occurs even when genres aren't filtered,  just not as bad.  I don't know the capabilities of Android or the guide database on Emby server, but the solution is to somehow limit the amount of information to only what is necessary to draw the screen at any given moment (with a small cushion at the edges to serve as a cache).  Can it dynamically build the grid as the user scrolls?  As wimpy as the Fire Stick is, both it and Android should have the tools to handle things like this.

 

For the second issue, if the current selection is in progress, and the start time of the up/down selection begins in the future, can you subtract one (or whatever means "left") from the chosen position?

Link to comment
Share on other sites

I have no control over the focusing as you move around.  Android is handling that on its own.  I have not been able to find any way to control it at this point.

 

The next beta will have some optimizations in it but I'm not sure they will alleviate the specific issues you saw on the stick. Still, if you'd like to test it, PM me the email address of the Amazon account on the device and I'll add you to the test group.

Link to comment
Share on other sites

Thanks.  I will take you up on the beta version.

 

Not sure if this is how the epg is manipulated but the requestFocus, setNextFocusUpId, and setNextFocusDownId commands might be applicable.

Link to comment
Share on other sites

Not sure if this is how the epg is manipulated but the requestFocus, setNextFocusUpId, and setNextFocusDownId commands might be applicable.

 

It is possible that some sort of routine that traverses the entire grid once it is built discovering which actual views should be considered directly above and below could be built but I have not attempted such a thing yet.

Link to comment
Share on other sites

The simplist solution with the most benefit would be to set the above and below views for just the programs currently in progress.  e.g.  The below view of the current program on channel 35 is the current program on 36.  The above view is the current program on 34.  Since most people scroll up and down on whatever is currently playing, that would fix most of the problem without the complexity of dealing with the rest of the grid.

Link to comment
Share on other sites

It would still require a secondary pass of the grid so there wouldn't be much benefit to only doing it for the first item.  It is just a brute-force method I have not taken the time to look at yet.

Link to comment
Share on other sites

I was thinking about ways to improve the performance of the grid.  If it's not possible to dynamically modify an existing grid, you could use a method something like this:

 

1)  The most important programs are those that are currently playing.  People spend most of their time scrolling up and down on current programming so this should have priority.  The initial view could be all of the channels with a small amount of programming in the past (1/2 - 1 hour), and enough from the future to fill the screen, plus 1/2 to 1 hour. 

2)  If the user wants to move outside of the current grid, they could do so using a method similar to what you already have, except instead of having to click on a border, simply visiting it would rebuild the grid.

3) A new, smaller guide would be built that is focused on the area that the user is currently browsing.  "Smaller" because users are fickle and you don't know exactly where they are going.  So, smaller, faster grid rebuilds would be better than larger, slower grid rebuilds.  The mini grids would have borders on all four sides.

4) The dimensions of the mini grids would be biased in the direction the user was heading.  For example, if the user was heading right, the new grid would contain data for several screens to the right, and maybe only one screen up, down, and to the left.  If the user was heading up, the grid would be biased up and so on.

5) When the user returns to the present time, the grid would revert to the initial view.

 

Could you post a link to the code on github that is responsible for creating the grid and redrawing it?  I'm curious to see how this works, but I don't know enough about Android programming to know where to start.

Link to comment
Share on other sites

Whether they want more channels or more time really depends on what they are using the guide for at any particular point in time.  If browsing for something to watch, then they need more channels and less time (so filtering works well here too).  But, if trying to setup a recording for tonight, they may need fewer channels and more time.

 

You should be sure to try out the latest beta version because there are some optimizations that should help and I've made a presentation change that can help a lot in many use-cases as well.

 

As for the code it is in TvManager and LiveTVGuideActivity mostly and you'll want to be sure you are looking at the dev branch and not master.

Link to comment
Share on other sites

Thanks.

 

For recording, I think that problem will be alleviated when the guide "search" feature is fully implemented.  Alternatively, if you know what channel it is going to be on, the user can click on the channel and then finding the program without the overhead of the grid.  If the person is just browsing around and looking for something to record, then I think the optimizations above would make it faster.

 

When the "Search" feature is implemented, it would be awesome if the user was able to search based on channel substrings in addition to program names. So if the user searches for "ESPN" it should return all programs currently airing on any channel that contains "ESPN" in the name. The user could then:

1) Click on the program to start watching

2) Click a button that says "Grid View" (or similar) if the person wants to see the program in the context of the grid, or

3) Click on a button that says "Channel schedule" which will display the upcoming schedule for just that channel  

Link to comment
Share on other sites

  • 3 weeks later...

I spent some time this morning working out the logic to force the focus issue in the guide.

 

You can try it out in the next beta version if you want.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...